
Às vezes, em uma tabela longa, recebo uma saída quebrada. Ele irá inserir o cabeçalho da tabela não-primeira na parte superior da página. É muito raro e só parece acontecer quando há uma quantidade muito específica de espaço restante na página anterior.
Alguma idéia sobre o que causa essa saída e uma solução alternativa?
E o documento. É a reprodução mais simples que consegui fazer. Não é apenas \needspace que causa isso. O mesmo problema surge em uma tabela longa imediatamente após outra tabela longa e muito raramente após um parágrafo.
\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}
Eu testei isso em pdflatex, xelatex e lualatex em ambos debian wheezy texlive e miktex, sempre dá o mesmo resultado ruim.
Responder1
Longtable está em um estado um pouco delicado, pois alterna as rotinas de saída no início, portanto, usá- \needspace
lo é um pouco corajoso. No entanto, seu exemplo pode ser simplificado para
\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}
O que mostra o mesmo problema, o que é lamentável, pois não utiliza pacotes contribuídos, limitando assim o número de pessoas que podem ser culpadas.
Remover o comentário \clearpage
é a solução alternativa usual.
Enquanto isso: pensamento reconfortante de egreg
Obrigado pelo caso de teste claro. vou olhar mais tarde