有人能向我解释一下如何申请\rowcolors
吗?我找到了答案这里但说实话,它对我来说不起作用,答案中也没有很好地解释!我\rowcolors
在手册中也找不到描述。在某种程度上,输入参数给出了预期的结果,如下所示
\rowcolors{<row no. to start from}{odd rows colour}{even rows colour}
例如:\row{3}{lightgray!30}{white}
将为所有奇数行定义 30% 的浅灰色,为从第 3 行开始的所有偶数行定义白色。但下面有一些示例,其中此公式不起作用。
我做了下面的 MWE。我尝试了不同的参数\rowcolors
,但我可能遗漏了一些东西,因为结果并不像我想象的那样。
让我们看几个例子,其中我更改了代码中的第四行:
\rowcolors{1}{lightgray!30}{} % working
\rowcolors{2}{}{lightgray!30} % working
\rowcolors{3}{lightgray!30}{} % working
% Not working. Colours expected to start from 5th row
\rowcolors{5}{lightgray!30}{}
% Not working. Colours expected to start from 4th row
\rowcolors{4}{}{lightgray!30}
我感觉\rowcolors
只有第三行才有效。这是错误还是我应该预料到的事情?
谢谢
\documentclass{article}
\usepackage{booktabs}
\usepackage[usernames,dvipsnames,svgnames,table]{xcolor}
\rowcolors{4}{lightgray!30}{} % To be changed in examples
%\rowcolor{<Start from>}{odd}{even}
\begin{document}
\begin{tabular}{ r l r l r l r l r }
\toprule
& \multicolumn{2}{c}{\textbf{File 1}}
& \multicolumn{2}{c}{\textbf{File 2}}
& \multicolumn{2}{c}{\textbf{File 3}}
& \multicolumn{2}{c}{\textbf{File 4}} \\
\cmidrule(lr){2-3}
\cmidrule(lr){4-5}
\cmidrule(lr){6-7}
\cmidrule(lr){8-9}
& \textbf{H1}
& \textbf{H2}
& \textbf{H3}
& \textbf{H4}
& \textbf{H5}
& \textbf{H6}
& \textbf{H7}
& \textbf{H8} \\
\midrule
1 & A & B & C & D & E & F & G & H \\
2 & A & B & C & D & E & F & G & H \\
3 & A & B & C & D & E & F & G & H \\
4 & A & B & C & D & E & F & G & H \\
5 & A & B & C & D & E & F & G & H \\
6 & A & B & C & D & E & F & G & H \\
7 & A & B & C & D & E & F & G & H \\
8 & A & B & C & D & E & F & G & H \\
\midrule[\heavyrulewidth]
\rowcolor[gray]{1}
\multicolumn{9}{l}{Extra information} \\
\bottomrule
\end{tabular}
\end{document}
答案1
经过一些测试,问题似乎来自\cmidrule
,但并非特定于booktabs
,因为也\cline
有同样的问题。
另一方面,从必须是奇数。这意味着如果您将起始行号设置为 2,则第一个灰色行将是 3。因此,如果您确实想从行 2 开始,则必须从行 1 开始并交换颜色。
第二个奇怪的特点:两行之间的奇数个 s 似乎\cmidrule/\cline
算作补充行。因此,当您想从第 3 行开始时,如果您有 0、2 或 4 个 \cmidrules,您确实会从第 3 行开始,但如果您有 1 或 3 个 \cmidrules,则从第 2 行开始。
以下代码显示了这些问题:
\documentclass{article}
\usepackage[usernames,dvipsnames,svgnames,table]{xcolor}
\rowcolors{4}{lightgray!30}{white} % To be changed in examples
%\rowcolor{<Start from>}{odd}{even}
\rowcolors{3}{lightgray!30}{white} % To be changed in examples
\usepackage{booktabs}
\begin{document}
\rowcolors{3}{lightgray!30}{white}
\begin{tabular}{ r l r l r l r l r }
\toprule
& \multicolumn{2}{c}{\textbf{File 1}}
& \multicolumn{2}{c}{\textbf{File 2}}
& \multicolumn{2}{c}{\textbf{File 3}}
& \multicolumn{2}{c}{\textbf{File 4}} \\
\cmidrule(lr){2-3}%
%\cmidrule(lr){4-5}
%\cmidrule(lr){6-7}
%\cmidrule(lr){8-9}
& \textbf{H1}
& \textbf{H2}
& \textbf{H3}
& \textbf{H4}
& \textbf{H5}
& \textbf{H6}
& \textbf{H7}
& \textbf{H8} \\
\midrule
1 & A & B & C & D & E & F & G & H \\
2 & A & B & C & D & E & F & G & H \\
3 & A & B & C & D & E & F & G & H \\
4 & A & B & C & D & E & F & G & H \\
5 & A & B & C & D & E & F & G & H \\
6 & A & B & C & D & E & F & G & H \\
7 & A & B & C & D & E & F & G & H \\
8 & A & B & C & D & E & F & G & H \\
\midrule[\heavyrulewidth]
\rowcolor[gray]{1}
\multicolumn{9}{l}{Extra information} \\
\bottomrule
\end{tabular}
\vspace{1cm}
\rowcolors{3}{lightgray!30}{white}
\begin{tabular}{ r l r l r l r l r }
\toprule
& \multicolumn{2}{c}{\textbf{File 1}}
& \multicolumn{2}{c}{\textbf{File 2}}
& \multicolumn{2}{c}{\textbf{File 3}}
& \multicolumn{2}{c}{\textbf{File 4}} \\
\cmidrule(lr){2-3}%
\cmidrule(lr){4-5}
%\cmidrule(lr){6-7}
%\cmidrule(lr){8-9}
& \textbf{H1}
& \textbf{H2}
& \textbf{H3}
& \textbf{H4}
& \textbf{H5}
& \textbf{H6}
& \textbf{H7}
& \textbf{H8} \\
\midrule
1 & A & B & C & D & E & F & G & H \\
2 & A & B & C & D & E & F & G & H \\
3 & A & B & C & D & E & F & G & H \\
4 & A & B & C & D & E & F & G & H \\
5 & A & B & C & D & E & F & G & H \\
6 & A & B & C & D & E & F & G & H \\
7 & A & B & C & D & E & F & G & H \\
8 & A & B & C & D & E & F & G & H \\
\midrule[\heavyrulewidth]
\rowcolor[gray]{1}
\multicolumn{9}{l}{Extra information} \\
\bottomrule
\end{tabular}
\vspace{1cm}
\rowcolors{3}{lightgray!30}{white}
\begin{tabular}{ r l r l r l r l r }
\toprule
& \multicolumn{2}{c}{\textbf{File 1}}
& \multicolumn{2}{c}{\textbf{File 2}}
& \multicolumn{2}{c}{\textbf{File 3}}
& \multicolumn{2}{c}{\textbf{File 4}} \\
\cmidrule(lr){2-3}%
\cmidrule(lr){4-5}
\cmidrule(lr){6-7}
%\cmidrule(lr){8-9}
& \textbf{H1}
& \textbf{H2}
& \textbf{H3}
& \textbf{H4}
& \textbf{H5}
& \textbf{H6}
& \textbf{H7}
& \textbf{H8} \\
\midrule
1 & A & B & C & D & E & F & G & H \\
2 & A & B & C & D & E & F & G & H \\
3 & A & B & C & D & E & F & G & H \\
4 & A & B & C & D & E & F & G & H \\
5 & A & B & C & D & E & F & G & H \\
6 & A & B & C & D & E & F & G & H \\
7 & A & B & C & D & E & F & G & H \\
8 & A & B & C & D & E & F & G & H \\
\midrule[\heavyrulewidth]
\rowcolor[gray]{1}
\multicolumn{9}{l}{Extra information} \\
\bottomrule
\end{tabular}
\end{document}
答案2
{NiceTabular}
的环境nicematrix
有自己的命令\rowcolors
,即使使用\cline
或\cmidrule
(of ),它也能按预期工作。booktabs
\documentclass{article}
\usepackage{booktabs}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{ r l r l r l r l r }
\CodeBefore
\rowcolors{4-10}{lightgray!30}{}[restart]
\Body
\toprule
& \multicolumn{2}{c}{\textbf{File 1}}
& \multicolumn{2}{c}{\textbf{File 2}}
& \multicolumn{2}{c}{\textbf{File 3}}
& \multicolumn{2}{c}{\textbf{File 4}} \\
\cmidrule(lr){2-3}
\cmidrule(lr){4-5}
\cmidrule(lr){6-7}
\cmidrule(lr){8-9}
& \textbf{H1}
& \textbf{H2}
& \textbf{H3}
& \textbf{H4}
& \textbf{H5}
& \textbf{H6}
& \textbf{H7}
& \textbf{H8} \\
\midrule
1 & A & B & C & D & E & F & G & H \\
2 & A & B & C & D & E & F & G & H \\
3 & A & B & C & D & E & F & G & H \\
4 & A & B & C & D & E & F & G & H \\
5 & A & B & C & D & E & F & G & H \\
6 & A & B & C & D & E & F & G & H \\
7 & A & B & C & D & E & F & G & H \\
8 & A & B & C & D & E & F & G & H \\
\midrule[\heavyrulewidth]
\multicolumn{9}{l}{Extra information} \\
\bottomrule
\end{NiceTabular}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。