q

qilixuening

V1

2022/10/26阅读:30主题:自定义主题1

demo

ArcGIS Pro 文本格式化标签可用于修改部分文本的格式。 这样,我们就可以创建具有混合格式的文本,例如,为句子中的一个词语添加加粗斜体删除线等效果。 地图中或地图周围任何放置文本的位置几乎都可以使用文本格式化标签。 也就是说,在任何可以指定文本字符串和文本符号的位置都可以使用标签。 例如,可以在动态标注表达式注记图例文本地图标题动态文本以及用于标注要素的字段值中使用标签。

1基本介绍

内容窗格、表视图或弹出窗口并不对标签进行解析,因此,在这些区域中,添加到字段值的标签将显示为纯文本。

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


2格式化标签语法

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

0.counter(counterh2)注记

<BOL>Text</BOL>

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

"<BOL>" + "Text" + "</BOL>"

"<BOL>" + $feature.LABELFIELD + "</BOL>"
"<BOL>" & "Text" & "</BOL>"

"<BOL>" & [LABELFIELD] & "</BOL>"

0.counter(counterh2)可使用字段中的值填充格式化标签值

"<FNT size= '" + $feature.Size + "'>" + "Text" + "</FNT>"

"<FNT size= '" + $feature.Size + "'>" + $feature.LABELFIELD + "</FNT>"
"<FNT size= '" & [Size] & "'>" & "Text" & "</FNT>"

"<FNT size= '" & [Size] & "'>" & [LABELFIELD] & "</FNT>"

0.counter(counterh2)适用于 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>"

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

"<BOL>" + replace($feature.Notes, "&", "&amp;") + "</BOL>"
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>"

3使用具有 Maplex 标注引擎 格式化参数的文本格式化标签

文本格式化标签用于覆盖标注分类文本符号的属性。 Maplex 标注引擎会在标注放置过程中检测文本格式化标签。 由于文本格式化标签可以指定标注的外观并覆盖格式化参数,因此当 Maplex 标注引擎 在标注字符串中检测到文本格式化标签时,可能会在某些情况下关闭标注分类的格式化参数。
在以下情况中,文本格式化标签或被忽略,或更改 Maplex 标注引擎 的行为。

  • Maplex 标注引擎 将忽略字符间距的文本格式化标签。 只有在文本符号中设置的字符间距(字母间距)才有效。
  • Maplex 标注引擎 将忽略文字间距的文本格式化标签。 只有在文本符号中设置的词间距才有效。
  • 当标注拥有字号或行间距的文本格式化标签时,将关闭 Maplex 标注引擎 中的字体缩小行为。
  • 使用缩写字典时,Maplex 标注引擎 不会缩写包含文本格式化标签的标注。
  • 如果标注表达式包含基础文本格式化标签或复合注释部件文本格式化标签,则不会动态堆叠标注。 仍可使用脚本进行堆叠。

如果来自某标注分类的某些标注中包含文本格式化标签,但这些标注均不在当前地图范围之内,则不会检测到任何文本格式化标签,并且上面的文本格式化标签约束也不会生效。

4可用的文本格式化标签

ArcGIS Pro 支持以下格式化元素和标签。 单击表中的链接以转到完整参考。 每个标签将包括注记和标注语法示例。 注记语法适用于页面布局中的文本,用于标注要素和注记的字段值。 标记语法适用于动态的标注表达式。 在所有标注的语法示例中,格式化文本都可以用标注字段替换。

