答案1
在传统的数学字体中,部首的字符取自“标准”尺寸的字体系列 2 和更大尺寸的字体系列 3。
无论是哪种情况,字符都位于插槽中"70
(十进制 112),但大符号字体(系列 3)有选择更大尺寸的指示。
为了节省内存空间,Knuth 决定将这个字符的度量纳入一些参数中:具体来说,字符的高度告诉 TeX 连线应该有多粗。符号和连线的实际定位取决于不同的规则。
事实上,如果你运行这个简单的命令行
pdftex '\showthe\fontcharht\textfont3 "70'
你会得到
> 0.39998pt.
(这是 TeX 存储 0.4pt 的方式,因为四舍五入为缩放点)。
如果你看一下纯 TeX,你会看到
\def\surd{{\mathchar"1270}}
因此\surd
将根号对称地放置在公式轴周围,因为\mathchar"1270
声明了一个数学运算符,并且根据 TeX 规则,这样的字符将像这样放置;括号隐藏了运算符的性质。
同样的情况也发生在 上lmex10
,因为否则部首就无法正确打印。
我猜想,当 GUST 的人们将传统的 Latin Modern 字体转换为 OpenType 时,部首符号的高度仍然“非常小”。它实际上是零,我不知道为什么,但一个提示可能是,当使用 OpenType 数学字体时,连字符的粗细在 MATH 表中说明,因此字符的高度无关紧要。
STIX 字体的开发人员决定将字符置于适当的高度,而 XITS Math 本质上是在原始 STIX 字体上添加了 MATH 表。
如果你希望字符的行为像\surd
在纯 TeX 或 LaTeX 中一样,你可以这样做
\documentclass{article}
\usepackage{unicode-math}
\usepackage{newunicodechar}
\setmathfont{Latin Modern Math}
\newunicodechar{√}{{\mathop{\Umathchar "1 "0 `√}}}
\begin{document}
\(2 \sqrt{2} √2\)
\end{document}
与传统产品相比
\documentclass{article}
\usepackage{lmodern}
\begin{document}
\(2 \sqrt{2} \surd 2\)
\end{document}
并看到输出是相同的。