Creare comando con asterisco

  • Creatore
    Topic
  • #23497
    Up
    0
    Down
    ::


    Ciao ragazzi,

    come si può creare un comando con una variante asterisco come quelli che esistono di default?

    Mi spiego meglio, se volessi creare 2 comandi:
    `\miocomando{par1}{par2}…{parN}
    \miocomando*{par1}{par2}…{parN}`
    come è possibile farlo?

    Grazie!

Visualizzazione 2 filoni di risposte
  • Autore
    Risposte
    • #23498
      Up
      0
      Down
      ::

      Ciao ragazzi,

      come si può creare un comando con una variante asterisco come quelli che esistono di default?

      Mi spiego meglio, se volessi creare 2 comandi:
      `\miocomando{par1}{par2}…{parN}
      \miocomando*{par1}{par2}…{parN}`
      come è possibile farlo?

      `\makeatletter
      \newcommand{\miocomando}{\@ifstar{\@miocomandos}{\@miocomando}}
      \newcommand{\@miocomandos}[3]{…}
      \newcommand{\@miocomando}[3]{…}
      \makeatother`
      Il codice da eseguire nei due casi (con * e senza) va nella definizione dei due comandi ausiliari \@miocomandos e \@miocomando (ai quali puoi dare i nomi che preferisci, non necessariamente quelli); anche gli argomenti vanno dati a questi comandi, quello principale serve solo “di facciata”. A volte si possono unificare le definizioni, ma dipende da ciò che desideri. Prova a fare un esempio.

      Ciao
      Enrico

    • #23499
      Up
      0
      Down
      ::


      Enrico grazie per la risposta, molto chiara!

      A volte si possono unificare le definizioni, ma dipende da ciò che desideri. Prova a fare un esempio.

      Al momento non ho un vero comando da scrivere con l’asterisco, non ricordo perché mi era venuto il dubbio e quindi ho domandato. Ma cosa intendi per unificare le definizioni?

    • #23500
      Up
      0
      Down
      ::

      Enrico grazie per la risposta, molto chiara!

      A volte si possono unificare le definizioni, ma dipende da ciò che desideri. Prova a fare un esempio.

      Al momento non ho un vero comando da scrivere con l’asterisco, non ricordo perché mi era venuto il dubbio e quindi ho domandato. Ma cosa intendi per unificare le definizioni?

      Supponiamo che la variante * serva per scrivere l’argomento in corsivo, oltre a fare qualche cosa in più. Puoi semplicemente dire
      `\newcommand{\@miocomando}[2]{…#1…}
      \newcommand{\miocomando}{\@ifstar{\@miocomando{\itshape}}{\@miocomando{}}}`
      Nella definizione di \@miocomando usi #1 dove va \itshape nel caso del comando variato. Se chiami \miocomando senza *, al posto di #1 non verrà sostituito nulla.

      Ciao
      Enrico

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

Go to top