使用文本格式化标签
ArcGIS 文本格式化标签可用于修改部分文本的格式。这样,您就可以创建具有混合格式的文本,例如,为句子中的一个词语添加下划线。在 ArcMap 中,地图中或地图周围任何放置文本的位置几乎都可以使用文本格式化标签。也就是说,在任何可以指定文本字符串和文本符号的位置都可以使用标签。例如,您可以在动态标注表达式、注记、图例文本、地图标题以及用于标注要素的字段值中使用标签。ArcMap 的内容列表、表 窗口、或识别结果 窗口并不对标签进行解析,因此,在这些窗口中,添加到字段值的标签将显示为纯文本。
请查看 ArcMap 中可用的文本格式化标签列表以获取详细信息。
动态文本是另一种类型的格式化标签,可根据图形文本各个属性的当前值动态更改图形文本。它仅用于布局视图。动态文本标签可以和文本格式化标签一起使用,从而在页面布局上创建动态混合格式文本。
格式化标签语法
格式化标签具有不同的语法,这取决于是在注记还是在标注表达式中使用它们。在注记中,标签直接与文本字符串串联而不使用任何特殊字符:
注记
<BOL>Text</BOL>
在标注表达式中,格式化标签必须用双引号括起并使用 & 运算符将其串连到表达式的其他部分:
标注表达式
"<BOL>" & "Text" & "</BOL>"
"<BOL>" & [LABELFIELD] & "</BOL>"
以下语法规则适用于 ArcMap 中的格式化标签:
- ArcMap 文本格式化标签遵守 XML 语法规则。每个起始标签必须有对应的结束标签。标签可以嵌套,但必须先结束内部标签,然后再结束外部标签:注记
<BOL><UND>Text</UND></BOL>
标注表达式"<BOL><UND>" & [LABELFIELD] & "</UND></BOL>"
- 标签属性可使用单引号或双引号括起。以下语句是等效的:注记
<FNT name='Arial' size='18'>My text</FNT> <FNT name="Arial" size="18">My text</FNT>
标注表达式"<FNT name=""Arial"" size=""18"">" & [LABELFIELD] & "</FNT>" "<FNT name='Arial' size='18'>" & [LABELFIELD] & "</FNT>"
- 标签对的大小写必须完全一致。所以,<BOL>...</BOL> 是有效的,<bol>...</bol> 也有效,而 <Bol>...</bol> 是无效的。
- 解析程序将忽略任何无法识别的对应标签对。例如,尽管 <notag> 不是 ArcGIS 的有效格式化标签,但以下字符串是有效的,并且可以正确显示:注记
<notag><BOL>State College<BOL></notag>
标注表达式"<notag><BOL>" & "State College" & "<BOL></notag>"
- “与”号 (&) 和尖括号 (<) 为特殊字符,在使用格式化标签时,不能在文本中使用这些字符。可改用相应的字符代码 & 和 <。注记
不要使用 <ITA>John & Paul</ITA>,而应该使用:
<ITA>John & Paul</ITA>
标注表达式此表达式显示位于 < > 字符之间的标注字段的值:
"<ITA><" & [LABELFIELD] & "></ITA>"
标注表达式如果标注字段值中嵌入了特殊字符,您可以使用一个简单的标注脚本动态替换这些特殊字符:
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>"
构建标注表达式的其他提示
以下提示将有助于构建标注表达式:
- 要检查包含文本格式化标签的表达式是否有效,请单击检验按钮或应用更改并在地图中查看标注。如果格式化标签或语法无效,则标签会在检验 窗口和地图标注中显示为纯文本。
- 标签的解析不是由 Python/VBScript/JScript 来完成,而是作为纯文本传递到 ArcMap 框架,从而在绘制时动态设置格式。对于包含在加引号的字符串中的标签,不必再加引号:
"Current <BOL>status</BOL> of parcel: " & [LABELFIELD]
- 无论是否使用标注表达式,您都可以将格式化标签嵌入到用于标注图层要素的字段值中。这样一来,对于标注字段中的特定值,您可以更改其任意部分的格式。只有字符串类型的标注字段支持嵌入格式化标签。字段值中使用的标签和标签属性不必用引号括起,因此以下标签字段值有效:
<ITA>Rochester</ITA> <FNT size='14'>C</FNT>olorado
相关主题
5/10/2014