Numero di righe variabile in una tabella

  • Questo topic ha 2 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 20 anni, 6 mesi fa da ev.
  • Creatore
    Topic
  • #8529
    ev
    Partecipante
      Up
      0
      Down
      ::


      Salve a tutti,

      Tanto tempo fa, un utente del forum aveva chiesto lumi sulla possibilità di creare programmaticamente tabelle con un numero variabile di righe, più o meno come nel seguente codice (che non funziona):`\documentclass{minimal}
      \usepackage{ifthen}
      \begin{document}
      \newcounter{righe}
      \setcounter{righe}{10}
      \begin{tabular}{cc}
      \whiledo{\value{righe}>0}{\addtocounter{righe}{-1} a & a \\}
      \end{tabular}
      \end{document}`
      Prima che a qualcuno venga in mente: no, non funziona nemmeno sostituendo \whiledo con \loop…\repeat.

      A quell’epoca non era stata trovata alcuna soluzione, per quanto ne so. In questi giorni ho provato ad inventarmi qualche cosa, spaziando da soluzioni semplicistiche all’uso di token register ed altre cose “esoteriche”, senza alcun successo. Qualcuno ha una proposta od una soluzione funzionante a portata di tastiera?

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

        Salve a tutti,

        Tanto tempo fa, un utente del forum aveva chiesto lumi sulla possibilità di creare programmaticamente tabelle con un numero variabile di righe, più o meno come nel seguente codice (che non funziona):`\documentclass{minimal}
        \usepackage{ifthen}
        \begin{document}
        \newcounter{righe}
        \setcounter{righe}{10}
        \begin{tabular}{cc}
        \whiledo{\value{righe}>0}{\addtocounter{righe}{-1} a & a \\}
        \end{tabular}
        \end{document}`
        Prima che a qualcuno venga in mente: no, non funziona nemmeno sostituendo \whiledo con \loop…\repeat.

        A quell’epoca non era stata trovata alcuna soluzione, per quanto ne so. In questi giorni ho provato ad inventarmi qualche cosa, spaziando da soluzioni semplicistiche all’uso di token register ed altre cose “esoteriche”, senza alcun successo. Qualcuno ha una proposta od una soluzione funzionante a portata di tastiera?

        Giusto ieri riguardavo il TeXbook. Et voilà.
        `
        \newcounter{rows}
        \newtoks\tablerows
        \makeatletter
        \newcommand{\atabular}[3]{%
        \setcounter{rows}{#1}%
        \tablerows={}%
        \loop \ifnum\value{rows}>0 \tablerows=\expandafter{\the\tablerows #3}%
        \addtocounter{rows}{-1} \repeat
        \edef\var@tabular{\the\tablerows}%
        \begin{tabular}{#2}
        \var@tabular
        \end{tabular}}

        \atabular{10}{cc}{a&a\\}
        \atabular{23}{ccc}{a&b&c\\}
        `Il codice da cui ho preso ispirazione sta nell’appendice D, of course :D.

        Ciao
        Enrico

      • #8531
        ev
        Partecipante
          Up
          0
          Down
          ::


          Doh! Ho capito dov’era l’errore nell’uso del token register 😥 Avrei dovuto guardare l’appendice delle “porcherie” 😉 prima di gettare la spugna. Al prossimo GuITmeeting ti offrirò un’enorme boccale di birra 😀

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

      Go to top