Creazione comando con più parametri

  • Questo topic ha 2 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 18 anni, 9 mesi fa da DMW.
  • Creatore
    Topic
  • #19304
    DMW
      Up
      0
      Down
      ::


      Normalmente un comando con più parametri ha la seguente definizione
      `\newcommand\comandol[3][parametro 1 se non definito]{%
      …..
      }`

      e si usa nel seguente modo
      `
      \comando[p1]{p2}{p3}`

      oppure
      `
      \comando{p2}{p3}`

      se p1 non è specificato. Io vorrei creare un comando con tre parametri ma che si comporti
      nel seguente modo:
      `\newcommand\comandol[3][se non specificato parametro 1][se non specificato parametro 2]{%
      ….
      }`

      e che sia possibile chiamarlo nel seguente modo
      `
      \comando[p1][p2]{p3}%
      `

      oppure
      `
      \comando[p2]{p3}%
      `
      se il parametro 1 non è specificato, oppure
      `
      \comando{p3}%
      `
      se i primi due parametri non sono specificati.

      Il comportamento è analogo al comando \vpageref di varioref.

      Mi serve questo tipo di comportamento perché non voglio sempre scrivere
      \comando{}{p3} nel caso in cui entrambi i parametri 1 e 2 non servano.

      Ho provato a vedere la definizione di \vpageref ma non ci ho capito molto.
      Ho visto solo che usa `\@ifnextchar[`
      che forse c’entra qualcosa.

      Ciao

      Andrea

    Visualizzazione 1 filone di risposte
    • Autore
      Risposte
      • #19305
        Up
        0
        Down
        ::

        Normalmente un comando con più parametri ha la seguente definizione
        `\newcommand\comandol[3][parametro 1 se non definito]{%
        …..
        }`

        e si usa nel seguente modo
        `
        \comando[p1]{p2}{p3}`

        oppure
        `
        \comando{p2}{p3}`

        se p1 non è specificato. Io vorrei creare un comando con tre parametri ma che si comporti
        nel seguente modo:
        `\newcommand\comandol[3][se non specificato parametro 1][se non specificato parametro 2]{%
        ….
        }`

        e che sia possibile chiamarlo nel seguente modo
        `
        \comando[p1][p2]{p3}%
        `

        oppure
        `
        \comando[p2]{p3}%
        `
        se il parametro 1 non è specificato, oppure
        `
        \comando{p3}%
        `
        se i primi due parametri non sono specificati.

        Il comportamento è analogo al comando \vpageref di varioref.

        Mi serve questo tipo di comportamento perché non voglio sempre scrivere
        \comando{}{p3} nel caso in cui entrambi i parametri 1 e 2 non servano.

        Ho provato a vedere la definizione di \vpageref ma non ci ho capito molto.
        Ho visto solo che usa `\@ifnextchar[`
        che forse c’entra qualcosa.

        E certo che c’entra. 🙂 Ma puoi usare il pacchetto twoopt.

        Ciao
        Enrico

      • #19306
        DMW
          Up
          0
          Down
          ::


          Grazie Prof.

          Sto cercando anche di capire come si fa con \@ifnextchar[ e a dire il vero è anche facile.

          Ciao

          Andrea

      Visualizzazione 1 filone di risposte
      • Devi essere connesso per rispondere a questo topic.

      Go to top