将单词放入数学表达式中,使其始终以罗马字体排版

将单词放入数学表达式中,使其始终以罗马字体排版

我经常想用下标或上标来定义一个数学符号,即一个单词。通常我\text为此使用,例如X_\text{word},因为(据我所知)\text将使用文本间距,而\mathrm将其排版为 w 乘以 o 乘以 r 乘以 d,这可能会导致不同的间距。

但是,我注意到在斜体文本中(例如在定理环境中),\text“word”会以斜体而不是罗马体排版。我不认为这是我想要的效果,因为虽然“word”是一个单词,但在这种情况下,它是数学符号的一部分,而且我认为在定理环境中,该符号应该与普通文本看起来没什么不同。

令人惊讶的是,在定理环境中使用时,\textrm其行为与 相同\text,将单词设置为斜体。(无论 是否amsmath加载 都是如此,但如果amsmath未加载 ,则其大小也会错误。)

那么问题是,对于这个用例来说正确的命令是什么?

在下面的 MWE 中,\mathrm版本看起来与\text普通文本中的版本相同 - 它没有我期望的奇怪的字母间距。(除了“word”,我还尝试了其他几个词,但没有找到看起来不同的词。)所以这个问题的一部分是,我对行为的理解是否错误\mathrm- 我可以依靠它为单词产生正确的间距吗?如果没有,是否有一个命令可以为单词产生正确的间距,但总是用罗马字母排版?

\documentclass{article}

\usepackage{amsmath}
\usepackage{amsthm}
\newtheorem{theorem}{Theorem}

\newcommand{\xwordi}{{X_\text{word}}}
\newcommand{\xwordii}{{X_\textrm{word}}}
\newcommand{\xwordiii}{{X_\mathrm{word}}}
\newcommand{\xwordiv}{{X_{\operatorname{word}}}}

\begin{document}

Here is $\xwordi$ (i) in a text environment. And in a superscript: $e^\xwordi$.

\begin{theorem}
    Here is $\xwordi$ (i) in a theorem environment. 
\end{theorem}

Here is $\xwordii$ (ii) in a text environment. And in a superscript: $e^\xwordii$.

\begin{theorem}
    Here is $\xwordii$ (ii) in a theorem environment.
\end{theorem}

Here is $\xwordiii$ (iii) in a text environment. And in a superscript: $e^\xwordiii$.

\begin{theorem}
    Here is $\xwordiii$ (iii) in a theorem environment.
\end{theorem}

Here is $\xwordiv$ (iv) in a text environment. And in a superscript: $e^\xwordiv$.

\begin{theorem}
    Here is $\xwordiv$ (iv) in a theorem environment.
\end{theorem}

\end{document}

在此处输入图片描述

答案1

如果您的字面意思是始终使用罗马字母,则可能需要使用\text{\rmfamily\upshape #1}from amsmath(或更准确地说,amstext)。您可以在 中使用任何文本模式命令\text,包括选择您喜欢的任何字体系列。如果您在数学表达式中使用它,并且想要像logcos运算符一样的间距,请使用\mathop{\text{\rmfamily\upshape #1}}\nolimits

对于应该排版为单个字母而不是单词的数学符号,请使用\mathrm,或者\symup如果您使用unicode-math

请注意,我不只是使用 的原因\textnormal是为了继承周围文本的字体粗细。这样我就可以添加\boldmath\bfseries节标题的格式,并获得匹配的粗体文本和数学。如果您在粗体标题中使用中等粗细的数学,则最好使用\textnormal

您也不想仅使用\textrm,因为如果您碰巧在斜体块中使用它(例如来自的定理陈述amsthm),它会给您斜体。

相关内容