当我使用 xcolor 为我的论文制作带有彩色第一行的表格时,第一行中的垂直线在随机情况下表现不同(如“带颜色”图像中所示)。当我避免着色(只需取消注释“\usepackage[table]{xcolor}”和“\rowcolor{gray}”)时,它表现正常,没有任何问题(如“无颜色”图像中所示)。这里的问题是什么?什么是最简单有效的解决方案?为什么有些垂直线(列分隔符)比其他垂直线更暗?
\documentclass[a4paper,11pt]{book}
\usepackage[table]{xcolor}
\begin{document}
\begin{tabular}{ |c|c|c|c|c|c|c|c|c| }
\hline
\rowcolor{gray}
Hours of incubation & pH 5.0 & pH 6.0 & pH 7.0 & pH 7.5 & pH 8.0 & pH 8.5 & pH 9.0 & pH 10 \\ \hline
12 & 0.00 & 0.0238 & 0.4036 & 0.4397 & 0.4493 & 0.4349 & 0.3191 & 0.005 \\\hline
24 & 0.00 & 0.1319 & 1.7929 & 1.8368 & 1.8629 & 1.8032 & 1.4087 & 0.035\\\hline
\end{tabular}
\end{document}
答案1
这是一个众所周知的问题,主要与您的 PDF 阅读器有关。如果您将图片放大到足够大,您可能会再次看到这些线条。
此外,LaTeX 注重良好的排版,良好的排版不应该在表格中混合水平线和颜色。也不应该使用垂直线。
阅读软件包的文档书签学习如何创建美观的表格。
如果你坚持同时使用颜色和线条,我建议你仔细看看卡路里,它处理单元格背景颜色和规则。下面是此类表格的源代码。我还包含了另外两个表格,使用tabular
、booktabs
和array
,并且不混合水平规则和颜色,并且没有垂直规则。当您使用时,\rowcolor
您不应该删除表格的侧边距(@{}
,因为这样 `@{} 不会从侧边距中删除颜色:
卡尔斯特布尔
\documentclass[a4paper,11pt]{book}
\usepackage{xcolor}
\usepackage{cals}
\begin{document}
\begin{calstable}[c]
% Defining column relativ to each other and relativ to the margins
\colwidths{{\dimexpr(1.5\columnwidth)/9\relax}
{\dimexpr(\columnwidth)/9\relax}
{\dimexpr(\columnwidth)/9\relax}
{\dimexpr(\columnwidth)/9\relax}
{\dimexpr(\columnwidth)/9\relax}
{\dimexpr(\columnwidth)/9\relax}
{\dimexpr(\columnwidth)/9\relax}
{\dimexpr(\columnwidth)/9\relax}
{\dimexpr(\columnwidth)/9\relax}
}
% The tabular fills the text area
% Set up the tabular
\makeatletter
\def\cals@framers@width{0.8pt} % Outside frame rules, reduce if the rule is too heavy
\def\cals@framecs@width{0.4pt}
\def\cals@bodyrs@width{0.8pt}
\cals@setpadding{Ag}
\cals@setcellprevdepth{Al}
\def\cals@cs@width{0.4pt} % Inside rules, reduce if the rule is too heavy
\def\cals@rs@width{0.4pt}
\def\cals@bgcolor{}
\setlength{\cals@paddingR}{3pt}
\setlength{\cals@paddingR}{3pt}
\def\gray{\ifx\cals@bgcolor\empty % "Switch" to turn on and off colour
\def\cals@bgcolor{gray!30}
\else \def\cals@bgcolor{} \fi}
% R1
\thead{\bfseries\footnotesize
\brow
\gray\alignC\cell{\vfil Hours of incubation }
\cell{\vfil pH 5.0}
\cell{\vfil pH 6.0}
\cell{\vfil pH 7.0}
\cell{\vfil pH 7.5}
\cell{\vfil pH 8.0}
\cell{\vfil pH 8.5}
\cell{\vfil pH 9.0}
\cell{\vfil pH 10}\gray
\erow
\mdseries
}
\tfoot{%
\lastrule\nointerlineskip%
%\textit{\strut Some table caption%
%}%
\par%
}
% R2 Body
\brow
\alignC\cell{12}
\cell{0.00}
\cell{0.0238}
\cell{0.4036}
\cell{0.4397}
\cell{0.4493}
\cell{0.4349}
\cell{0.3191}
\cell{0.005}
\erow
% R3 Body
\brow
\alignC\cell{24}
\cell{0.00}
\cell{0.1319}
\cell{1.7929}
\cell{1.8368}
\cell{1.8629}
\cell{1.8032}
\cell{1.4087}
\cell{0.035}
\erow
\makeatletter
\end{calstable}\par % \par to align the tabular
\end{document}
备择方案
下面也是一个使用\rowcolor
但没有规则的表格和一个booktabs
-tabular。请注意,这两个表格都比 更宽\linewidth
,但我假设您在文档中使用了不同的边距。如果不是,请尝试使用 来\footnotesize
减小宽度:
\documentclass[a4paper,11pt]{book}
\usepackage[table]{xcolor}
\usepackage{array, booktabs}
\begin{document}
{\setlength{\extrarowheight}{2pt}\centering
\begin{tabular}{>{\centering}p{2cm}cccccccr}
\rowcolor{gray!30}
Hours of incubation & pH 5.0 & pH 6.0 & pH 7.0 & pH 7.5 & pH 8.0 & pH 8.5 & pH 9.0 & pH 10 \\
12 & 0.00 & 0.0238 & 0.4036 & 0.4397 & 0.4493 & 0.4349 & 0.3191 & 0.005 \\
24 & 0.00 & 0.1319 & 1.7929 & 1.8368 & 1.8629 & 1.8032 & 1.4087 & 0.035\\\bottomrule
\end{tabular}
}
\vspace{3\baselineskip}
{%\setlength{\extrarowheight}{2pt}
\centering
\begin{tabular}{@{}>{\centering}p{2cm}cccccccr@{}}
\toprule
Hours of incubation & pH\,5.0 & pH\,6.0 & pH\,7.0 & pH\,7.5 & pH\,8.0 & pH\,8.5 & pH\,9.0 & pH\,10\\\midrule
12 & 0.00 & 0.0238 & 0.4036 & 0.4397 & 0.4493 & 0.4349 & 0.3191 & 0.005 \\
24 & 0.00 & 0.1319 & 1.7929 & 1.8368 & 1.8629 & 1.8032 & 1.4087 & 0.035\\\bottomrule
\end{tabular}
}
\end{document}
答案2
该软件包nicematrix
有专门用于解决此类问题的工具。在其环境中{NiceTabular}
,无论您使用哪种 PDF 查看器,在各种缩放级别,规则都不会消失。
\documentclass[a4paper,11pt]{book}
\usepackage{xcolor,nicematrix}
\begin{document}
\begin{NiceTabular}{ccccccccc}[colortbl-like,hvlines]
\rowcolor{gray}
Hours of incubation & pH 5.0 & pH 6.0 & pH 7.0 & pH 7.5 & pH 8.0 & pH 8.5 & pH 9.0 & pH 10 \\
12 & 0.00 & 0.0238 & 0.4036 & 0.4397 & 0.4493 & 0.4349 & 0.3191 & 0.005 \\
24 & 0.00 & 0.1319 & 1.7929 & 1.8368 & 1.8629 & 1.8032 & 1.4087 & 0.035 \\
\end{NiceTabular}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。