我在一页上有一个相当长的列表,下一页有 3-4 行。列表之前有一个 7 行的段落。
我想提前 2 厘米开始发布(向上移动)以便整个列表适合页面。然后该段落必须将其最后 3-4 行移到下一页——但是:段落对齐不会中断。
我想我得在列表周围引入一种“迷你页面”之类的东西,并且可以独立于正在运行的文本移动——与图像没什么不同。但是怎么做呢?
答案1
使用float
选项lstlisting
(或\lstset
),您的列表将被视为浮动,并且不会跨页面、对象拆分:
\documentclass{article}
\usepackage{listings}
\usepackage{lipsum}
\begin{document}
\lipsum[1-4]
\begin{lstlisting}[float]
for i:=maxint to 0 do
begin
j:=square(root(i));
end;
for i:=maxint to 0 do
begin
j:=square(root(i));
end;
for i:=maxint to 0 do
begin
j:=square(root(i));
end;
\end{lstlisting}
\lipsum[1]
\end{document}
您可以使用类似下面的命令float=ht
来指定浮动位置。另一个选项是使用\enlargethispage*
,在本例中,放大\textheight
页面:
\documentclass{article}
\usepackage{listings}
\usepackage{lipsum}
\begin{document}
\lipsum[1-4]\enlargethispage*{3\baselineskip}
\begin{lstlisting}
for i:=maxint to 0 do
begin
j:=square(root(i));
end;
for i:=maxint to 0 do
begin
j:=square(root(i));
end;
f or i:=maxint to 0 do
begin
j:=square(root(i));
end;
\end{lstlisting}
\lipsum[1]
\end{document}
但请注意,这可能会导致文本的最后一行太靠近页脚。