Alternating row colors in tabular(*|x)?
Not a fix but a hack around, add \hiderowcolors to the first row, then turn colors back on with \showrowcolors. See code:
\rowcolors{3}{tableShade}{white} %% start alternating shades from 3rd row
\noindent\begin{tabularx}{\textwidth}{X X X X}%this can be {Xrrr} too
\hiderowcolors
Something & foo & bar & baz \\
\showrowcolors
Something & foo & bar & baz \\
Something & foo & bar & baz \\
Something & foo & bar & baz \\
Something & foo & bar & baz \\
\end{tabularx}
Martin Maciaszek
Updated on June 21, 2022Comments
-
Martin Maciaszek about 2 years
I’m trying to create a table in my document that resembles more or less the table in the picture below:
This table is supposed to be stretched horizontally to
\textwidth
. My first attempt withtabular*
looked like this:\documentclass{scrartcl} \usepackage[table]{xcolor} \definecolor{tableShade}{gray}{0.9} \begin{document} \rowcolors{3}{tableShade}{white} %% start alternating shades from 3rd row \noindent\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}lrrr} Something & foo & bar & baz \\ Something & foo & bar & baz \\ Something & foo & bar & baz \\ Something & foo & bar & baz \\ Something & foo & bar & baz \\ \end{tabular*} \end{document}
The result was:
Well, the alternate row coloring works but
tabular*
inserts space between columns to stretch the whole table to\textwidth
. Browsing through my LaTeX companion I found thattabularx
should be able to do what I want. So I changed my code to look like that:\documentclass{scrartcl} \usepackage[table]{xcolor} \usepackage{tabularx} \definecolor{tableShade}{gray}{0.9} \begin{document} \rowcolors{3}{tableShade}{white} %% start alternating shades from 3rd row \noindent\begin{tabularx}{\textwidth}{Xrrr} Something & foo & bar & baz \\ Something & foo & bar & baz \\ Something & foo & bar & baz \\ Something & foo & bar & baz \\ Something & foo & bar & baz \\ \end{tabularx} \end{document}
Now, this looks more like it. But
tabularx
ignores the starting row for the coloring and starts with the first row.Now I’ve run out of ideas. Any suggestions?
-
Martin Maciaszek about 13 yearsI guess this is the best we can do currently without writing a a replacement for tabularx.