我正在使用下面的代码生成表格。但第一条边框线后有一些间隙。如果我将表格中的所有 更改为\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}