
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.
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 \needspace
ist 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