Per sbaglio (cercando altro) ho trovato questa discussione su TeX-StackExchange.
antonio.macrì” post=68716[…] È 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.