有没有办法让数学模式下标自动变为非斜体?

有没有办法让数学模式下标自动变为非斜体?

我目前正在编写一份报告,其中大多数下标将不是斜体。我目前知道如何做到这一点的方法是通过\mathrm{},当您必须对每个方程式执行多次操作时,这绝对是一件可怕的事情。有什么办法可以解决这个问题吗?我确实有这个mtpro2包,但不确定是否有我忽略的选项。

答案1

你心中的下标材料是变量名吗?如果是的话,变量名可能应该以直立模式设置。不管它们相对于数学基线的位置。但是,其他下标材料,例如用于索引序列元素的字母it,可能应该继续以斜体设置。因此,排版方法全部直立罗马模式下的下标材料并不完全理想,对吗?

幸运的是,通过以下两步方法可以轻松地将所有变量名称排版为直立罗马字母:

  1. 设置一个名为(比如)的宏,\V在序言中表示它的参数是一个变量名:

    \usepacakge{amsmath} % loads 'amstext' package, which redefines \textup to be scalable
    \newcommand{\V}[1]{\textup{#1}}
    % Next, define various freqently-used variable names using the \V macro:
    \newcommand\Initial{\V{Initial}}
    \newcommand\Final{\V{Final}}
    
  2. 在文档正文中,你可以写类似这样的内容

    \begin{equation}
    F_{\Final} = 3F_{\Initial} + 2F_{\V{Intermediate}}
    \end{equation}
    

请注意,这种方法可以让您以最少的麻烦实时通知 LaTeX,某些字符串是变量名。

此两步方法的另一个重要优点是,如果您稍后改变主意并决定变量名称应以不同的方式排版 - 例如,以文本斜体而不是文本直立罗马字体 - 您需要做的就是更改宏的定义\V

答案2

这不是一个答案,但我通常会为最常见的“复杂”变量定义宏:例如 \newcommand{\GammaD}{\Gamma_{\mathrm{D}}}

答案3

从个人经验来看,这是一个半答案,我相信有些人会不同意 - 但在我看来,它比 Joce 的答案更有用(在我写这篇文章的时候他也打败了我):

为常用内容定义宏,_\mathrm{...}其余部分只需坚持使用即可。例如,如果您使用$\lambda_\mathrm{pump}$,则$\lambda_\mathrm{probe}$可以定义:

\newcommand{\wavel}[1]{\lambda_{\mathrm{#1}}}

然后尝试:

$\wavel{probe}=\wavel{2}$

测试 - 数字看起来不错。如果您确实想要,似乎可以通过执行以下操作来覆盖此操作$\wavel{\mathit{i}}$- 但最好不要这样做。

感谢@tohecz 的编辑:{}插入下标周围,因为\mathrm{#1}没有它,下标就不会成为一个组,正如我所想的那样,因此我的原文不可靠。

答案4

我通常在文档的序言中写以下一行

\providecommand{\cind}[1]{_{\textrm{#1}}}

使用此命令,我可以完全灵活地使用变量名和索引名,而不必在序言中定义其他内容。

相关内容