我创建了一个表格,其中的各行颜色交替变化,但是 /hline 的行为异常。
第一和第二个 /hline 正常工作,但是在此之后,交替的 /hline 仅显示为垂直列线旁边的小破折号
\usepackage[table]{xcolor}
\begin{table}[ht]
\rowcolors{2}{gray!25}{white}
\begin{tabular}{l | l|}
\hline
\rowcolor{gray!25}
text part 1 & test part 2 \\
Priority & High \\ \hline
text part 1 & test part 2 \\
Priority & High \\ \hline %this hline doesnt show
text part 1 & test part 2 \\
Priority & High \\ \hline
text part 1 & test part 2 \\
Priority & High \\ \hline %this hline doesnt show
text part 1 & test part 2 \\
Priority & High \\ \hline
text part 1 & test part 2 \\
Priority & High \\ \hline
\end{tabular}
\end{table}
有人知道我做错了什么吗?谢谢。
答案1
这是一个已记录的问题,会影响 PDF 中线条的显示\hline
,并影响一些 PDF 查看器(Adobe 的 Acrobat 可能无法显示线条,而 Apple 的 Preview 可能会显示良好)。在大多数情况下,该问题不会影响您在纸上看到的打印输出。
但是,如果它仍然困扰您,您可以\hline
使用\midrule
booktabs 包替换您的来解决这个问题:
\documentclass[]{article}
\usepackage[table]{xcolor}
\usepackage{booktabs}
\setlength{\aboverulesep}{0pt}
\setlength{\belowrulesep}{0pt}
\begin{document}
\begin{table}[ht]
\rowcolors{2}{gray!25}{white}
\begin{tabular}{l | l|}
\toprule
\rowcolor{gray!25}
text part 1 & test part 2 \\
Priority & High \\ \midrule
text part 1 & test part 2 \\
Priority & High \\ \midrule
text part 1 & test part 2 \\
Priority & High \\ \midrule
text part 1 & test part 2 \\
Priority & High \\ \midrule
text part 1 & test part 2 \\
Priority & High \\ \midrule
text part 1 & test part 2 \\
Priority & High \\ \bottomrule
\end{tabular}
\end{table}
\end{document}
也可以看看:\cline 不起作用—— 潜在的问题不同,但解决方法类似。
答案2
该软件包nicematrix
有专门用于解决该问题的工具。{NiceTabular}
使用nicematrix
,无论您使用哪种 PDF 查看器,规则似乎都不会消失(根据设计)。
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{table}[ht]
\begin{NiceTabular}{l|l|}
\CodeBefore
\rowcolor{gray!25}{1}
\rowcolors{2}{gray!25}{white}
\Body
\hline
text part 1 & test part 2 \\
Priority & High \\ \hline
text part 1 & test part 2 \\
Priority & High \\ \hline
text part 1 & test part 2 \\
Priority & High \\ \hline
text part 1 & test part 2 \\
Priority & High \\ \hline
text part 1 & test part 2 \\
Priority & High \\ \hline
text part 1 & test part 2 \\
Priority & High \\ \hline
\end{NiceTabular}
\end{table}
\end{document}
但是,您需要进行多次编译(因为nicematrix
在后台使用了 PGF/TikZ 节点)。