为什么以及从什么时候开始 \mathrm 会呈现连字?

为什么以及从什么时候开始 \mathrm 会呈现连字?

正如在回答中解释的那样这个问题以及其他几个资源中,\mathrm用于设置直立的数学符号(因此在用于文本时可能会出现问题)。因此,如果出于某种原因,我用直立的 f 表示某个东西,用直立的 i 表示其他东西,并想将两者相乘,\mathrm{fi}或者\mathrm{f}\mathrm{i}应该可以完成这项工作,尤其是不使用任何连字符。

虽然我很确定上述说法不久前是正确的,但我当前的发行版(TeX Live 2012)以及此工具呈现连字符:

<code>\mathrm{f}\mathrm{i}</code>

为什么?什么时候改变的?还是我搞错了?

(请注意,我并没有寻找避免这种情况的方法。)


最小示例:

\documentclass{article}
\begin{document}
\[ \mathrm{f}\mathrm{i} \]
\end{document}

答案1

这是设计使然(大部分:-)。

\mathrm \mathit和朋友的设计是为了允许多字母标识符,因此使用与文本字体相同的字距和连字(事实上,在大多数字体设置中,它们文本字体)。这与数学斜体字体形成对比,数学斜体字体不是与文本中使用的斜体字体相同,没有连字并且侧边距更宽。

嗯,这就解释了为什么\mathrm{fi}有连字符。

不丢失连字符的理由\mathrm{f}\mathrm{i}有点难。事实就是如此,即使你这样做了,{\mathrm{f}}{\mathrm{i}}当 TeX 从数学列表构造水平列表时,和fi相邻的,并且字体指定的连字符开始起作用。定义中已经隐含的括号组\mathrm不形成连字符边界。

下面的示例 3 使用一个{}空的数学原子来打破连字,并且示例\rmsym4 中使用的命令使其参数成为一个数学原子,但{}在内部使用以确保连字不会不适当地组合数学。

在此处输入图片描述

\documentclass{article}
\newcommand\rmsym[1]{{{}\mathrm{#1}{}}}
\begin{document}
\showoutput
\[1 \mathrm{f}\mathrm{i} \]
\[2 \mathrm{fi} \]
\[3 \mathrm{f}{}\mathrm{i} \]
\[4 \rmsym{f}\rmsym{i} \]
\end{document}

相关内容