长表与水平线问题

长表与水平线问题

大家好,我想制作长表,因此我写了以下代码:

\documentclass[a4paper,11pt,english]{report}

\usepackage{longtable}
 \usepackage{multirow}
 \usepackage{graphicx}
 \usepackage[table,xcdraw]{xcolor}
\usepackage{lipsum} % just for dummy text- not needed for a longtable

\begin{document}
\lipsum[1]
\lipsum[1]
\lipsum[1]

\definecolor{lightgray}{HTML}{EFEFEF}
\setlength\arrayrulewidth{.5pt}
\begin{longtable}{|
>{\columncolor{lightgray}}p{0.2\linewidth} | p{0.175\linewidth} |}
\hline
foo & bar \\[.5pt]\noalign{\nobreak\vskip-.5pt} \hline\noalign{\nobreak\vskip.5pt}
foo & bar \\ \cline{2-2}
foo & bar \\ \cline{2-2}
foo & bar \\ \cline{2-2}
foo & bar \\ \cline{2-2}
foo & bar \\ \cline{2-2}
foo & bar \\ \cline{2-2}
foo & bar \\ \cline{2-2}
foo & bar \\ \cline{2-2}
foo & bar \\ \cline{2-2}
foo & bar \\[.5pt]\noalign{\nobreak\vskip-.5pt} \hline\noalign{\nobreak\vskip.5pt}
\caption{Your caption here} % needs to go inside longtable environment
\label{tab:myfirstlongtable}
\end{longtable} 

Table \ref{tab:myfirstlongtable} shows my first longtable.
\end{document}

代码运行良好,但有一个小问题:当表格分成多个页面时,页面之间没有绘制水平线,下面是我突出显示问题的输出:

在此处输入图片描述

我想要在第 1 页的表格末尾和第 2 页的表格开头绘制一条水平线

如何实现这一点?

感谢您的帮助

答案1

我认为,此代码符合longtable语法(部分中的标题和标签firsthead)并且\hhline能够按照您的需要使用:

\definecolor{lightgray}{HTML}{EFEFEF}
\setlength\arrayrulewidth{.5pt}
\begin{longtable}{|>{\columncolor{lightgray}}p{0.2\linewidth} | p{0.175\linewidth} |}
\caption{Your caption here} % needs to go inside longtable environment
\label{tab:myfirstlongtable} \\
\endfirsthead
\caption{Your caption here (continued)}\\
\hline
\endhead
\hline
foo & bar \\[.5pt]\noalign{\nobreak\vskip-.5pt} \hline%\noalign{\nobreak\vskip.5pt}
foo & bar \\ \cline{2-2}
foo & bar \\ \cline{2-2}
foo & bar \\ \cline{2-2}
foo & bar \\ \hhline{|--|}
foo & bar \\ \cline{2-2}
foo & bar \\ \cline{2-2}
foo & bar \\ \cline{2-2}
foo & bar \\ \cline{2-2}
foo & bar \\ \cline{2-2}
foo & bar \\[.5pt]\noalign{\nobreak\vskip-.5pt} \hline\noalign{\nobreak\vskip.5pt}
\end{longtable}

在此处输入图片描述 在此处输入图片描述

相关内容