我想要定义一个在其定义中使用另一个命令的命令,如下所示:
\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
。