如何保存命令的定义?或者,如何在本地禁用命令?

如何保存命令的定义?或者,如何在本地禁用命令?

什么?

我想将的定义“存储”\includegraphics到其中\something,以便以下逻辑能够起作用:

% the following line is what I am looking for
store(\includegraphics, \something)
% and then I want to achieve what follows

\renewcommand\includegraphics}[2][]
{}

\doalotofstuff

\renewcommand\includegraphics}[2][]
{%
get_the_definition_from(\something)
}

% now I can again use \includegraphics with its usual definition

这是可能的并且容易实现吗?

但为什么?!

我想禁用\includegraphics文档中某些部分的命令,然后能够再次获得正常的功能\includegraphics。这个问题与这个帖子(如果命令处于活动状态,则解决方案不起作用\includegraphics

答案1

你想要类似的东西

\usepackage{letltxmacro}

\LetLtxMacro\colassavedincludegraphics\includegraphics
\renewcommand\includegraphics[2][]{}

禁用该命令;重新启用它

\LetLtxMacro\includegraphics\colassavedincludegraphics

对于特定命令来说\let可能就足够了,但\LetLtxMacro对于接受可选参数的命令来说更安全。

何时使用 \LetLtxMacro?欲了解有关 的更多信息\LetLtxMacro

对于环境,这取决于它们如何定义,但comment包可能会显示有用的。

答案2

您似乎正在寻找\let

\let\something=\includegraphics

相关内容