我有 6 行的列表。列表框似乎不适合放在一页上(它位于页面底部),因此框的其余部分打印在下一页。下一页的框中实际上什么都没有。我该如何避免这种情况?我可以告诉列表在下一页上至少放 3 行吗?
答案1
使用
\begin{lstlisting}[float,...]
那么它里面就不能有分页符
答案2
也许你可以使用samepage
环境。一个非常小的例子
\begin{samepage}
\begin{verbatim}
line 1
line 2
line 3
line 4
line 5
line 6
\end{verbatim}
\end{samepage}
答案3
我遇到过类似的问题,标题和一行代码可能出现在一页的末尾,而其余代码出现在下一页。这个包帮了我大忙。它并不完美,因为我必须在错误的地方needspace
设置每个命令,但对于一个快速而粗糙的解决方案来说,这没问题。\lstlisting
% preamble
\usepackage{needspace}
% document
\needspace{5\baselineskip} % reserve at least 5 lines, if there is not enough
% space, insert a page break
\begin{lstlisting}[...]
答案4
您可以使用minipage
环境,它可以确保其自身包含的所有内容都保持在一起,并且如果没有更多空间容纳所有内容,那么它会移动到下一页,在那里它应该有足够的空间来显示(它只有六行,所以它不必跨越多页)。
\documentclass[a4paper]{article}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage[colorinlistoftodos]{todonotes}
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit
esse cillum dolore eu fugiat nulla pariatur. Excepteur
sint occaecat cupidatat non proident, sunt in culpa qui
officia deserunt mollit anim id est laborum.
\begin{minipage}{\textwidth}
line #1
line #2
line #3
line #4
line #5
line #6
\end{minipage}
\end{document}