Lange Tabelle, in die mehrere Tabellenüberschriften auf derselben Seite eingefügt werden

Lange Tabelle, in die mehrere Tabellenüberschriften auf derselben Seite eingefügt werden

Manchmal erhalte ich bei einer langen Tabelle eine fehlerhafte Ausgabe. Die nicht erste Tabellenüberschrift wird oben auf der Seite eingefügt. Das kommt sehr selten vor und scheint nur dann zu passieren, wenn auf der vorherigen Seite noch eine ganz bestimmte Menge Platz übrig ist.

Reproduktion der Ausgabe

Irgendwelche Ideen zur Ursache dieser Ausgabe und wie man sie umgehen kann?

Und das Dokument. Es ist die einfachste Reproduktion, die ich erstellen konnte. Es ist jedoch nicht nur \needspace, das es verursacht. Das gleiche Problem tritt bei einem Longtable unmittelbar nach einem anderen Longtable auf und sehr selten nach einem Absatz.

\documentclass[10pt,a4paper,final,twoside]{article}
\usepackage[a4paper,landscape]{geometry}
\usepackage{longtable}
\usepackage{needspace}
\begin{document}
xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz\\[30pt]
\needspace{10\baselineskip}
\section*{Header}
\begin{longtable}{l l l l l}
\multicolumn{5}{l}{Data (continued)}\\*
\textbf{Addr} & \textbf{Type} & \textbf{Product} & \textbf{Serial} & \textbf{Location} \\*
\hline
\endhead
\multicolumn{5}{l}{Data}\\*
\textbf{Addr} & \textbf{Type} & \textbf{Product} & \textbf{Serial} & \textbf{Location} \\*
\hline
\endfirsthead
25 & Data & Data & Data & Data \\
26 & Data & Data & Data & Data \\
27 & Data & Data & Data & Data \\
28 & Data & Data & Data & Data \\
29 & Data & Data & Data & Data \\
30 & Data & Data & Data & Data \\
31 & Data & Data & Data & Data \\
32 & Data & Data & Data & Data \\
\end{longtable}

\end{document}

Ich habe dies in pdflatex, xelatex und lualatex sowohl auf Debian Wheezy Texlive als auch auf Miktex getestet und es führt immer zur gleichen fehlerhaften Ausgabe.

Antwort1

Longtable ist in einem etwas heiklen Zustand, da es die Ausgaberoutinen am Anfang wechselt, daher \needspaceist die Verwendung dort ein mutiger Schritt. Ihr Beispiel kann jedoch vereinfacht werden zu

\documentclass[10pt,a4paper,final,twoside,landscape]{article}

\setlength\textwidth{591.5302pt}
\setlength\textheight{418.25368pt}

\usepackage{longtable}

\begin{document}
xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz

xyz\\[30pt]


%%\clearpage
\section*{Header}
\begin{longtable}{l l l l l}
\multicolumn{5}{l}{Data (continued)}\\*
\textbf{Addr} & \textbf{Type} & \textbf{Product} & \textbf{Serial} & \textbf{Location} \\*
\hline
\endhead
\multicolumn{5}{l}{Data}\\*
\textbf{Addr} & \textbf{Type} & \textbf{Product} & \textbf{Serial} & \textbf{Location} \\*
\hline
\endfirsthead
25 & Data & Data & Data & Data \\
26 & Data & Data & Data & Data \\
27 & Data & Data & Data & Data \\
28 & Data & Data & Data & Data \\
29 & Data & Data & Data & Data \\
30 & Data & Data & Data & Data \\
31 & Data & Data & Data & Data \\
32 & Data & Data & Data & Data \\
\end{longtable}

\end{document}

Dabei tritt das gleiche Problem auf. Das ist bedauerlich, da keine beigesteuerten Pakete verwendet werden und somit die Zahl der Personen, denen die Schuld gegeben werden könnte, begrenzt ist.

Die übliche Problemumgehung besteht darin , die Kommentierung aufzuheben \clearpage.

In der Zwischenzeit: tröstender Gedanke von Egreg

Danke für den klaren Testfall. Ich werde später nachschauen

verwandte Informationen