\parskip 延伸超出预期

\parskip 延伸超出预期

我想知道我是否误解了 TeX 的胶水概念。如果将长度定义为,2pt plus 1pt minus 1pt我希望长度尽可能精确2pt,如果不是,则应该在1pt和之间3pt。但是如果我设置

\setlength{\parskip}{0.5\baselineskip plus 1pt}

LaTeX 将 parskip 拉伸超过1pt. 以达到齐平底部。如果拉伸1pt足够,是否可以获得齐平底部,如果拉伸不够,是否可以获得粗糙底部。我想要一个齐平底部,但我真的不喜欢数量1.5\baselinskip超过 的 parskip。

太过紧张

我尝试构建一个示例,但由于需要控制段落长度,因此该示例有点长。我尝试过lipsum.sty,但没有在示例中得到想要的(糟糕的)结果。所以请原谅这么多行……

\documentclass{scrreprt}

\setlength{\parskip}{0.5\baselineskip plus 1pt}
\flushbottom

\usepackage{lipsum}

\begin{document}
\chapter{Test}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut,
placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero,
nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue eu neque.
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis
egestas. Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum urna
fringilla ultrices. Phasellus eu tellus sit amet tortor gravida placerat. Integer sapien
est, iaculis in, pretium quis, viverra ac, nunc. Praesent eget sem vel leo ultrices
bibendum. Aenean faucibus. Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac,
nulla. Curabitur auctor semper nulla. Donec varius orci eget risus. Duis nibh mi, congue
eu, accumsan eleifend, sagittis quis, diam. Duis eget orci sit amet orci dignissim
rutrum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit,
vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris.
Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue
eu neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac
turpis egestas. Mauris ut leo. Cras viverra metus rhoncus sem.

Nulla et lectus
vestibulum urna fringilla ultrices. Phasellus eu tellus sit amet tortor gravida
placerat. Integer sapien est, iaculis in, pretium quis, viverra ac, nunc. Praesent eget
sem vel leo ultrices bibendum.  Donec varius orci eget risus. Duis nibh mi, congue eu,
accumsan eleifend, sagittis quis, diam. Duis eget orci sit amet orci dignissim rutrum.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut,
placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero,
nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue eu neque.
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis
egestas. Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum urna
fringilla ultrices. Phasellus eu tellus sit amet tortor gravida placerat. Integer sapien
est, iaculis in, pretium quis, viverra ac, nunc. Praesent eget sem vel leo ultrices
bibendum. Aenean faucibus. Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac,
nulla. Curabitur auctor semper nulla. Donec varius orci eget risus. Duis nibh mi, congue
eu, accumsan eleifend, sagittis quis, diam. Duis eget orci sit amet orci dignissim
rutrum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.

\section{Test}
\lipsum[4-10]
\end{document}

答案1

由于您已将底部对齐,因此您需要添加足够的拉伸来填充页面。TeX 报告页面未满,其不良程度为 10000(这是最糟糕的情况)


您可以\section像这样重新定义:

\let\oldsection\section
\def\section{\filbreak\oldsection}

除非分页符恰好发生在某一节之前(在这种情况下,允许前一页短一些),否则这不会产生任何影响。\filbreak定义为,如果没有发生分页,则添加完全抵消的正胶水和负胶水。 (实际上,如果乳胶显示环境结束前一节,它可能会产生影响,因为额外的胶水会干扰\@addvspace从而“隐藏”已经添加的胶水)

然而在这种情况下它会产生我认为你想要的效果:

在此处输入图片描述


另一种可能性是在章节标题后允许更多的延伸。

\renewcommand\chapterheadendvskip
{\vspace{1.725\baselineskip plus 3\baselineskip minus .192\baselineskip }}

足以摆脱未满的盒子(但会占用很大空间)

在此处输入图片描述

相关内容