我遗漏了一些东西:将逐字块括在同一页面展开上一页并将逐字块移动到新页面,但也会拖动上一段的最后一行,从而在上一页上创建孤行,在新页面上的逐字块之前创建寡行:
paragraph line one bla bla etc and so on
line two bla bla etc end of paragraph
\begin{samepage}
\begin{verbatim}
line 1
line 2
line 3
line 4
line 5
line 6
line 7
line 8
line 9
line 10
\end{verbatim}
\end{samepage}
如果我排除同一页面然后分页符就会出现line 8
在逐字块之后。
当我包括同一页面然后拉伸前一页(不是底部参差不齐),将逐字块完整地带到下一页。 但它还会将第一行和第二行之间的最后一段拆分开来,在上一页创建一个孤行,并在新页面上创建一个孤行。
为什么会这样?我该如何预防?
答案1
samepage
设置\@beginparpenalty
为 10000。此惩罚由列表使用,使用它您可以防止在列表前直接分页。的实现 verbatim
使用列表,因此它也受设置的影响(其他也会受到影响的环境例如center
和quote
。您可以添加断点,例如\goodbreak
:
\documentclass{article}
\begin{document}
x
\vspace{37\baselineskip}
paragraph line one bla bla etc and so on\\
line two bla bla etc end of paragraph
%\goodbreak %uncomment
\begin{samepage}
\begin{verbatim}
line 1
line 2
line 3
line 4
line 5
line 6
line 7
line 8
line 9
line 10
\end{verbatim}
\end{samepage}
\end{document}