- Questo topic ha 4 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 7 anni, 4 mesi fa da .
-
Topic
-
Buongiorno a tutti, ho una questione estetica per una tabella.La tabella in questione genera tante righe quante ne sono necessarie in base a determinati parametri, quindi non sono sempre uguali.
Per renderla più facilmente leggibile, mi piacerebbe poter colorare/evidenziare le righe in modo alternato, ma non sapendo quali righe vengono stampate si complica un pochino.Ho quindi pensato a un contatore che se si stampa la riga questo aumenta di 1, e mi colora/evidenzia solo quando il contatore è un numero dispari (faccio partire il contatore da 2, così non evidenzio/coloro la prima riga che stampo).
Ho provato a farlo direttamente nella tabella che mi serve e mi dava errore, quindi ho provato a fare un codice prova ad hoc e mi dà lo stesso errore. Vi mostro il codice:
`
\usepackage{color, colortbl}
\usepackage{booktabs}
\usepackage{ifthen}
\usepackage{numprint}\newcounter{k}
\setcounter{k}{2}
\definecolor{gray}{gray}{0.8}
\def\ecomm{&}\begin{center}
\begin{tabular}{*3c}\ifthenelse{\isodd{\value{k}}}{
\rowcolor{gray} Grigio\arabic{k} \ecomm Grigio\arabic{k} \ecomm Grigio\arabic{k}\\
\midrule
\addtocounter{k}{1}
}
{
NonGrigio\arabic{k} \ecomm NonGrigio\arabic{k} \ecomm NonGrigio\arabic{k}\\
\midrule
\addtocounter{k}{1}
}\ifthenelse{\isodd{\value{k}}}{
\rowcolor{gray} Grigio\arabic{k} \ecomm Grigio\arabic{k} \ecomm Grigio\arabic{k}\\
\midrule
\addtocounter{k}{1}
}
{
NonGrigio\arabic{k} \ecomm NonGrigio\arabic{k} \ecomm NonGrigio\arabic{k}\\
\midrule
\addtocounter{k}{1}
}\end{tabular}
\end{center}
`Questo codice non funziona, mi dà come errore
“}I expect to see \noalign only after the \cr of
an alignment. Proceed, and I’ll ignore this case.”e mi dà errore solo quando entra nelle condizioni di dover colorare la riga: infatti se io cancello tutto il secondo \ifthenelse e quindi lascio solo
`
\newcounter{k}
\setcounter{k}{2}
\definecolor{gray}{gray}{0.8}
\def\ecomm{&}\begin{center}
\begin{tabular}{*3c}\ifthenelse{\isodd{\value{k}}}{
\rowcolor{gray} Grigio\arabic{k} \ecomm Grigio\arabic{k} \ecomm Grigio\arabic{k}\\
\midrule
\addtocounter{k}{1}
}
{
NonGrigio\arabic{k} \ecomm NonGrigio\arabic{k} \ecomm NonGrigio\arabic{k}\\
\midrule
\addtocounter{k}{1}
}\end{tabular}
\end{center}`
il programma gira senza problemi e mi stampa la riga “NonGrigio2 NonGrigio2 NonGrigio2” come dovrebbe fare: nel momento ad esempio in cui io cambio il contatore k e scrivo `\setcounter{k}{1}`, a quel punto il programma si blocca di nuovo e mi dà l’errore di prima.Questo è solo il codice prova, quindi mi aspetterei mi stampi la prima riga non colorata e la seconda sì.
Qualcuno mi saprebbe indicare dove sbaglio?
- Devi essere connesso per rispondere a questo topic.