如何防止 LaTeX 将 \sections 放在页面的最末端?

如何防止 LaTeX 将 \sections 放在页面的最末端?

请查看下面的屏幕截图。我遇到了一个问题,LaTeX 会将 放在\section页面的最末端。到目前为止,我通过使用\newpage但解决了这个问题我刚刚了解到这是完全错误的。

我将memoir文档类与listings包一起使用作为代码示例。屏幕截图中的页面是这样生成的:

\section{Substitute (find and replace) "foo" with "bar" on each line}

\begin{lstlisting}
awk '{ sub(/foo/,"bar"); print }'
\end{lstlisting}

....

\section{Substitute "foo" with "bar" only on lines that contain "baz"}

\begin{lstlisting}
awk '/baz/ { gsub(/foo/, "bar") }; { print }'
\end{lstlisting}

...

\section有人知道如果 s 位于最底部,如何让它们始终转到新页面吗?

在此处输入图片描述

答案1

needspace包提供了 \needspace 和 \Needspace 宏,用于在当前页面上请求一定量的空间来存储以下内容。

\documentclass{article}
\usepackage[a4paper]{geometry}
\usepackage{needspace}
\usepackage{listings}
\lstset{frame=single}
\usepackage{lipsum}
\begin{document}
\lipsum[1-6]    
\Needspace*{10\baselineskip}% you need a vertical space of 10 times \baselineskip for the following section.
\section{Something}
    \begin{lstlisting}
        hello world !
        hello universe !
    \end{lstlisting}
\end{document}

相关内容