正如在回答中解释的那样这个问题以及其他几个资源中,\mathrm
用于设置直立的数学符号(因此在用于文本时可能会出现问题)。因此,如果出于某种原因,我用直立的 f 表示某个东西,用直立的 i 表示其他东西,并想将两者相乘,\mathrm{fi}
或者\mathrm{f}\mathrm{i}
应该可以完成这项工作,尤其是不使用任何连字符。
虽然我很确定上述说法不久前是正确的,但我当前的发行版(TeX Live 2012)以及此工具呈现连字符:
为什么?什么时候改变的?还是我搞错了?
(请注意,我并没有寻找避免这种情况的方法。)
最小示例:
\documentclass{article}
\begin{document}
\[ \mathrm{f}\mathrm{i} \]
\end{document}
答案1
这是设计使然(大部分:-)。
\mathrm
\mathit
和朋友的设计是为了允许多字母标识符,因此使用与文本字体相同的字距和连字(事实上,在大多数字体设置中,它们是文本字体)。这与数学斜体字体形成对比,数学斜体字体不是与文本中使用的斜体字体相同,没有连字并且侧边距更宽。
嗯,这就解释了为什么\mathrm{fi}
有连字符。
不丢失连字符的理由\mathrm{f}\mathrm{i}
有点难。事实就是如此,即使你这样做了,{\mathrm{f}}{\mathrm{i}}
当 TeX 从数学列表构造水平列表时,和f
是i
相邻的,并且字体指定的连字符开始起作用。定义中已经隐含的括号组\mathrm
不形成连字符边界。
下面的示例 3 使用一个{}
空的数学原子来打破连字,并且示例\rmsym
4 中使用的命令使其参数成为一个数学原子,但{}
在内部使用以确保连字不会不适当地组合数学。
\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}