我目前正在编写一份报告,其中大多数下标将不是斜体。我目前知道如何做到这一点的方法是通过\mathrm{}
,当您必须对每个方程式执行多次操作时,这绝对是一件可怕的事情。有什么办法可以解决这个问题吗?我确实有这个mtpro2
包,但不确定是否有我忽略的选项。
答案1
你心中的下标材料是变量名吗?如果是的话,变量名可能应该以直立模式设置。不管它们相对于数学基线的位置。但是,其他下标材料,例如用于索引序列元素的字母i
和t
,可能应该继续以斜体设置。因此,排版方法全部直立罗马模式下的下标材料并不完全理想,对吗?
幸运的是,通过以下两步方法可以轻松地将所有变量名称排版为直立罗马字母:
设置一个名为(比如)的宏,
\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}}
在文档正文中,你可以写类似这样的内容
\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}}}
使用此命令,我可以完全灵活地使用变量名和索引名,而不必在序言中定义其他内容。