为什么 pdflatex/dinbrief 会针对此输入生成美国信件页面?

为什么 pdflatex/dinbrief 会针对此输入生成美国信件页面?

我想使用 dinbrief 类写一封简单的信,但无法让它生成 DIN A4 页面。最小的例子如下:

\documentclass[11pt,a4paper]{dinbrief}
\usepackage{german}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{eurosym}
\begin{document}
\subject{Some subject}
\backaddress{Me, some address}
\signature{Me again}
\Datum{Someplace}
\address{my name\\someplace\\some city}
\begin{letter}
{Other guy\\
his city}
\opening{Dear pdfLaTeX,}

why don't you produce the proper page size?

\closing{Kind regards}
\end{letter}
\end{document} 

pdflatex document当我从终端运行时,这将生成一个美国信纸大小的文档。我运行 ubuntu 12.04,安装并更新了 texlive-full 包。我认为标题中的 a4paper 选项非常明确...

我是否遗漏了一些显而易见的东西?

答案1

很多旧类(例如article或您的dinbrief)没有设置 pdf 大小。像选项a4paper只设置 TeX \paperwidth、线宽和类似长度之类的内容。

您必须自己插入必要的命令。对于 pdflatex,这是

\pdfpagewidth=\paperwidth
\pdfpageheight=\paperheight

对于 latex/dvips 你需要\special{...}

您还可以加载其中一个包graphicx、或hyperref或,geometry它们将为您设置 pdf 长度。

顺便说一句:无法重现您的问题的人可能默认使用 a4paper。在这种情况下,如果他们使用例如选项,他们就会看到您的问题letterpaper

答案2

pdflatex在 Ubuntu 12.10 中,可以通过运行以下命令更改默认纸张大小

sudo paperconfig -p a4

这会更改一些配置,包括/etc/papersize,该配置已设置为letter。请注意,还有一个名为 的命令paperconf,它不会更改任何内容。

相关内容