Re: plain: \write e \output. Comportamento incompensibile

#81131
Up
0
Down
::

Sam Qasbah” post=80359Un dubbio di teoria: come mai è possibile scrivere
` \write0{\def\string\something …`
invece di
`\write0{\noexpand\def\string\something …`
?

Non ho trovato una simile possibilità nè nel TTB nè nell’Advanced TeXbook.

[tt]\def[/tt] non è espandibile. L’istruzione [tt]\write[/tt] funziona come [tt]\edef[/tt], cioè espande tutto ciò che è espandibile, fino a quando rimangono solo token non espandibili che non vengono toccati. Quando un token è preceduto da [tt]\noexpand[/tt] funziona esattamente allo stesso modo: l’espansione di [tt]\noexpand[/tt] assorbe il token successivo che viene rimesso nell’input ma reso non espandibile. Perciò [tt]\noexpand\def[/tt] fa solo un po’ di lavoro per niente.

Ciao
Enrico

Go to top