\newgeometry 无法更改枚举内的页边距

\newgeometry 无法更改枚举内的页边距

请参阅以下代码。在这里,我尝试在枚举环境中更改页边距。

\documentclass{article}

\usepackage[a4paper,top=115.0mm,bottom=65.0mm,left=40.0mm,right=25.0mm]{geometry}

\usepackage{lipsum}

\begin{document}

\begin{enumerate}
\item\lipsum[1]

\item\lipsum[2]

\item\lipsum[3]

  \newgeometry{top=25.0mm,bottom=25.0mm}

\item\lipsum[4]

\end{enumerate}

\end{document}

但是,第二页的页边距没有变化。如果在没有枚举环境的情况下尝试同样的事情,它会完美地工作。

我可能忽略了什么以及如何纠正?

答案1

虽然文档中没有明确说明,但它\newgeometry被设计用于文档的“顶层”,不受任何环境的影响(它执行本地分配)。这在现实中是可以预料到的:更改页面几何形状应该非常罕见,并且通常在不同的文档部分之间进行。如果您添加更多项目,您会注意到列表“认为”页面比实际更长。

可以\newgeometry使用 TeX 原语强制全局应用设置的定义\globaldefs

\documentclass{article}

\usepackage[a4paper,top=115.0mm,bottom=65.0mm,left=40.0mm,right=25.0mm]{geometry}

\usepackage{lipsum}

\begin{document}

\begin{enumerate}
\item\lipsum[1]

\item\lipsum[2]

\item\lipsum[3]

\globaldefs=1
\newgeometry{top=25.0mm,bottom=25.0mm}
\globaldefs=0

\item\lipsum[4]

\end{enumerate}

\end{document}

但是,这可能会导致意想不到的后果,因为里面的代码geometry不是为此设计的。使用时请自担风险!

相关内容