行颜色未填满整个单元格

行颜色未填满整个单元格

所以我尝试为表格中的行着色,但在我使用的行中\makecell,着色无法正常工作。有人知道这个问题的解决方案吗?

\usepackage{xcolor, colortbl} %kleurtjes voor table
\definecolor{TopRow}{rgb}{0.4,0.7,1}
\definecolor{NormalRow}{rgb}{0.8,0.9,1}
\usepackage{makecell}

    \begin{center}
    \begin{tabular}{|l|l|l|}
    \hline
    \rowcolor{TopRow}
    \textbf{Peptide Enrichtments} & \textbf{Hits} & \textbf{Found Genes} \\
    \hline
    \rowcolor{NormalRow}
    Nothing &3 & \makecell[lt]{RAB5C \\ TNKS1BP1 \\ WDR43}\\
    \hline
    20X dilution& 1 & AHCY \\
    \hline
    \rowcolor{NormalRow}
    TiO2& 2 & \makecell[lt]{TNKS1BP1\\ITPR2}\\
    \hline
    TiO2-3 &0& -\\
    \hline
    \rowcolor{NormalRow}
    Fe-NTA & 0&- \\
    \hline
    \end{tabular}
    \end{center}

rowcolor doesn't fill whole cell

编辑:

所以我做了以下事情:

Nothing &3 & {\colorbox{NormalRow}{\makecell[lt]{RAB5C \\ TNKS1BP1 \\ WDR43}}}\\

但是现在对齐已经很好了。有人有解决方案吗? After using \colorbox the alignment isn't correct anymore

答案1

我建议放弃使用 ,而不是尝试使makecell和兼容。您可以在不使用 的情况下实现相同的布局,如以下 MWE 所示:colortblmakecell

\documentclass{article}

\usepackage[table]{xcolor}
\definecolor{TopRow}{rgb}{0.4,0.7,1}
\definecolor{NormalRow}{rgb}{0.8,0.9,1}

\begin{document}

\begin{tabular}{|l|l|l|}
  \hline
  \rowcolor{TopRow}
    \textbf{Peptide Enrichtments} & \textbf{Hits} & \textbf{Found Genes} \\
  \hline
  \rowcolor{NormalRow}
    Nothing & 3 & RAB5C \\
  \rowcolor{NormalRow}
            &   & TNKS1BP1 \\
  \rowcolor{NormalRow}
            &   & WDR43 \\
  \hline
    20X dilution& 1 & AHCY \\
  \hline
  \rowcolor{NormalRow}
    TiO2 & 2 & TNKS1BP1\\
  \rowcolor{NormalRow}
         &   & ITPR2 \\
  \hline
    TiO2-3 &0& -\\
  \hline
  \rowcolor{NormalRow}
    Fe-NTA & 0&- \\
  \hline
\end{tabular}

\end{document}

enter image description here


当您使用颜色作为表格中的结构元素时,您可能还会考虑删除所有水平和垂直规则。在下面的示例中,我还添加了一些额外的垂直空间:

\documentclass{article}

\usepackage[table]{xcolor}
\definecolor{TopRow}{rgb}{0.4,0.7,1}
\definecolor{NormalRow}{rgb}{0.8,0.9,1}

\begin{document}
\begingroup
\renewcommand{\arraystretch}{1.2}
\begin{tabular}{lll}
  \rowcolor{TopRow}
    \textbf{Peptide Enrichtments} & \textbf{Hits} & \textbf{Found Genes} \\
  \rowcolor{NormalRow}
    Nothing & 3 & RAB5C \\
  \rowcolor{NormalRow}
            &   & TNKS1BP1 \\
  \rowcolor{NormalRow}
            &   & WDR43 \\
    20X dilution& 1 & AHCY \\
  \rowcolor{NormalRow}
    TiO2 & 2 & TNKS1BP1\\
  \rowcolor{NormalRow}
         &   & ITPR2 \\
    TiO2-3 &0& -\\
  \rowcolor{NormalRow}
    Fe-NTA & 0&- \\
\end{tabular}
\endgroup

\end{document}

enter image description here


最后一个例子展示了一种更简约的方法,没有颜色和粗体文本,但使用包中的空白和规则booktabs作为结构元素:

\documentclass{article}
\usepackage{booktabs}

\begin{document}
\begin{tabular}{lll}
\toprule
    Peptide Enrichtments & Hits & Found Genes \\
\midrule
    Nothing      & 3 & RAB5C    \\
                 &   & TNKS1BP1 \\
                 &   & WDR43    \\\addlinespace
    20X dilution & 1 & AHCY     \\\addlinespace
    TiO2         & 2 & TNKS1BP1 \\
                 &   & ITPR2    \\\addlinespace
    TiO2-3       & 0 & -        \\\addlinespace
    Fe-NTA       & 0 & -        \\
\bottomrule
\end{tabular}

\end{document}

enter image description here

答案2

这是一个{NiceTabular}使用 的解决方案nicematrix。该环境提供了一个命令\rowcolors(即所谓的),当使用密钥时,\CodeBefore该命令会遵守 创建的块。\Blockrespect-blocks

您将在所有 PDF 查看器、所有缩放级别中获得完美的输出。

\documentclass{article}
\usepackage{nicematrix,xcolor}

\begin{document}

\begin{NiceTabular}{|l|l|l|}
\CodeBefore
  \rowcolor[rgb]{0.4,0.7,1}{1}
  \rowcolors[rgb]{2}{}{0.8,0.9,1}[respect-blocks]
\Body
\Hline
    \textbf{Peptide Enrichtments} & \textbf{Hits} & \textbf{Found Genes} \\
\Hline
    \Block{3-1}{}
    Nothing & 3 & RAB5C \\
            &   & TNKS1BP1 \\
            &   & WDR43 \\
\Hline
    20X dilution& 1 & AHCY \\
\Hline
    \Block{2-1}{}
    TiO2 & 2 & TNKS1BP1\\
         &   & ITPR2 \\
\Hline
    TiO2-3 &0& -\\
\Hline
    Fe-NTA & 0&- \\
\Hline
\end{NiceTabular}

\end{document}

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

Output of the above code

相关内容