我找不到该问题的任何现有答案。
那么,两者有什么区别呢?使用其中一个二重奏比使用另一个二重奏有什么优势吗?
答案1
\pdfpageheight
是由 引入的pdftex
(并且它在其大多数“新”命令前加上了 前缀\pdf
)它设置了生成的 PDF 中媒体框的垂直大小。xetex 也支持这个原语并将信息传递给 xdvipdfmx dvi 驱动程序。luatex 有一个具有相同功能的命令,但它被称为\pageheight
。
LaTeX 有一个命令\paperheight
,通常使用 documentclass 选项进行设置,例如,a4paper
它主要用于调整文本块的大小,例如,\textheight
减去\paperheight
顶部和底部边距的一些空间。如果加载了“了解”驱动程序特定代码(graphics
、hyperref
、geometry
)的包,则默认情况下将根据包代码\(pdf)pageheight
的值进行设置。\paperheight
因此,\paperheight
在前言中设置通常不会产生任何效果,因为该值已用于设置\textheight
,更改它不会产生任何效果。 如上所述,例外情况是如果包使用\paperheight
前言中的值来设置\(pdf)pageheight
。\begin{document}
相反,设置\(pdf)pageheight
会立即改变生成的 PDF 的尺寸,尽管如果包重新设置了值,\begin{document}
那么您直接设置的值可能不会被使用。
答案2
\paperheight
是的,一方面\paperwidth
和\pdfpageheight
另一方面之间存在很大差异\pdfpagewidth
。这些差异是特定于引擎的:
\paperheight
使用 pdfLaTeX,所有四个宏都已定义。但是,和\pdfpageheight
(和\paperwidth
和)是否\pdfpagewidth
一致取决于您的系统设置。例如,我的基于 MacOS 的计算机当前配置为将其视为A4
“标准”纸张尺寸。但是如果我运行\documentclass[letterpaper]{article} % letterpaper: 8.5" wide, 11.0" tall \begin{document} \obeylines \the\paperheight \the\pdfpageheight \the\paperwidth \the\pdfpagewidth \end{document}
通过 pdfLaTeX,我得到
794.96999pt
和614.295pt
——相当于和的 11" 和 8.5" 。\paperheight
但是\paperwidth
,我得到845.04684pt
和597.50787pt
——相当于和的 297mm 和 210mm,或 11.69" 和 8.27" 。(旁注:297mm 和 210mm 是 A4 纸的正确\pdfpageheight
值\pdfpagewidth
。)换句话说,选择文档类选项letterpaper
可以更改\paperheight
和的值\paperwidth
,但不能更改\pdfpageheight
和的值\pdfpagewidth
。在 XeLaTeX 下,宏
\pdfpagewidth
和\pdfpageheight
都存在,但它们都默认设置为。和0pt
的值取决于是否提供或作为文档类级别选项。\paperheight
\paperwidth
a4paper
letterpaper
在 LuaLaTeX 下,默认情况下
\pdfpagewidth
,\pdfpageheight
不明确的\pagewidth
。和的值\pageheight
将与和相同或不同\paperwidth
,具体取决于您的系统设置是否与您在文档类级别指定的\paperheight
纸张尺寸选项(a4paper
或)一致。letterpaper
\paperheight
和的值\paperwidth
均取决于a4paper
或是否letterpaper
作为文档类级别选项提供。
答案3
您想读取还是写入这些尺寸?
在 PdfLatex 和 XeLatex 中,更改\pdfpageheight
和\pdfpagewidth
实际上会从当前页开始更改文档页面大小。在 LuaLatex 中,您必须使用\pageheight
和\pagewidth
,即不使用pdf
。
\paperheight
并且\paperwidth
似乎是真实变量的副本或初步变量。哪个包/选项/宏读取或设置哪个,其他答案中有更好的解释。—如果您希望在计算边距等时考虑与实际输出区域不同的纸张尺寸,那么拥有两对可能很有意义。也许吧。
顺便说一句,只有 PDF 路径允许文档中间更改。DVI 和 Postscript 不支持此功能。