我想要存档的内容:
布局中 \raggedbottom 生效,parskip 按照配置拉伸段落。如下所示:
\raggedbottom
\setlength{\parskip}{11pt plus 5pt minus 5pt}
我期望 parskip 能将段落拉长至 5pt(或将主题缩小 5pt),但发生的情况是:什么也没有。
如果我使用 \flushbottom,无论我使用什么,段落都会被拉伸以适合页面。唯一的区别是,不良报告取决于 parskip 是否过度拉伸。
所以我的问题是:有没有办法实现 parskip 拉伸到给定值的期望结果,但不管 \flushbottom 是否实现,都不会更多?
根据要求编辑:
完全不拉伸:
\documentclass{article}
\addtolength\textheight{-10.7\baselineskip}
\setlength{\parskip}{0pt plus 11pt}
%\flushbottom
\begin{document}
aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa
bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb
\pagebreak
ccc
\end{document}
拉伸到最大限度(远远超过 parskip 所“允许”的程度):
\documentclass{article}
\addtolength\textheight{-10.7\baselineskip}
\setlength{\parskip}{0pt plus 11pt}
\flushbottom
\begin{document}
aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa
bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb
\pagebreak
ccc
\end{document}
我希望它处于中间位置:延伸到 parskip 允许的范围内,但不要延伸太远。
(例子毫无羞耻地借用自parskip 和类似参数如何表现)
答案1
默认\raggedbottom
添加
plus.0001fil
粘贴到页面底部,这是无限顺序,因此没有有限顺序粘贴会拉伸,所以您的\parskip
实际上是 0pt。
因此,您可以重新定义\@textbottom
为使用有限胶水(例如0pt plus \textheight
)或定义\parskip
为具有fil
胶水(这将允许它无限制地增长而不会积累坏处)
所以你可能想要
\def\@textbottom{\vskip \z@ \@plus \textheight}
因此拉伸分布在页面底部和段落之间。
但请注意,如果胶水伸展,您不能给它一个上限
\setlength{\parskip}{0pt plus 11pt}
这并不意味着粘合最多可以延伸到 11pt,在不良度计算中使用了正值,因此当粘合超出该范围时,页面的不良度会迅速增加,但如果需要,它仍然会超出该范围。
所有有限粘连都会按相同的因子拉伸,因此页面空间的末尾将比段落间空间拉伸更多,拉伸比例与\textwidth
11pt 相同。
如果只有一个段落分隔符,并且 textbottom 具有完整的 textheight 拉伸,则 parskip 会拉伸一点,但只是引人注目
如果你只在底部给出 .4\textheight,那么 parskip 会得到更多的拉伸
如果你只允许 .1 文本高度,那么 parskip 会拉伸更多,但现在拉伸不够,无法填满页面,并且不会出现框未满警告
Underfull \vbox (badness 1253) has occurred while \output is active
\documentclass{article}
\addtolength\textheight{-10.7\baselineskip}
\setlength{\parskip}{0pt plus 11pt}
%\flushbottom
\makeatletter
\def\@textbottom{\vskip \z@ \@plus .1\textheight}
\makeatother
\begin{document}
aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa
bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb
\pagebreak
ccc
\end{document}