Re: overloading

#69599
Up
0
Down
::


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.

Go to top