Subverter um registro de token

Uma necessidade comum é “subverter” um registro de token que outras macros possam usar. O necessidade surge quando você quer adicionar algo a um registro de token do sistema (\output ou \every*), mas sabe que outras macros também usam o registro de token. (Um requisito comum é trabalhar no \everypar, mas o LaTeX altera o \everypar constantemente.)

A técnica a seguir, de David Kastrup, faz o que você precisa, e permite que um pacote independente jogue exatamente o mesmo jogo:

\let\mypkg@@everypar\everypar
\newtoks\mypkg@everypar
\mypkg@everypar\expandafter{\the\everypar}
\mypkg@@everypar{\mypkgs@ownstuff\the\mypkg@everypar}
\def\mypkgs@ownstuff{%
  %
}
\let\everypar\mypkg@everypar
Como você pode ver, o pacote (mypkg) e vamos embora.

O formato \mypkg@... é (mais ou menos) abençoado para nomes internos do pacote LaTeX , e é por isso que este exemplo usa macros desse formato.


Do you have any question? Ask on: latex.net.br - we love qood questions!