我正在开发一个小型公式编辑器,使用 Win32 API 和 MATH 表,MS 最近已将其合并到 Cambria Math 字体的 OpenType 文件中。我从 MS 收到了 MATH 表规范,总的来说,我认为我了解如何从中提取任何信息。我的问题是理解此表中定义的几个常量背后的概念。我联系了 MS,他们说这些术语在 LaTex 中非常常见。由于我不熟悉这种语言,如果有人能帮助我理解以下常量的含义,我将不胜感激:
数学领先数学公式之间应留有空白,以确保适当的行距。
轴高 字体的轴高。
SuperscriptShiftUpCramp上标相对于基数的标准偏移,采用狭窄的样式。
StackTopShiftUp标准上移应用于堆栈顶部元素。
堆栈间隙最小值堆栈顶部元素的(墨水)底部与底部元素的(墨水)顶部之间的最小间隙。
答案1
这文档Yiannis 链接的确实描述了您提到的最后三个参数:
SuperscriptShiftUpCramp如第 16 页所述,它是狭窄模式下正常基线和上标基线之间的标准距离(这是指下标/上标必须占据尽可能少的位置,例如在平方根内:第一个比第二个^2
低$\sqrt{x_1^2}x_1^2$
)。
StackTopShiftUp如第 14 页所述,它是大算子(例如积分)的顶部与相应上标的基线之间的距离。
堆栈间隙最小值在第15页有描述(它是图3的参数φ)。
轴高是数学轴高度:大多数数学符号默认垂直对齐(分数规则位于轴高度;= 符号垂直居中于此轴,就像大运算符和大分隔符一样)。
数学领先LuaTeX 似乎没有使用它(它不在 §5.5“基于字体的数学参数”的表格中(目前为第 134 页)手动的)。如果你想知道原因,你可以在LuaTeX 邮件列表。
LuaTeX 手册(§5.5)给出了 OpenType 和 TeX 参数之间的对应关系。然后你可以查看附录 G 说明以及附录 G电子书有关参数的更多详细信息。
答案2
TUGboat文章OpenType 数学阐释有很多与您的问题相关的信息。