在我的 Mac 上运行 TeXlive 2012 时
pdflatex testpage
\papertype=a4paper
\doublesided=n
并在预览中打开生成的 PDF 文件,我可以看到生成的 PDF 中的边距完全错误。
如果我省去了 A4 纸,
pdflatex testpage
\papertype=
\doublesided=n
我得到了一个具有预期布局的 PDF,如下所示:
我在这里做错了什么,如何在使用正确的纸张尺寸时使 pdflatex 正确执行?我也对 xelatex 进行了相同的测试,结果完全相同。
答案1
这是“testpage.tex”包的正常行为。引用其文档(第 5.1 节):
到目前为止,导致边距不正确和/或纸张大小指示不正确的最常见原因是 pdfTEX 和/或 dvips 和/或 ghostscript (ps2pdf) 配置的默认纸张大小与 LaTeX 文档中使用的大小不同。
因此,“testpage.tex”包依赖于默认纸张大小与您指定的纸张大小相同。如果您查看生成的 PDF 文件,您会发现您的 PDF 阅读器会告诉您它们实际上都是信函格式。这是因为当使用 PDF 输出时,“testpage.tex”不会为您调整页面大小。
请注意,这不是问题。当您实际使用 PdfLaTeX 编写自己的文档时,您仍然可以对大多数文档类使用选项“a4paper”,或者当该选项不起作用时,使用诸如“geometry”之类的包手动更改页面大小。
答案2
我的 TeX Live 配置为针对 A4 纸,并且使用 测试正常a4paper
,但使用 测试则失败letterpaper
。
因此结论是您的 TeX 发行版配置为 US Letter 纸张。但是您不一定必须使用这种纸张格式pdflatex
。
您可以通过添加适当纸张尺寸的选择轻松制作一个pdflatex
版本。testpage.tex
复制testpage.tex
(更改其名称)并修改它,使其内容为
\documentclass[\papertype]{article}
\usepackage{ifthen,ifpdf}
\ifpdf
\pdfpagewidth=\paperwidth
\pdfpageheight=\paperheight
\fi
\pagestyle{empty}
您的测试现在应该适用于这两种纸张尺寸。