强制页面顶部和底部的垂直空白完全相同

强制页面顶部和底部的垂直空白完全相同

我正在尝试获得前导和尾随垂直空白的精确对称性。

我有一份 1 页示例文档,其中顶行包含虚拟文本“ABCDE”,一些虚拟垂直空间,底行也包含文本“ABCDE”。我的页面尺寸为 8.5 英寸 x 11 英寸。

目标是使页面绝对顶部到第一行字母 A 顶部的距离与页面绝对底部到最后一行字母 A 底部的距离完全相同。

我尝试了以下操作:

\documentclass{article}
\pagenumbering{gobble}
\begin{document}
\topskip=0pt
\vspace*{\fill}
ABCDE
\par
\vspace{7in}
\par
ABCDE
\vspace*{\fill}
\end{document}

但它不太起作用。

我希望该解决方案能够自动适用于所有页面,每个页面都有各自大小的前导和尾随垂直空白。例如,一个页面可能需要 4 英寸的前导和尾随空间,我希望将其拆分为顶部 2 英寸和底部 2 英寸,而其他页面可能只需要 1.5 英寸的垂直空间,我希望将其拆分为顶部 0.75 英寸和底部 0.75 英寸。

我该怎么做?提前致谢。

答案1

您可以使用geometry包来对称设置边距。如果您根本不想要任何边距:

\documentclass{article}
\pagenumbering{gobble}

\usepackage[ 
    %showframe, 
    top=0pt, 
    bottom=0pt,
    paperwidth=8.5in,
    paperheight=11in,
]{geometry}

\begin{document}
\topskip=0pt
\vspace*{\fill}
ABCDE
\par
\vspace{10.5in}
\par
ABCDE
\vspace*{\fill}
\end{document}

该包还可用于设置纸张尺寸。

答案2

我认为您的意思是像这样没有页眉或页脚,并且所有内容都垂直居中。

在此处输入图片描述

\documentclass{article}
\usepackage{showframe}
\makeatletter
\let\@textbottom\vfill \let\@texttop\vfill

\setlength\topmargin{-1in}
\setlength\headheight{0pt}
\setlength\headsep{0pt}
\setlength\footskip{0pt}
\setlength\paperheight{\textheight}
\AtBeginDocument{\setlength\pdfpageheight{\paperheight}}

\makeatother

\pagestyle{empty}
\def\zz{One two three One two three One two three One two three 
One two three One two three One two three One two three 
\par
One two three One two three One two three One two three 
\par
One two three One two three One two three One two three One two three 
\begin{center}\rule{1in}{4in}\end{center}
One two three One two three One two three One two three 
\par
One two three One two three One two three One two three 
\par
One two three One two three One two three One two three 
One two three One two three One two three One two three One two three\par}
\begin{document}
ABCDE
\par
\vspace{7in}
\par
ABCDE
\clearpage

\zz\zz
\end{document}

答案3

如果您想要获得顶部和底部的精确空间,请指定它们。

\documentclass{article}
\usepackage[top=0pt,bottom=0pt,letterpaper]{geometry}

\pagestyle{empty}
\setlength{\topskip}{0pt}

\begin{document}

\vspace*{2in}

ABCDE

\vspace*{\fill}

ABCDE

\vspace*{2in}

\end{document}

您不能通过指定中间的空间来做到这一点,因为否则文本占用的空间将进入假定的边距。

在此处输入图片描述

相关内容