答案1
我感谢@DavidCarlisle 和@UlrikeFischer 提供此答案的支持
paperwidth
和paperheight
是 LaTeX 长度,然后最终转换为pdftex
长度pdfpagewidth
并pdfpageheight
使用以下代码片段:
\ifGin@setpagesize
\ifx\paperwidth\@undefined\else
\AtBeginDocument{%
% If a package has changed \mag, assume it knows what it is doing
% and leave page size alone
\ifnum\mag=\@m
\@ifundefined{stockwidth}{%
\@ifundefined{paperwidth}{%
}{%
\ifdim\paperwidth>0pt\relax
\ifdim\paperheight>0pt\relax
\pdfpagewidth=\paperwidth
\pdfpageheight=\paperheight
\fi
\fi
}%
}{%
\ifdim\stockwidth>0pt\relax
\ifdim\stockheight>0pt\relax
\pdfpagewidth=\stockwidth
\pdfpageheight=\stockheight
\fi
\fi
}%
\fi
}
文档开始后,“LaTeX”对应项会被丢弃(意味着它们不再有意义),而pdf
对应项才是最终用于设置的对应项。
Geometrypdf
也在文档的开头设置长度,可能是为了保持与dvips
驱动程序的兼容性(不支持多种页面尺寸),因此不允许在文档期间重置它们,从而丢弃纸张调整大小选项