在数学模式下我应该使用哪个命令来输入文本下标?

在数学模式下我应该使用哪个命令来输入文本下标?

文本下标W_{total}应该用直立文本字体排版(因此代码不是好的做法),就像讨论各种各样的 问题 这里。现在有几种方法可以达到这个,我有点困惑我应该使用哪一个:

  1. W_{\rm total}很简洁,而且似乎适用于所有情况,但我预计 LaTeX 用户会对它不以为然,:-)有什么好的理由反对它吗?

  2. W_{\mathrm{total}}– 这是与 LaTeX 等效的方法吗\rm

  3. W_{\textnormal{total}} 听起来很合理就像total文本而不是数学......

  4. 这个答案,乌尔里克·菲舍尔 (Ulrike Fischer) 建议采取一种更为复杂的方法。

  5. 甚至W_{\operatorname{total}}看起来有效,但似乎不合适。

注意:我总是假设这里amsmath已经加载了。

我已经在上面问了一些问题,但我的主要问题是:这些选项中的哪一个是文本下标的最佳实践?


让我指出为什么我没有在上面提到\text\textrm\textup。这些命令(大多数)会保留它们所用上下文的字体,例如在斜体上下文中,\text\textrm给出斜体下标,并且所有这三个命令都会在粗体上下文中产生粗体下标。

最后说明:这个问题与以下问题类似,但并不相同问题有关差异之间\mbox\text\textrm\mathrm\operatorname之前已经问过。也许它仍然是重复的...

答案1

首先,问题在于文本下标,例如物理学中用于区分同名矢量(例如力)的下标,下标标签应为直立字体。文本下标还用于许多其他领域。

以下amsmath假设。

  1. $W_{\rm total}$是完全错误的,因为它依赖于类不需要定义的弃用命令(实际上有些类不需要定义)。

  2. $W_{\mathrm{total}}$是上述内容的正确形式。限制:空格会被吞噬,连字符会变成减号。

  3. $W_{\textnormal{total}}$使用文档的主要罗马字体,无论上下文如何;参数以正确的大小排版为文本。

  4. $W_{\mathup{total}}$(和Ulrike Fischer 的定义) 比 有一个优势\mathrm,因为它使用\familydefault,但也有同样的局限性。

  5. $W_{\operatorname{total}}$就像用大锤打死苍蝇一样。它与 相同\mathrm,但连字符不会变成减号。

  6. $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应该根据其用途和语义选择一个更有意义的名称。

答案2

下面我发布了 ISO 80000-1:2007 的一个剪辑。

在此处输入图片描述

在描述中,术语罗马用作同义词直立, 不是为了衬线。此外,在下面的例子中,可以清楚地看到正文的无衬线字体被转移到了下标。这实际上是有道理的,因为除了(总是)直立之外,gas正文中的字体应该与下标中的字体完全相同。gg

我的结论是,如果要遵循 ISO 80000 标准,最合适的解决方案是

  • \textnormal返回默认的全局文本字体(这里我假设默认文本始终是直立的)
  • \textup(可能与\textmd关闭粗体结合)返回本地直立文本字体

相关内容