如何设置一个环境,它可以垂直居中环境中的内容。在给定顶部页边距和底部最小页边距之后,环境内的文字可以在 "showframe" 内垂直居中显示。
下面是正常输出的结果:
\documentclass{article}
\usepackage{lipsum,showframe}
\usepackage[
paperwidth=120mm,
paperheight=80mm,
margin=10mm
]{geometry}
\begin{document}
\lipsum[2-3]
\end{document}

但我想让第二页文字垂直居中,当然第一页已经占满一整页,就等价于不做任何修改。请问该怎么实现。
模仿\raggedbottom、\flushbottom的方案:
\documentclass{article}
\usepackage[
paperwidth=120mm,
paperheight=80mm,
margin=10mm,
showframe
]{geometry}
\usepackage{lipsum}
\begin{document}
\makeatletter
\def\@texttop{\vskip \z@ \@plus 1fil}
\makeatother
\section{abc}
\lipsum[2-3]
\newpage
\section{def}
\lipsum[2][1-3]
\end{document}
忽然发现我有一点理解错...我以为你需要的是对所有文本没垂直居中的页面都居中... Anyway...
有考虑过对
\ShipoutBox进行一些操作...但不成功😔Attepmt1
Attempt2
@u70550 把它们封装到一个环境里就行了:
\ShipoutBox并不只是包含正文文本,还可能有其它东西,宽高也不是版心的宽高。比如showframe就会往\ShioputBox添加一些线,这时再给它加上\vfill就太迟了。@u10307 谢谢雾月老师,学到了
@u70550 谢谢S老师,这就是我的需求