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