Vorrei poter compiere un ciclo \whiledo (pacchetto ifthen) sfornando righe in un ambiente tabular.
Nel codice seguente, il primo loop esegue egregiamente il suo lavoro, pertanto funziona. Ma se lo inseriamo in un ambiente tabular produce una serie di errori di chiusura del ciclo.
Tali errori sono dovuti probabilmente alla formazione di gruppi nel tabular.Mi sapreste indicare una via per produrre una tabella a partire da cicli come questi nell’esempio?
Grazie ed a presto.`\documentclass[a4paper,10pt]{article}
\usepackage{ifthen}\begin{document}
\newcounter{index}\setcounter{index}{1}
\newcounter{final}\setcounter{final}{26}\whiledo{\not\(\value{index}>\value{final}\)}{% OK
\theindex\par\stepcounter{index}}%\setcounter{index}{1}
\begin{tabular}{ll}% non OK
\whiledo{\not\(\value{index}>\value{final}\)}{%
Valore= & \theindex\\\stepcounter{index}%
}%
\end{tabular}\end{document}`
Avevamo già discusso una cosa simile con Andrea (DMW). Il problema è sempre quello che le celle di una tabella costituiscono un gruppo implicito. Lo si può risolvere con i registri token:
`\setcounter{index}{1}
\toks255={\begin{tabular}{ll}}
\whiledo{\not\(\value{index}>\value{final}\)}
{\toks255=\expandafter{\the\toks255 Valore= & }%
\toks255=\expandafter{\the\toks255\expandafter\space\number\value{index}\\}%
\stepcounter{index}}
\the\toks255
\end{tabular}`
C’è un po’ di lavoro da fare per il valore del contatore index (brutto nome, direi). Con \theindex non funzionerebbe.
Il ciclo whiledo aggiunge via via token al registro; ma guardo bene di non cominciare il tabular troppo presto: lo faremo solo al momento di usare il registro (penultima riga).
Il trucco usato alla riga 5 è piuttosto sottile. Esercizio. 😀
Ciao
Enrico