Longtable 似乎阻止 \enlargethispage 工作

Longtable 似乎阻止 \enlargethispage 工作

以下代码对我来说有效,但如果我删除注释并添加 longtabu/longtable,则 \enlargethispage 将失去其效果。

\documentclass{article}
\usepackage{lipsum}
\usepackage{afterpage}
\usepackage{longtable,tabu}
\usepackage{fancyhdr}
\usepackage[margin=2cm,showframe]{geometry}
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[C]{\small\thepage}
\begin{document}
\enlargethispage{-2cm}
%\begin{longtabu}{Xl} a&b\\ \end{longtabu}
%\begin{longtable}{ll} a&b\\ \end{longtable}
\lipsum
\lipsum
\end{document}

我该如何解决这个问题?

答案1

这是一个解决方案。\enlargemypage要使用的新命令。

编辑无论有没有 ,该命令都可以工作longtable

\documentclass{article}
\usepackage{lipsum}
\usepackage{afterpage}
\usepackage{longtable}
\usepackage{fancyhdr}
\usepackage[margin=2cm,showframe]{geometry}
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[C]{\small\thepage}

\makeatletter
\newcommand{\Enlargemypage}[1]{%
\global\addtolength\textheight{#1}%
\global\setlength{\@colht}{\textheight}%
\global\setlength{\@colroom}{\textheight}%
\global\setlength{\vsize}{\textheight}}
\makeatother

\newcommand{\enlargemypage}[1]{%
\Enlargemypage{#1}\afterpage{\Enlargemypage{-#1}}}

\AtBeginDocument{\enlargemypage{-2cm}}

\begin{document}
\begin{longtable}{ll} a&b\\\end{longtable}
\lipsum
\lipsum
\end{document}

相关内容