如何在页面上创建多个垂直空间,使每个空间都有自己的最小空间fill
对于每次发生的情况,只有当所有其他具有较小最小值的发生情况都已延伸到所讨论发生的最小值时,才会延伸到?
其理念是将页面上的所有垂直空间拉伸至相等高度(尽可能达到该高度),填满页面,同时确保满足每个出现的单个最小空间量的绝对要求。如果页面上有足够多的未使用垂直空间,这将导致所有空间变得相等,无论它们的最小值如何。
这是另一种更程序化的解释方式。我在一页上有多个垂直空间。每个空间都有一个最小值,这个最小值可以不同于其他空间。在满足这些最小空间要求后,如果页面上还有未使用的空间,我想拉伸这些空间。拉伸是通过扩大最小的空间来实现的,直到它(或它们,如果有多个相等的空间)等于第二小的空间,然后在现在最小的空间上重复拉伸。只要页面上有未使用的空间,或者所有垂直空间的高度都相等,就会重复此操作,之后它们都会被拉伸,直到页面上没有未使用的空间。
下面的示例使用\vspace
可拉伸长度无法按预期工作。实际空间将成为基值(5ex
或15ex
)加 1fill
(对于 的两个实例都是相同的\vspace
),从而导致垂直空间的长度不匹配,而不管页面上有多少可用空间。
\documentclass{article}
\begin{document}
Some stuff\par
\vspace{5ex plus 1fill}
More stuff\par
\vspace{15ex plus 1fill}
Even more stuff\par
\end{document}
用替换\vspace
上面的命令\addvspace{5ex}\addvspace{0pt plus 1fill}
没有帮助。
答案1
请看看这是否有帮助,取自http://joshua.smcvt.edu/latex2e/_005caddvspace.html
\addvspace
概要:
\addvspace
{vert-length} 添加垂直长度为 vert-length 的垂直空间。但是,如果序列中有两个或更多个 vert-length,\addvspace
则它们加在一起仅添加使自然长度等于该序列中 vert-length 的最大值所需的空间。此命令很脆弱(请参阅\protect
)。vert-length 是橡胶长度(请参阅 长度)。
此示例说明。图片绘制了一个比例尺。在标准的 LaTeX 文章中,长度\baselineskip
为 12pt。此处的两个规则相差 22pt: 的总和\baselineskip
以及第一个 的 10pt \addvspace
。
现在取消注释第二个\addvspace
。它不会使间隙变长 20pt;相反,间隙是\baselineskip
20pt 的总和。因此,\addvspace
从某种意义上说,它的作用与其名称相反——它确保多个垂直空间不会累积,而是只使用最大的一个。
LaTeX 使用此命令调整开始新段落的环境上方或下方的垂直空间。例如,定理环境以 开始和结束,\addvspace
因此两个连续的定理之间有一个垂直空间,而不是两个。
错误“有些不对劲——可能缺少\item
指向 ”意味着\addvspace
您在点击此命令时未处于垂直模式。更改此情况的一种方法是使用\addvspace
命令\par
(参见\par
),如上例所示。
\documentclass{article}
\usepackage{color}
\begin{document}
\setlength{\unitlength}{2pt}%
\noindent\begin{picture}(0,0)%
\multiput(0,0)(0,-1){25}{{\color{blue}\line(1,0){1}}}
\multiput(0,0)(0,-5){6}{{\color{red}\line(1,0){2}}}
\end{picture}%
\rule{0.25\linewidth}{0.1pt}%
\par\addvspace{10pt}% \addvspace{20pt}%
\par\noindent\rule{0.25\linewidth}{0.1pt}%
\end{document}
\addvspace
启用两者的结果