Newgeometry 和 afterpage 不调整几何形状

Newgeometry 和 afterpage 不调整几何形状

在以下示例中,几何图形没有改变,尽管我认为它应该改变。我做错了什么?如何修复?

\documentclass{article}
\usepackage{lipsum}
\usepackage{afterpage}
\usepackage[bottom=5cm]{geometry}
\begin{document}
\afterpage{\newgeometry{bottom=1cm}}
\lipsum
\lipsum
\end{document}

答案1

在此处输入图片描述

\documentclass{article}
\usepackage{lipsum}
%please, no:-)\usepackage{afterpage}
%\usepackage[bottom=5cm]{geometry}
\begin{document}
\enlargethispage{-5cm}
\lipsum
\lipsum
\end{document}

答案2

afterpage将其参数放在一个组中,然后(大多数)设置\newgeometry不起作用,正如您在此处看到的那样:

\documentclass{article}
\usepackage{lipsum}
\usepackage{afterpage}
\usepackage[bottom=5cm]{geometry}
\begin{document}
\lipsum
\lipsum
{\newgeometry{bottom=1cm}} %bottom ignored
\lipsum
\lipsum
\newgeometry{bottom=1cm}
\lipsum
\lipsum

\end{document}

答案3

诀窍是不使用\newgeometry,因为这无论如何都会发出分页符,但是\enlargethispagefancyhdr使用可以确保页脚保持在原位,这只适用\smash于第一页的巨型页脚。

\documentclass{article}
\usepackage{fancyhdr}
\usepackage{graphicx}

\usepackage{lipsum}

\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[C]{\small\thepage}

\fancypagestyle{first}{%
  \fancyhf{}%
  \renewcommand{\headrulewidth}{0pt}%
  \fancyfoot[C]{\giantfooter}%
}

\newcommand{\giantfooter}{%
  \leavevmode\smash{\includegraphics[height=5cm]{duck}}%
}

\begin{document}
\thispagestyle{first}\enlargethispage{-5cm}

\lipsum[1-20]

\end{document}

在此处输入图片描述

答案4

这是一个解决方案

\documentclass{article}
\usepackage{lipsum}

\usepackage{atbegshi}
\usepackage[bottom=5cm]{geometry}
\begin{document}
\makeatletter
\AtBeginShipoutNext{%
\global\addtolength{\textheight}{4cm}%
\global\setlength{\@colht}{\textheight}}
\makeatother
\lipsum
\lipsum
\lipsum
\lipsum
\lipsum
\end{document}

相关内容