如何修复 afterpage 上 \noalign 位置错误、\clearpage 和 longtable 头过高的问题?

如何修复 afterpage 上 \noalign 位置错误、\clearpage 和 longtable 头过高的问题?

Xubuntu 14.04 LTS 上的 TeX Live 2014。

最小工作示例:

\documentclass[11pt, oneside]{report}
\usepackage{afterpage}
\usepackage{booktabs}
\usepackage{longtable}

\begin{document}
\afterpage{
    \clearpage
}

\rule{1mm}{16cm}
\begin{longtable}{l}
    \caption[]{\rule{2mm}{2cm}} \\
    \toprule
    Col 1 \\
    \hline \endfirsthead
    \caption[]{\textit{continued from the previous page}} \\
    \toprule
    Col 1 \\
    \hline \endhead
    \hline
    \multicolumn{1}{r}{\textit{continued on the next page}} \\
    \endfoot
    \bottomrule
    \endlastfoot
    1 \\
    1 \\
    1 \\
    1 \\
\end{longtable}
\end{document}

尝试编译此 MWE 会导致以下消息:

! Misplaced \noalign.
\newpage ->\noalign 
                    {\break }
l.30 \end{longtable}

是实现该效果的必要条件\clearpage。此外,第一个表格头必须不适合页面。将第一条规则从 缩减16cm14cm即可。

附注:还有15cm其他奇妙的事情正在发生,但我现在并不关心这些。

问题):我该如何避免此错误?此问题的具体原因是什么?

这两个问题可能互相补充。

更新 2015-12-03:休息了一会儿后,我意识到这个问题可能没有简单的解决方案。afterpage 和 longtable 都需要在页面末尾工作。当 longtable 想要开始一个新页面时,afterpage 会/应该想要启动。这可能不是一个技术解释,但可能也一针见血。我认为必须让 afterpage 能够感知 longtable 或反过来才能使其工作。与此同时,我在\newpagelongtable 之前使用了 right。

在发布之前,我查看了这些相关问题,但没有找到答案:longtable 放错位置 noalign长桌休息后页https://tex.stackexchange.com/questions/147169/misplaced-noalign-when-using-afterpage-clearpage-with-either-onehafspacinglongtable 中的 captionof 给出了放错位置的 \noalign长表对齐,带标题! 放错 \omit。Longtable 错误和 Caption 未对齐 额外的对齐标签已更改为 \cr

答案1

无论是否有趣,我也有完全相同的问题。

由于生成了乳胶代码,我无法手动将代码更改为“适合”。

这是我的最小示例,它并不像我想要的那么最小。

\documentclass[10pt,a4paper]{article}
\usepackage{fancyhdr, lastpage}
\usepackage[]{geometry}
\usepackage{longtable}
\usepackage{afterpage}
\pagestyle{fancy}
\setlength{\headsep}{0.1mm}
\begin{document}
\newgeometry{total={210mm,297mm}, head=56pt, top=10mm, left=10mm, right=10mm, bottom=58pt, includeheadfoot}
\afterpage{\clearpage\lfoot{Page}}

\begin{tabular}{l}
TABLE1\tabularnewline[210mm]
\end{tabular}

\begin{longtable}{ l}
TABLE2\\[20mm]
\endhead
B\tabularnewline
\end{longtable}
\end{document}

相关内容