pdflatex testpage 为 a4paper 生成错误的边距

pdflatex testpage 为 a4paper 生成错误的边距

在我的 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}

您的测试现在应该适用于这两种纸张尺寸。

相关内容