请参阅以下longtabu
示例:
\documentclass{article}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{tabu}
\usepackage{lipsum}
\begin{document}
\tabulinesep=1.5mm % <---- seems like this is causing the issue
\def\head{Head A & Head B}
\def\nbcolumns{2}
\begin{longtabu}{X[.5,l] X[1,l]}
\toprule\rowfont{\bfseries}
\head\\
\midrule
\endfirsthead
%
\multicolumn{\nbcolumns}{l}{\scriptsize\itshape\ldots Fortsetzung}\\
\toprule\rowfont{\bfseries}
\head\\
\midrule
\endhead
%
\multicolumn{\nbcolumns}{r}{\scriptsize\itshape wird fortgesetzt \ldots}
\endfoot
\endlastfoot
%
\everyrow{\tabucline[on 3 pt off 3pt]-}
1 & \lipsum[2] \\
2 & \lipsum[2] \\
3 & \lipsum[2] \\
4 & \lipsum[2] \\
5 & \lipsum[2] \\
6 & \lipsum[2] \\
7 & \lipsum[2] \\
8 & \lipsum[2]
\everyrow{}\\
\bottomrule
\caption{Table name}
\end{longtabu}
\end{document}
...以及生成的文档:
从第 1 页到第 2 页的分页符与预期一致。
但是从第 2 页到第 3 页的分页符存在问题。第 3 页顶部的第一条虚线应放在第 2 页的底部。
我该如何修复它?
或者我应该考虑使用替代方案longtabu
?
答案1
您可以\nobreak
在不鼓励使用禁忌行之前添加 so 换行,并\filbreak
在鼓励使用禁忌行之后添加 so 换行(并用空格填充)。
\documentclass{article}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{tabu}
\makeatletter
\renewcommand*\tabucline{\noalign{\nobreak\ifnum0=`}\fi \tabu@cline}
\def\tabu@docline@evr {\xdef\tabu@doclineafter{\the\toks@\filbreak}%
\ifnum0=`{\fi}\aftergroup\tabu@doclineafter}
\makeatother
\usepackage{lipsum}
\begin{document}
\tabulinesep=1.5mm % <---- seems like this is causing the issue
\def\head{Head A & Head B}
\def\nbcolumns{2}
\begin{longtabu}{X[.5,l] X[1,l]}
\toprule\rowfont{\bfseries}
\head\\
\midrule
\endfirsthead
%
\multicolumn{\nbcolumns}{l}{\scriptsize\itshape\ldots Fortsetzung}\\
\toprule\rowfont{\bfseries}
\head\\
\midrule
\endhead
%
\multicolumn{\nbcolumns}{r}{\scriptsize\itshape wird fortgesetzt \ldots}
\endfoot
\endlastfoot
%
\everyrow{\tabucline[on 3 pt off 3pt]-}
1 & \lipsum[2] \\
2 & \lipsum[2] \\
3 & \lipsum[2] \\
4 & \lipsum[2] \\
5 & \lipsum[2] \\
6 & \lipsum[2] \\
7 & \lipsum[2] \\
8 & \lipsum[2]
\everyrow{}\\*
\bottomrule
\caption{Table name}
\end{longtabu}
\end{document}