[RISOLTO] Ifthenelse e variabile booleana

  • Creatore
    Topic
  • #52202
    Up
    0
    Down
    ::


    Ciao, ho creato una variabile booleana e un nuovo comando che dovrebbe cambiare la numerazione delle pagine in base al valore della variabile però per qualche motivo non funziona, sapete dirmi perchè?

    `
    \newboolean{alpha}
    \setboolean{alpha}{false}
    \newcommand{\pagenumonoff}{\ifthenelse{alpha=true}{\pagenumbering{bychapter}}{}}
    %cioè se alpha=true \pagenumbering{bychapter} altrimenti niente
    `

    poi in un file esterno che richiamo con il comando include inserisco:

    `
    \section{Sezione 1}
    \pagenumonoff
    \index{Bla!bla!bla|textsl}

    %eccetera eccetera
    `

Visualizzazione 4 filoni di risposte
  • Autore
    Risposte
    • #52203
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Hai letto la documentazione del pacchetto iifthenelse?

        Sei sicuro che per il caso false basti mettere ‘niente’?

      • #52204
        Up
        0
        Down
        ::


        Ho controllato e ho corretto così ma non funziona lo stesso:

        `
        \newboolean{alpha}
        \setboolean{alpha}{true}

        %se alpha=true \pagenumbering{bychapter} altrimenti niente

        \newcommand{\pagenumonoff}[1]{\ifthenelse{\equal{#1}{true}}{\pagenumbering{bychapter}}{}}
        `

        Il codice qui sopra è dichiarato nel preambolo del documento principale, cioè prima del begin{document}, quindi la variabile alpha dovrebbe essere globale.

        Poi come al solito in un file esterno che richiamo con il comando include inserisco:

        `
        \section{Sezione 1}
        \pagenumonoff{alpha}
        \index{Bla!bla!bla|textsl}

        %eccetera eccetera
        `

      • #52205
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Continua a studiare la documentazione del pacchetto ifthenelse.

          la sintassi alpha=true vale solo per le lunghezzee i numeri, non per per le variabili booleane

          la sintassi \equal{alpha}{true} vale per le strighe, non per le variabili booleane.

          che cosa ci vorra per una variabile booleana? c’è scritto nella seconda pagina del ifthenelse.pdf.

        • #52206
          Up
          0
          Down
          ::


          Caro Claudio ce l’ho fatta, non ho trovato il file ifthenelse.pdf ma grazie ai tuoi suggerimenti ho capito l’errore e adesso tutto funziona.

          `
          \newboolean{alpha}
          \setboolean{alpha}{true}

          \newcommand{\pagenumonoff}[1]{\ifthenelse{\boolean{#1}}{\pagenumbering{bychapter}}{}}
          `

          Ho poi capito che il comando \pagenumbering{bychapter} va dato una sola volta all’inizio del capitolo, e quindi in questo caso:

          `
          \addtocounter{chapter}{1}
          \chapter{Capitolo n}
          \pagenumbering{arabic}
          \setcounter{page}{\thechapter}
          \minitoc
          \newpage
          \pagenumonoff{alpha}

          \input{Capitolo n/ricetta 1}\newpage
          \input{Capitolo n/ricetta 2}\newpage
          \input{Capitolo n/ricetta 3}
          `

          Grazie mille

        • #52207
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Hai ragione, scusami; il nome del file è ifthen.pdf, dentro al quale è definito il comando \ifthenelse

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

        Go to top