我正在使用 memoir 类,需要对齐页面底部。默认情况下,memoir 类通过在段落之间插入空格来实现这一点,而这并不是我想要的。因此,我使用命令\raggedbottom
并仅在我想要的位置插入垂直间距。
我遇到了如下的情况,我想添加大约半行垂直空间,所以我想在右侧页面的两个部分标题上方添加一点点空间。
我在两个部分标题上方插入了该命令\vspace{\fill}
,但只有当页面底部的空间超过一行左右时,它才对我有用。如果它很小,就像上面的例子一样,我得到这个:
能\vspace{\fill}
解决这个用例吗?如果不能,有没有更好的方法?
这是我的 MWE:
\documentclass{memoir}
\clubpenalty=10000
\widowpenalty=10000
\usepackage{lipsum}
\raggedbottom
\begin{document}
\lipsum[1-10]
\subsection{Subsection Two}
\lipsum[1-1]
\vspace{\fill}
\section{Section Five}
\lipsum[1-1]
\vspace{\fill}
\section{Section Six}
\lipsum[1-1]
\section{Section Seven}
\lipsum[1-1]
\end{document}
编辑
下面是一个效果很好的示例\vspace{\fill}
。我将命令添加\enlargethispage{2\baselineskip}
到 MWE 的第 11 行和第 23 行,结果如下:
在部分标题上方添加\vspace{\fill}
内容可以很好地解决问题,如下所示。因此,无论页面底部的空间有多小,我都希望完成相同的操作。
答案1
这回答了“如何调整设置以适应 插入的最小允许空间\vspace{\fill}
?”的问题。与此同时,很明显这不是实际需要的。答案留待后人参考。
您也\vspace*{\fill}
可以使用\vspace*{1cm plus 1fill}
。
答案2
你允许空间任意增大,因此在部分之前引入了较大的间隙
\vspace{0pt plus \baselineskip}
会对超过基线跳跃的增长给予惩罚,并产生以下结果:
你看到的带有章节标题的页面更加合理,并且页面与底部齐平,但是由于设置,第一页少了一行
\clubpenalty=10000
\widowpenalty=10000
这始终是有问题的。
在该页面上,您要么需要允许页面(或许还有双页)变短,要么放弃 10000 个惩罚,要么调整换行,\looseness
但在此文本中,没有简单的段落可以强制延长一行。
\documentclass{memoir}
\clubpenalty=10000
\widowpenalty=10000
\usepackage{lipsum}
\raggedbottom
\begin{document}
{\emergencystretch=1em
\looseness=1
\lipsum[1]
}
\lipsum[2-4]
\lipsum[5]
\lipsum[6-10]
\subsection{Subsection Two}
\lipsum[1-1]
\vspace{0pt plus \baselineskip}
\section{Section Five}
\lipsum[1-1]
\vspace{0pt plus \baselineskip}
\section{Section Six}
\lipsum[1-1]
\section{Section Seven}
\lipsum[1-1]
\end{document}
是
这显然不是一个进步
答案3
我完全搞错了。正如我的问题中提到的,我想要底部齐平但段落之间没有空格。默认的 memoir 类给出了这个输出,其中包含我不想要的段落间距,如下所示:
因此,我习惯\raggedbottom
将段落放在一起,然后固定它们之间的间距。以下是底部有缺口的相同文本:
我现在看到我可以使用默认的底部间距并摆脱段落间距而不使用\raggedbottom
设置\setlength{\parskip}{0pt}
,这很好用,但可以理解的是,在部分标题上方留下很大的空间:
可以通过将两个页面缩短一行来减少\enlargethispage{-1\baselineskip}
:
我的稿件中有很多引用的文字、章节和图表,因此有很多机会添加段落之间的间距。我确信这不会满足每个人的需求,但我在稿件的前 100 页上进行了测试,效果很好。
以下是上述示例的代码
\clubpenalty=10000
\widowpenalty=10000
\usepackage{lipsum}
% \raggedbottom
\setlength{\parskip}{0pt}
\begin{document}
\lipsum[1-9]
\subsection{Subsection Two}
\enlargethispage{-1\baselineskip}
\lipsum[1-1]
\section{Section Five}
\enlargethispage{-1\baselineskip}
\lipsum[1-3]
\section{Section Six}
\lipsum[1-1]
\section{Section Seven}
\lipsum[1-1]
\end{document}