文本格式化标签

ArcGIS Pro 文本格式化标签可用于修改部分文本的格式。 这样,您就可以创建具有混合格式的文本,例如,为句子中的一个字添加下划线。 地图中或地图周围任何放置文本的位置几乎都可以使用文本格式化标签。 也就是说,在任何可以指定文本字符串和文本符号的位置都可以使用标签。 例如,您可以在动态标注表达式、注记、图例文本、地图标题、动态文本以及用于标注要素的字段值中使用标签。 内容窗格、表视图或弹出窗口并不对标签进行解析,因此,在这些区域中,添加到字段值的标签将显示为纯文本。

查看可用的文本格式化标签表

动态文本是另一种类型的格式化标签,可根据图形文本各个属性的当前值动态更改图形文本。 动态文本标签可与文本格式标签一起使用,在页面布局中创建动态混合格式化文本。

了解有关使用动态文本的详细信息

格式化标签语法

格式化标签具有不同的语法,具体取决于其使用位置。 以下示例提供了注记和标注的语法。 注记语法适用于页面布局中的文本,用于标注要素和注记的字段值。 标记语法适用于动态的标注表达式。 在所有标注的语法示例中,格式化文本都可以用标注字段替换。

在注记中,标签串连到不带有特殊字符的文本字符串:

注记
 <BOL>Text</BOL>

在标注表达式中,格式化标签必须用双引号括起并使用串连运算符将其连结到表达式的其他部分: 此运算符会根据所使用的语言而变化。 Arcade、JScript 和 Python 使用加号 (+) 运算符,而 VBScript 使用与号 (&) 运算符。

标注表达式 - Arcade
 "<BOL>" + "Text" + "</BOL>"
"<BOL>" + $feature.LABELFIELD + "</BOL>"
标注表达式 - VBScript
 "<BOL>" & "Text" & "</BOL>"
"<BOL>" & [LABELFIELD] & "</BOL>"

可使用字段中的值填充格式化标签值:

标注表达式 - Arcade
 "<FNT size= '" + $feature.Size + "'>" + "Text" + "</FNT>"
"<FNT size= '" + $feature.Size + "'>" + $feature.LABELFIELD + "</FNT>"
标注表达式 - VBScript
 "<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>"

  • “与”号 (&) 和 {} (<) 为特殊字符,在使用格式化标签时,不能在文本中使用这些字符。 可改用相应的字符代码 &amp;&lt;

    注记

    请勿使用 <ITA>John & Paul</ITA>,而应使用以下内容:

    <ITA>John &amp; Paul</ITA>
    标注表达式

    此表达式显示位于 < > 字符之间的标注字段的值:

    "<ITA>&lt;" + $feature.LABELFIELD + "></ITA>"

  • 如果标注字段值中嵌入了特殊字符,您可以使用一个简单的标注脚本来动态替换这些特殊字符:

    标注表达式 - Arcade
    "<BOL>" + replace($feature.Notes, "&", "&amp;") + "</BOL>"
    标注表达式 - VBScript
    Function FindLabel ([LABELFIELD])
      NewString = Replace([LABELFIELD],"&","&amp;")  
      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 标注引擎 提供一个附加的特有标签:基础。

"<BSE>" + $feature.FIELDNAME + "</BSE>"

使用多个标注字段标注要素时,必须指定主标注或基准标注。 基础标注用于放置策略,其他标注相对于基础标注放置。

Maplex 标注引擎 支持基础标签。 当 标准标注引擎 遇到 <BSE> 标签时,将忽略并删除 <BSE> 标签,然后再放置标注。

例如,下图中标注分类的放置位置为点的右方,因此会在点要素的正东方向放置标注。 通过将基础标签标注与标注表达式中的第一行相关联,您可以控制相对于要素放置完整标注表达式的方式。 左侧的标注不使用基础标签,而右侧的标注会在标注的第一行周围使用基础标签。

"<BSE>" + $feature.Name + "</BSE>" + TextFormatting.NewLine + $feature.Prov

<BSE> 格式化标签示例

构建标注表达式的其他提示

以下提示将有助于构建标注表达式

  • 要检查包含文本格式化标签的标注表达式是否有效,请使用应用以应用更改并在地图中查看标注。 如果格式化标签或语法无效,则标签会在地图标注中显示为纯文本。
  • 标签的解析不是由 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 &amp; 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

输出示例

颜色 (RGB) 示例

注记语法

<CLR red = "255">Text</CLR>

标注语法

"<CLR red = '255'>" + "Text" + "</CLR>"

颜色 (CMYK)

<CLR></CLR>

属性备注

青色、品红色、黄色、黑色

alpha = {0–100}

alpha 值是文本的不透明度。

缺失的颜色属性假定为 0

缺失的 alpha 属性假定 = 100

输出示例

颜色 (CMYK) 示例

注记语法

<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

输出示例

颜色 (SPOT) 示例

注记语法

<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-}

表示为对常规字符/字母宽度的百分比调整;100% 表示没有调整。

输出示例

字符/字母宽度示例

注记语法

<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 磅表示没有调整。

行距类型:

  • 额外 - 行距值是段落第一行之前和段落中每行之间的额外点,但不是最后一行之后的额外点。 可以将值设置为负值以压缩行。 这是默认设置。
  • 精确 - 所有行的高度与行距值完全匹配。 此选项可以压缩或分隔行,具体取决于值是小于还是大于字体大小。
  • 倍数 - 行距值充当行大小的倍数。 值可以小于 1。

输出示例

行间距示例

注记语法

<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"

相关主题