避免 scrlttr2 字母底部出现空白

避免 scrlttr2 字母底部出现空白

使用 scrlttr2 时如何避免页面末尾出现空白?我尝试将建议的选项添加到scrlttr2,但至少在下面的例子中,它似乎不起作用。我在第一页的底部看到一大块空白。有人知道为什么吗?

\documentclass[12pt,headheight=30pt,headinclude,firstfoot=false,
               enlargefirstpage=true,foldmarks=false,foldmarks=blmtP,
               fromalign=center,fromphone,fromemail,version=last,            
               backaddress=false, subject=titled]{scrlttr2}
\usepackage{scrpage2}
\pagestyle{scrheadings}
\rohead{\jobname.tex\hspace{0.5cm}\today}

\usepackage[T1]{fontenc}
\usepackage{fouriernc}
\begin{document}
\setkomavar{fromname}{Xxxxxxxxxx Xx Xxxxx}
\setkomavar{fromaddress}{Xxxxx Xxxxxx xxx Xxxxx\\ xx Xxxxxxxx Xxxxx Xxxx\\ Xxxxxx xxxxxx}
\setkomavar{fromphone}{xxxxxxxx}
\setkomavar{fromemail}{xxxxxxxxxxxxxxxxxx}
\setkomavar{signature}{(\usekomavar{fromname})}
\setkomavar{subject}{xxxxx}
\setkomavar{date}{\today}
\setkomavar{firsthead}{%

  \parbox{\linewidth}{\centering
    \textbf{\jobname.tex}\\
    {\fontfamily{pzc}\selectfont
    \hspace{\textwidth}
    \usekomavar{fromname}\\
    \usekomavar{fromaddress}\\
    \usekomavar*{phoneseparator}\usekomavar{phoneseparator}\usekomavar{fromphone}\\
    \usekomavar*{emailseparator}\usekomavar{emailseparator}\usekomavar{fromemail}
    }
  }%
}

\makeatletter
\@addtoplength{firstheadvpos}{30pt}
\@addtoplength{toaddrvpos}{40pt}
\@addtoplength{sigbeforevskip}{20pt}
\@setplength{sigindent}{0.5\linewidth}
\makeatother

\def\today{30th April, 2015}
\begin{letter}{
Xxx Xxxxxx Xxxx Xx Xx Xxxxxx\\
Xxxxx Xxxxxx\\
Xxxxxxxx Xxxxx Xxxxxxx\\
Xxx Xxxx Xxxxxxxxx Xxxxx\\
Xxxxxx Xxxxxx xxx xxx\\
}

\opening{xxxxxxxxx,}

X xxxxxxxx xxxxxxx xxx xxxxxx Xxxxxxxxx xx Xxxxxxxx Xxxxx Xxxxxxx X
xxx xxxxxxxx xx Xxx Xxxxx Xxxxxx xxxx xxx Xxxxxxxxx xxxx xx xxxxxx xxx
xx xxxx xx xxxxxxx xxx xxxx xxx xxxx xxx xxxx xxx xxxx xxxxxx Xxxxxxxx
xx xxxxxxx xxxx xxxxx xxxxx xx xxxx

Xxxxxxxxxxxxx X xxxxxxxx xxxx xxx xxxxxxxx Xxxxxxxxxx xxx xxxxxx
xxxxxxxxxx xxxxxxxxxx Xxxxxx X xxx xxxxxxxx xxxx xxx xxxx xxx xxxx xxx
xxxx xx xxxxxx X xxx xxxx xxxxxxxx xxxx x xxxxxxxx xxx xxxx xxxxx xx x
Xxx Xxxxx Xxxxxxxx xxx xxxxxxxxxxxxxx xx xxx Xxxxxxxxxxx Xxxxxxxx xx
xxxxxxxxxxxx xxx xxxxx xxxxx xx xxxx

Xxxx Xxxxxxxxxx xxx xxxxx xxx xxxxxxxxxx xxxxxxxx xx xxx xxxxxxxxxx
xxx xxxxxxxx xx xx xx xxxx xxx xxxxxxxxx xxxxx xx xxxx xxxxxxx X xxxx
xx xxx xx xxxxxxxx xxx xxxxxxx xxxx xxxxxxxx xxxx xxxxxx

Xxxxxxxxxx xxxxxx xxxxxx xx xx xxx xxxxxxx xxxxxx xx xxx
xxxxxxxxxxxxxxxxxx xx xxx Xxxxxxxxx xxx xxx Xxxxxxxxxxx xxxxxxxxxx xxx
xxx xxxxxxxxxx xxx xxx xxxx xxxxxxxxx xx xxxxxxxxxx xxxxxxxx xx xxx
xxxxxxxxx xxxxxxxxxxxxxxxxxxxx Xxxxxxxxxxxxx xxxxxx xxxx xx xxxxxx xx
xxx xxxxxxxxxx xxxx Xxx Xxxxx Xxxxxxxx xxxx xxxxxxx xx xxx Xxxxxxxxxx
xxxxxxxxxxxxx X xxxxx xxxx xx xxxxx xx xxxx xxxx xxx xxxxx Xxxxxxxx
xxx xxxx xxxxxxxxxxx xxxxx xxxxx xxxxxxxx

\closing{Yours Sincerely,\\ Xxx Xxxx Xxxxxxx Xxxxx}

\cc{
Xxx Xx Xxxxxxx Xx Xxxxxxxxx\\
Xxxxxxxx Xxxxx xXxxxxxx\\
Xxxxxxxx Xxxxx Xxxxxxx\\
Xxx Xxxx Xxxxxxxxx Xxxxx\\
Xxxxxx Xxxxxx xxx xxx}

\end{letter}
\end{document}

答案1

让我们添加showframe包裹到你的序言并查看输出内容:

在此处输入图片描述

显然,空间足够,因为文本块在第一页底部有一个很大的空白部分。但是,查看第 2 页的内容,我们会看到一个句子,后面跟着“结束语”(由 指定\closing)。

问题\closing\nobreak避免结尾与前面的信件文本脱节。此外,为了避免出现孤行,最后一段的最后一行与结尾一起放在后面的页面,因为结尾本身无法容纳在第一页的剩余空间中。

如何摆脱它?这真的取决于你愿意做出什么让步……删除\nobreak仍会留下很大的空白,但可以通过etoolbox补丁。其他选项包括调整页边距、重新措辞或避免scrlttr2总之,这样的事情article会让你自由地改变事物来满足你的需要。

我发现最好的解决方案似乎是将文本拉长一点。例如,添加

\usepackage{setspace}
\setstretch{1.25}

你的序言揭示

在此处输入图片描述

当然,调整“完美”的间距因素可能会有所帮助。我还建议保持间距一致。也就是说,不要在这里使用一种间距,在那里使用另一种间距,在其他地方使用另一种间距。

相关内容