请参阅以下代码。在这里,我尝试在枚举环境中更改页边距。
\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
不是为此设计的。使用时请自担风险!