¿Cómo almacenar la definición de un comando? ¿O cómo deshabilitar localmente un comando?

¿Cómo almacenar la definición de un comando? ¿O cómo deshabilitar localmente un comando?

¿qué?

Me gustaría "almacenar" la definición de \includegraphicspara \somethingque funcionen las siguientes lógicas:

% 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

¿Es posible y fácilmente alcanzable?

¡¿pero por qué?!

quiero desactivar el comando\includegraphics en algunas partes de mi documento y poder volver a obtener lo habitual \includegraphicsdespués. Esta pregunta está relacionada conesta publicación(la solución no funciona si el \includegraphicscomando está activo.

Respuesta1

quieres algo como

\usepackage{letltxmacro}

y

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

para desactivar el comando; por volver a habilitarlo

\LetLtxMacro\includegraphics\colassavedincludegraphics

Para el comando específico \letpuede ser suficiente, pero \LetLtxMacroes más seguro para comandos que aceptan argumentos opcionales.

Ver¿Cuándo utilizar \LetLtxMacro?para más información sobre \LetLtxMacro.

Para los entornos depende de cómo estén definidos, pero el commentpaquete puede resultar útil.

Respuesta2

Parece que estás buscando \let:

\let\something=\includegraphics

información relacionada