Wie speichere ich die Definition eines Befehls? Oder wie deaktiviere ich einen Befehl lokal?

Wie speichere ich die Definition eines Befehls? Oder wie deaktiviere ich einen Befehl lokal?

Was?

Ich möchte die Definition von \includegraphics„in “ „speichern“ \something, sodass die folgende Logik funktioniert:

% 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

Ist dies möglich und leicht zu erreichen?

aber warum?!

Ich möchte den Befehl in einigen Teilen meines Dokuments deaktivieren \includegraphicsund danach wieder das gewohnte Ergebnis erhalten \includegraphics. Diese Frage bezieht sich aufdieser Beitrag(Die Lösung funktioniert nicht, wenn der \includegraphicsBefehl aktiv ist.

Antwort1

Sie möchten so etwas wie

\usepackage{letltxmacro}

Und

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

zum Deaktivieren des Befehls; zum erneuten Aktivieren

\LetLtxMacro\includegraphics\colassavedincludegraphics

Für den spezifischen Befehl \letkönnte dies ausreichend sein, \LetLtxMacroist aber sicherer für Befehle, die optionale Argumente akzeptieren.

SehenWann soll \LetLtxMacro verwendet werden?für weitere Informationen zu \LetLtxMacro.

Bei Umgebungen hängt es davon ab, wie sie definiert sind, aber das commentPaket kann sich als nützlich erweisen.

Antwort2

Es scheint, dass Sie suchen nach \let:

\let\something=\includegraphics

verwandte Informationen