Цвета чередующихся строк в табличном (*|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

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

2 ответа

Решение

Не исправить, а взломать, добавить \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}

К счастью, такие вещи больше не проблема сtabularrayупаковка:

      \documentclass{scrartcl}

\usepackage{xcolor}
\usepackage{tabularray}

\begin{document}

\noindent%
\begin{tblr}{
  colspec={XXXX},
  row{odd}={bg=lightgray},  
  row{1}={bg=black,fg=white},
}
  Something & foo & bar & baz \\
  Something & foo & bar & baz \\
  Something & foo & bar & baz \\
  Something & foo & bar & baz \\
  Something & foo & bar & baz \\
\end{tblr}  
  
\end{document}

Другие вопросы по тегам