为什么 longtable 在后续页面的头部之后添加垂直跳过以及如何修复这个问题?
\documentclass{article}
\usepackage[a6paper,margin=4mm]{geometry}
\usepackage{booktabs,caption,longtable}
\usepackage{lipsum}
\usepackage{tikz}
\pagestyle{empty}
\parindent=0pt
\begin{document}
\begin{longtable}{rp{8cm}}
\caption{Example table}
\\\toprule
\textbf{P} & \textbf{Text}
\\\toprule
\endfirsthead
\caption[]{Example table (continued)}
\\\toprule
\textbf{P} & \textbf{Text}
\\\toprule
\endhead
\multicolumn{2}{r}{\footnotesize continued on the next page}
\endfoot
\bottomrule
\endlastfoot
1 & \lipsum[1]\vspace{-\baselineskip}
\\*\midrule
2 & \lipsum[2]\vspace{-\baselineskip}
\\*\midrule
3 & \lipsum[3]\vspace{-\baselineskip}
\\*\midrule
4 & \lipsum[4]\vspace{-\baselineskip}
\end{longtable}
\begin{tikzpicture}[remember picture, overlay, color=red, line width=0.2pt]
\draw ([yshift=-18.9mm]current page.north west) -- ([yshift=-18.9mm]current page.north east);
\draw ([yshift=-19.9mm]current page.north west) -- ([yshift=-19.9mm]current page.north east);
\end{tikzpicture}%
\end{document}
上述文档及其页面图像清楚地显示了该问题(我使用 TikZ 来强调这一点)。
答案1
它是 ; 后面的空格\midrule
,您可以通过引入显式的 来取消它\addlinespace
:
\begin{longtable}{rp{8cm}}
\caption{Example table}
\\\toprule
\textbf{P} & \textbf{Text}
\\\midrule[\heavyrulewidth]
\endfirsthead
\caption[]{Example table (continued)}
\\\toprule
\textbf{P} & \textbf{Text}
\\\midrule[\heavyrulewidth]
\addlinespace[0pt]
\endhead
\multicolumn{2}{r}{\footnotesize continued on the next page}
\endfoot
\bottomrule
\endlastfoot
1 & \lipsum*[1]
\\\midrule
2 & \lipsum*[2]
\\\midrule
3 & \lipsum*[3]
\\\midrule
4 & \lipsum*[4]
\end{longtable}
请注意,在该位置上\midrule[\heavyrulewidth]
优于\toprule
;\lipsum*
避免了最后的\par
命令,这样就不需要退格了。