如何使表格中的某一行具有相同的颜色

如何使表格中的某一行具有相同的颜色

我正在制作一张具有斑马色的表格。但我面临的一个问题是灰色单元格看起来不像图像所示的那样均匀。这是我的代码:

\newcolumntype{g}{>{\columncolor{Gray}}c}
\begin{table}[htp]
\centering
\begin{tabular}{|p{6cm}|p{10cm}|}
\hline
\rowcolor{white}
\thead{Example} & \thead{Example}\\
\hline
\rowcolor{Gray}
Example1 & bla\\
\rowcolor{Gray}
& bla\\ 
\rowcolor{Gray}
& bla\\
\hline
\rowcolor{white}
Example1 & bla\\
& bla\\
& bla\\
\hline
\end{tabular}
\end{table}

看图片 我该怎么做才能避免这种情况?提前谢谢

答案1

该软件包nicematrix提供了一个{NiceTabular}带有工具的环境,该工具的设计目的是避免这些细白线(出现在一些使用 PDF 渲染器 MuPDF 和 PDF.js 的 PDF 查看器中:SumatraPDF、Firefox、DropBox、Papeeria 等)。

\documentclass{article}
\usepackage[svgnames]{xcolor}
\usepackage{nicematrix}
\usepackage{makecell} % for \thead

\begin{document}

\begin{table}[htp]
\centering
\begin{NiceTabular}{|p{6cm}|p{5cm}|}[color-inside]
\Hline
\thead{Example} & \thead{Example}\\
\Hline
\rowcolor{LightGray}
Example1 & bla\\
\rowcolor{LightGray}
& bla\\ 
\rowcolor{LightGray}
& bla\\
\Hline
Example1 & bla\\
& bla\\
& bla\\
\Hline
\end{NiceTabular}
\end{table}

\end{document}

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

上述代码的输出

存在句法变体。

例如,您可以指定\RowStyle希望接下来的三行具有背景。

\documentclass{article}
\usepackage[svgnames]{xcolor}
\usepackage{nicematrix}
\usepackage{makecell} % for \thead

\begin{document}

\begin{table}[htp]
\centering
\begin{NiceTabular}{|p{6cm}|p{5cm}|}[color-inside]
\Hline
\thead{Example} & \thead{Example}\\
\Hline
\RowStyle[nb-rows=3,rowcolor=LightGray]{}
Example1 & bla\\
& bla\\ 
& bla\\
\Hline
Example1 & bla\\
& bla\\
& bla\\
\Hline
\end{NiceTabular}
\end{table}

\end{document}

\rowlistcolors{LightGray}您还可以输入开始着色和\rowlistcolors{}停止着色的指令。

\documentclass{article}
\usepackage[svgnames]{xcolor}
\usepackage{nicematrix}
\usepackage{makecell} % for \thead

\begin{document}

\begin{table}[htp]
\centering
\begin{NiceTabular}{|p{6cm}|p{5cm}|}[color-inside]
\Hline
\thead{Example} & \thead{Example}\\
\Hline
\rowlistcolors{LightGray}
Example1 & bla\\
& bla\\ 
& bla\\
\Hline
\rowlistcolors{}
Example1 & bla\\
& bla\\
& bla\\
\Hline
\end{NiceTabular}
\end{table}

\end{document}

也可以将颜色说明放在表格本身之外(即所谓的\CodeBefore提供nicematrix)。

\documentclass{article}
\usepackage[svgnames]{xcolor}
\usepackage{nicematrix}
\usepackage{makecell} % for \thead

\begin{document}

\begin{table}[htp]
\centering
\begin{NiceTabular}{|p{6cm}|p{5cm}|}
\CodeBefore
    \rowcolor{LightGray}{2-4}
\Body
    \Hline
    \thead{Example} & \thead{Example}\\
    \Hline
    Example1 & bla\\
    & bla\\ 
    & bla\\
    \Hline
    Example1 & bla\\
    & bla\\
    & bla\\
    \Hline
\end{NiceTabular}
\end{table}

\end{document}

输出总是一样的。

相关内容