将页面水平拆分为两半

将页面水平拆分为两半

我正在尝试将两个半页文档固定在一个文档上,一个位于另一个之上。

到目前为止,下面的方法效果很好,但我在使用0.5\textheight第二个小页面的高度时遇到了麻烦。当我更改0.49为时0.5,第二页会跳转到另一页。我做错了什么?有没有更好的方法来实现我想要的效果?

\documentclass{article}
\usepackage[vmargin=0.4in]{geometry}
\pagestyle{empty}
\parindent = 0.0in

\begin{document}
    \begin{minipage}[t][0.5\textheight][t]{\textwidth}
        Page 1
    \end{minipage} \\
    \begin{minipage}[b][0.49\textheight][t]{\textwidth}
        \vspace{0.4in}
        Page 2
    \end{minipage}
\end{document} 

答案1

添加线条

\tracingoutput=1
\showboxdepth=3
\showboxbreadth=99

先阅读前言,然后查看日志文件,这样做很有启发性。以下是正文部分的内容:

..\vbox(737.15489+0.0)x430.00462, glue set 3.20049fil
...\write-{}
...\glue(\topskip) 3.16669
...\hbox(6.83331+361.74413)x430.00462 []
...\penalty 300
...\glue(\lineskip) 1.0
...\hbox(361.20995+0.0)x430.00462 []
...\glue 0.0 plus 1.0fil
...\glue 0.0
...\glue 0.0 plus 0.0001fil

因此\topskip,线跳胶显然是罪魁祸首。

您可以通过以下方式关闭\topskip给定页面的粘合功能:

\hbox{}\kern-\topskip

并且,您可以通过以 结尾来关闭给定段落的行间跳过{\offinterlineskip\par}

答案2

如果你将两个小页面包装在一起\vbox并查看输出,vbox 会超出 1pt 左右。

真正的问题是两个盒子(也就是两个minipages)之间的距离小于\lineskiplimitTeX 会\lineskip在它们之间插入粘连。处理这个问题的方法是像这样放在\nointerlineskip第二个之前。minipage

\vbox{
    \begin{minipage}[t][0.5\textheight][t]{\textwidth}
        Page 1
    \end{minipage}

    \nointerlineskip
    \begin{minipage}[b][0.5\textheight][t]{\textwidth}
        \vspace{0.4in}
        Page 2
    \end{minipage}
}

把 留在那里\vbox可以解决 的问题\topskip

或者,您可以删除并在其位置\vbox添加。同样,是必要的,以防止 TeX 试图在空 hbox 和第一个 之间留出空间。\null\kern-\topskip\nointerlineskip\nointerlineskipminipage

相关内容