18mu 对应哪一个 em?

18mu 对应哪一个 em?

我对这段代码的输出有点困惑

\mathsurround=0pt

1)%
\setbox0=\hbox{$\mkern18mu$}
\number\wd0

2)%
\setbox0=\hbox{$\kern1em$}
\number\wd0

3)
\number\fontdimen6\textfont0

4)
\number\fontdimen6\textfont2

\bye

返回

1) 655344
2) 655361
3) 655361
4) 655361

显然与声明相矛盾18mu=1em。现在,如果我没记错的话\kern记错的话,数学公式中可能指的是最后一个文本字体,因此可以解释 1) 和 2) 之间的差异。但是,如果是这样的话,那么 2) 和 3) 应该输出相同的数字(除非我严重误解了某些内容,这很有可能)。

无可否认,我无法看出 90nm 的差异,但我仍然想知道我错在哪里。

答案1

尝试这个:

\newdimen\tmpdim

\tmpdim=655361sp
\number\tmpdim

\divide\tmpdim by18  \multiply\tmpdim by18
\number\tmpdim
\bye

结果是 655361 和 655344。您可以看到,这只是舍入问题。

答案2

单位mu定义为 18mu 与当前字体中数学系列 2(数学符号)的 1em 相同。因此,它使用 em 表示或\textfont2,具体取决于 mkern 或 mskip 最终采用的数学样式。\scriptfont2\scriptscriptfont2

在 Computer Modern 的标准设置中,cmr10 和 cmsy10 中的 em 是相同的,但这并不是强制的,对于其他字体,em 大小可以不同。

如果使用,就会出现“很大”的差异\scriptscriptstyle,因为的 em\fiverm为 6.80565pt,而对于\fivesy(或\scriptscriptfont2),它是 7.3612pt。

\setbox0=\hbox{$\scriptstyle\mkern18mu$}\showthe\wd0得到了 8.19443pt,但\showthe\fontdimen6\scriptfont2由于较小的舍入误差,结果为 8.19447pt。

其他风格也一样。

相关内容