Alternate expressions, abbreviation dictionaries, and the truncation of labels allow the Maplex Label Engine to shorten long labels to fit in small spaces. When you use an alternate expression, the label engine first attempts to place the full text of the label. If it can't, it then replaces the label with the specified text, either from a field value or an Arcade expression. If the label is still unplaced, the label engine abbreviates any words found in the dictionary to place them in the available space. Truncation is the last option attempted and shortens the words in a label based on the specified characters to remove and to exclude from truncation. These fitting strategies can be used in any combination but are always applied in this order.
Alternate expressions
Alternate expressions allow the Maplex Label Engine to shorten long labels to fit in restricted spaces. With alternate expressions, you can select a field with which to replace the longer label, or use Arcade to build an expression with multiple fields and text. An example is labeling a school with just the word School if the area is too small to fit the full name of the school. In this case, the alternate text of School is pulled from another field in the layer or from the Arcade expression and used to label the feature instead.
- Ensure that the Maplex Label Engine is enabled.
- Ensure that List By Labeling is the active method of displaying the Contents pane. Click the List By Labeling tab .
- Choose a label class in the Contents pane and click the Labeling tab.
- On the Labeling tab, in the Label Placement group, click Label Placement Properties .
- In the Labeling pane, click Position and click the Fitting strategy tab .
- Expand Abbreviate.
- Check the Use abbreviation strategies check box.
- Specify the field to use from the drop-down list or click the Expression button to specify an Arcade expression to use for the alternate expression. Optionally, provide a title for the expression.
Abbreviation dictionaries
Abbreviation dictionaries allow the Maplex Label Engine to shorten long labels to fit in small spaces. When you use an abbreviation dictionary, the Maplex Label Engine first attempts to place the full text of the label. If it can't, it then abbreviates any words found in the dictionary for labels that could not be placed.
Abbreviation dictionaries are applied to individual label classes. The abbreviation is applied to a freestanding word or groups of words, not parts of words, with the exception of certain non-English words. Individual words, such as Road and Street, can be abbreviated as Rd or St, or longer strings, such as Post Office, can be abbreviated as PO. Portions of words are not abbreviated. For example, if you have a dictionary entry mapping Road as Rd, the label Roadrunner Road is abbreviated as Roadrunner Rd, not Rdrunner Rd. Labels containing text formatting tags are not abbreviated by the Maplex Label Engine.
In the following image, Plumas Street has been abbreviated to Plumas St to fit in the short street segment. Monterey Street has been abbreviated as well. Where there is plenty of space for the label, the ending is not abbreviated.
Caution:
The text string is not abbreviated if the label contains text formatting tags; subscript or superscript symbols; characters that combine, such as diacritics; or right-to-left characters.
Types of abbreviation dictionary entries
There are three types of abbreviation dictionary entries: keywords, endings, and translations. Two of these types, keywords and endings, are only applied to words when the original string can't be placed because of space or label-to-label or label-to-feature conflicts. Translation entries are always applied to all matching words.
- Keyword entries can be applied to all words in a string except the last word. Use keywords to replace common words, such as Mount and International, with abbreviations such as Mt and Intl.
- Ending entries can be applied to only the last word of a string. Use this type of abbreviation to shorten street endings, such as Street to St, Road to Rd, and Avenue to Ave.
- Translation entries always apply to all words of a string. Translation entries may be useful when you translate a map into another language, want to remove words from a label string, or want all occurrences of a word to be abbreviated. Use this type of abbreviation to shorten long street names, such as Martin Luther King Boulevard to MLK Blvd.
Non-English street names
In Germanic languages, the generic street ending is appended to the proper street name, for example, Fredrichstrasse. To deal with these special cases, the Maplex Label Engine recognizes five special character strings that can be abbreviated when they are found in a longer string for a street label:
- German—strasse
- Swedish—gatan
- Dutch—straat
- Danish—gade
- Norwegian—gaten
When at least one of these words is present in the abbreviation dictionary, the Maplex Label Engine enables a special mode for abbreviations. Any abbreviations of type Ending cause the Maplex Label Engine to search and attempt to match the end characters of the string, rather than the last word, for a possible abbreviation. In space-constrained abbreviation cases, this ending can also be hyphenated and stacked.
Note:
When this type of abbreviation occurs, no other character strings are abbreviated if they are contained in a string.
Abbreviation types Keyword and Translation do not abbreviate Germanic languages.
In the following image, three streets have been abbreviated using a Dutch abbreviation dictionary. The abbreviations are as follows:
- GRAVENSTRAAT = GRAVENSTR
- DAMRAKSTEEG = DAMRAKSTG—Hyphenated to DAMRAK-STG to stack the label
- ZOUTSTEEG = ZOUTSTG
Note:
In some labels, the word you want to abbreviate is a prefix to the label and separated with a hyphen, for example, Rue Saint-Jacques. In this example, the abbreviation dictionary won't abbreviate Saint as it is part of a larger string. Use an Alternate expression to abbreviate.
Replace Saint- with St- from an example street name of Rue Saint-Jacques
return Replace($feature.name, "Saint-", "St-")
Create an abbreviation dictionary
To create an abbreviation dictionary, complete the following steps:
- Ensure that the Maplex Label Engine is enabled.
- On the Labeling tab, in the Map group, click More > Abbreviation Dictionaries.
- Click New and specify a name for the dictionary.
Add abbreviations to a dictionary
To add words to an abbreviation dictionary, add a row to the dictionary table, type the word in the keyword column, type one or more abbreviations separated by spaces, and specify the type of dictionary entry it is—Translation, Keyword, or Ending. Multiple-word abbreviations must be contained in quotation marks. For example, the two-word string Post Office can be abbreviated as "P O".
Tip:
- You can have multiple abbreviations for a single word; separate the entries by a space: "Str" "St".
- If you want an abbreviation to contain a space, include the string in double quotation marks: "P. O."
- On the Labeling tab, in the Map group, click More > Abbreviation Dictionaries.
- Either create an abbreviation dictionary or load an existing dictionary.
- Click Add row to add an entry to the dictionary table.
- Type the word you want to abbreviate.
- Type an abbreviation for the word. When more than one abbreviation is possible, separate the entries with a space and enclose them in quotation marks.
The first abbreviation entry is tried first, followed by the next, and so on. As soon as the string is placed, no further abbreviation entries are tried.
- Choose the type of abbreviation you want to use from the drop-down list: Translation, Keyword, or Ending.
Save an abbreviation dictionary
You can save abbreviation dictionaries to dictionary files and to database tables. To save an abbreviation dictionary, click the Options arrow on the Abbreviation Dictionaries dialog box and select either Save to file or Save to database table.
Load an abbreviation dictionary
Previously saved abbreviation dictionary files and tables can be loaded into new projects from the Abbreviation Dictionaries dialog box. Click the Options arrow and select either Open from file or Open from database table.
Append to an existing abbreviation dictionary
When loading previously saved abbreviation dictionaries, you can choose to append them to an existing dictionary. Select the dictionary you want to append to from the Selected abbreviation dictionary drop-down list on the Abbreviation Dictionaries dialog box, and click the Options arrow. Select either Append from file or Append from database table.
Abbreviation dictionary file format
Lines that begin with an asterisk (*) are comment lines. The format of an abbreviation entry follows this pattern:
<Word> <Option1> <Option2> <OptionN> <Type>
Example of an abbreviation file
* Maplex Label Engine Dictionary File -
v1.0
* Format: TEXT ABBREVIATION(S) TYPE
* where TYPE=[Translation|Keyword|Ending]
"Street" "Str" "St" Ending
"Road" "Rd" Ending
"Post Office" "Post Off." "PO" Keyword
* [end]
Abbreviation table format
An abbreviation table consists of three fields: Keyword, Abbreviation, and Row Type. The Keyword and Abbreviation fields follow the formatting outlined in the Add abbreviations to a dictionary section above, while the Row Type field has three integer values for the three types of abbreviation dictionary entries:
- 0—Translation
- 1—Keyword
- 2—Ending
Use an abbreviation dictionary
Once an abbreviation dictionary has been created, you can assign it to the label class in which you want to use abbreviations. Abbreviation dictionaries can be reused by saving and loading them into new projects. The dictionaries can be saved to dictionary files and also as tables. The files are formatted text files and are saved with the file extension .dic, while the tables can be stored in databases or stand alone, such as a .dbf table.
- Ensure that the Maplex Label Engine is enabled.
- Ensure that List By Labeling is the active method of displaying the Contents pane. Click the List By Labeling tab .
- Choose a label class in the Contents pane and click the Labeling tab.
- On the Labeling tab, in the Label Placement group, click Label Placement Properties .
- In the Labeling pane, click Position and click the Fitting strategy tab .
- Expand Abbreviate.
- Check the Use abbreviation strategies check box.
- Specify the abbreviation dictionary to use from the Dictionary drop-down list.
Truncate labels
If necessary for placement, you can use truncation to shorten the words in a label by removing characters and ending the label with the marker character you set. The Maplex Label Engine starts with the longest word in the label first and removes the specified letters that are not the first letter. If the label is not shortened sufficiently, the vowels are removed next, followed by the end characters of the truncated label until it is placed or the label is determined to be unplaced.
Note:
Short two or three letter words with one or more vowels (aeiou) are not truncated. This limits truncation of labels such as Boulevard de Nantes to B. de N.
Trailing vowels at the end of words are removed in a single step rather than character by character.
Matched brackets are not removed.
In the following image, the church label Ascension Episcopal Church (Historical Site) has been truncated to Asn.E.C.(H.Sit.). Each part of the label that has been truncated has had a period added to the end.
- Ensure that the Maplex Label Engine is enabled.
- Ensure that List By Labeling is the active method of displaying the Contents pane. Click the List By Labeling tab .
- Choose a label class in the Contents pane and click the Labeling tab.
- On the Labeling tab, in the Label Placement group, click Label Placement Properties .
- In the Labeling pane, click Position and click the Fitting strategy tab .
- Expand Abbreviate.
- Check the Use abbreviation strategies check box.
- Check the Truncation check box.
- Optionally, specify values for Minimum word length, Marker character (to end the truncated label), Characters to remove first, and Characters to never remove.