LaTeX2e 中的 \let 等效项

LaTeX2e 中的 \let 等效项

我在官方上读过适用于课程和软件包编写者的 LaTeX2e指南(第 2.7.2 节“使其健壮”)指出,应尽可能多地使用 LaTeX 命令。

例如,他们建议使用newcommand而不是。查看中描述def的实现newcommand来源2e很容易看出,这只是具有附加功能的newcommand顶层。def

但是我该用什么来代替呢let?有几个来源已经解决了 let 和 def 之间的区别,所以我的问题是,是否有一个 LaTeX 等效物可以在定义点将一个宏定义为另一个宏?换句话说,我想创建一个新的宏,存储另一个宏的源代码,使其独立。

考虑一下这个MWE:

\documentclass{article}

\begin{document}

\newcommand\A{A} % original A macro
\A

\let\B\A % B macro is the same as A macro
\renewcommand\A{} % A is now empty (but B is still the old A macro)
\A

\renewcommand\A{\B} % A is now original A again
\A

\end{document}

我想知道是否存在let可以替代\let\B\AMWE 的 LaTeX 替代品。类似于,但我不想成为宏,\newcommand\B{\A}而是成为源代码,这样它就不会通过 被改变。\B\A\B\A\renewcommand

答案1

\let您的示例中无需替换,因为您的示例\newcommands很简单。但是如果您使用可选参数或强大的命令定义命令,则应该使用复制它们\NewCommandCopy(需要较新的 LaTeX),因为这也会复制内部结构。

相关内容