Eu tenho o seguinte arquivo 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}
De certa forma, este arquivo é mínimo: fontspec
is for lualatex
e babel
is for lipsum
;
showframe
é só para dar uma dica, o problema ocorre sem também.
Como você pode ver no arquivo PDF resultante, o texto não atinge o limite inferior do quadro mostrado por showframe
.
O problema desaparece se você descomentar, \KOMAoptions{firstfoot=false}
o que é uma espécie de solução alternativa.
Outras variações também são instrutivas: Se você eliminar geometry
(o que não existe opção no aplicativo), a altura do texto não muda, mas o limite se adapta ao limite inferior do texto real.
Interessante também é o que acontece se você eliminar a opção 10pt
ou sua alternativa fontsize=10pt
: então o texto desce até o limite inferior.
Outra dica: Este problema parece novo, por exemplo, relacionado a atualizações recentes de ferramentas (lualatex e outros compiladores) ou pacotes/classes de documentos.
Ajuda muito apreciada. Freqüentemente escrevo cartas de 1 página, mas agora... difícil.
Responder1
A primeira página do scrlttr2
resp. scrletter
é de alguma forma especial. Por exemplo, a posição do rodapé não depende apenas do layout definido com typearea
ou geometry
, mas também dopseudo comprimento firstfootvpos
. Você pode visualizar essa posição usando
\LoadLetterOption{visualize}
\showfields{foot}
Como já explicado emA resposta de Schweinebackepara:Como evitar espaços vazios no final de uma página ao usar o scrlttr2?a maior área de texto na primeira página pode ser obtida usando a opção firstfoot=false,enlargefirstpage
.
A opção firstfoot=false
move mais ou menos o rodapé abaixo da página.
A opção enlargefirstpage
ainda amplia a área de texto, abaixo da posição do layout do rodapé (definida geometry
no seu caso). Portanto, a margem inferior é reduzida para \footskip
a primeira página.
Mas IMHO ambos não são necessários e nem desejados no seu caso. firstfoot=false
é mais ou menos acidentalmente uma solução alternativa.
O principal problema com o seu código é que o carregamento geometry
altera os parâmetros do layout, mas não ajusta automaticamente os parâmetros dependentes.pseudo comprimentos. Eles já estão configurados carregando o arquivo default DIN.lco
, onde você pode encontrar:
\setplength{firstfootvpos}{1in}%
\addtoplength{firstfootvpos}{\topmargin}%
\addtoplength{firstfootvpos}{\headheight}%
\addtoplength{firstfootvpos}{\headsep}%
\addtoplength{firstfootvpos}{\textheight}%
\addtoplength{firstfootvpos}{\footskip}%
Portanto, firstfootvpos
depende não apenas de um, mas de vários comprimentos de layout, que geometry
são definidos dependendo do tamanho da fonte. Portanto, não é inesperado que alterar o tamanho da fonte e carregar geometry
sem recarregar a opção de letra DIN.lco
resulte em configurações estranhas.
Portanto, o primeiro passo para obter um resultado válido seria adicionar
\LoadLetterOption{DIN}% or whatever letter option you are using
após o carregamento 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}
E agora, o resultado sem opção 10pt
ou fontsize=10pt
e portanto o padrão 12pt
, é muito parecido: