去除深色单元格中的细白线

去除深色单元格中的细白线

我见过类似的问题,但到目前为止我发现的所有问题都对我没什么帮助……我有一张相当复杂的表格(我从另一个来源改编而来,所以我无法真正改变结构),而且我无法从多行单元格中去除细白线。真正的表格更大,但这里有一个足够的示例来展示这个问题:

\usepackage[table,svgnames,xcdraw]{xcolor}
\usepackage{array, colortbl, multirow, graphicx}
\begin{table}[]
\centering
\resizebox{\textwidth}{!}{%
\begin{tabular}{llccccc}
\rowcolor[HTML]{000000} 
\multicolumn{2}{c|}{\cellcolor[HTML]{000000}{\color[HTML]{FFFFFF} }} & 
\multicolumn{2}{c}{\cellcolor[HTML]{000000}{\color[HTML]{FFFFFF} Volume (M)}} & \multicolumn{3}{c}{\cellcolor[HTML]{000000}{\color[HTML]{FFFFFF} Cost Savings (\$M)}} \\ \cline{3-4}
\rowcolor[HTML]{000000} 
\multicolumn{2}{c|}{\multirow{-2}{*}{\cellcolor[HTML]{000000}{\color[HTML]{FFFFFF} Transaction Type}}} & {\color[HTML]{FFFFFF} Plans} & {\color[HTML]{FFFFFF} Providers} & {\color[HTML]{FFFFFF} Plans} & {\color[HTML]{FFFFFF} Providers} & {\color[HTML]{FFFFFF} Total} \\
\end{tabular}%
}

仔细观察,你甚至可以看到文字中的细白线

所以我当然不希望出现那些细细的白线,尤其是穿过文本的白线。提前谢谢您。

编辑:即使放大,使用预览或 Mac OSX 10.12.4 上 TexShop 的内置 PDF 查看功能,我也能看到细细的白线,如果单击原始帖子中的图像,您可以清楚地看到完全放大的图像中的白线。

答案1

对于垂直线,您可以尝试在默认悬垂部分上多加一点(例如 0.1pt),以便颜色重叠。对于水平线,将第二条线稍微向上移动会有所帮助。请注意,这可能会影响表格之间的线条。

\documentclass{scrartcl}
\usepackage[table,svgnames,xcdraw]{xcolor}
\usepackage{array, colortbl, multirow, graphicx}

\begin{document}
\begin{table}[]
\centering
\resizebox{\textwidth}{!}{%
\begin{tabular}{llccccc}
\rowcolor[HTML]{000000}[\dimexpr\tabcolsep+0.1pt\relax] %overhang
\multicolumn{2}{c|}{\cellcolor[HTML]{000000}{\color[HTML]{FFFFFF} }} &
\multicolumn{2}{c}{\cellcolor[HTML]{000000}{\color[HTML]{FFFFFF} Volume (M)}} & \multicolumn{3}{c}{\cellcolor[HTML]{000000}{\color[HTML]{FFFFFF} Cost Savings (\$M)}} \\[-0.1pt] \cline{3-4} % a bit up
\rowcolor[HTML]{000000}[\dimexpr\tabcolsep+0.1pt\relax] %overhang
\multicolumn{2}{c|}{\multirow{-2}{*}{\cellcolor[HTML]{000000}{\color[HTML]{FFFFFF} Transaction Type}}} & {\color[HTML]{FFFFFF} Plans} & {\color[HTML]{FFFFFF} Providers} & {\color[HTML]{FFFFFF} Plans} & {\color[HTML]{FFFFFF} Providers} & {\color[HTML]{FFFFFF} Total} \\
\end{tabular}%
}
\end{table}
\end{document}

为了获得真正完美的颜色,我通常使用 tikz,就像这个例子一样带填充的单元格的背景颜色

答案2

当两个相邻的单元格用两个不同的指令( PDF 流中调用的 PostScriptfill运算符)着色时,某些 PDF 引擎(例如 SumatraPDF 中使用的 muPDF)中会出现细白线。fillf

使用时,即使使用或colortbl,每个单元格都会根据自己的指令进行着色。fill\columncolor\rowcolor

该软件包nicematrix提供了解决该问题的工具。在该软件包提供的环境中{NiceTabular},在数组下创建了一些 PGF/Tikz 节点,用于绘制规则和为单元格着色。因此,在您的情况下,您只需要填充一个矩形(仅使用一条指令fill)。

\documentclass{article}
\usepackage{nicematrix}
\begin{document}

\begin{center}
\color{white}
\begin{NiceTabular}{cccccc}
\CodeBefore
  \arraycolor{black}
\Body
  \Block{2-1}{Transaction Type}
  & \Block{1-2}{Volume (M)} &           & \Block{1-3}{Cost Savings (\$M)} \\ 
  & Plans                   & Providers & Plans  & Providers & Total      \\
\end{NiceTabular}
\end{center}

\end{document}

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

上述代码的输出

相关内容