Come scrivere un comando con opzioni?

  • Creatore
    Topic
  • #23387
    robitex
    Amministratore del forum
      Up
      0
      Down
      ::


      Vorrei creare un comando che accetta opzioni, come per esempio il \makebox.
      Nella sintassi di \newcommand è prevista la possibilità di inserire un valore di default ma non la possibilità di fornire oltre al valore principale anche più opzioni in grado di modificare il comportamento.

      Per fare un esempio, vorrei poter disporre nel corpo del documento di un comando tipo:
      `
      \destinatario[e p.c.]{Egregio \textbf{Destinatario Lettera}}
      `
      Come potrei fare?
      Grazie.

    Visualizzazione 17 filoni di risposte
    • Autore
      Risposte
      • #23388
        Up
        0
        Down
        ::

        Vorrei creare un comando che accetta opzioni, come per esempio il \makebox.
        Nella sintassi di \newcommand è prevista la possibilità di inserire un valore di default ma non la possibilità di fornire oltre al valore principale anche più opzioni in grado di modificare il comportamento.

        Per fare un esempio, vorrei poter disporre nel corpo del documento di un comando tipo:
        `
        \destinatario[e p.c.]{Egregio \textbf{Destinatario Lettera}}
        `

        Non è molto chiaro quello che desideri. Puoi essere meno laconico?

        Ciao
        Enrico

      • #23389
        robitex
        Amministratore del forum
          Up
          0
          Down
          ::


          Scusate, mi esprimo diversamente:

          vorrei conoscere il modo di costruire nuovi comandi LaTeX a cui poter inviare un argomento opzionale.
          Nelle definizioni con \newcommand ciò non mi sembra possibile.

          Per esempio, ammettiamo di voler costruire un nuovo comando per inserire la firma al termine di una lettera. Tale firma sia composta su due righe, la prima contenente il testo del ruolo e la seconda il testo del nominativo. Eccone un frammento di possibile codice:

          `\newcommand{\stileruolo}[1]{{\fontfamily{ptm}\selectfont\textsc{#1}}}
          \newcommand{\stilenominativo}[1]{#1}

          %definizione dei comandi per le firme della lettera **********************
          \newcommand{\firma}[2]{%
          \begin{tabular}{*{2}{p{8cm}}}
          & \makebox[8cm][c]{\stileruolo{#1}}\\
          & \makebox[8cm][c]{\stilenominativo{#2}}\\
          \end{tabular}\vspace*{0.62cm}}`

          Un esempio di utilizzo del comando è questo:
          \firma{Il Direttore}{Dott. Paperino Paolo}

          Bene, ma adesso vorrei poter inserire l’opzione: una sigla ad inizio della prima riga.
          La sigla è un breve testo di riferimento che potrebbe esserci oppure no.

          Il comando completo dovrebbe quindi essere questo:
          \firma[/MD/MF]{Il Direttore}{Dott. Paperino Paolo}

          che aggiungerebbe la sigla all’inizio della stessa linea di paragrafo del in uno stile da stabilire (probabilmente a caratteri un poco più piccoli del normale).

          In realtà il problema delle firme alla fine della lettera è più complesso poiché vi sono i seguenti casi:
          1 – firma unica sulla destra con o senza sigla
          2 – firma doppia una a sinistra ed una a destra con o senza sigla
          3 – firma tripla ovvero una firma doppia con sottostante firma centrale

          Sto lavorando infatti, ad un modello di lettera aziendale che dovrebbe sfociare in un pacchetto molto semplice, così da superare oltre che naturalmente in qualità, anche in efficienza il lavoro che si fa con il file MS Word ufficiale “carta intestata.doc”.

          [OT]Scrivere una lettera aziendale con LaTeX è una vera follia, ma come dice Edoardo Bennato in “L’isola che non c’è” :
          E ti prendono in giro
          se continui a cercarla,
          ma non darti per vinto perché
          chi ci ha già rinunciato
          e ti ride alle spalle
          forse è ancora più pazzo di te![OT]

          Grazie (scusate l’OT).

        • #23390
          Up
          0
          Down
          ::

          Scusate, mi esprimo diversamente:

          vorrei conoscere il modo di costruire nuovi comandi LaTeX a cui poter inviare un argomento opzionale.
          Nelle definizioni con \newcommand ciò non mi sembra possibile.

          Per esempio, ammettiamo di voler costruire un nuovo comando per inserire la firma al termine di una lettera. Tale firma sia composta su due righe, la prima contenente il testo del ruolo e la seconda il testo del nominativo. Eccone un frammento di possibile codice:

          `\newcommand{\stileruolo}[1]{{\fontfamily{ptm}\selectfont\textsc{#1}}}
          \newcommand{\stilenominativo}[1]{#1}

          %definizione dei comandi per le firme della lettera **********************
          \newcommand{\firma}[2]{%
          \begin{tabular}{*{2}{p{8cm}}}
          & \makebox[8cm][c]{\stileruolo{#1}}\\
          & \makebox[8cm][c]{\stilenominativo{#2}}\\
          \end{tabular}\vspace*{0.62cm}}`

          Un esempio di utilizzo del comando è questo:
          \firma{Il Direttore}{Dott. Paperino Paolo}

          Bene, ma adesso vorrei poter inserire l’opzione: una sigla ad inizio della prima riga.
          La sigla è un breve testo di riferimento che potrebbe esserci oppure no.

          Il comando completo dovrebbe quindi essere questo:
          \firma[/MD/MF]{Il Direttore}{Dott. Paperino Paolo}

          che aggiungerebbe la sigla all’inizio della stessa linea di paragrafo del in uno stile da stabilire (probabilmente a caratteri un poco più piccoli del normale).

          In realtà il problema delle firme alla fine della lettera è più complesso poiché vi sono i seguenti casi:
          1 – firma unica sulla destra con o senza sigla
          2 – firma doppia una a sinistra ed una a destra con o senza sigla
          3 – firma tripla ovvero una firma doppia con sottostante firma centrale

          Sto lavorando infatti, ad un modello di lettera aziendale che dovrebbe sfociare in un pacchetto molto semplice, così da superare oltre che naturalmente in qualità, anche in efficienza il lavoro che si fa con il file MS Word ufficiale “carta intestata.doc”.

          Non è affatto chiaro dove debba andare quella fantomatica sigla, né perché ti contorci tanto con quel tabular:
          `\newcommand{\firma}[3][]{\hspace*{8cm}%
          \makebox[8cm][c]{%
          \begin{tabular}{c}
          \stileruolo{#2}\\
          \stilenominativo{#3}
          \end{tabular}%
          }
          }`
          Questo comando non fa nulla con l’argomento opzionale. Fa’ un esempio di dove lo vuoi con precisione e se ne riparla.

          Ma ce li hai sedici centimetri di giustezza? Se vuoi che la firma sia allineata al margine destro, non occorre fare conti per sistemarla.

          Ciao
          Enrico

        • #23391
          robitex
          Amministratore del forum
            Up
            0
            Down
            ::

            Questo comando non fa nulla con l’argomento opzionale. Fa’ un esempio di dove lo vuoi con precisione e se ne riparla.
            Enrico

            Be, certo che non ha nulla dell’argomento opzionale per il semplice fatto che non so come renderlo opzionale ed è l’argomento di questo topic.

            Il comando con la sigla “fissa” potrebbe essere:
            `\newcommand{\firma}[3]{%
            \begin{tabular}{*{2}{p{8cm}}}%
            \makebox[8cm][l]{\small{#1}} & \makebox[8cm][c]{\stileruolo{#2}}\\%
            & \makebox[8cm][c]{\stilenominativo{#3}}\\%
            \end{tabular}\vspace*{0.62cm}}`

            Da utilizzare in caso di assenza di sigla così:
            `\firma{}{Il Direttore}{Dott. Paperino Paolo}`
            e non così:
            `\firma{Il Direttore}{Dott. Paperino Paolo}`

            Ma ce li hai sedici centimetri di giustezza? Se vuoi che la firma sia allineata al margine destro, non occorre fare conti per sistemarla.

            Come argomento secondario, ti preciso che il tabular mi serve per ottenere i due testi, e , centrati sullo stesso asse che è spostato verso destra nella pagina.
            Pagina che è larga complessivamente circa 512pt, la stessa del modello in word (il corpo della lettera naturalmente è più stretto vedi: http://www.guit.sssup.it/phpbb/viewtopic.php?t=4085&highlight=myquote).

            Ciao.

          • #23392
            robitex
            Amministratore del forum
              Up
              0
              Down
              ::


              Completamento:

              Nel caso di firma doppia uso:
              `\newcommand{\firmadoppia}[4]{%
              \begin{tabular}{*{2}{p{8cm}}}%
              \makebox[8cm][c]{\stileruolo{#1}} & \makebox[8cm][c]{\stileruolo{#3}}\\%
              \makebox[8cm][c]{\stilenominativo{#2}} & \makebox[8cm][c]{\stilenominativo{#4}}\\%
              \end{tabular}\vspace*{0.62cm}}`

              Per la firma centrata (che è alla fine del documento per cui non compare più il \vspace per garantire lo spazio della firma vera e propria):
              `\newcommand{\firmacentrata}[2]{%
              \begin{center}
              \stileruolo{#1}\par
              \stilenominativo{#2}
              \end{center}}`

            • #23393
              robitex
              Amministratore del forum
                Up
                0
                Down
                ::


                Chiedo scusa egreg9,
                ho letto velocemente il tuo messaggio e ho interpretato male.

                Comunque ho capito che invece con \newcommand si può fare però con un solo argomento opzionale (il primo).
                Ho semplificato il comando inserendo la tabella di centraggio nel box e non viceversa (concordo che questa soluzione è più semplice).
                Ecco il risultato:
                `\newcommand{\firma}[3][]{%
                \makebox[8cm][l]{\small{#1}}%
                \makebox[8cm][c]{
                \begin{tabular}{c}
                \stileruolo{#2}\\
                \stilenominativo{#3}\\
                \end{tabular}
                }\vspace*{0.62cm}
                }`
                da usare così:
                `\firma[\DF\GH]{Il Ruolo}{Dott. Nome Cognome}`
                o così`\firma{Il Ruolo}{Dott. Nome Cognome}`
                Grazie.

              • #23394
                Up
                0
                Down
                ::

                Questo comando non fa nulla con l’argomento opzionale. Fa’ un esempio di dove lo vuoi con precisione e se ne riparla.
                Enrico

                Be, certo che non ha nulla dell’argomento opzionale per il semplice fatto che non so come renderlo opzionale ed è l’argomento di questo topic.

                Sintassi:
                `\newcommand[][]{}`
                Nella seconda coppia di parentesi quadre va il valore di default dell’argomento opzionale, al quale ci si riferisce come al parametro #1.

                Adesso proviamo a scrivere un codice per te.
                `\newcommand{\stileruolo}[1]{{\fontfamily{ptm}\selectfont\textsc{#1}}}
                \newcommand{\stilenominativo}[1]{#1}
                \newcommand{\firmabox}[1]{\makebox[.333\textwidth]{\hss#1\hss}}

                \newcommand{\componifirma}[2]{%
                \begin{tabular}[t]{@{}c@{}}
                \firmabox{\stileruolo{#1}}\\
                \firmabox{\stilenominativo{#2}}
                \end{tabular}}
                \newcommand{\firmadoppia}[5][]{\par
                \hbox to\hsize{%
                \rlap{#1}\hfil\componifirma{#2}{#3}\hfil\componifirma{#4}{#5}}}
                \newcommand{\firma}[3][]{\firmadoppia[#1]{}{}{#2}{#3}}
                \newcommand\firmatripla[7][]{\firmadoppia[#1]{#2}{#3}{#4}{#5}
                \medskip
                \hbox to\hsize{\hfill\componifirma{#6}{#7}\hspace{.25\textwidth}}}`
                Ho pensato di dividere la giustezza in sei parti; nella prima, ma senza che si occupi spazio (\rlap} va la sigletta opzionale; poi due parti dedicate alla firma di sinistra, una parte vuota e per finire le due dedicate alla firma di destra (che diventa l’unica con il comando \firma).

                La terza firma sta a metà fra le altre due (un po’ di aritmetica dice che deve stare a un quarto della giustezza dal margine destro.

                Puoi aggiustare le spaziature verticali a piacere.

                \firmabox è definito in modo che se per caso il nome o la carica sono più grandi dello spazio riservato (un terzo della giustezza), non fa nulla. Ma se un nome è davvero troppo lungo, andrà a sovrapporsi con il margine o con l’altra firma.

                Ciao
                Enrico

              • #23395
                robitex
                Amministratore del forum
                  Up
                  0
                  Down
                  ::


                  Bene grazie,
                  ci lavorerò un po’ su, anche per capire il funzionamento dei comandi TeX da te usati nell’ultimo codice.

                  Nel frattempo vorrei tornare al problema dei parametri opzionali:
                  A volte non riesco a vedere alla prima la sintassi dei comandi. Solo con tentativi e approfondimenti ulteriori riesco a chiarirmi il codice, questa volta di \newcommand.

                  Nella sintassi infatti non mi era chiaro se l’argomento opzionale possa essere utilizzato specificandolo tra parentesi quadre oppure graffe.
                  Io l’avevo inteso con le parentesi graffe e questo non raggiungeva l’obiettivo che mi ero preposto:
                  `\nuovocomando[opzione]{testo per il secondo argomento del comando}`
                  Chiarito il caso di una sola opzione per \newcommand, rimane il problema multiplo, ovvero implementare un comando con più opzioni, preferibilmente da specificare in ordine singolo tra parentesi quadre, così:
                  `\nuovocomando[opzione1][opzione2]…[opzionen]{testo di input al comando}`

                  Per esempio, vorrei che il comando \firma avesse l’ulteriore opzione [lineabase] con funzionamento si/no, per disegnare una \rule di appoggio della firma autografa centrata ed alla distanza guista.
                  `\firma[\fj\fp][lineabase]{Ruolo}{Nome}`

                  [OT] a migliore spiegazione:
                  Avrei almeno un’altra dozzina di argomenti da approfondire per giungere ad un codice soddisfacente, ma dovrò prima impiegare tempo per costruire una semplice e razionale “interfaccia” da esporre all’utente che dovrà essere solo successivamente implementata.
                  Per esempio, le lettere in mail merge, la possibilità di specificare più indirizzi, la possibilità di abbreviare con semplici comandi i nomi dei firmatari con rispettivo ruolo (che può cambiare di volta in volta), l’aspetto della prima pagina della lettera rispetto a quello delle successive, far si che il codice compia dei tentativi per raccogliere la lettera in un unica pagina, gestione della formula di saluto, nuovo environment per la lista degli allegati alla lettera, automatizzare la costruzione di certe tabelle economiche, ecc.
                  Il più interessante problema mi sembra quello delle lettere multiple (si lo sò esiste il pacchetto envlab), e quello relativo a come l’utente possa fornire le informazioni dei destinatari.
                  Già che ho messo a dura prova la vostra pazienza, vi accenno ad un altra idea che vorrei sviluppare: un pacchetto per la compilazione di etichette complesse progettabili liberamente dall’utente.

                  Grazie.

                • #23396
                  Up
                  0
                  Down
                  ::

                  Bene grazie,
                  ci lavorerò un po’ su, anche per capire il funzionamento dei comandi TeX da te usati nell’ultimo codice.

                  Nel frattempo vorrei tornare al problema dei parametri opzionali:
                  A volte non riesco a vedere alla prima la sintassi dei comandi. Solo con tentativi e approfondimenti ulteriori riesco a chiarirmi il codice, questa volta di \newcommand.

                  Nella sintassi infatti non mi era chiaro se l’argomento opzionale possa essere utilizzato specificandolo tra parentesi quadre oppure graffe.
                  Io l’avevo inteso con le parentesi graffe e questo non raggiungeva l’obiettivo che mi ero preposto:
                  `\nuovocomando[opzione]{testo per il secondo argomento del comando}`
                  Chiarito il caso di una sola opzione per \newcommand, rimane il problema multiplo, ovvero implementare un comando con più opzioni, preferibilmente da specificare in ordine singolo tra parentesi quadre, così:
                  `\nuovocomando[opzione1][opzione2]…[opzionen]{testo di input al comando}`

                  Non funziona: se l’opzione1 non c’è, come fai? A quel punto dovresti sempre mettere tutte le coppie di quadre, che non ha molto senso.

                  Guarda la macro \makebox: ha due argomenti opzionali, ma il secondo ha senso solo se c’è il primo. Nel tuo caso questo andrebbe a pallino.

                  Per questo tipo di situazioni bisogna ricorrere al sistema “chiave=valore” come per le opzioni a \includegraphics. Il pacchetto da usare è keyval oppure xkeyval.

                  Rimando a dopo, adesso devo fuggire al treno. 👿

                  Ciao
                  Enrico

                • #23397
                  Up
                  0
                  Down
                  ::

                  Rimando a dopo, adesso devo fuggire al treno. 👿

                  Eccomi qui. Adesso vediamo un po’ di cose: come ti ho detto, più argomenti opzionali sono da escludere. La sintassi preferibile è
                  `\firma{Il Direttore Galattico}{Lupo de Lupis}
                  \firma[sigla=/ab/cd]{Il Direttore Galattico}{Lupo de Lupis}
                  \firma[sigla=/ab/cd,lineabase]{Il Direttore Galattico}{Lupo de Lupis}
                  \firma[lineabase]{Il Direttore Galattico}{Lupo de Lupis}`
                  e dovrebbe essere chiaro ciò che si intende; per \firmadoppia e \firmatripla basta aggiungere gli opportuni argomenti opzionali. Ecco il codice, occorre il pacchetto xkeyval (basta anche keyval, ma conviene usare il più potente):
                  `\usepackage{xkeyval}

                  \newcommand{\stileruolo}[1]{{\fontfamily{ptm}\selectfont\textsc{#1}}}
                  \newcommand{\stilenominativo}[1]{#1}
                  \newcommand{\firmabox}[1]{\makebox[.333\textwidth]{\hss#1\hss}}

                  \newcommand{\componifirma}[2]{%
                  \begin{tabular}[t]{@{}c@{}}
                  \firmabox{\stileruolo{#1}}\\
                  \firmabox{\stilenominativo{#2}}
                  \iflineabase\\\rule{0pt}{1cm}\rule{.333\textwidth}{0.4pt}\fi
                  \end{tabular}}

                  \makeatletter
                  \newif\iflineabase
                  \def\sigla{}
                  \define@key{firma}{sigla}{\def\sigla{#1}}
                  \define@key{firma}{lineabase}[true]{\lineabasetrue}
                  \makeatother

                  \newcommand{\firmadoppia}[5][]{\setkeys{firma}{#1}\par
                  \hbox to\hsize{%
                  \rlap{\sigla}\hfil
                  \ifsingola\expandafter\phantom\fi
                  {\componifirma{#2}{#3}}\hfil\componifirma{#4}{#5}}}

                  \newcommand{\firma}[3][]{\firmadoppia[#1]{}{}{#2}{#3}}
                  \newcommand\firmatripla[7][]{\firmadoppia[#1]{#2}{#3}{#4}{#5}
                  \medskip
                  \hbox to\hsize{\hfill\componifirma{#6}{#7}\hspace{.25\textwidth}}}`
                  Non ci sono grandi differenze da quello di prima. L’unica cosa è modificare dove si pone la sigla, che viene definita tramite la chiave. Ho anche aggiunto il condizionale che è normalmente falso (quindi la linea non viene composta). Se viene data l’opzione “lineabase” invece il condizionale diventa vero e la linea esce.

                  Dopo tutto non è così difficile. Se hai altre opzioni si tratta di capire come realizzarle.

                  C’è solo un altro bieco trucco: se la firma è singola e si deve comporre la linea di base, occorre evitare che venga anche quella sulla prima; con quel \phantom si ottiene ciò che si vuole: il comando \firma attiva lo switch \ifsingola; se questo è vero entra in azione \phantom che vede il \componifirma relativo alla prima firma come argomento. Se invece siamo con \singolafalse, come è usuale, la coppia di graffe non fa male.

                  Non che il tutto mi piaccia tantissimo, probabilmente bisognerebbe ripensare alla faccenda da capo. Ma è un punto di partenza per capire come funziona l’interfaccia “chiave=valore”.

                  Ciao
                  Enrico

                • #23398
                  robitex
                  Amministratore del forum
                    Up
                    0
                    Down
                    ::


                    grazie mille per il codice,

                    direi che ne posso trarre due conclusioni:
                    la prima è che la fretta non si sposa bene con LaTeX ed amici (ed infatti tra l’altro non mi sono accorto dei problemi impliciti al comando con più di una opzione).

                    la seconda è questa: è utile se non indispensabile conoscere i comandi di TeX quando si pensa di scrivere codice di pacchetto, almeno a giudicare dall’esempio dei vari comandi \firma.

                    per tornare al problema delle firme userò questa strategia:
                    1 studio del pacchetto xkeyval/keyval;
                    2 lavorare alla comprensione del codice TeX incluso nell’esempio;
                    3 sperimentare il {\centering \parbox{ruolo \par nominativo}} in sostituzione del tabular.

                    … una domanda,
                    ma conviene sostituire l’istruzione TeX \def per la definizione dei comandi con una forma equivalente in LaTeX?

                  • #23399
                    Up
                    0
                    Down
                    ::

                    … una domanda,
                    ma conviene sostituire l’istruzione TeX \def per la definizione dei comandi con una forma equivalente in LaTeX?

                    A volte sì a volte no. Per le macro che hanno un argomento opzionale è di sicuro più comodo \newcommand; in altri casi uso \def senza troppo preoccuparmi, forse sbagliando. In genere è meglio usare \newcommand per i comandi a livello utente le cui definizioni vadano nel preambolo. Per il resto è più che altro questione di gusti.

                    Ciao
                    Enrico

                  • #23400
                    Up
                    0
                    Down
                    ::


                    Ho provato a usare il codice di egreg, ma non compila (miktex 2.8 su windows XP).
                    Se commento la linea \ifsingola\expandafter\phantom\fi riesco a compilare, ma se ho selezionato l’opzione lineabase il comando esegue la linea anche per la prima firma.
                    Dov’è l’errore?

                    Paolo

                  • #23401
                    Up
                    0
                    Down
                    ::

                    Ho provato a usare il codice di egreg, ma non compila (miktex 2.8 su windows XP).
                    Se commento la linea \ifsingola\expandafter\phantom\fi riesco a compilare, ma se ho selezionato l’opzione lineabase il comando esegue la linea anche per la prima firma.
                    Dov’è l’errore?

                    Non ho errori; effettivamente l’opzione lineabase così com’è non funziona. 🙁 Occorre sostituire l’ovvia riga con
                    `\define@key{firma}{lineabase}[false]{\@nameuse{lineabase#1}}`
                    e chiamare l’opzione come “lineabase=true” se vuoi la riga.

                    Ciao
                    Enrico

                  • #23402
                    Up
                    0
                    Down
                    ::


                    Come prima, se non commento la linea contenente \ifseingola non riesco a compilare e se lo faccio mi rimane la linea sotto la prima firma…
                    Ma dov’è definito \ifsingola?

                    Paolo

                  • #23403
                    Up
                    0
                    Down
                    ::

                    Come prima, se non commento la linea contenente \ifseingola non riesco a compilare e se lo faccio mi rimane la linea sotto la prima firma…
                    Ma dov’è definito \ifsingola?

                    Evidentemente è saltata dal copia-incolla: subito dopo \makeatletter metti \newif\ifsingola.
                    `\documentclass[a4paper,draft]{article}
                    \usepackage{lipsum,calc,xkeyval}

                    \newcommand{\stileruolo}[1]{{\fontfamily{ptm}\selectfont\textsc{#1}}}
                    \newcommand{\stilenominativo}[1]{#1}
                    \newcommand{\firmabox}[1]{\makebox[.333\textwidth]{\hss#1\hss}}

                    \newcommand{\componifirma}[2]{%
                    \begin{tabular}[t]{@{}c@{}}
                    \firmabox{\stileruolo{#1}}\\
                    \firmabox{\stilenominativo{#2}}
                    \iflineabase\\\rule{0pt}{1cm}\rule{.333\textwidth}{0.4pt}\fi
                    \end{tabular}}

                    \makeatletter
                    \newif\ifsingola
                    \newif\iflineabase
                    \def\sigla{}
                    \define@key{firma}{sigla}{\def\sigla{#1}}
                    \define@key{firma}{lineabase}[false]{\@nameuse{lineabase#1}}
                    \makeatother

                    \newcommand{\firmadoppia}[5][]{\setkeys{firma}{#1}\par
                    % \expandafter\show\csname iflineabase\endcsname % per debug
                    \hbox to\hsize{%
                    \rlap{\sigla}\hfil
                    \ifsingola\expandafter\phantom\fi
                    {\componifirma{#2}{#3}}\hfil\componifirma{#4}{#5}}}

                    \newcommand{\firma}[3][]{\singolatrue\firmadoppia[#1]{}{}{#2}{#3}}
                    \newcommand\firmatripla[7][]{\firmadoppia[#1]{#2}{#3}{#4}{#5}
                    \medskip
                    \hbox to\hsize{\hfill\componifirma{#6}{#7}\hspace{.25\textwidth}}}

                    \begin{document}

                    \firmatripla[lineabase=true]
                    {Il Direttore Galattico}{Dott. Paperino Paolo}
                    {Il Direttore}{Dott. Paperino Paolo}
                    {Il Direttore}{Dott. Paperino Paolo}

                    \firmadoppia
                    {Il Direttore}{Dott. Paperino Paolo}
                    {Il Direttore}{Dott. Paperino Paolo}

                    \firma
                    {Il Direttore}{Dott. Paperino Paolo}

                    \firma{Il Direttore Galattico}{Lupo de Lupis}
                    \firma[sigla=/ab/cd]{Il Direttore Galattico}{Lupo de Lupis}
                    \firma[sigla=/ab/cd,lineabase]{Il Direttore Galattico}{Lupo de Lupis}
                    \firma[lineabase=true]{Il Direttore Galattico}{Lupo de Lupis}

                    \end{document}`
                    Ciao
                    Enrico

                  • #23404
                    Up
                    0
                    Down
                    ::


                    Se commento la riga \expandafter\show\csname iflineabase\endcsname funziona.

                    Grazie
                    Paolo

                  • #23405
                    Up
                    0
                    Down
                    ::

                    Se commento la riga \expandafter\show\csname iflineabase\endcsname funziona.

                    Era solo per debugging, toglila pure. Questi esperimenti vanno sempre fatti da linea di comando, in modo che la compilazione sia interattiva.

                    Ciao
                    Enrico

                Visualizzazione 17 filoni di risposte
                • Devi essere connesso per rispondere a questo topic.

                Go to top