使用 \hhline 时表格顶部边框下方的间隙

使用 \hhline 时表格顶部边框下方的间隙

我正在使用下面的代码生成表格。但第一条边框线后有一些间隙。如果我将表格中的所有 更改为\hhline\hline,间隙似乎会消失\cline。我想知道问题是什么,以及如何在使用 的同时消除这个间隙\hhline?谢谢。(PS:我必须使用\hhline以避免某些颜色单元格的边框被颜色覆盖。)

\documentclass{article}

\usepackage{amsmath}\allowdisplaybreaks
\usepackage{amssymb}
\usepackage{mathrsfs}
\usepackage{bm}
%\usepackage{algorithm}
%\usepackage{algorithmic}
\usepackage{color}
\usepackage{url}
\usepackage{graphicx}
\usepackage{cite}
\usepackage[shortlabels]{enumitem}
\usepackage[nodisplayskipstretch]{setspace}\doublespacing
\usepackage{hyperref}
\usepackage[table]{xcolor}
\usepackage{multirow}
\usepackage{makecell}
\usepackage{tablefootnote}
\usepackage{subfigure}
\usepackage{hhline}
\usepackage[many]{tcolorbox}
\usepackage{arydshln}

\begin{document}
\begin{table}[!htbp]
 \renewcommand{\arraystretch}{1.5}
 \small
 \centering
 \begin{tabular}{|c|c|c|c|c|}
 \hline
 & a & b & c & d\\
 \hhline{=====}
 \multirow{8}{*}{\rotatebox[origin=c]{90}{YES}} & a & b & c & d\\
 \hhline{~----}
 & a & \cellcolor{gray!20}b & c & d\\
 \hhline{~----}
 & a & b & c & d\\
 \Xcline{2-5}{1.5pt}
 & a & b & c & d\\
 \hhline{~----}
 & a & b & c & d\\
 \Xcline{2-5}{1.5pt}
 & a & b & c & d\\
 \hhline{~----}
 & a & b & c & d\\
 \hhline{~----}
 & a & b & c & d\\
 \hline
 \end{tabular}\label{table:1}
\end{table}
\end{document}

在此处输入图片描述

更新:

当我注释掉包时arydshln,间隙消失了。这里似乎有些冲突。但我必须使用arydshln来绘制一些虚线,例如\cdashline{1-2}。有什么办法可以解决这个问题吗?谢谢。

答案1

这里有一些奇怪的交互arydshln 我只是添加了一些负空间来缩小间隙,并添加了一个不可见的 0 宽度规则来延长第一行的可见规则,

\documentclass{article}


\usepackage{color}
\usepackage{url}
\usepackage{graphicx}
\usepackage[table]{xcolor}
\usepackage{multirow}
\usepackage{makecell}

\usepackage{arydshln}
\usepackage{hhline}

\begin{document}
\begin{table}[!htbp]
 \renewcommand{\arraystretch}{1.5}
 \small
 \centering
 \begin{tabular}{|c|c|c|c|c|}
\hline\noalign{\vskip-4pt}
 \rule{0pt}{14pt} & a & b & c & d\\
 \hhline{=====}
 \multirow{8}{*}{\rotatebox[origin=c]{90}{YES}} & a & b & c & d\\
 \hhline{~----}
 & a & \cellcolor{gray!20}b & c & d\\
 \hhline{~----}
 & a & b & c & d\\
 \Xcline{2-5}{1.5pt}
 & a & b & c & d\\
 \hhline{~----}
 & a & b & c & d\\
 \Xcline{2-5}{1.5pt}
 & a & b & c & d\\
 \hhline{~----}
 & a & b & c & d\\
 \hhline{~----}
 & a & b & c & d\\
 \hline
 \end{tabular}\label{table:1}
\end{table}
\end{document}

答案2

{NiceTabular}供参考,这里有一个用构建表格的简单方法nicematrix。我添加了虚线以显示可以绘制这样的规则。

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{mathrsfs}
\usepackage{bm}
\usepackage{graphicx}
\usepackage{cite}
\usepackage{hyperref}
\usepackage{xcolor}
\usepackage{tablefootnote}
\usepackage{subfigure}
\usepackage{nicematrix,tikz}

\begin{document}
\begin{table}[!htbp]
 \renewcommand{\arraystretch}{1.5}
 \small
 \centering
 \begin{NiceTabular}{ccccc}[hvlines,color-inside]
 & a & b & c & d\\
\Hline\Hline
 \Block{8-1}{\rotate YES} & a & b & c & d\\
 & a & \cellcolor{gray!20}b & c & d\\
 & a & b & c & d\\
 \Hline[tikz = very thick]
 & a & b & c & d\\
 & a & b & c & d\\
 \Hline[tikz = very thick]
 & a & b & c & d\\
 & a & b & c & d\\
 & a & b & c & d\\
 \CodeAfter \tikz \draw [dashed] (9-|1) -- (9-|2) ; 
 \end{NiceTabular}\label{table:1}
\end{table}
\end{document}

上述代码的输出

相关内容