我希望只对特定列(理想情况下,也只对行的子集)交替使用行颜色,并使用多行和多列的表格。我发现\rowcolor{COLOR}
从目标列开始放置是可行的(如下所示)...但它会引发错误misplaced \noalign
。
我在 OSX 上使用 TexShop (3.6.1),带有 pdfTeX,版本 3.14159265-2.6-1.40.16 (TeX Live 2015)
有没有更好的方法可以做到这一点?或者有一种方法可以让上述方法不引发错误?
[![\documentclass\[6pt, oneside\]{article}
\usepackage{geometry}
\geometry{letterpaper}
\usepackage{graphicx}
\usepackage{amssymb}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage\[cm\]{fullpage}
\usepackage\[table\]{xcolor}
\newcommand{\mc}\[2\]{\multicolumn{#1}{c}{#2}}
\newcommand{\mr}\[2\]{\multirow{#1}{*}{#2}}
\begin{document}
\begin{table}\centering
\renewcommand{\arraystretch}{1.2}
\setlength{\tabcolsep}{4pt}
\begin{tabular}{@{}ccc ccc lccc@{}}
\toprule
& & \mc{4}{Background} & & & & \\
\mr{2}{One Column} & \mr{2}{Two Column}& \mc{2}{Amp} & \mc{2}{Spectrum} & \mr{2}{Subset} & Stuff & \mc{2}{\mr{2}{Fraction}} \\
& & $1$ & $0.1$ & $1$ & $0.1$ & & All (Coal) & \mc{2}{} \\\midrule
\mr{8}{Stuff} & \mr{4}{0.6} & \mr{4}{3.7} & \mr{4}{15} & \mr{4}{-3}& \mr{4}{-0.59} & \rowcolor{blue!20}All & 29 (2.7) & $ 1875/ 9270$ & $(0.20)$ \\
& & & & & & \rowcolor{blue!30}$\mu>0.2$ & 26 (2.2) & $ 1225/ 4759$ & $(0.26)$ \\
& & & & & & \rowcolor{blue!20}$M>10^8$ & 17 (4.0) & $ 608 / 2610$ & $(0.23)$ \\
& & & & & & \rowcolor{blue!30}$M>10^8$,$\mu>0.2$& 6.9 (3.3) & $ 214 / 478$ & $(0.45)$ \\
& \mr{4}{1.0} & \mr{4}{4.7} & \mr{4}{17} & \mr{4}{-6}& \mr{4}{-0.38} & \rowcolor{blue!10}All & 7.7 (1.2) & $ 4634/ 9270$ & $(0.50)$ \\
& & & & & & \rowcolor{blue!20}$\mu>0.2$ & 4.8 (1.0) & $ 2900/ 4759$ & $(0.61)$ \\
& & & & & & \rowcolor{blue!10}$M>10^8$, & 4.9 (0.79) & $ 1422/ 2610$ & $(0.54)$ \\
& & & & & & \rowcolor{blue!20}$M>10^8$,$\mu>0.2$& 0.35 (0.35) & $ 472/ 478$ & $(0.99)$ \\
\bottomrule
\end{tabular}
\caption{}
\label{tab:params}
\end{table}
\end{document}][1]][1]
答案1
为了获得上面的图像,我首先清理了您的代码。它包含大量由于错误使用选项而导致的错误(它们必须位于内部[...]
而不是数学环境中\[...\]
)。然后在您想要着色的每个单元格中写入\cellcolor{<selected color>}
。这是您只有部分行具有所需颜色的唯一方法(我知道)。为了简化此任务(因为所有颜色都是基于蓝色),我定义了新命令:
\newcommand{\CC}[1]{\cellcolor{blue!#1}}
并且(经过大量工作)我将您的 MWE 重写为:
\documentclass[6pt, oneside]{article}
\usepackage{geometry}
\geometry{letterpaper}
\usepackage{graphicx}
\usepackage{amssymb}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{tabularx}
%\usepackage[cm]{fullpage}
\usepackage[table]{xcolor}
\newcommand{\mc}[2]{\multicolumn{#1}{c}{#2}}
\newcommand{\mr}[2]{\multirow{#1}{*}{#2}}
\newcommand{\CC}[1]{\cellcolor{blue!#1}}
\begin{document}
\begin{table}
\centering
\renewcommand{\arraystretch}{1.2}
\setlength{\tabcolsep}{4pt}
\begin{tabular}{@{}*{6}{c} lccc}
\toprule
& & \mc{4}{Background}& & & &
\\
One & Two & \mc{2}{Amp} & \mc{2}{Spectrum} & \mr{2}{Subset} & Stuff
& \mc{2}{\mr{2}{Fraction}}
\\
Column & Column & $1$ & $0.1$ & $1$ & $0.1$
& & All (Coal) & \mc{2}{}
\\ \midrule
\mr{8}{Stuff}
& \mr{4}{0.6} & \mr{4}{3.7} & \mr{4}{15} & \mr{4}{-3}
& \mr{4}{-0.59}
& \CC{20} All & \CC{20} 29 (2.7) & \CC{20} $1875/9270$
& \CC{20} $(0.20)$ \\
& & & & &
& \CC{30}$\mu>0.2$ & \CC{30} 26 (2.2) & \CC{30}$ 1225/4759$
& \CC{30}$(0.26)$ \\
& & & & &
& \CC{20} $M>10^8$ & \CC{20} 17 (4.0) & \CC{20} $608/2610$
& \CC{20} $(0.23)$ \\
& & & & &
& \CC{30}$M>10^8$, $\mu>0.2$
& \CC{30}6.9 (3.3) & \CC{30}$214/478$
& \CC{30}$(0.45)$ \\
& \mr{4}{1.0} & \mr{4}{4.7} & \mr{4}{17}
& \mr{4}{-6} & \mr{4}{-0.38}
& \CC{10} All & \CC{10}7.7 (1.2) & \CC{10}$4634/9270$
& \CC{10}$(0.50)$ \\
& & & & &
& & 4.8 (1.0) & $ 2900/4759$
& $(0.61)$ \\
& & & & &
& \CC{10}$M>10^8$, & \CC{10}4.9 (0.79)& \CC{10}$1422/2610$
& \CC{10}$(0.54)$ \\
& & & & &
& \CC{20}$M>10^8$,$\mu>0.2$ & \CC{20}0.35 (0.35) & \CC{20}$472/478$ & \CC{20}$(0.99)$ \\
\bottomrule
\end{tabular}
\caption{huh, finally my wonderful table :-)}
\label{tab:params}
\end{table}
\end{document}
答案2
最新版本nicemtrix
(2021-08-10 的 v 6.0)有一个\rowlistcolors
专门\CodeBefore
针对此类问题的命令。
\documentclass[6pt, oneside]{article}
\usepackage{geometry}
\geometry{letterpaper}
\usepackage{graphicx}
\usepackage{amssymb}
\usepackage{booktabs}
\usepackage{nicematrix}
\usepackage{xcolor}
\begin{document}
\begin{table}
\centering
\renewcommand{\arraystretch}{1.2}
\setlength{\tabcolsep}{4pt}
\begin{NiceTabular}{@{}ccccw{c}{7mm}w{c}{1cm}lccc}
\CodeBefore
\rowlistcolors{4}{blue!05,blue!10,blue!20,blue!30}[restart,cols={7-10}]
\Body
\toprule
& & \Block{1-4}{Background}& & & &
\\
One & Two & \Block{1-2}{Amp}& & \Block{1-2}{Spectrum} & & \Block{2-1}{Subset} & Stuff
& \Block{2-2}{Fraction}
\\
Column & Column & $1$ & $0.1$ & $1$ & $0.1$
& & All (Coal) &
\\ \midrule
\Block{8-1}{Stuff}
& \Block{4-1}{$0.6$} & \Block{4-1}{$3.7$} & \Block{4-1}{$15$} & \Block{4-1}{$-3$}
& \Block{4-1}{$-0.59$}
& All & 29 (2.7) & $1875/9270$
& $(0.20)$ \\
& & & & &
& $\mu>0.2$ & 26 (2.2) & $ 1225/4759$
& $(0.26)$ \\
& & & & &
& $M>10^8$ & 17 (4.0) & $608/2610$
& $(0.23)$ \\
& & & & &
& $M>10^8$, $\mu>0.2$
& 6.9 (3.3) & $214/478$
& $(0.45)$ \\
& \Block{4-1}{$1.0$} & \Block{4-1}{$4.7$} & \Block{4-1}{$17$}
& \Block{4-1}{$-6$} & \Block{4-1}{$-0.38$}
& All & 7.7 (1.2) & $4634/9270$
& $(0.50)$ \\
& & & & &
& & 4.8 (1.0) & $ 2900/4759$
& $(0.61)$ \\
& & & & &
& $M>10^8$, & 4.9 (0.79)& $1422/2610$
& $(0.54)$ \\
& & & & &
& $M>10^8$, $\mu>0.2$ & 0.35 (0.35) & $472/478$ & $(0.99)$ \\
\bottomrule
\end{NiceTabular}
\caption{huh, finally my wonderful table :-)}
\label{tab:params}
\end{table}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。
答案3
您可以通过交替行和列颜色来获得此效果,如下所示:
\newcolumntype{g}{>{\columncolor{Gray}}c}
\begin{table}[ht]
\centering
\begin{tabular}{c|g|g|g|g|g|g|g}
\hline
\rowcolor{white}
&col1 &col2 &col3 &col4 & col5 &col6 &col7\\
\hline
\rowcolor{white}
row1& \ra & \ra & \ra & \ra & \ra & \ra & \ra \\
row2& \ra & \ra & \ra & \ra & \ra & \ra & \ra \\
\rowcolor{white}
row3& \ra & \ra & \ra & \ra & \ra & \ra & \ra \\
...
\hline
\end{tabular}
\end{table}
来源:突出显示表格行/列