使用另一个新命令定义新命令

使用另一个新命令定义新命令

我想要定义一个在其定义中使用另一个命令的命令,如下所示:

\newcommand{\command1}{$\alpha^x$}
\newcommand{\command2}{\command1_\beta}

我知道这csname可以用于此目的(我相信也可以在命令名称中使用数字) - 但使用起来csname似乎不太容易,而且不幸的是我没有时间熟悉 TeX 和其他示例的这些细节。你能帮帮我吗?

请注意,此命令只能在数学环境中使用,如下所示:

\begin{document}
Here is a hitherto unknown mathematical object: $\command2+1$. %should display $\alpha^x_{\beta} +1$
\end{document}

答案1

\newcommand*\commandA{\alpha^{x}}
\newcommand*\commandB{\commandA_{\beta}}

然后使用$\commandB+1$

除了使用 hack 之外,在命令中使用数字是不可能的,但这不是一个好的解决方案。如果您想定义 csname 后跟数字,已经有一些 hack 了。这是一个更简单的技巧,但我不推荐它。

\newcount\tmpcount
\newcommand*\command{\afterassignment\docommand\tmpcount=}
\newcommand*\docommand{\csname command\the\tmpcount\endcsname}
\expandafter\newcommand\csname command1\endcsname{\alpha^{x}}
\expandafter\newcommand\csname command2\endcsname{\command1_{\beta}}

但这样有点乱,难道不能用\command{1}而不是 吗\command1?或者直接用\commandA\commandB

答案2

另一种简单的方法。在这里,数字不是命令名称的一部分,而是的参数\command。这有点像骗局。

\documentclass{article}
\newcommand*{\command}[1]{\ifx1#1\alpha^{x}\fi\ifx2#1\command{1}_{\beta}\fi}
\begin{document}
\[\command1+1+\command2+2\] % More correctly: \[\command{1}+1+\command{2}+2\]
\end{document}

在此处输入图片描述

相关内容