注意:红线的长度相同。
\documentclass{minimal}
\usepackage[showframe,paperwidth=4cm,paperheight=4cm,margin=1cm]{geometry}
\begin{document}
%
\vspace*{\fill}%
\fbox{test}%
\vspace*{\fill}%
%
\end{document}
答案1
我认为您观察到的差异来自\topskip
自动插入的。您可以通过注释和取消注释下面的宏来查看效果\topskip0pt
。
\documentclass{minimal}
\usepackage[showframe,paperwidth=4cm,paperheight=8cm,margin=1cm]{geometry}
\usepackage{lipsum}
\newcommand{\vstretch}[1]{\vspace*{\stretch{#1}}}
\begin{document}
\topskip0pt
\vstretch{1}
\noindent\fbox{test}%
\vstretch{1}
\end{document}
答案2
我找到解决办法了。
\documentclass{minimal}
\usepackage[showframe,paperwidth=4cm,paperheight=4cm,margin=1cm]{geometry}
\begin{document}%
\noindent%
\begin{minipage}[c][\textheight][c]{\textwidth}%
\centering\fbox{test}%
\end{minipage}%
\end{document}