我正在尝试将两个半页文档固定在一个文档上,一个位于另一个之上。
到目前为止,下面的方法效果很好,但我在使用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 左右。
真正的问题是两个盒子(也就是两个minipage
s)之间的距离小于\lineskiplimit
TeX 会\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
\nointerlineskip
minipage