我有以下文件test.tex
:
\documentclass[a4paper,10pt,version=last]{scrlttr2}%,fontsize=10pt
\usepackage{fontspec}% for lualatex
\usepackage{geometry}
\usepackage[latin]{babel} % for lipsum
\usepackage{lipsum}
\usepackage{showframe}
\setkomavar{subject}[]{Geometrie}
%\KOMAoptions{firstfoot=false}
\begin{document}
\begin{letter}{%
CapMini GmbH \\
Egon Walther\\
Walthershofener Straße 20\\
88444 Walthershofen\\
}
\opening{Salve Egon,}
\lipsum{1}
\closing{Regards\\[2\baselineskip]}
\end{letter}
\end{document}
从某种意义上说,此文件是最小的:fontspec
是用于lualatex
且babel
是用于lipsum
;
showframe
只是给出一个提示,问题在没有也的情况下也会发生。
正如您在生成的 PDF 文件中看到的,文本没有延伸到所示框架的下边界showframe
。
如果取消注释,问题就会消失,\KOMAoptions{firstfoot=false}
这是一种解决方法。
其他变化也有启发性:如果消除geometry
(在应用程序中没有选项),则文本高度不会改变,但边界会适应实际文本的下边界。
有趣的是,如果您消除该选项10pt
或其替代方案fontsize=10pt
,则文本会下降直到下边界。
另一个提示:这个问题似乎是新的,例如与工具(lualatex 和其他编译器)或包/文档类的最新更新有关。
非常感谢您的帮助。我经常写一页纸的信,但现在……很难。
答案1
scrlttr2
resp.的第一页scrletter
有些特殊。例如,页脚的位置不仅取决于使用typearea
或设置的布局geometry
,还取决于伪长度 firstfootvpos
. 您可以使用以下方式可视化该位置
\LoadLetterOption{visualize}
\showfields{foot}
正如已经解释的那样Schweinebacke 的回答到:使用 scrlttr2 时如何避免页面末尾出现空白?使用选项可以实现第一页上最大的文本区域firstfoot=false,enlargefirstpage
。
选项firstfoot=false
或多或少会将页脚移动到页面下方。
选项enlargefirstpage
甚至会放大文本区域,使其低于页脚的布局位置(在您的例子中设置为)。因此底部边距在第一页上geometry
缩小到。\footskip
但恕我直言,在您的情况下,这两者都不是必需的,也不是想要的。firstfoot=false
或多或少是一种意外的解决方法。
您的代码的主要问题是,加载geometry
会改变布局参数,但不会自动调整依赖项伪长度。这些已经通过加载默认设置DIN.lco
,您可以在其中找到:
\setplength{firstfootvpos}{1in}%
\addtoplength{firstfootvpos}{\topmargin}%
\addtoplength{firstfootvpos}{\headheight}%
\addtoplength{firstfootvpos}{\headsep}%
\addtoplength{firstfootvpos}{\textheight}%
\addtoplength{firstfootvpos}{\footskip}%
因此,firstfootvpos
不仅取决于一个布局长度,还取决于多个布局长度,geometry
布局长度取决于字体大小。因此,更改字体大小并加载geometry
而不重新加载字母选项DIN.lco
会导致奇怪的设置,这并不令人意外。
因此,获得有效结果的第一步是添加
\LoadLetterOption{DIN}% or whatever letter option you are using
加载后geometry
:
\documentclass[a4paper,10pt,version=last]{scrlttr2}%,fontsize=10pt
\usepackage{fontspec}% for lualatex
\usepackage{geometry}
\usepackage[latin]{babel} % for lipsum
\usepackage{lipsum}
\usepackage{showframe}
\setkomavar{subject}[]{\the\dimexpr\useplength{firstfootvpos}\relax}
\LoadLetterOption{DIN}% Load it again after changing the layout by loading geometry
\LoadLetterOption{visualize}
\showfields{foot}
%\KOMAoptions{enlargefirstpage}
%\KOMAoptions{firstfoot=false}
\begin{document}
\begin{letter}{%
CapMini GmbH \\
Egon Walther\\
Walthershofener Straße 20\\
88444 Walthershofen\\
}
\opening{Salve Egon,}
\lipsum{1}
\closing{Regards}% IMHO \\[2\baselineskip] is nonsense here, so I've removed it
\end{letter}
\end{document}
10pt
现在,没有选项或 的结果fontsize=10pt
以及默认值12pt
非常相似: