
Actualmente estoy tratando de resolver varios errores, por lo que sería conveniente que existiera un sistema en LaTeX donde pudieras "espiar" una determinada macro. Estoy interesado en saber dónde y cuándo se redefine una macro. Idealmente podrías decir \spy\mymacro
y saldría
`file.cls -> \newcommand\macro`,
`package.sty -> \renewcommand\macro`
etcétera.
Respuesta1
No puedes hacerlo: por ejemplo, un paquete podría decir
\newcommand{\redefinefoo}[1]{\renewcommand{\foo}{#1}}
\providecommand{\foo}{whatever}
y una redefinición del \foo
poder tendrá lugar en cualquier lugar
\redefinefoo{something else}
se emite, que podría estar oculto en alguna otra macro.
Redefinir \def
, en el que también \renewcommand
se basa, está fuera de discusión, porque rompería casi todo.
Sin embargo, podría decir \tracingassigns=1
en su documento y en el archivo de registro que encontrará
{changing \foo=\long macro:->whatever}
{into \foo=\long macro:->something else}
Según la ubicación en el log
archivo, es posible que pueda adivinar dónde se está llevando a cabo la redefinición.