У меня есть следующий файл 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 страницу, но сейчас... сложно.
решение1
Первая страница соответственно как-то особенная scrlttr2
. scrletter
Например, положение нижнего колонтитула зависит не только от макета, установленного с помощью typearea
или geometry
, но и отпсевдодлина firstfootvpos
. Вы можете визуализировать это положение, используя
\LoadLetterOption{visualize}
\showfields{foot}
Как уже объяснялось вОтвет Швайнебакек:Как избежать пустого места в конце страницы при использовании scrlttr2?Наибольшую текстовую область на первой странице можно получить с помощью опции firstfoot=false,enlargefirstpage
.
Параметр firstfoot=false
более или менее перемещает нижний колонтитул под страницу.
Option 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
, очень похож: