是否可以使用该geometry
包来存储(和恢复)文档类(在我的情况下,该类是report
)指定的原始布局?
以下是一些背景信息。我一直在使用报告文档类的默认页面布局编辑一篇较长的文档。现在我发现我需要一个标题页。有一个特定的标题页布局,事实上,如果我只使用以下代码加载包,它就可以完美地geometry
工作其默认和 仅更改两个设置。但我希望文档的其余部分恢复到原始页面布局!我无法执行类似 的操作\restoregeometry
,因为我认为几何图形会覆盖类选项……即似乎没有任何内容可以恢复。同样,似乎我无法使用\savegeometry
或\loadgeometry
。那么,如何才能恢复文档其余部分的原始布局,而无需费力地对所有特定页面布局变量进行硬编码?
这是一个最小工作示例:
\documentclass[a4paper,10pt]{report}
\RequirePackage[a4paper,dvips]{geometry} % g1
\geometry{top=2.5cm,bottom=2.3cm} % g2
\begin{document}
\input{the_title_page}
\SomeGeometryCommandsHere % g3
\input{the_rest}
\end{document}
如果我运行上述代码并注释掉标有“g”的行,那么标题页将不会具有正确的页面布局,但文档的其余部分的格式却非常完美。
如果我取消对行 g1 和 g2 的注释,那么标题页的布局将完全正确,但无论我对 g3 输入什么(例如\loadgeometry
,\restoregeometry
等等),我都无法恢复对 g1 和 g2 进行注释时的原始布局。
当然,我可以在 g3 行中详尽地指定原始布局,原则上这应该可行。但是,昨晚我花了将近一个小时来做这件事,当我仍然无法正确格式化时,我决定我真的需要一个更智能的解决方案。
答案1
使用pass
选项后,geometry 包将不会发生任何变化,而是使用原始布局。您可以使用 恢复原始布局\restoregeometry
。例如,
\documentclass[a4paper,10pt]{report}
\usepackage[pass]{geometry}
\begin{document}%<-- the original layout for 'report' is saved here.
\newgeometry{top=2.5cm,bottom=2.3cm}
\input{the_title_page}
\restoregeometry %<-- the original layout is restored.
\input{the_rest}
\end{document}
\newgeometry
/命令\restoregeometry
从 v5.0 开始引入,但请使用 v5.6 或更高版本,因为在 v5.6 中修复了一个错误,当在序言中指定时,该错误\newgeometry
不起作用。pass