我试图用 3 个等距的框垂直填充整个页面的高度。这就是我现在所拥有的
\documentclass{article}
\usepackage[showframe]{geometry}
\usepackage[many]{tcolorbox}
\usepackage{calc}
\usepackage{lipsum}
\newlength{\boxheight}
\setlength{\boxheight}{136.80573pt}
\newlength{\vertspace}
\setlength{\vertspace}{(\textheight - 3\boxheight)/2 - 7pt}
% ----------------
\begin{document}
\begin{tcolorbox}[sharp corners, draft]
\lipsum[1]
\end{tcolorbox}
\vspace{\vertspace}
\begin{tcolorbox}[sharp corners]
\lipsum[1]
\end{tcolorbox}
\vspace{\vertspace}
\begin{tcolorbox}[sharp corners]
\lipsum[1]
\end{tcolorbox}
\end{document}
定义-7pt
中的\vertspace
是新段落给出的两个框之间的垂直空间。如您所见,底部仍然留有一点空间,但我不知道为什么。即使我使用\vfill
,底部的空间仍然会保留。
我该怎么计算\vertspace
?有没有更好的方法呢?
答案1
您可以使用填充空间,无需计算框之间的空间。此外,在 之前留一个空行几乎总是最好的\vspace
。
底部的小间隙是由于绘制的框架为最后一行的文本留下了通常的情况,因此有降部,例如y
和g
。如果您希望最后一个框的底部填充该空间,而不是位于页面的最后一条基线上,那么您可以添加深度为“\strutbox”的负空间。
\documentclass{article}
\usepackage[showframe]{geometry}
\usepackage[many]{tcolorbox}
\usepackage{calc}
\usepackage{lipsum}
\newlength{\boxheight}
% ----------------
\begin{document}
\begin{tcolorbox}[sharp corners, draft]
\lipsum[1]
\end{tcolorbox}
\vspace{\fill}
\begin{tcolorbox}[sharp corners]
\lipsum[1]
\end{tcolorbox}
\vspace{\fill}
\begin{tcolorbox}[sharp corners]
\lipsum[1]
\end{tcolorbox}
\vspace{-\dp\strutbox}
\end{document}