我给你写一段通用、万能的 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 格式标签

(在标注表达式窗口下方,默认是勾选的)