考虑这个例子:
\documentclass{article}
\begin{document}
\begin{tabular}{ll}
Math & $AUC$ \\
Italics & \textit{AUC} \\
\end{tabular}
\end{document}
在数学模式下,C 离 U 太远,而在斜体中,A 和 U 之间的间距似乎相同。这些奇怪的字距调整有什么原因吗?这些是固定的并且永远不会改变吗?或者可以期望它们在未来的某个时候得到改进?
答案1
以下是最小示例
\documentclass{article}
\showoutput
\begin{document}
$AUC$
\textit{AUC}
\end{document}
给出了.log
一些关于元素排版的细节:
....\mathon
....\OML/cmm/m/it/10 A
....\OML/cmm/m/it/10 U
....\kern1.09026
....\OML/cmm/m/it/10 C
....\kern0.71527
....\mathoff
....\glue 3.33333 plus 1.66666 minus 1.11111
....\OT1/cmr/m/it/10 A
....\kern-0.25557
....\OT1/cmr/m/it/10 U
....\OT1/cmr/m/it/10 C
....\kern 1.45276
....\penalty 10000
AUC
请注意第一节中\mathon
的构造\mathoff
来自不同的字体 cmm
并且\kern
s (空格) 插入在U
和之后C
。相比之下,a\kern
插入在第二个非数学组件 (也设置为不同的字体) 之后A
和之后。C
cmr
这里对元素设置的看法是,在数学模式下,相邻元素通常被视为相乘的变量,而在文本模式下,它们代表完全不同的东西。也许一个更好的例子可以加剧间距差异,即在文本模式下使用形成连字的字母:
\documentclass{article}
\showoutput
\begin{document}
$off$
\textit{off}
\end{document}
\showoutput
重点强调这一点:
....\mathon
....\OML/cmm/m/it/10 o
....\OML/cmm/m/it/10 f
....\kern1.0764
....\OML/cmm/m/it/10 f
....\kern1.0764
....\mathoff
....\glue 3.33333 plus 1.66666 minus 1.11111
....\OT1/cmr/m/it/10 o
....\OT1/cmr/m/it/10 (ligature ff)
....\kern 2.11945
....\penalty 10000
答案2
中使用的字母$AUC$
来自该cmmi
家族。它们比 中的相同字母cmti
(文本斜体)略宽,但它们的边距略小。在数学模式下,每个字母后都会添加斜体校正。对于A
这个是零,后面的那个C
是不明显的,除非后面有东西或有人用它来展示它。斜体校正是避免数学中字符冲突的唯一方法。在类似 中\showoutput
,你绝对需要这个校正,但 TeX 不会检查下一个符号是倾斜的还是直立的,它总是添加校正。U
$|U|$
数学字母字体cmmi
和大多数数学字体一样,几乎没有字距或连字符信息。文本字体 等 有cmti
很多此类信息,它用于在 和 之间插入正字距A
。U
如果您手动插入斜体修正,则可以使文本斜体看起来很像数学斜体:\textit{A\/U\/C\/}
。
在文本中,紧接着的字母应该属于同一个单词,字距调整信息旨在使它们和谐地融合在一起。在数学中,相邻字母之间通常没有联系,试图使它们看起来有联系会产生误导。如果数学中的字母序列用于组成单个变量,则可以使用\mathit{AUC}
,它只使用与 相同的字体,\textit{AUC}
并使用该字体中的所有字距调整信息。
U
因此,数学中和之间的较大间距以及和C
之间的较小间距并非真正有意为之,而只是被认为不够重要,不足以证明更复杂的系统是合理的。A
U
答案3
数学模式下的第一个 AUC 表示A multiplied by U multiplied by C
。因此,不仅没有像单词那样的字距调整,而且所有空格(这里没有,但你可以试试)都被忽略了。这不是一个错误,而是一个功能,因此用户应该记住在数学模式下正确插入(通过\mathit
或\textit
)单词。