在页面末尾使用多列时防止分页

在页面末尾使用多列时防止分页

我有一个部分,其中的列位于页面末尾附近,编译时会分页。我想将列保留在第一页。如何操作?谢谢

\section{Section}
\begin{multicols}{4}
    \begin{itemize}
        \item a
        \item b
        \item c
        \item d
    \end{itemize}
\end{multicols}

编译代码

答案1

我的评论的扩展。\enlargethispage可能会有所帮助,但不幸的是它并不是万能的灵丹妙药。

% enlargeprob.tex  SE 637686

\documentclass{article}

\usepackage{lipsum}

\begin{document}

\enlargethispage{1\baselineskip}  %% extends text by one line
%\enlargethispage{2\baselineskip}  %% extends text by two lines, bumping into the footer
%\enlargethispage{3\baselineskip}  %% extends text by three lines, overprinting the footer

\lipsum[1-6]

\end{document}

答案2

虽然您肯定没有使用标准\section,但由于没有 MWE,我不得不凑合(您的里程可能会有所不同)。如果没有特殊处理,任何超过的内容38\baselineskip都会强制分页。

主要问题是多列会在前后添加额外的空间。删除这些空间的一种方法是将其放入 minipage 中,以吸收顶部和底部的空间。

\documentclass[letterpaper]{article}
\usepackage{multicol}
\usepackage{showframe}
\begin{document}
\noindent\rule{\textwidth}{39\baselineskip}

\section{Section}\everypar{}% disable \@afterheading
\hrule
\noindent\begin{minipage}{\textwidth}
\begin{multicols}{4}
    \begin{itemize}
        \item a
        \item b
        \item c
        \item d
    \end{itemize}
\end{multicols}\end{minipage}
\hrule

\end{document}

相关内容