multicol 之后 \nobreak 不起作用

multicol 之后 \nobreak 不起作用

假设我想在每个部分的末尾添加一条水平线,但是它不能在分页符后被隔离。

这是一个简单的例子:

\usepackage{latexbug}
\documentclass[12pt]{article}

\usepackage[paperwidth=15cm, paperheight=20cm, top=2cm, bottom=2cm, left=2.5cm, right=2.5cm]{geometry}
\usepackage{multicol}
\usepackage{lipsum}

\widowpenalties 4 9999 9000 6000 2000
\clubpenalties 4 9999 9000 6000 2000

\newcommand{\formattedsection}[2]{
    \section{#1}
    \begin{multicols}{2}
        #2
    \end{multicols}
    \par
    \nobreak\hrulefill  % SHOULD BE ON THE SAME PAGE
}

\begin{document}

\formattedsection{My Section}{\lipsum[1-2]}

\end{document}

\begin{document}

\formattedsection{My Section}{\lipsum[1-2]}

\end{document}

以下是我得到的结果:

在此处输入图片描述

水平线位于孤立的页面中,这是我不想要的。

我做了很多测试,问题似乎出在多列上。我猜它已经定义了多列的末尾是分页符的好位置。有办法恢复吗?

如果我删除多列,并且由于我定义了寡妇惩罚,文本的最后几行将移动到下一页,以防规则不适合页面(下图)。我相信这也是列的预期行为。

在此处输入图片描述

相关内容