嗯,我想我并没有要求关于所有可能的符号字体的第一原则的论文,不,我要求的是 Windows“符号”字体、WGL4 代码页或我认为的任何“Monotype”符号”字体即。
这就是我从问题中指出的这些 groff 字体缩写映射生成映射的方法:
wget https://opensource.apple.com/source/groff/groff-39/groff/font/devlj4/generate/symbol.map
sed -e '/^#/d' -e '/^ *$/d' -e 's/[\t ][\t ]*/|/g' symbol.map |cut -d\| -f2,3 |sort -t\| -k2 >symbol.map.dat
wget https://opensource.apple.com/source/groff/groff-39/groff/font/devlj4/generate/text.map
sed -e '/^#/d' -e '/^ *$/d' -e 's/[\t ][\t ]*/|/g' text.map |cut -d\| -f2,3 |sort -t\| -k2 >text.map.dat
wget https://opensource.apple.com/source/groff/groff-39/groff/font/devlj4/generate/special.map
sed -e '/^#/d' -e '/^ *$/d' -e 's/[\t ][\t ]*/|/g' special.map |cut -d\| -f2,3 |sort -t\| -k2 >special.map.dat
cat text.map.dat special.map.dat |sort -t\| -k2 > unicode.map.dat
join -t\| -1 2 -2 2 symbol.map.dat unicode.map.dat
然后我从中创建一个 XML 映射表,并在我的 XSLT 中使用它:
join -t\| -1 2 -2 2 symbol.map.dat unicode.map.dat |sed -e 's~\([^|]*\)|\([^|]*\)|\([^|]*\)~<a abb="\1" sym="\&#x\2;" uni="\&#x\3;"/>~'
这会创建:
<a abb="" sym="" uni="≃"/>
<a abb="!" sym="" uni="!"/>
<a abb="!=" sym="" uni="≠"/>
<a abb="#" sym="" uni="#"/>
<a abb="%" sym="" uni="%"/>
<a abb="&" sym="" uni="&"/>
<a abb="(" sym="" uni="("/>
<a abb=")" sym="" uni=")"/>
<a abb="**" sym="" uni="∗"/>
<a abb="*A" sym="" uni="A"/>
<a abb="*B" sym="" uni="B"/>
<a abb="*C" sym="" uni="Ξ"/>
<a abb="*D" sym="" uni="∆"/>
<a abb="*E" sym="" uni="E"/>
<a abb="*F" sym="" uni="Φ"/>
<a abb="*G" sym="" uni="Γ"/>
<a abb="*H" sym="" uni="Θ"/>
<a abb="*I" sym="" uni="I"/>
<a abb="*K" sym="" uni="K"/>
<a abb="*L" sym="" uni="Λ"/>
<a abb="*M" sym="" uni="M"/>
<a abb="*N" sym="" uni="N"/>
<a abb="*O" sym="" uni="O"/>
<a abb="*P" sym="" uni="Π"/>
<a abb="*Q" sym="" uni="Ψ"/>
<a abb="*R" sym="" uni="P"/>
<a abb="*S" sym="" uni="Σ"/>
<a abb="*T" sym="" uni="T"/>
<a abb="*U" sym="" uni="Υ"/>
<a abb="*W" sym="" uni="Ω"/>
<a abb="*X" sym="" uni="X"/>
<a abb="*Y" sym="" uni="H"/>
<a abb="*Z" sym="" uni="Z"/>
<a abb="*a" sym="" uni="α"/>
<a abb="*b" sym="" uni="β"/>
<a abb="*c" sym="" uni="ξ"/>
<a abb="*d" sym="" uni="δ"/>
<a abb="*e" sym="" uni=""/>
<a abb="*f" sym="" uni="φ"/>
<a abb="*g" sym="" uni="γ"/>
<a abb="*h" sym="" uni="θ"/>
<a abb="*i" sym="" uni="ι"/>
<a abb="*k" sym="" uni="κ"/>
<a abb="*l" sym="" uni="λ"/>
<a abb="*m" sym="" uni="μ"/>
<a abb="*n" sym="" uni="ν"/>
<a abb="*o" sym="" uni="ο"/>
<a abb="*p" sym="" uni="π"/>
<a abb="*q" sym="" uni="ψ"/>
<a abb="*r" sym="" uni="ρ"/>
<a abb="*s" sym="" uni="σ"/>
<a abb="*t" sym="" uni="τ"/>
<a abb="*u" sym="" uni="υ"/>
<a abb="*w" sym="" uni="ω"/>
<a abb="*x" sym="" uni="χ"/>
<a abb="*y" sym="" uni="η"/>
<a abb="*z" sym="" uni="ζ"/>
<a abb="+-" sym="" uni="±"/>
<a abb="+f" sym="" uni="ϕ"/>
<a abb="+h" sym="" uni="ϑ"/>
<a abb="+p" sym="" uni="ϖ"/>
<a abb="," sym="" uni=","/>
<a abb="->" sym="" uni="→"/>
<a abb="." sym="" uni="."/>
<a abb="/" sym="" uni="/"/>
<a abb="/_" sym="" uni="∠"/>
<a abb="0" sym="" uni="0"/>
<a abb="1" sym="" uni="1"/>
<a abb="2" sym="" uni="2"/>
<a abb="3" sym="" uni="3"/>
<a abb="3d" sym="" uni="∴"/>
<a abb="4" sym="" uni="4"/>
<a abb="5" sym="" uni="5"/>
<a abb="6" sym="" uni="6"/>
<a abb="7" sym="" uni="7"/>
<a abb="8" sym="" uni="8"/>
<a abb="9" sym="" uni="9"/>
<a abb=":" sym="" uni=":"/>
<a abb=";" sym="" uni=";"/>
<a abb="<" sym="" uni="<"/>
<a abb="<-" sym="" uni="←"/>
<a abb="<=" sym="" uni="≤"/>
<a abb="<>" sym="" uni="↔"/>
<a abb="=" sym="" uni="="/>
<a abb="==" sym="" uni="≡"/>
<a abb="=~" sym="" uni="≅"/>
<a abb=">" sym="" uni=">"/>
<a abb=">=" sym="" uni="≥"/>
<a abb="?" sym="" uni="?"/>
<a abb="AN" sym="" uni="∧"/>
<a abb="Ah" sym="" uni="ℵ"/>
<a abb="CL" sym="" uni="♣"/>
<a abb="CR" sym="" uni="↵"/>
<a abb="DI" sym="" uni="♦"/>
<a abb="Eu" sym="" uni="€"/>
<a abb="HE" sym="" uni="♥"/>
<a abb="Im" sym="" uni="ℑ"/>
<a abb="OR" sym="" uni="∨"/>
<a abb="Re" sym="" uni="ℜ"/>
<a abb="SP" sym="" uni="♠"/>
<a abb="[" sym="" uni="["/>
<a abb="]" sym="" uni="]"/>
<a abb="_" sym="" uni="_"/>
<a abb="ap" sym="" uni="~"/>
<a abb="arrowvertbt" sym="" uni="⇓"/>
<a abb="arrowverttp" sym="" uni="⇑"/>
<a abb="c*" sym="" uni="⊗"/>
<a abb="c+" sym="" uni="⊕"/>
<a abb="ca" sym="" uni="∩"/>
<a abb="cu" sym="" uni="∪"/>
<a abb="da" sym="" uni="↓"/>
<a abb="de" sym="" uni="°"/>
<a abb="di" sym="" uni="÷"/>
<a abb="es" sym="" uni="∅"/>
<a abb="f/" sym="" uni="∕"/>
<a abb="fa" sym="" uni="∀"/>
<a abb="fm" sym="" uni="′"/>
<a abb="gr" sym="" uni="∇"/>
<a abb="hA" sym="" uni="⇔"/>
<a abb="ib" sym="" uni="⊆"/>
<a abb="if" sym="" uni="∞"/>
<a abb="integral" sym="" uni="∫"/>
<a abb="ip" sym="" uni="⊇"/>
<a abb="lA" sym="" uni="⇐"/>
<a abb="la" sym="" uni="〈"/>
<a abb="lz" sym="" uni="◇"/>
<a abb="mi" sym="" uni="−"/>
<a abb="mo" sym="" uni="∈"/>
<a abb="mu" sym="" uni="×"/>
<a abb="nb" sym="" uni="⊄"/>
<a abb="nm" sym="" uni="∉"/>
<a abb="no" sym="" uni="¬"/>
<a abb="pd" sym="" uni="∂"/>
<a abb="pl" sym="" uni="+"/>
<a abb="pp" sym="" uni="⊥"/>
<a abb="product" sym="" uni="∏"/>
<a abb="pt" sym="" uni="∝"/>
<a abb="rA" sym="" uni="⇒"/>
<a abb="ra" sym="" uni="〉"/>
<a abb="sb" sym="" uni="⊂"/>
<a abb="sd" sym="" uni="″"/>
<a abb="sp" sym="" uni="⊃"/>
<a abb="st" sym="" uni="∍"/>
<a abb="sum" sym="" uni="∑"/>
<a abb="te" sym="" uni="∃"/>
<a abb="ts" sym="" uni="ς"/>
<a abb="u2026" sym="" uni="…"/>
<a abb="u2320" sym="" uni="⌠"/>
<a abb="u2321" sym="" uni="⌡"/>
<a abb="ua" sym="" uni="↑"/>
<a abb="wp" sym="" uni="℘"/>
<a abb="~=" sym="" uni="≈"/>
或者我也可以创建这些无效 UNICODE 点的查找字符串和位置匹配的正确 UNICODE 点的字符串:
join -t\| -1 2 -2 2 symbol.map.dat unicode.map.dat |sed -e 's~\([^|]*\)|\([^|]*\)|\([^|]*\)~\1|\&#x\2;|\&#x\3;~' > symbol-unicode.map.dat
echo '<a sym="'$(cut -d\| -f2 symbol-unicode.map.dat |tr -d '\n')'" uni="'$(cut -d\| -f3 symbol-unicode.map.dat |tr -d '\n')'"/>'
这给了我:
<a sym=""
uni="≃!≠#%&()∗ABΞ∆EΦΓΘIKΛMNOΠΨPΣTΥΩXHZαβξδφγθικλμνοπψρστυωχηζ±ϕϑϖ,→./∠0123∴456789:;<←≤↔=≡≅>≥?∧ℵ♣↵♦€♥ℑ∨ℜ♠[]_~⇓⇑⊗⊕∩∪↓°÷∅∕∀′∇⇔⊆∞∫⊇⇐〈◇−∈×⊄∉¬∂+⊥∏∝⇒〉⊂″⊃∍∑∃ς…⌠⌡↑℘≈">
顺便说一句,Stack Exchange 平台有一个有趣的地方,我可以向您展示我在这里的符号,首先是坏的,它可能会全部显示为框,除非您调整本地 CSS @987654328 @:
现在是 UNIICODE 字符串:
≃!≠#%&()∗ABΞ∆EΦΓΘIKΛMNOΠΨPΣTΥΩXHZαβξδφγθικλμνοπψρστυωχηζ±φϑϖ,→./∠0123∴456789:;≥?∧ℵ♣↨↵♦€♥ℑℨ↨↵€♥ []_~⇓⇑⊗⊕∩∪↓°÷∅∕∀′∇⇔⊆∞∫⊇⇐〈◇−∈×⊄∉¬∂+⊥∏∝⇒〉⊂″⊃∍∑∃ς…⌠⌡↑ ℘≈
很漂亮。
也许它可以帮助其他需要快速实用解决方案的相同问题的人。不客气。