Tabla larga que inserta varios encabezados de tabla en la misma página

Tabla larga que inserta varios encabezados de tabla en la misma página

A veces, en una mesa larga, obtengo resultados rotos. Insertará el encabezado de la tabla que no es la primera en la parte superior de la página. Es muy raro y sólo parece ocurrir cuando queda una cantidad muy específica de espacio en la página anterior.

Reproducción de emisión

¿Alguna idea sobre las causas de este resultado y una solución alternativa?

Y el documento. Es la reproducción más simple que pude hacer. Sin embargo, no es sólo \needspace lo que lo causa. El mismo problema aparece en una tabla larga inmediatamente después de otra tabla larga y muy raramente después de un párrafo.

\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}

Probé esto en pdflatex, xelatex y lualatex tanto en Debian Wheezy texlive como en miktex, siempre da el mismo resultado incorrecto.

Respuesta1

Longtable se encuentra en un estado un poco delicado ya que cambia las rutinas de salida al principio, por lo que usarlo \needspacees un poco valiente. Sin embargo, su ejemplo se puede simplificar a

\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}

Lo que muestra el mismo problema, lo cual es desafortunado ya que no utiliza paquetes contribuidos, por lo que limita la cantidad de personas a las que se podría culpar.

Descomentar \clearpagees la solución habitual.

Mientras tanto: pensamiento reconfortante de egreg

Gracias por el caso de prueba claro. miraré más tarde

información relacionada