仅对某些列交替显示行颜色

仅对某些列交替显示行颜色

我希望只对特定列(理想情况下,也只对行的子集)交替使用行颜色,并使用多行和多列的表格。我发现\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}

来源:突出显示表格行/列

相关内容