Цвета чередующихся строк в табличном (*|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
игнорирует начальный ряд для раскраски и начинается с первого ряда.
Теперь у меня закончились идеи. Какие-либо предложения?
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}