Mi serve una macro che, data una parola, possa estrarre la sua iniziale.
Mi spiego meglio:
Ho una parola, esempio Italia, memorizzata in un comando
`
\newcommand{\parola}{Italia}`Ora, utilizzando questa macro, il risultato deve essere I oppure i.
`
\estraiiniziale{\parola}``\makeatletter
\def\estraiiniziale#1{\expandafter\separa#1\@del}
\def\separa#1#2\@del{#1}
\makeatother`
Probabilmente in LaTeX c’è già qualcosa di simile, ma non ho voglia di andarlo a cercare. 🙂Come funziona?
La macro \separa ha due argomenti, il primo non delimitato, il secondo delimitato da \@del. Supponiamo di scrivere \estraiiniziale{\parola}. Questo viene sostituito da
`\expandafter\separa\parola\@del`
A questo punto viene espanso \expandafter che provoca l’espansione di \parola; la lista di token diventa
`\separa Italia\@del`
Il primo token che segue \separa è il primo argomento, tutto il resto, fino a \@del, il secondo.Ciao
Enrico
Perfetto, grazie.
Ciao
Andrea