我正在考虑做一些疯狂的事情,也就是说,我想通过以下方式定义一个“新命令”
\renewcommand{\alpha}{\ensuremath{\alpha}}
这样以后在文本模式下我就可以\alpha
代替$\alpha$
(实际的宏会有\xspace
,但我们忽略它。)。
问题是,我如何让系统知道,当它替换时\alpha
使用\ensuremath{\alpha}
“内置”宏\alpha
,而不是更新的宏,从而不会陷入无限循环?
或者,有没有办法确保宏只“扩展”一次?
答案1
我不确定你为什么要这样做,但无论如何,以下是方法
\let\oldalpha\alpha
\renewcommand{\alpha}{\ensuremath{\oldalpha}}
您所查询的方法会导致无限循环。\let
本质上是别名前一个含义\alpha
将允许您稍后重新定义它。