antonio.macrì” post=69468Per sbaglio (cercando altro) ho trovato questa discussione su TeX-StackExchange.
[…] È per questo che dico che si può fare pur usando parentesi tonde o quadre anziché graffe. Le parentesi graffe vengono sempre “consumate” da TeX, mentre quelle tonde o quadre possiamo gestircele come meglio crediamo…
Sbagliavo: si può fare anche con le parentesi graffe. Il trucco è usare [tt]\bgroup[/tt] per indicare [tt]{[/tt].
`\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{xspace}\makeatletter
\def\regione#1#2{%
\@ifnextchar\bgroup{#1\regione@@{#2}}{\regione@{#1}{#2}}}
\def\regione@#1#2{%
#1 è #2\xspace}
\def\regione@@#1#2{%
\@ifnextchar\bgroup{, #1\regione@@{#2}}{ e #1 sono #2\xspace}}
\makeatother\begin{document}
\begin{itemize}
\item \regione{silvia}{sarda};
\item \regione{francesco}{marco}{abbruzzesi};
\item \regione{maurizio}{aldo}{giuseppe}{pugliesi};
\item \regione{antonio}{giovanni}{luca}{carlo}{siciliani}.
\end{itemize}\regione{silvia}{sarda} mentre
\regione{francesco}{marco}{abbruzzesi};
\regione{maurizio}{aldo}{giuseppe}{pugliesi};
\regione{antonio}{giovanni}{luca}{carlo}{siciliani}.\end{document}`
Rimane il fatto, come precisava Roberto, che non si tratta di “vero” overloading.
In ogni caso, la notazione di Enrico è certamente più compatta e semplice.
Interessante. La cosa funziona ha condizione, naturalmente, che nessun carattere { segua il comando.
Penso quindi che il codice da te presentato nasconda intelligentemente il carattere di fine lista argomenti proprio in {.
Chiassà in LuaTeX cosa si potrebbe fare.
Alla prossima.
R.