如何说服 longtable 提前进行分页

如何说服 longtable 提前进行分页

使用 longtable 包排版跨页表时,我遇到了一个令人讨厌的行为:下一页上只放了一个虚拟表头和标题。表格的内容是从程序源中提取的。我在这里没有太大的影响力。

\documentclass[a4paper,twoside,DIV10,BCOR1.5cm]{scrbook}
\usepackage{longtable}
\newlength{\tablcol}
\setlength{\tablcol}{4.7cm}
\newlength{\tabrcol}
\setlength{\tabrcol}{8.1cm}
\itemsep0ex plus0.2ex
%
\begin{document}
\begin{longtable}{p{\tablcol}p{\tabrcol}}%
%
\hline \multicolumn{1}{l}{{\bfseries Feld}} & \multicolumn{1}{l}{{\bfseries Beschreibung}}\\ \hline
\endfirsthead
%
\hline \multicolumn{2}{l}%
{{\small\slshape Fortsetzung der vorherigen Seite}}\\ \hline
\multicolumn{1}{l}{{\bfseries Feld}} & \multicolumn{1}{l}{{\bfseries Beschreibung}}\\ \hline
\endhead
%
\hline \multicolumn{2}{l}%
{{\small\slshape Fortsetzung auf der n\"achsten Seite}}\\ \hline
\endfoot
%
\hline
\caption[show user output]{Beschreibung der Output-Struktur des show user Statements}
\endlastfoot
%
\label{tucshowxuser}%
{\scshape id} & Die Nummer des Repository Objektes \\
{\scshape name} & Der Name des Objektes \\
{\scshape creator} & Name des Benutzers der dieses Objekt angelegt hat \\
{\scshape create\_time} & Datum und Uhrzeit der Erstellung \\
{\scshape changer} & Name des Benutzers der dieses Objekt zuletzt ge\"andert hat \\
{\scshape change\_time} & Datum und Uhrzeit der letzten \"Anderung \\
{\scshape privs} & Zeichenkette die K\"urzel f\"ur die Benutzerrechte auf dieses Objekt enth\"alt \\
{\scshape commenttype} & Typ des Kommentars \\
{\scshape comment} & Kommentar zum Objekt, wenn vorhanden \\
{\scshape id} & Die Nummer des Repository Objektes \\
{\scshape name} & Der Name des Objektes \\
{\scshape creator} & Name des Benutzers der dieses Objekt angelegt hat \\
{\scshape create\_time} & Datum und Uhrzeit der Erstellung \\
{\scshape changer} & Name des Benutzers der dieses Objekt zuletzt ge\"andert hat \\
{\scshape change\_time} & Datum und Uhrzeit der letzten \"Anderung \\
{\scshape privs} & Zeichenkette die K\"urzel f\"ur die Benutzerrechte auf dieses Objekt enth\"alt \\
{\scshape commenttype} & Typ des Kommentars \\
{\scshape comment} & Kommentar zum Objekt, wenn vorhanden \\
{\scshape id} & Die Nummer des Repository Objektes \\
{\scshape name} & Der Name des Objektes \\
{\scshape creator} & Name des Benutzers der dieses Objekt angelegt hat \\
{\scshape create\_time} & Datum und Uhrzeit der Erstellung \\
{\scshape changer} & Name des Benutzers der dieses Objekt zuletzt ge\"andert hat \\
{\scshape change\_time} & Datum und Uhrzeit der letzten \"Anderung \\
{\scshape privs} & Zeichenkette die K\"urzel f\"ur die Benutzerrechte auf dieses Objekt enth\"alt \\
{\scshape commenttype} & Typ des Kommentars \\
{\scshape comment} & Kommentar zum Objekt, wenn vorhanden \\
{\scshape id} & Die Nummer des Repository Objektes \\
{\scshape name} & Der Name des Objektes \\
{\scshape creator} & Name des Benutzers der dieses Objekt angelegt hat \\
{\scshape create\_time} & Datum und Uhrzeit der Erstellung \\
\end{longtable}

\end{document}

问题是我没有找到一种方法来强制提前分页。一页没有完全填满,后面跟着一页包含表格最后部分的页面比这更好。

我尝试添加“\needspace{长度}” 位于行的开头或结尾,但这也不起作用。它只是使行长度如果不超过长度页面剩余空间。

如果能提供一些解决方案,甚至是一个好的提示,我将非常感激。

短暂性脑缺血发作

答案1

您可以使用以下方式强制分页\pagebreak

\pagebreak
{\scshape creator} & Name des Benutzers der dieses Objekt angelegt hat \\
{\scshape create\_time} & Datum und Uhrzeit der Erstellung
\end{longtable}

例如将两行推到最后一页。

如果您想确保两行始终带有标题而不必添加,\pagebreak则请将表格的最后两行放入该\endlastfoot区域,如longtable文档中所述。

相关内容