我有一个理解问题:只有在加载布局包后命令才可用\pageheight
吗?\pagewidth
有没有更简单的方法来改变页面的高度和宽度?
我发现很难弄清楚,这是否只是我的错误,或者某些东西不起作用,我花了很多时间来弄清楚:“这是否解释得不太好,或者我只是太......无论如何?”。
答案1
页面大小参数的问题比较复杂。LaTeX2e 引入了以下参数
\paperwidth
\paperheight
以及用于设置纸张大小的文档类别选项。以前,分页参数是针对美国信纸量身定制的,而在欧洲,通常使用诸如 之类的文档样式选项a4.sty
。
这实际上不对输出的影响,在 DVI 格式时代,这一影响被推迟到打印驱动程序。通常,还必须将一个选项传递给dvips
以选择纸张大小(或在 的配置文件中设置它dvips
)。
pdftex
随着PDF格式的出现,出现了一个问题:必须提前知道要使用哪种纸张格式。因此引入了新的参数\pdfpagewidth
和。它们是在创建格式时设置的。事实上,TeX Live 和 MiKTeX 具有在安装时设置的首选项,用于选择“正常”纸张大小。这已经\pdfpageheight
pdflatex
不对 LaTeX 默认纸张大小的影响,它始终是letterpaper
,因此a4paper
选项必须必须具体说明。
pdflatex
因此,使用 TeX Live创建的 PDF (其中 A4 是默认纸张尺寸)在letterpaper
指定文档类选项时也将输出 A4 纸张格式。
可以通过将纸张尺寸明确传递给参数来覆盖默认设置,例如
\setlength{\pdfpagewidth}{8.5in}
\setlength{\pdfpageheight}{11in}
适用于美国信纸。不过更好的方法是
\usepackage[letterpaper,pass]{geometry}
其中pass
选项告诉包只设置纸张大小(即上述两个参数的值)。包知道排版引擎何时为pdflatex
、latex
或xelatex
并lualatex
执行正确的操作。
标准 LaTeX 课程对纸张尺寸的了解有限:
letterpaper a4paper a5paper b5paper legalpaper executivepaper
同时geometry
还知道更多。还memoir
知道许多纸张格式;此类和geometry
包允许指定任意纸张大小(在 TeX 的限制下,它不能管理大于 16384pt 的尺寸,略小于 19 英尺或 6 米)。
因此,设置纸张格式的最佳方式是使用geometry
(或者memoir
,具有不同模型):
\usepackage{geometry}
\geometry{paperwidth=18cm, paperheight=24cm}
可能添加其他选项来设置边距宽度等;请参阅手册。还可以指定拼版:如果我们想将上述格式打印在 A4 纸上以供以后裁剪,可以说
\usepackage{geometry}
\geometry{a4paper, layoutwidth=18cm, layoutheight=24cm}
答案2
控制页面尺寸的通常长度被称为\paperwidth
和,\paperheight
原因我不太清楚(特别是因为它们实际上不是库存纸尺寸,而是页尺寸)。您可以直接设置它们,但这很可能会破坏您的页面布局。正如 Peter 所提到的,更改各种布局相关长度(不仅是文档范围,而且在较新的版本中也包括文档的部分内容)的常用方法是使用geometry
软件包,并且它具有非常好的文档。它带有geometry
一种自动完成功能,您只需更改一些参数,其余参数就会自动设置。
还有一个typearea
属于 komascript 但可以独立使用的包。它提供了一种使用网格布局快速设置美观字体区域的方法。
memoir
在文档的第一部分( )中可以找到有关页面布局的很好的概述texdoc memman
。