ArcGIS Pro 文本格式化标签可用于修改部分文本的格式。 这样,您就可以创建具有混合格式的文本,例如,为句子中的一个词语添加下划线。 地图中或地图周围任何放置文本的位置几乎都可以使用文本格式化标签。 也就是说,在任何可以指定文本字符串和文本符号的位置都可以使用标签。 例如,您可以在动态标注表达式、注记、图例文本、地图标题、动态文本以及用于标注要素的字段值中使用标签。 内容窗格、表视图或弹出窗口并不对标签进行解析,因此,在这些区域中,添加到字段值的标签将显示为纯文本。
动态文本是另一种类型的格式化标签,可根据图形文本各个属性的当前值动态更改图形文本。 动态文本标签可与文本格式标签一起使用,在页面布局中创建动态混合格式化文本。
格式化标签语法
格式化标签具有不同的语法,具体取决于其使用位置。 以下示例提供了注记和标注的语法。 注记语法适用于页面布局中的文本,用于标注要素和注记的字段值。 标记语法适用于动态的标注表达式。 在所有标注的语法示例中,格式化文本都可以用标注字段替换。
在注记中,标签串连到不带有特殊字符的文本字符串: <BOL>Text</BOL>
在标注表达式中,格式化标签必须用双引号括起并使用串连运算符将其连结到表达式的其他部分: 此运算符会根据所使用的语言而变化。 Arcade、JScript 和 Python 使用加号 (+) 运算符,而 VBScript 使用与号 (&) 运算符。 "<BOL>" + "Text" + "</BOL>"
"<BOL>" + $feature.LABELFIELD + "</BOL>"
"<BOL>" & "Text" & "</BOL>"
"<BOL>" & [LABELFIELD] & "</BOL>"
可使用字段中的值填充格式化标签值: "<FNT size= '" + $feature.Size + "'>" + "Text" + "</FNT>"
"<FNT size= '" + $feature.Size + "'>" + $feature.LABELFIELD + "</FNT>"
"<FNT size= '" & [Size] & "'>" & "Text" & "</FNT>"
"<FNT size= '" & [Size] & "'>" & [LABELFIELD] & "</FNT>"
以下语法规则适用于 ArcGIS Pro 中的格式化标签:
- ArcGIS Pro 文本格式化标签遵守 XML 语法规则。 每个起始标签必须有对应的结束标签。 标签可以嵌套,但必须先结束内部标签,然后再结束外部标签。
注记 <BOL><UND>Text</UND></BOL>
标注表达式 "<BOL><UND>" + $feature.LABELFIELD + "</UND></BOL>"
- 格式化标签使用句点作为小数分隔符。 这些标签不使用区域设置特定字符。
注记 <FNT size = "12.5">Textgröße = 12,5</FNT>
标注表达式 "<FNT size = '12.5'>" + "Textgröße = 12,5" + "</FNT>"
- 标签属性可使用单引号或双引号括起。 以下语句基本相同:
注记 <FNT name='Arial' size='18'>My text</FNT>
<FNT name="Arial" size="18">My text</FNT>
标注表达式 '<FNT name="Arial" size="18">' + $feature.LABELFIELD + '</FNT>'
"<FNT name='Arial' size='18'>" + $feature.LABELFIELD + "</FNT>"
- 标签对的大小写必须完全一致。 因此,<BOL>...</BOL> 和 <bol>...</bol> 一样有效,但是 <Bol>...</bol> 无效。
- 解析程序将忽略任何无法识别的对应标签对。 例如,尽管 <notag> 不是 ArcGIS Pro 的有效格式化标签,但以下字符串是有效的,并且可以正确显示:
注记 <notag><BOL>State College<BOL></notag>
标注表达式 "<notag><BOL>" + "State College" + "<BOL></notag>"
- “与”号 (&) 和 {} (<) 为特殊字符,在使用格式化标签时,不能在文本中使用这些字符。 可改用相应的字符代码 & 和 <。
注记 不要使用 <ITA>John & Paul</ITA>,而应该使用:
<ITA>John & Paul</ITA>
标注表达式 此表达式显示位于 < > 字符之间的标注字段的值:
"<ITA><" + $feature.LABELFIELD + "></ITA>"
- 如果标注字段值中嵌入了特殊字符,您可以使用一个简单的标注脚本来动态替换这些特殊字符:
标注表达式 - Arcade "<BOL>" + replace($feature.Notes, "&", "&") + "</BOL>"
标注表达式 - VBScript Function FindLabel ([LABELFIELD]) NewString = Replace([LABELFIELD],"&","&") FindLabel = "<ITA>" & NewString & "</ITA>" End Function
- 地图中的每段文本都包含一个绘制时使用的符号。 格式化标签的工作原理是:临时修改该基础文本符号并按照标签中指定的格式化设置绘制文本的指定部分。 标注功能区和标注分类窗格的符号选项卡上的按钮和命令始终反映所选文本段的基础文本符号的属性,不会反映使用格式化标签所做的修改。 例如,如果使用 <FNT> 标签更改某段文本的字体,则在地图中显示该标注时,标注功能区中的字体下拉列表中不会反映此更改,而是会显示文本基础符号的字体。
- 如果标签只是重复基础文本符号的现有属性,则标签对文本段不起作用。 一般说来,这种行为很易理解;例如,如果文本字符串中包含一个 <BOL> 标签,但基础文本符号已经为粗体,此时字符串中的 <BOL> 标签将不起作用。 此外,由于标签遵守 XML 规则,您无法使用 </BOL> 标签关闭基础文本符号的粗体属性。 可以改用 <_BOL> 标签进行此操作。
注记 This is bold if the base text symbol is bold <_BOL>, but this is not: </_BOL>
标注表达式 "This is bold if the base text symbol is bold <_BOL>, but this is not: </_BOL>"
使用具有 Maplex 标注引擎 格式化参数的文本格式化标签
文本格式化标签用于覆盖标注分类文本符号的属性。 Maplex 标注引擎 会在标注放置过程中检测文本格式化标签。 由于文本格式化标签可以指定标注的外观并覆盖格式化参数,因此当 Maplex 标注引擎 在标注字符串中检测到文本格式化标签时,可能会在某些情况下关闭标注分类的格式化参数。
在以下情况中,文本格式化标签或被忽略,或更改 Maplex 标注引擎 的行为。
- Maplex 标注引擎 将忽略字符间距的文本格式化标签。 只有在文本符号中设置的字符间距(字母间距)才有效。
- Maplex 标注引擎 将忽略文字间距的文本格式化标签。 只有在文本符号中设置的词间距才有效。
- 当标注拥有字号或行间距的文本格式化标签时,将关闭 Maplex 标注引擎 中的字体缩小行为。
- 使用缩写字典时,Maplex 标注引擎 不会缩写包含文本格式化标签的标注。
- 如果标注表达式包含基础文本格式化标签或复合注释部件文本格式化标签,则不会动态堆叠标注。 仍可使用脚本进行堆叠。
如果来自某标注分类的某些标注中包含文本格式化标签,但这些标注均不在当前地图范围之内,则不会检测到任何文本格式化标签,并且上面的文本格式化标签约束也不会生效。
Maplex 标注引擎 支持的其他文本格式化标签
Maplex 标注引擎 提供一个附加的特有标签:基础。
"<BSE>" + $feature.FIELDNAME + "</BSE>"
使用多个标注字段标注要素时,必须指定主标注或基准标注。 基础标注用于放置策略,其他标注相对于基础标注放置。
仅 Maplex 标注引擎 支持基础标签。 当 标准标注引擎 遇到 <BSE> 标签时,将忽略并删除 <BSE> 标签,然后再放置标注。
例如,下图中标注分类的放置位置为点的右方,因此会在点要素的正东方向放置标注。 通过将基础标签标注与标注表达式中的第一行相关联,您可以控制相对于要素放置完整标注表达式的方式。 左侧的标注不使用基础标签,而右侧的标注会在标注的第一行周围使用基础标签。
"<BSE>" + $feature.Name + "</BSE>" + TextFormatting.NewLine + $feature.Prov
构建标注表达式的其他提示
以下提示将有助于构建标注表达式:
- 要检查包含文本格式化标签的标注表达式是否有效,请使用应用以应用更改并在地图中查看标注。 如果格式化标签或语法无效,则标签会在地图标注中显示为纯文本。
- 标签的解析不是由 Arcade、Python、VBScript 或 JScript 来完成, 而是作为纯文本传递到 ArcGIS Pro 框架,从而在绘制时动态设置格式。 对于包含在加引号的字符串中的标签,不必再加引号。
"Current <BOL>status</BOL> of parcel: " + $feature.LABELFIELD
- 无论是否使用标注表达式,您都可以将格式化标签嵌入到用于标注图层要素的字段值中。 这样一来,对于标注字段中的特定值,您可以更改其任意部分的格式。 只有字符串类型的标注字段支持嵌入格式化标签。 字段值中使用的标签和标签属性不必用引号括起,也不必使用串连运算符,因此以下标注字段值有效:
<ITA>Rochester</ITA>
<FNT size='14'>C</FNT>olorado
<CLR red = '255'>Paul & Mary</CLR>
可用的文本格式化标签
ArcGIS Pro 支持以下格式化元素和标签。 单击表中的链接以转到完整参考。 每个标签将包括注记和标注语法示例。 注记语法适用于页面布局中的文本,用于标注要素和注记的字段值。 标记语法适用于动态的标注表达式。 在所有标注的语法示例中,格式化文本都可以用标注字段替换。
元素 | 输出 |
---|---|
字体名称和/或字号
<FNT></FNT>
属性 | 注释 |
---|---|
name = {TrueType font}, style = {Font style}, named_instance = {Variable font pre-set}, size = {1}, scale = {1-} |
要定义标准字体,请设置名称、样式、大小和比例,或全部设置。 对于可变字体,可以通过标签属性指定轴。 将鼠标悬停在变化轴上,可以找到字体可用的变体标签及样式。 常用轴的标签包括 wght(权重)、wdth(宽度)、slnt(倾斜)、ital(斜体)和 opsz(光学尺寸)。 named_instance 可用于设置这些变体的便于使用的预设。 要定义可变字体,必须设置名称、样式和变体。 通过指定实例或轴,可以指定变体,例如 wght。 注:标注示例: "<FNT name = 'Work Sans' style = 'italic' named_instance = 'bold italic' wght = '700'>" + "Text weight = 700" + "</FNT>" 注记示例: <FNT name = "Work Sans" style = "italic" named_instance = "bold italic" wght = "700" >Text weight = 700</FNT> |
输出示例
注记语法
<FNT name = "Arial" style = "Regular" size = "12">Text size = 12</FNT> <FNT name = "Arial" scale="200"> Text scale = 200</FNT>
标注语法
"<FNT name = 'Arial' style = 'Regular' size = '12'>" + "Text size = 12" + "</FNT>" + "<FNT name = 'Arial' scale='200'>" + "Text scale = 200" + "</FNT>"
颜色 (RGB)
<CLR></CLR>
属性 | 注释 |
---|---|
red, green, blue = {0-255} alpha = {0–100} |
alpha 值是文本的不透明度。 缺失的红色、绿色、蓝色属性假定 = 0 缺失的 alpha 属性假定 = 100 |
输出示例
注记语法
<CLR red = "255">Text</CLR>
标注语法
"<CLR red = '255'>" + "Text" + "</CLR>"
颜色 (CMYK)
<CLR></CLR>
属性 | 注释 |
---|---|
青色、品红色、黄色、黑色 alpha = {0–100} | alpha 值是文本的不透明度。 缺失的颜色属性假定为 0 缺失的 alpha 属性假定 = 100 |
输出示例
注记语法
<CLR magenta = "100">Text</CLR>
标注语法
"<CLR magenta = '100'>" + "Text" + "</CLR>"
颜色 (SPOT)
<CLR></CLR>
属性 | 注释 |
---|---|
spotname, alpha = {0–100}, tint = {0–100} 青色、品红色、黄色、黑色 红色、绿色、蓝色 | 用于指定打印中使用的专色。 alpha 值是文本的不透明度。 除非您有来自打印服务提供商的指定说明,否则建议将不透明度保留为完全不透明。 色调值为墨水的相对量(暗度)。 替代颜色用于在屏幕上和任何不支持专色的输出设备上显示专色。 使用与专色油墨在视觉上相似的 RGB 或 CMYK 值指定该颜色。 缺失的 alpha 属性假定 = 100 缺失的色调属性假定 = 100 缺失的颜色属性假定为 0 |
输出示例
注记语法
<CLR spotname = "RedlandsRed" cyan = "38" magenta = "100" yellow = "100" black = "0" alpha = "100" tint = "100">Text</CLR>
标注语法
"<CLR spotname = 'RedlandsRed' cyan = '38' magenta = '100' yellow = '100' black = '0' alpha = '100' tint = '100'>" + "Text" + "</CLR>"
粗体
<BOL></BOL>
输出示例
注记语法
<BOL>Text</BOL>
标注语法
"<BOL>" + "Text" + "</BOL>"
斜体
<ITA></ITA>
输出示例
注记语法
<ITA>Text</ITA>
标注语法
"<ITA>" + "Text" + "</ITA>"
下划线
<UND></UND>
输出示例
注记语法
<UND>Text</UND>
标注语法
"<UND>" + "Text" + "</UND>"
全大写字母
<ACP></ACP>
输出示例
注记语法
<ACP>Text</ACP>
标注语法
"<ACP>" + "Text" + "</ACP>"
小型大写字母
<SCP></SCP>
输出示例
注记语法
<SCP>Text</SCP>
标注语法
"<SCP>" + "Text" + "</SCP>"
上标
<SUP></SUP>
输出示例
注记语法
E = mc<SUP>2</SUP>
标注语法
"E = mc" + "<SUP>" + "2" + "</SUP>"
下标
<SUB></SUB>
输出示例
注记语法
H<SUB>2</SUB>O
标注语法
"H" + "<SUB>" + "2</SUB>" + "O"
字符/字母间距
<CHR></CHR>
属性 | 注释 |
---|---|
spacing = {1-} | 表示为对常规字符/字母间距的百分比调整;0% 表示没有调整。 |
输出示例
注记语法
<CHR spacing = "200">Text</CHR>
标注语法
"<CHR spacing = '200'>" + "Text" + "</CHR>"
字符/字母宽度
<CHR></CHR>
属性 | 注释 |
---|---|
width = {1-} | 表示为对常规字符/字母宽度的百分比调整;0% 表示没有调整。 |
输出示例
注记语法
<CHR width = "150">Text</CHR>
标注语法
"<CHR width='150'>" + "Text" + "</CHR>"
词间距
<WRD></WRD>
属性 | 注释 |
---|---|
spacing = {1-} | 表示为文字间距的百分比;100% 表示常规间距。 |
输出示例
注记语法
<WRD spacing = "200">Extra Word Spacing</WRD>
标注语法
"<WRD spacing = '200'>" + "Extra Word Spacing" + "</WRD>"
对齐
<ALIGN></ALIGN>
属性 | 注释 |
---|---|
horizontal = {left, right, center, justify} | 水平属性:
缺失的水平属性将被忽略。 |
输出示例
注记语法
The top two lines have no tags. The bottom line is aligned <ALIGN horizontal = "right">to the right.</ALIGN>
标注语法
"The top two lines have no tags." + textformatting.newline + "The bottom line is aligned" + textformatting.newline + "<ALIGN horizontal = 'right'>" + "to the right." + "</ALIGN>"
行间距
<LIN></LIN>
属性 | 注释 |
---|---|
leading = {1-} leading_type = {extra, exact, multiple} | 表示为对常规行间距的调整(单位为磅);0 磅表示没有调整。 行距类型:
|
输出示例
注记语法
<LIN leading = "25" leading_type = "extra">Text with a leading value of 25 points</LIN>
标注语法
"<LIN leading = '25' leading_type = 'extra'>" + "Text with a leading value of 25 points" + "</LIN>"
不加粗
<_BOL></_BOL>
输出示例
注记语法
The base text symbol is bold <_BOL> but this part is not.</_BOL>
标注语法
"The base text symbol is bold " + "<_BOL>" + " but this part is not." + "</_BOL>"
不倾斜
<_ITA></_ITA>
输出示例
注记语法
The base text symbol is italic <_ITA> but this part is not.</_ITA>
标注语法
"The base text symbol is italic " + "<_ITA>" + " but this part is not." + "</_ITA>"
不加下划线
<_UND></_UND>
输出示例
注记语法
The base text symbol is underlined <_UND> but this part is not.</_UND>
标注语法
"The base text symbol is underlined " + "<_UND>" + " but this part is not." + "</_UND>"
不加上标
<_SUP></_SUP>
输出示例
注记语法
<SUP><_SUP> This text is regular but </_SUP> this text is superscript.</SUP>
标注语法
"<SUP><_SUP>" + "This text is regular but" + "</_SUP>" + " this text is superscript." + "</SUP>"
不加下标
<_SUB></_SUB>
输出示例
注记语法
<SUB><_SUB> This text is regular but </_SUB> this text is subscript.</SUB>
标注语法
"<SUB><_SUB>" + "This text is regular but" + "</_SUB>" + " this text is subscript." + "</SUB>"
背景
<BGD></BGD>
属性 | 注释 |
---|---|
red, green, blue = {0-255} cyan, magenta, yellow, black = {0-100} alpha = {0–100} outline_red, outline_green, outline_blue = {0–255} outline_cyan, outline_magenta, outline_yellow, outline_black = {0–100} outline_alpha = {0–100} width = {Double} padding = {Double} | alpha 值是背景的不透明度。 outline_alpha 值是轮廓的不透明度。 width 值是轮廓的宽度(以磅为单位)。 padding 值是轮廓从背景边缘移动的距离(以磅为单位)。 缺失的红色、绿色、蓝色属性假定 = 0 缺失的青色、品红色、黄色、黑色属性假设 = 0 缺失的 alpha 和 outline_alpha 属性假定 = 100 |
输出示例
注记语法
<CLR red='255' green='236' blue='0' alpha='100'><BGD red='0' green='0' blue='0' alpha='100'>B</BGD></CLR><CLR red='255' green='255' blue='255' alpha='100'><BGD red='230' green='0' blue='0' alpha='100'>15-33</BGD></CLR>
标注语法
"<CLR red='255' green='236' blue='0' alpha='100'><BGD red='0' green='0' blue='0' alpha='100'>" + "B" + "</BGD></CLR><CLR red='255' green='255' blue='255' alpha='100'><BGD red='230' green='0' blue='0' alpha='100'>" + "15-33" + "</BGD></CLR>"
垂直摩斯电码
<VMC></VMC>
属性 | 注释 |
---|---|
x_offset = {1-} y_offset = {1-} | x_offset 值是以磅为单位的十进制 X 偏移值。 y_offset 值是以磅为单位的十进制 Y 偏移值。 仅在使用复合注释类型时才可用。 |
输出示例
注记语法
<VMC>TUS</VMC>
标注语法
"<VMC>" + "TUS" + "</VMC>"
部件
<PART></PART>
属性 | 注释 |
---|---|
position = {middle, topleft, top, topright, right, bottomright, bottom, bottomleft, left, floating] h_align = {left, right, center, justify} v_align = top, center, baseline, bottom} x_offset = {1-} y_offset = {1-} split_offset = {1} boxed = {true, false} | x_offset 值是以磅为单位的十进制 X 偏移值。 y_offset 值是以磅为单位的十进制 Y 偏移值。 Split_offset 为注释边缘和与边缘相交的文本任意部件之间的距离(以磅为单位)。 如果将其设置为大于注释宽度,则不会绘制任何关联的注释线。 框式值是是否将部件保留在注释中,并使用分隔线将其与中间元素分开。 仅在使用复合注释类型时才可用。 偏移和对齐标签会覆盖所有符号设置。 |
输出示例
注记语法
<PART position="middle">Middle Element</PART><CLR blue="200"><PART position="top">Top</PART><PART position="topleft">TopL</PART><PART position="topright">TopR</PART><PART position="left">Left</PART><PART position="right">Right</PART><PART position="bottom">Bottom</PART><PART position="bottomleft">BottomL</PART><PART position="bottomright">BottomR</PART><PART position="floating" h_align="center" v_align="center" x_offset="0" y_offset="-10">Floating</PART></CLR>
标注语法
"<PART position='middle'>" + "Middle Element" + "</PART><CLR blue='200'><PART position='top'>Top</PART><PART position='topleft'>" + "TopL" + "</PART><PART position='topright'>" + "TopR" + "</PART><PART position='left'>" + "Left" + "</PART><PART position='right'>" + "Right" + "</PART><PART position='bottom'>" + "Bottom" + "</PART><PART position='bottomleft'>" + "BottomL" + "</PART><PART position='bottomright'>" + "BottomR" + "</PART><PART position='floating' h_align='center' v_align='center' x_offset='0' y_offset='-10'>" + "Floating" + "</PART></CLR>"
基础
<BSE></BSE>
注释 |
---|
标记用于主标注放置的基础文本字符串(仅限于 Maplex 标注引擎)。 |
输出示例
注记语法
<BSE>College Station</BSE>Population: 67890 Median Age: 21.9
标注语法
"<BSE>" + "College Station" + "</BSE>" + TextFormatting.NewLine + "Population: 67890" + TextFormatting.NewLine + "Median Age: 21.9"