元素 输出
字体名称、字号
<FNT></FNT>
text size=22
textScale = 200
颜色 (RGB)
<CLR></CLR>
文本 Text
粗体
<BOL></BOL>
文本 Text
斜体
<ITA></ITA>
文本 Text
下划线
<UND></UND>
文本 Text
全大写字母
<ACP></ACP>
TEXT
小型大写字母
<SCP></SCP>
text
上标
<SUP></SUP>
E=mc²
下标
<SUB></SUB>
H₂O
字符/字母间距
<CHR></CHR>
T e x t
字符/字母宽度
<CHR></CHR>
Text
词间距
<WRD></WRD>
every word has extra spaces
对齐
<ALIGN></ALIGN>
第一行
与第一行左对齐
行间距
<LIN></LIN>
第一行
第二行
不加粗
<_BOL></_BOL>
全局加粗此处不加粗
不倾斜
<_ITA></_ITA>
全局倾斜 此处不倾斜
不加下划线
<_UND></_UND>
全局下划线此处无下划线
不加上标
<_SUP></_SUP>
不加下标
<_SUB></_SUB>
背景
<BGD></BGD>
背景色

0.counter(counterh2)字体名称和/或字号

属性 注释
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>"

0.counter(counterh2)颜色 (RGB)

属性 注释
red, green, blue = {0-255}
alpha = {0–100}
alpha 值是文本的不透明度。
缺失的红色、绿色、蓝色属性假定 = 0
缺失的 alpha 属性假定 = 100
<CLR red = "255">Text</CLR>

0.counter(counterh2)粗体 、斜体 、下划线

<BOL>Text</BOL>
<ITA>Text</ITA>
<UND>Text</UND>

0.counter(counterh2)全大写字母 、小型大写字母

<ACP>Text</ACP>
<SCP>Text</SCP>

0.counter(counterh2)上标 、下标

E = mc<SUP>2</SUP>
H<SUB>2</SUB>O

0.counter(counterh2)字符/字母间距 、字符/字母宽度 、词间距

<CHR spacing = "200">Text</CHR>
<CHR width = "150">Text</CHR>
<WRD spacing = "200">Extra Word Spacing</WRD>

0.counter(counterh2)对齐

属性 注释
horizontal = {left, right, center, justify} 水平属性:
- 左 - 将段落中的所有行定位为与文本区域的左边缘对齐。 这是默认设置。
- 右 - 将段落中的所有行定位为与文本区域的右边缘对齐。
- 居中 - 将段落中的所有行定位在文本区域左右边缘之间的中心位置。
- 对齐 - 调整段落中所有行的单词间距(除了最后一行,不完整的行),使其可以从文本区域的左边缘延伸到右边缘。
缺失的水平属性将被忽略。
The top two lines have no tags. The bottom line is aligned <ALIGN horizontal = "right">to the right.</ALIGN>

0.counter(counterh2)行间距

属性 注释
leading = {1-}
leading_type = {extra, exact, multiple}
表示为对常规行间距的调整(单位为磅);0 磅表示没有调整。
行距类型:
- 额外 - 行距值是段落第一行之前和段落中每行之间的额外点,但不是最后一行之后的额外点。 可以将值设置为负值以压缩行。 这是默认设置。
- 精确 - 所有行的高度与行距值完全匹配。 此选项可以压缩或分隔行,具体取决于值是小于还是大于字体大小。
- 倍数 - 行距值充当行大小的倍数。 值可以小于 1。
<LIN leading = "25" leading_type = "extra">Text with a leading value of 25 points</LIN>

0.counter(counterh2)不加粗 <_BOL></_BOL>、不倾斜 <_ITA></_ITA>、不加下划线 <_UND></_UND>

The base text symbol is bold <_BOL> but this part is not.</_BOL>
The base text symbol is italic <_ITA> but this part is not.</_ITA>
The base text symbol is underlined <_UND> but this part is not.</_UND>

0.counter(counterh2)不加上标 <_SUP></_SUP>、不加下标 <_SUB></_SUB>

<SUP><_SUP> This text is regular but </_SUP> this text is superscript.</SUP>
<SUB><_SUB> This text is regular but </_SUB> this text is subscript.</SUB>

0.counter(counterh2)背景

属性 注释
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>

0.counter(counterh2)部件

属性 注释
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>

以上就是本次分享的所有内容。

分类:

工具介绍

标签:

工具介绍

作者介绍

q
qilixuening
V1