長表在同一頁上插入多個表頭

長表在同一頁上插入多個表頭

有時在長桌上我會得到損壞的輸出。它將在頁面頂部插入非第一個表頭。這種情況非常罕見,似乎只有在上一頁上剩餘特定數量的空間時才會發生。

問題重現

關於導致此輸出的原因和解決方法有什麼想法嗎?

還有文件。這是我能做到的最簡單的複製品。但這不僅僅是 \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}

我已經在 debian wheezy texlive 和 miktex 上的 pdflatex、xelatex 和 lualatex 中對此進行了測試,總是給出相同的錯誤輸出。

答案1

Longtable 處於一個有點微妙的狀態,因為它在開始時切換輸出例程,所以使用\needspace它是一件勇敢的事情。但是你的例子可以簡化為

\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的令人安慰的想法

感謝您提供清晰的測試案例。我稍後再看看

相關內容