Чередование цветов строк в табличном (* | x)?

Я пытаюсь создать в своем документе таблицу, более или менее похожую на таблицу на картинке ниже:

Пример таблицы с альтернативной окраской строк

Эта таблица должна быть растянута по горизонтали до \textwidth. Моя первая попытка с tabular* выглядела так:

\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}

В результате:

Пример таблицы с табличным*

Что ж, альтернативная окраска строк работает, но tabular* вставляет пробел между столбцами, чтобы растянуть всю таблицу до \textwidth. Просматривая моего компаньона LaTeX, я обнаружил, что tabularx должен уметь делать то, что я хочу. Поэтому я изменил свой код, чтобы он выглядел так:

\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}

Вот это уже больше похоже. Но tabularx игнорирует начальную строку для раскрашивания и начинает с первой строки.

Пример таблицы с tabularx

Теперь у меня закончились идеи. Какие-либо предложения?


person Martin Maciaszek    schedule 11.04.2011    source источник


Ответы (1)


Не исправление, а хак, добавьте \hiderowcolors в первую строку, затем снова включите цвета с помощью \showrowcolors. См. код:

\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}
person cohensh    schedule 12.04.2011
comment
Я думаю, это лучшее, что мы можем сделать в настоящее время, не написав замену для tabularx. - person Martin Maciaszek; 18.04.2011