跳转到内容

TeX/let

来自维基教科书,自由的教科书
< TeX

\let<新命令>[[<空格>]=]<原始命令>

\let 允许您将命令的内容复制到新命令中。

与创建调用原始命令的宏不同,\let 允许您随后修改旧命令,同时保留其在新命令下的功能。它通常用于更改现有命令的行为(但不会完全替换它)。在这种情况下,\renewcommand 可能失败,而 \let 可能是必需的。

等号(及其之前的空格)不是必需的,但在某些特殊情况下可能有用,例如第二个参数是空格或等号。

如果要更改命令 \foo 在任何地方调用时的行为,使 \bar 首先执行,以下方法似乎适用。

\renewcommand{\foo}{\bar\foo}

但是,这将创建一个递归循环,其中调用 \foo 将重复调用自身,直到计算机的内存耗尽。

为了更改 \foo 的行为以包含一些其他行为,使用 \let 命令

\let\originalfoo\foo
\renewcommand{\foo}{\bar\originalfoo}

第一行将 \foo 命令的内容复制到新命令 \originalfoo 中。第二行修改 \foo 命令以执行 \bar,然后执行 \foo 的原始内容(现在存储在 \originalfoo 中)。

华夏公益教科书