Re: overloading

#69600
robitex
Amministratore del forum
    Up
    0
    Down
    ::

    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.

    Go to top