\rowcolor 表示 \multirow

\rowcolor 表示 \multirow

文本\multirow被背景颜色覆盖。有人知道原因并能修复吗?

在此处输入图片描述

\begin{table}[h]
    \caption{caption} 
    \label{tab} 
    \centering
    \begin{tabular}{cccccc}
        \toprule
        & & A & B & C & D \\
        \midrule
        \rowcolor{gray!10}
            \multirow{2}{*}{Rosso}  & Pruning & - & - & 6-C-Pr & - \\
        \rowcolor{gray!10}
                                & Stalks & - & - & 6-C-S & - \\
            \multirow{2}{*}{Verde}  & Pruning & - & - & 6-M-Pr & - \\
                                & Stalks & - & - & 6-M-S & - \\
        \rowcolor{gray!10}
            \multirow{2}{*}{Blu}    & Pruning & 4-Pa-Pr & 5-Pa-Pr & 6-Pa-Pr & 7-Pa-Pr \\
        \rowcolor{gray!10}
                                & Stalks & 4-Pa-S & 5-Pa-S & 6-Pa-S & 7-Pa-S \\
            \multirow{2}{*}{Bianco}         & Pruning & - & - & 6-W-Pr & - \\
                                & Stalks & - & - & 6-W-Pr & - \\
            \bottomrule
        \end{tabular}
\end {table}

答案1

如果\multirow命令放在两行的上方,则其文本将被放置,而下一个表格\rowcolor行将覆盖下部。因此,\multirow最好将 移到两行的下方。然后,当 的文本被放置时,两行的背景颜色已经设置\multirow

\documentclass{article}
\usepackage{booktabs}
\usepackage{caption}
\usepackage{colortbl}
\usepackage{xcolor}
\usepackage{multirow}

\begin{document}
\begin{table}[h]
  \caption{caption}
  \label{tab}
  \centering
  \begin{tabular}{cccccc}
    \toprule
    & & A & B & C & D \\
    \midrule
    \rowcolor{gray!10}
    & Pruning & -- & -- & 6-C-Pr & -- \\
    \rowcolor{gray!10}
    \multirow{-2}{*}{Rosso}
    & Stalks & -- & -- & 6-C-S & -- \\
    & Pruning & -- & -- & 6-M-Pr & -- \\
    \multirow{-2}{*}{Verde}
    & Stalks & -- & -- & 6-M-S & -- \\
    \rowcolor{gray!10}
    & Pruning & 4-Pa-Pr & 5-Pa-Pr & 6-Pa-Pr & 7-Pa-Pr \\
    \rowcolor{gray!10}
    \multirow{-2}{*}{Blu}
    & Stalks & 4-Pa-S & 5-Pa-S & 6-Pa-S & 7-Pa-S \\
    & Pruning & -- & -- & 6-W-Pr & -- \\
    \multirow{-2}{*}{Bianco}
    & Stalks & -- & -- & 6-W-Pr & -- \\
    \bottomrule
  \end{tabular}
\end {table}
\end{document}

结果

答案2

我建议对表格进行以下改进:由于booktabs在规则周围引入了垂直间距,导致彩色行中出现白条,我将 booktabs 中的规则命令替换为来自小包boldlineshipunov捆绑包的可变宽度规则命令,并使用包在行单元格上方和下方添加垂直填充cellspace,从而确保以字母为前缀的列的每个单元格的顶部和底部具有最小的垂直间距S

\documentclass{article}

\usepackage{caption}
\usepackage[table]{xcolor}
\usepackage{multirow}
\usepackage{boldline}
\usepackage{cellspace}
\setlength\cellspacetoplimit{4pt}
\setlength\cellspacebottomlimit{4pt}

\begin{document}

\begin{table}[h]
  \caption{caption}
  \label{tab}
  \centering
  \begin{tabular}{*{6}{Sc}}
    \hlineB{2}
    & & A & B & C & D \\
   \hlineB{1.25}
    \rowcolor{gray!10}
    & Pruning & -- & -- & 6-C-Pr & -- \\
    \rowcolor{gray!10}
    \multirow{-2}{*}{Rosso}
    & Stalks & -- & -- & 6-C-S & -- \\
    & Pruning & -- & -- & 6-M-Pr & -- \\
    \multirow{-2}{*}{Verde}
    & Stalks & -- & -- & 6-M-S & -- \\
    \rowcolor{gray!10}
    & Pruning & 4-Pa-Pr & 5-Pa-Pr & 6-Pa-Pr & 7-Pa-Pr \\
    \rowcolor{gray!10}
    \multirow{-2}{*}{Blu}
    & Stalks & 4-Pa-S & 5-Pa-S & 6-Pa-S & 7-Pa-S \\
    & Pruning & -- & -- & 6-W-Pr & -- \\
    \multirow{-2}{*}{Bianco}
    & Stalks & -- & -- & 6-W-Pr & -- \\
    \hlineB{2}
  \end{tabular}
\end {table}

\end{document} 

在此处输入图片描述

答案3

您可以使用具有以下优点的构造该{NiceTabular}nicematrix

  • 彩色行将自动遵守规则booktabs
  • 您不必使用\multicolumn消极的论点:您可以用\Block积极的论点。
  • \rowcolors您可以使用 中的命令交替为逻辑行着色\CodeBefore
  • 您将在各个缩放级别的所有 PDF 查看器中获得良好的输出(比使用 更好colortbl)。

有一个缺点:你需要多次编译(因为nicematrix在后台使用了 PGF/Tikz 节点)。

\documentclass{article}
\usepackage{caption}
\usepackage{nicematrix}
\usepackage{booktabs}

\begin{document}


\begin{table}[h]
\caption{caption}
\label{tab}
\centering
\begin{NiceTabular}{*{6}{c}}[cell-space-limits=4pt]
\CodeBefore
  \rowcolors{1}{}{gray!10}[respect-blocks]
\Body
  \toprule
  & & A & B & C & D \\
 \midrule
  \Block{2-1}{Rosso}
  & Pruning & -- & -- & 6-C-Pr & -- \\
  & Stalks & -- & -- & 6-C-S & -- \\
  \Block{2-1}{Verde}
  & Pruning & -- & -- & 6-M-Pr & -- \\
  & Stalks & -- & -- & 6-M-S & -- \\
  \Block{2-1}{Blu}
  & Pruning & 4-Pa-Pr & 5-Pa-Pr & 6-Pa-Pr & 7-Pa-Pr \\
  & Stalks & 4-Pa-S & 5-Pa-S & 6-Pa-S & 7-Pa-S \\
  \Block{2-1}{Bianco}
  & Pruning & -- & -- & 6-W-Pr & -- \\
  & Stalks & -- & -- & 6-W-Pr & -- \\
  \bottomrule
\end{NiceTabular}
\end {table}

\end{document} 

上述代码的输出

相关内容