Como armazenar a definição de um comando? Ou como desabilitar localmente um comando?

Como armazenar a definição de um comando? Ou como desabilitar localmente um comando?

o que?

Gostaria de "armazenar" a definição de \includegraphicsinto \somethingpara que as seguintes lógicas funcionem:

% 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

É possível e facilmente alcançável?

mas por que?!

Quero desabilitar o comando \includegraphicsem algumas partes do meu documento e poder voltar ao normal \includegraphicsdepois. Esta questão está relacionadaesta postagem(a solução não funciona se o \includegraphicscomando estiver ativo.

Responder1

Você quer algo como

\usepackage{letltxmacro}

e

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

para desabilitar o comando; por reativá-lo

\LetLtxMacro\includegraphics\colassavedincludegraphics

Para o comando específico \letpode ser suficiente, mas \LetLtxMacroé mais seguro para comandos que aceitam argumentos opcionais.

VerQuando usar \LetLtxMacro?para obter mais informações sobre \LetLtxMacro.

Para ambientes depende de como eles são definidos, mas o commentpacote pode ser útil.

Responder2

Parece que você está procurando \let:

\let\something=\includegraphics

informação relacionada