我希望将 Latex 数学符号用作矢量字体(例如 TrueType),同时将 Latex 符号名称映射到字体中的代码点。我该如何实现?
背景
为了进行研究,我需要访问所有 Latex(数学)符号的高质量图像。我已设置了一个工具链,它为我提供了这些图像;pdflatex 的符号转 PDF -> GhostScript 的 PDF 转 PNG -> NConvert 的 PNG 转裁剪 PNG。我在我的软件中使用这些图像。
然而,这有点倒退,因为 Latex 中的许多符号被定义为矢量形状。如果我可以直接访问这些矢量形状,我就可以减少内存占用,并以任意分辨率绘制符号。
答案1
TeX 中常用的所有字体均已提供可扩展的 type1 truetype 或 opentype 形式。
例如,您可以使用 opentype 字体(如 xits-math 或 latin-modern math),它将在单个可扩展字体中包含所有常见的 latex 和 ams 符号。
unicode-math 包具有适用于任何 opentype 数学字体的命令名称映射(请参阅
texmf-dist/tex/latex/unicode-math/unicode-math-table.tex
这是一个很长的列表,看起来像
...
\UnicodeMathSymbol{"02197}{\nearrow }{\mathrel}{ne pointing arrow}%
\UnicodeMathSymbol{"02198}{\searrow }{\mathrel}{se pointing arrow}%
\UnicodeMathSymbol{"02199}{\swarrow }{\mathrel}{sw pointing arrow}%
...
它映射 Unicode 代码点、tex 命令名称、数学类和 Unicode 名称。