我想创建一个表格,其中行的背景颜色每n>1
行都会改变。我见过 维基百科交替行可以有不同的颜色,我查看了xcolor
在线找到的一份文档数学.washginton.edu 但我不知道如何让行颜色每n
行改变一次,比如每 5 行改变一次。
另外,是否可以定义一些序列,例如 {4,9,11..},它将告诉 LaTeX 在哪一行切换颜色?这样,如果我的观察结果不平衡,那么我仍然可以以不同的方式突出显示背景。我的意思是,如果我有来自模型 1 的 3 行数据、来自模型 2 的 5 行数据和来自模型 3 的 2 行数据,那么我的表格的前 3 行可以是白色,接下来的 5 行可以是灰色,接下来的 2 行可以再次是白色,依此类推...以提高可读性,这是我所需要的,因为我有大量的数字,我想大多数表格都有。:)
现在我正费力地\rowcolor{}
在任何我想要着色的行前书写。
任何帮助将不胜感激。
答案1
这展示了一种添加计数器的方法,该计数器每行递增,然后进行一组任意测试以在某种条件下切换颜色。首先,没有背景,在第 4 行切换为绿色,保持绿色,直到第 7 行切换为蓝色,在第 13 行恢复为无背景,然后每 20 行循环一次。
\documentclass{article}
\usepackage{colortbl}
\newcounter{myc}
\makeatletter
\def\myrow{}
\CT@everycr{\noalign{%
\global\let\CT@row@color\relax
\stepcounter{myc}%
\ifnum\value{myc}=4
\gdef\myrow{\rowcolor{green}}
\else\ifnum\value{myc}=7
\gdef\myrow{\rowcolor{blue}}
\else\ifnum\value{myc}=13
\gdef\myrow{}
\else\ifnum\value{myc}=20
\setcounter{myc}{0}
\fi\fi\fi\fi
}\myrow}
\begin{document}
\small
\begin{tabular}{>{[\themyc]}ll}
a&a\\a&a\\a&a\\a&a\\a&a\\a&a\\a&a\\a&a\\
a&a\\a&a\\a&a\\a&a\\a&a\\a&a\\a&a\\a&a\\
a&a\\a&a\\a&a\\a&a\\a&a\\a&a\\a&a\\a&a\\
a&a\\a&a\\a&a\\a&a\\a&a\\a&a\\a&a\\a&a\\
a&a\\a&a\\a&a\\a&a\\a&a\\a&a\\a&a\\a&a\\
\end{tabular}
\end{document}
答案2
如果您使用 table 选项加载 xcolor 包,您还可以访问 rowcolors 命令。
语法是\rowcolors{<starting row index>}{<odd row color>}{<even row color>}
编辑:
如果您使用 tabu 包,您可以使用该\taburowcolors
命令。
\documentclass[preview]{standalone}
\usepackage{tabu}
\usepackage[table]{xcolor}
\begin{document}
\everyrow{\tabucline-}
\begin{tabu}{|X|X|}
\taburowcolors {green!40..green!40}
test&test\\
test&test\\
test&test\\
test&test\\
\taburowcolors {blue!40..blue!40}
test&test\\
test&test\\
test&test\\
\taburowcolors{white..white}
test&test\\
test&test\\
\end{tabu}
\end{document}
这使:
答案3
使用,如果您想要 n 行一种颜色后面跟着 n 行另一种颜色,您可以这样做{NiceTabular}
。nicematrix
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{cc}
\CodeBefore
\rowlistcolors{1}{red!15,=,=,=, blue!15,=,=,=}
\Body
1 & one \\
2 & two \\
3 & three \\
4 & four \\
5 & five \\
6 & six \\
7 & seven \\
8 & eight \\
9 & nine \\
10 & ten \\
11 & eleven \\
12 & twelve \\
13 & thirteen \\
14 & fourteen \\
15 & fifteen \\
16 & sixteen \\
\end{NiceTabular}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。