Re: Campi delimitati in tex con \ o {

#18111
Up
0
Down
::


Aggiungo alla risposta precedente. C’è una soluzione, più lenta, al problema più generale di trattare una lista di token della forma
`\comando{}`
oppure
`{}`
ed ottenere solo i iniziali, con la restrizione che il deve avere un solo argomento.
`\def\@@taglia#1{\def\@collect@taglia{}\@@@taglia #1\@nil}
\def\@@@taglia{%
\futurelet\@taglia@next\@do@taglia}
\def\@do@taglia#1{%
\ifx\@taglia@next\@nil
\let\next\relax
\else
\ifcat\noexpand\@taglia@next\bgroup
\let\next\@gobble
\else
\ifcat\noexpand\@taglia@next\relax
\let\next\@gobbletwo
\else
\edef\@collect@taglia{\@collect@taglia #1}%
\let\next\@@@taglia
\fi\fi\fi
\next}`
Dopo \@@taglia{xxx{1}} oppure \@@taglia{xxx\hbox{1}}, la stringa xxx si troverà nella macro \@collect@taglia.

Adesso puoi definire l’azione che desideri. Per esempio, per stampare la stringa, puoi dire
`\def\@taglia#1{\@@taglia{#1}\@collect@taglia}`
passando la lista di token originale a \@taglia come argomento.

Ciao
Enrico

Go to top