为变量创建别名

为变量创建别名

我正在尝试找出定义别名的最佳方法。我有一些中等复杂的变量名,例如$p^{i,j}_{t}$,必须一遍又一遍地输入它们,这很麻烦。更重要的是,如果我稍后决定更改命名约定,我必须返回并在整个文档中搜索替换,这看起来很荒谬。我尝试使用这种方法:

\newcommand{\varn}{$p^{i,j}_{t}$}

但这种方法不够强大。首先,我无法在数学模式下使用它,必须定义另一个命令

\newcommand{\mathvarn}{p^{i,j}_{t}}

这似乎是多余的。

其次,Latex 不知道在文本环境中使用该命令后应该插入空格。如果我在命令中强制插入空格,则无法在句号或逗号等标点符号之前使用该命令。

有什么建议吗?谢谢!

答案1

你可以用\ensuremath 奔跑来掩护,埃格尔很快就会赶来。

\documentclass{article}
\newcommand*{\varn}{\ensuremath{p^{i,j}_{t}}}

\begin{document}
\varn  \qquad    $\varn$

Here is how \varn{} is used in text again \varn.

\end{document}

对于第二部分,您可以在需要空格时在后面插入一个空原子。这是通常的行为。这也是一个{}包,但有时可能会失败。\varn\varn{}xspace

\documentclass{article}
\usepackage{xspace}
\newcommand*{\varn}{\ensuremath{p^{i,j}_{t}}\xspace}
\begin{document}
\varn  \qquad $\varn$

Here is how \varn is used in text again \varn.

\end{document}

在此处输入图片描述

$\varn$正如 egreg 所指出的,覆盖并不需要太多工作\varn。它还更有助于您识别数学代码。因此最好定义\newcommand*{\varn}{p^{i,j}_{t}}并使用$\varn$

答案2

请不要试图“去掉‘额外的美元’”。首先,你很容易将数学误解为文本。其次,这会导致执行诸如 之类的操作\varn=0,在文本模式下,它会变成$p^{i,j}_{t}$=0,并且会得到完全错误的间距。因此,你应该定义

\newcommand{\varn}{p^{i,j}_{t}}

然后按如下方式使用它:

We have that $\varn=0$ if and only if the guy $\varn$ is really zero.

相关内容