Re: Ridefinire comando-creazione iniziale puntata di una parola

#84223
Up
0
Down
::

And” post=83494Grazie mille Enrico!

p.s.
LaTex3 sembra essere veramente oscuro…

Perché? La prima versione di robitex è esattamente identica alla mia. Vediamole a confronto.
`\makeatletter
\newcommand{\nome}[1]{\get@initial#1\@nil}
\def\get@initial#1#2\@nil{#1.}
\makeatother`
La macro [tt]\nome[/tt] prende un argomento qualsiasi e trasforma [tt]\nome{Alberto}[/tt] in
`\get@initial Alberto\@nil`
La macro [tt]\get@initial[/tt] ha due argomenti, uno non delimitato e uno delimitato da [tt]\@nil[/tt]. Siccome dopo [tt]\get@initial[/tt] non c’è una graffa, avremo [tt]#1<-A[/tt] e [tt]#2<-lberto[/tt]. La macro restituisce [tt]A.[/tt]. Vediamo la versione di robitex. `\ExplSyntaxOn \cs_new:Npn \my_parsename:w #1 #2 \q_stop { #1 . } \NewDocumentCommand \initial { m } { \my_parsename:w #1 \q_stop } \ExplSyntaxOff` L'unica vera differenza è che fra [tt]\ExplSyntaxOn[/tt] e [tt]\ExplSyntaxOff[/tt] gli spazi e i fine riga sono ignorati, quindi si ha maggiore libertà nello scrivere il codice. La macro [tt]\initial[/tt] fa esattamente lo stesso della mia [tt]\nome[/tt]: prende un argomento obbligatorio (indicato con [tt]m[/tt]) e trasforma [tt]\initial{Alberto}[/tt] in `\my_parsename:w Alberto\q_stop` E qui succede lo stesso di prima, solo che invece di [tt]\@nil[/tt] c'è [tt]\q_stop[/tt]. La macro ausiliaria ha un nome che dice di sé di avere argomenti "strani" (la finale [tt]:w[/tt] sta per "weird"). Ma la definizione è esattamente la stessa di [tt]\get@initial[/tt]. Ciao Enrico

Go to top