Re: \relax

#39810
Up
0
Down
::

La primitiva di TeX \relax è usata abbastanza spesso. Sui manuali c’è scritto che… non fa niente. Mi chiedo allora quando è necessario dire a LaTeX di non fare niente. Mi viene in mente il comando ` \ifthenelse{condizione}{faiquesto}{\relax}`
oppure…..

Qui è inutile. In certe situazioni però è molto importante perché, essendo non espandibile, può fermare espansioni che potrebbero andare oltre il desiderato.

Supponiamo di avere una macro in cui compaia \ifcase\pippo, dove \pippo è una macro la cui espansione è un numero; le regole di TeX dicono che \ifcase provoca l’espansione di tutto ciò che segue fino a che vengono trovati token che possono essere interpretati come cifre.

Per ovviare al problema di espansioni premature di ciò che appare in in
`\ifcase\pippo
\or

\fi`
è conveniente mettere \relax dopo \pippo.

Ma è roba TeXnica. Con le interfacce di LaTeX (per esempio \ifthen), \relax è inutile.

Ciao
Enrico

Go to top