Длинная таблица, вставляющая несколько заголовков таблиц на одну страницу

Длинная таблица, вставляющая несколько заголовков таблиц на одну страницу

Иногда на длинной таблице я получаю сломанный вывод. Он вставляет заголовок не первой таблицы вверху страницы. Это случается очень редко и, кажется, происходит только тогда, когда на предыдущей странице остается очень определенное количество места.

Воспроизведение выпуска

Есть идеи, что вызывает эту проблему и как ее обойти?

И документ. Это простейшее воспроизведение, которое мне удалось сделать. Но не только \needspace вызывает это. Та же проблема возникает в длинной таблице сразу после другой длинной таблицы и очень редко после абзаца.

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

Я тестировал это в pdflatex, xelatex и lualatex на Debian wheezy texlive и miktex, и всегда получался один и тот же плохой результат.

решение1

Longtable находится в немного деликатном состоянии, поскольку он переключает выходные процедуры в начале, поэтому использование \needspacethere — это, но, храбро. Однако ваш пример можно упростить до

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

Что демонстрирует ту же проблему, что досадно, поскольку не использует никаких дополнительных пакетов, что ограничивает круг лиц, на которых можно возложить вину.

\clearpageОбычным решением является раскомментирование .

Между тем: утешительная мысль от egreg

Спасибо за понятный тестовый пример. Посмотрю позже

Связанный контент