hhline 擦除表格边框

hhline 擦除表格边框

我创建了一个彩色表格,但 \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 节点)。

上述代码的输出

相关内容