文本下标W_{total}
应该用直立文本字体排版(因此代码不是好的做法),就像讨论在各种各样的 问题 这里。现在有几种方法可以达到这个,我有点困惑我应该使用哪一个:
W_{\rm total}
很简洁,而且似乎适用于所有情况,但我预计 LaTeX 用户会对它不以为然,:-)
有什么好的理由反对它吗?W_{\mathrm{total}}
– 这是与 LaTeX 等效的方法吗\rm
?W_{\textnormal{total}}
听起来很合理就像total
文本而不是数学......在这个答案,乌尔里克·菲舍尔 (Ulrike Fischer) 建议采取一种更为复杂的方法。
甚至
W_{\operatorname{total}}
看起来有效,但似乎不合适。
注意:我总是假设这里amsmath
已经加载了。
我已经在上面问了一些问题,但我的主要问题是:这些选项中的哪一个是文本下标的最佳实践?
让我指出为什么我没有在上面提到\text
、\textrm
或\textup
。这些命令(大多数)会保留它们所用上下文的字体,例如在斜体上下文中,\text
并\textrm
给出斜体下标,并且所有这三个命令都会在粗体上下文中产生粗体下标。
最后说明:这个问题与以下问题类似,但并不相同问题有关差异之间\mbox
,\text
,\textrm
,\mathrm
,\operatorname
之前已经问过。也许它仍然是重复的...
答案1
首先,问题在于文本下标,例如物理学中用于区分同名矢量(例如力)的下标,下标标签应为直立字体。文本下标还用于许多其他领域。
以下amsmath
假设。
$W_{\rm total}$
是完全错误的,因为它依赖于类不需要定义的弃用命令(实际上有些类不需要定义)。$W_{\mathrm{total}}$
是上述内容的正确形式。限制:空格会被吞噬,连字符会变成减号。$W_{\textnormal{total}}$
使用文档的主要罗马字体,无论上下文如何;参数以正确的大小排版为文本。$W_{\mathup{total}}$
(和Ulrike Fischer 的定义) 比 有一个优势\mathrm
,因为它使用\familydefault
,但也有同样的局限性。$W_{\operatorname{total}}$
就像用大锤打死苍蝇一样。它与 相同\mathrm
,但连字符不会变成减号。$W_{\text{total}}$
可能看起来很理想,但它会根据上下文改变字体,因此下标会在定理陈述中以斜体显示。
因此,形式 3 看起来最自然。请注意,括号并非必需,但情况 5 除外。
老实说,对于单个单词\mathrm
(或\mathup
)来说,效率更高,因为\textnormal
使用\mathchoice
和排版了四倍不同大小的下标。但是,对于现代机器来说,开销几乎可以忽略不计,并且当它不会显著减慢工作流程时,一致性比效率更重要。
如果由于某些原因,人们希望文本下标以直立类型排版,但保留当前字体系列,例如因为文档的某些部分也对数学使用无衬线类型(我不同意),则\textnormal
可以使用修改版本:
\makeatletter
\DeclareRobustCommand{\textnormalf}[1]{% f for "keep the family
\text{\usefont{\f@encoding}{\f@family}{m}{n}#1}%
}
\makeatother
这里\f@encoding
和\f@family
是当前输出字体编码和字体系列,由 LaTeX 在每次(文本)字体更改时存储;对于字体系列m
和字体形状,n
我们选择直立中等类型。
当然,\textnormalf
应该根据其用途和语义选择一个更有意义的名称。