¿Existe la posibilidad de seguir dónde y cuándo se redefine una macro?

¿Existe la posibilidad de seguir dónde y cuándo se redefine una macro?

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\mymacroy 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 \foopoder 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 \renewcommandse basa, está fuera de discusión, porque rompería casi todo.

Sin embargo, podría decir \tracingassigns=1en 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 logarchivo, es posible que pueda adivinar dónde se está llevando a cabo la redefinición.

información relacionada