コマンドの定義を保存するにはどうすればよいでしょうか? または、コマンドをローカルで無効にするにはどうすればよいでしょうか?

コマンドの定義を保存するにはどうすればよいでしょうか? または、コマンドをローカルで無効にするにはどうすればよいでしょうか?

何?

次のロジックが機能するように、\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

関連情報