# coloring every other row of a table, with vertical lines

I am making a table that needs every other row colored. I thought to use this.

\usepackage[table,svgnames]{xcolor}
\rowcolors{1}{white}{gray!15}


But my table has vertical bars

\begin{tabular}{r|*{3}{p{2in}|}}


as well as horizontal bars

\multicolumn{1}{c}{\ }
&\multicolumn{1}{c}{Monday}
&\multicolumn{1}{c}{Wednesday}
&\multicolumn{1}{c}{Friday} \\ \hline


and the color makes them disappear (the bar from the "r|" stays as I have it above, but if I change the first multicolumn's "\" to "week" then this bar also disappears). Am I missing something; is there a way to keep the bars and get the colors behind them? (I have a 2010 TeX Live.)

-
that is always a problem with the pdf viewer. The printed output should be ok. –  Herbert Jul 4 '11 at 14:08
You could give the tabu package a try. –  Thorsten Donig Jul 4 '11 at 17:24
I'm using beamer so the pdf viewer is where it will be seen. I'll look at tabu, thanks. –  Jim Hefferon Jul 4 '11 at 18:41
The tabu package isn't showing the row in color at all for me; maybe I'm doing it wrong but I copied the rowcolors example from the manual. I guess I'll stick with xcolor. (I am using AcrobatReader9 on Ubuntu 11; I believe that I need AR because I do some other things that seem to me to require it.) Thanks for the suggestions. –  Jim Hefferon Jul 4 '11 at 19:22
@Jim: Could you give a complete example of the kind of table you are trying to produce (ideally in a full minimal working example (MWE), which will make it easier for people to try out the code and come up with solutions). –  Jake Jul 7 '11 at 1:18

Before this stays completely unanswered, may I propose a solution that won't appeal to purists, but that might be a good approach for you.

There have been a couple of questions concerned with how TikZ matrices can be used as replacements for tables: TikZ matrix as a replacement for tabular, Horizontal row separation line in tikz matrix (like \hline in tabular). Since you're using beamer, you have TikZ loaded already, so this wouldn't require additional packages.

You can use matrix options like every even row/.style,every odd column/.style, row 1/.style and so on to adjust the appearance of your tables. Here's an example based on the snippets in your question:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}

\tikzset{
table/.style={
matrix of nodes,
row sep=-\pgflinewidth,
column sep=-\pgflinewidth,
nodes={
rectangle,
draw=black,
align=center
},
minimum height=1.5em,
text depth=0.5ex,
text height=2ex,
nodes in empty cells,
%%
every even row/.style={
nodes={fill=gray!20}
},
column 1/.style={
nodes={text width=2em,font=\bfseries}
},
row 1/.style={
nodes={
fill=black,
text=white,
font=\bfseries
}
}
}
}

\begin{tikzpicture}

\matrix (first) [table,text width=6em]
{
& Monday   & Tuesday & Wednesday & Thursday & Friday\\
1   & A & B & C & D & E \\
2   & F & G & H & J & K \\
3   & A & B & C & D & E \\
4   & F & G & H & J & K \\
};

\end{tikzpicture}
\end{document}

-
Thank you. I was unaware of that option. I'll check it out. –  Jim Hefferon Jul 7 '11 at 10:01
I really enjoyed your clear solution! –  All Mar 16 '12 at 17:40