如何儲存指令的定義?或者,如何在本地禁用命令?

如何儲存指令的定義?或者,如何在本地禁用命令?

什麼?

我想「儲存」\includegraphicsinto的定義\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

相關內容