我创建了一个彩色表格,但 \hhline 有问题。如下图所示,hhline 覆盖了表格的左边框。我该如何修复?
(使用 cline 不是一个选项,因为它不能很好地与彩色表格配合使用)。
以下是代码:
\begin{table}[H]
\centering
\renewcommand{\arraystretch}{1.5}
\rowcolors{2}{MidnightBlue!10}{white}
\begingroup\setlength{\fboxsep}{0pt}
\colorbox{MidnightBlue!30}{%
\begin{tabular}{|c|c|c|c|c|}
\hline
\rowcolor{MidnightBlue!30} & \multicolumn{2}{c|}{\textbf{test1}} & \multicolumn{2}{c|}{\textbf{test2}} \\
\hhline{~|-|-|-|-|}
\rowcolor{MidnightBlue!30} & & & & \\
\rowcolor{MidnightBlue!30} \multirow{-3}{*}{test3} & \multirow{-2}{*}{\shortstack{test1\\test}} & \multirow{-2}{*}{\shortstack{test2\\test}} & \multirow{-2}{*}{\shortstack{test1\\test}} & \multirow{-2}{*}{\shortstack{test2\\test}} \\
\hline
test & test & test & test & test \\
test & test & test & test & test \\
\hline
\end{tabular}%
}\endgroup
\caption{\textbf{test}}
\end{table}
答案1
{NiceTabular}
供参考,这里有一种使用构建表格的方法nicematrix
。您不会遇到在某些 PDF 查看器中在某些缩放级别下似乎消失的规则。
\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{float}
\usepackage{nicematrix}
\begin{document}
\begin{table}[H]
\centering
\renewcommand{\arraystretch}{1.5}
\begin{NiceTabular}{ccccc}[vlines]
\CodeBefore
\rowcolor{MidnightBlue!30}{1,2,3}
\rowcolors{3}{MidnightBlue!10}{}
\Body
\hline
\Block{3-1}{text3} & \Block{1-2}{\textbf{test1}} && \Block{1-2}{\textbf{test2}} \\
\Hline
& \Block{2-1}{test1\\test} & \Block{2-1}{test2\\test} & \Block{2-1}{test1\\test} & \Block{2-1}{test2\\test} \\ \\
\hline
test & test & test & test & test \\
test & test & test & test & test \\
\hline
\end{NiceTabular}
\end{table}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。