我给你写一段通用、万能的 ArcGIS 标注表达式,专门处理你这种地质代号:
Q [3][pl+d]^ → 显示为:Q₃ᵖˡ⁺ᵈ
下标 3,上标 pl+d,自动去掉末尾 ^
直接可用代码(ArcMap,VBScript)
图层属性 → 标注 → 表达式
解析程序:VBScript
勾选 高级
把下面代码完整粘贴进去
把 [你的字段名] 换成你真正的字段,比如 [岩性]、[Dz]
vb
Function FindLabel ( [你的字段名] ) Dim s s = CStr([你的字段名]) ' 去掉最后的 ^ s = Replace(s, "^", "") ' 替换 [数字] 为下标 s = Replace(s, "[1]", "<sub>1</sub>") s = Replace(s, "[2]", "<sub>2</sub>") s = Replace(s, "[3]", "<sub>3</sub>") s = Replace(s, "[4]", "<sub>4</sub>") s = Replace(s, "[5]", "<sub>5</sub>") ' 替换 [内容] 为上标(支持 pl+d、al、eol、f 等任意内容) Dim regEx Set regEx = New RegExp regEx.Global = True regEx.Pattern = "\[([^\]]+)\]" s = regEx.Replace(s, "<sup>$1</sup>") FindLabel = s End Function
效果
Q[3][pl+d]^ → Q₃ᵖˡ⁺ᵈ
Q[4][al]^ → Q₄ᵃˡ
Q[2][f]^ → Q₂բ
Q[3][eol]^ → Q₃ᵉᵒˡ
全部自动识别,不用一个个手动加。
关键设置(必须开)
标注表达式里一定要勾选:
✅ 文本符号支持 HTML 格式标签
(在标注表达式窗口下方,默认是勾选的)


