Re: Tabelle a colori alternati: dove mettere \rowcolors?

#30821
Up
0
Down
::


Ciao Lorenzo, e grazie per l’interessamento.

Per me la posizione di \rowcolors va bene così. Pagina 85 dell’Arte.

Tra l’altro, alla stessa pagina scopro l’esistenza del comando \cellcolor, che forse, nel comando di intestazione che ho definito, è più adatto:

`\newcommand{\intest}[1]{\multicolumn{1}{>{\cellcolor{grigio}}c}{\textbf{#1}}}`
al posto di

`\newcommand{\intest}[1]{\multicolumn{1}{>{\columncolor{grigio}}c}{\textbf{#1}}}`
Rimane però un piccolo problema: quando avevo chiesto se era il caso, ad esempio, di creare un ambiente apposito, mi riferivo al tentativo di aumentare la semantica (in fin dei conti, \rowcolors è un comando “puntuale” che mi farebbe piacere inserire nel preambolo, e non prima di ogni tabella). Osserva infatti quello che succede se il numero delle righe diventa dispari:

`\documentclass{article}

\usepackage[table]{xcolor}
\usepackage{array}
\usepackage{colortbl}
\usepackage{tabularx}

\definecolor{grigio}{gray}{.7}
\definecolor{grigioChiaro}{gray}{.9}

\newcommand{\intest}[1]{\multicolumn{1}{>{\cellcolor{grigio}}c}{\textbf{#1}}}

\newcolumntype{Z}{>{\centering\arraybackslash}X}
\renewcommand{\tabularxcolumn}[1]{>{\arraybackslash}m{#1}}

\begin{document}

\rowcolors{3}{grigioChiaro}{}
\begin{tabularx}{.93\linewidth}{*{3}{Z}}
\intest{Nome} & \intest{Larghezza} & \intest{Altezza} \\
VGA & 640 & 480 \\
XGA & 1024 & 768
\end{tabularx}

Bla, bla, bla\dots

\begin{tabularx}{.93\linewidth}{*{3}{Z}}
\intest{Nome} & \intest{Larghezza} & \intest{Altezza} \\
VGA & 640 & 480 \\
XGA & 1024 & 768 \\
VGA & 640 & 480
\end{tabularx}

Bla, bla, bla\dots

\begin{tabularx}{.93\linewidth}{*{3}{Z}}
\intest{Nome} & \intest{Larghezza} & \intest{Altezza} \\
VGA & 640 & 480 \\
XGA & 1024 & 768
\end{tabularx}

\end{document}`
Questo non è l’effetto da me desiderato, e per ovviare a questo problema non ho altra scelta che ripetere il comando prima di ciascuna tabella, cosa che volevo evitare:

`\rowcolors{3}{grigioChiaro}{}
\begin{tabularx}{.93\linewidth}{*{3}{Z}}
\intest{Nome} & \intest{Larghezza} & \intest{Altezza} \\
VGA & 640 & 480 \\
XGA & 1024 & 768
\end{tabularx}

Bla, bla, bla\dots

\rowcolors{3}{grigioChiaro}{}
\begin{tabularx}{.93\linewidth}{*{3}{Z}}
\intest{Nome} & \intest{Larghezza} & \intest{Altezza} \\
VGA & 640 & 480 \\
XGA & 1024 & 768 \\
VGA & 640 & 480
\end{tabularx}

Bla, bla, bla\dots

\rowcolors{3}{grigioChiaro}{}
\begin{tabularx}{.93\linewidth}{*{3}{Z}}
\intest{Nome} & \intest{Larghezza} & \intest{Altezza} \\
VGA & 640 & 480 \\
XGA & 1024 & 768
\end{tabularx}`
Qual è il modo migliore di gestire questa situazione, tenendo conto della semantica?

Grazie e a presto!

Go to top