在布局方面遇到一些困难时,我遇到了一些有用的包,即和geometry
,changepage
但vmargin
我对它们之间的区别有点疑惑。
我已经弄清楚了一个重要的问题:该changepage
包不会强制使用一些与我的文档类(在我的情况下report
)不同的默认布局设置,当您只想在本地更改布局(在我的情况下是标题页)时,这非常好。
还有其他区别吗?
答案1
该changepage
包可用于根据当前值临时更改页面参数,因此它与其他几个包兼容;它的adjustwidth
环境特别有用。
另一方面,geometry
和vmargin
可用于设置页面的整体形状,而无需进行涉及\topmargin
、\evensidemargin
和\oddsidemargin
和其他几个参数的复杂计算。
这两个包的方法不同;vmargin
有两个不同的八个参数命令用于设置主要参数,而geometry
提供了一个更灵活的键值接口。此外,geometry
还处理页面拼版(在比打印文档的页面更小的页面上构建的页面布局,带有裁切标记)和\newgeometry
允许根据需要多次更改页面参数的功能(但由于 TeX 处理页面的方式,需要分页符)。
还changepage
提供更改页面高度和宽度的功能,但我认为界面难以管理,而\newgeometry
使用与 相同的键值界面\geometry
(或 的选项\usepackage[...]{geometry}
)。
哪一个更合适?答案很简单:vmargin
在计算页面参数时会出现严重错误,因为它通常将\hoffset
和设置\voffset
为 -1in(参见文档中的第 3.3 节),这会破坏其他软件包(尤其是atbegshi
和eso-pic
所基于的软件包),这些软件包与(LaTeX 注释源代码)pdfpages
中的建议一致,假设和为零。source2e
\hoffset
\voffset
还有一个值得一提的包,即 ,它是typearea
KOMA-script 套件的一部分。它设置页面参数的方法与 完全不同,geometry
因为它基于页面划分:用相同的整数划分页面的高度和宽度,创建一个虚拟的细分为矩形,并将其中一些作为类型块(更多详细信息请参阅 KOMA-script 指南)。它不支持页面拼版,但可以很好地与 配合使用crop
。它与 不冲突atbegshi
。
还要注意,memoir
类和 AMS 类有自己的方法来设置页面参数,但geometry
可以使用它们。
当然,我们永远不应该忘记\enlargethispage
LaTeX 内核中的功能,它可以帮助轻松解决分页问题,而无需改变类型块的整体形状。