我想在 LaTeX 中定义几个变量,然后交换它们的值,像这样(但它不起作用):
\newcommand{\signS}{$+$}
\newcommand{\signT}{$-$}
\newcommand{\signU}{}
\signS
\renewcommand{\signU}{\signS}
\renewcommand{\signS}{\signT}
\renewcommand{\signT}{\signU}
\signS
我究竟做错了什么?
编辑
正如以下答案所建议的,使用\let
可以解决问题。但是,我想\foreach
在 TikZ 中的循环内使用它,但它似乎不起作用:
\begin{tikzpicture}
\foreach \i in {1, 2, 3, 4} {
\signS
\let\signU\signS
\let\signS\signT
\let\signT\signU
}
\end{tikzpicture}
有任何想法吗?
答案1
答案2
最简单的方法可能是用 等替换\renewcommand{\signU}{\signS}
。\let\signU\signS
然后\signU
赋予 的当前含义\signS
。
你的方法不行,因为\renewcommand
在定义的时候没有扩展定义文本,而是在使用命令的时候才扩展。