要求多色环境中的段落打印在下一页/避免段落断裂

要求多色环境中的段落打印在下一页/避免段落断裂

我玩了很多不同的可用的惩罚。但我无法实现我想要的。下面是一个例子来解释:

\documentclass[]{article}
\usepackage{lipsum}
\usepackage{multicol}
\begin{document}
    \lipsum[1-4]
    \begin{multicols}{2}
        %\raggedcolumns
        \lipsum[4]
        \textbf{\lipsum[5]}
    \end{multicols}
\end{document}

enter image description here

我想避免最后一段跨越两页。因此,粗体打印部分应放在下一页。其余两列文本应保留在第 1 页。可以使用\raggedcolumns,这对我来说没问题。after可以解决\newpage问题\lipsum[4],但我如何让 LaTeX 帮我插入它?

编辑:我需要澄清:2 列文本的内容来自外部来源。我不想手动编辑它:没有分页符,没有环境,也不需要做任何其他更改来更改 2 列文本。只是\lipsum[4-5]

答案1

使用samepage环境应该能达到预期的效果:

\documentclass[]{article}
\usepackage{lipsum}
\usepackage{multicol}
\begin{document}
    \lipsum[1-4]
    \begin{multicols}{2}
        %\raggedcolumns
        \lipsum[4]
        \begin{samepage}
         \textbf{\lipsum[5]}
        \end{samepage}
    \end{multicols}
\end{document}

output of example code

答案2

我找到了一个解决方案:

\documentclass[]{article}
\usepackage{lipsum}
\usepackage{multicol}

\begin{document}
    \lipsum[1-2]
    \begin{multicols}{2}
        \clubpenalties 15 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 0
        \raggedcolumns
        \lipsum[4]
        \textbf{\lipsum[4]}
        \lipsum[4-88]
    \end{multicols}
\end{document}

以 开头的行会为前 14 行添加无限(10000)个换行惩罚(分栏或分页符)。这意味着段落中的前 15 行始终保持在一起。对于较长的段落(例如,参见示例代码第 5 页的最后一段),需要增加保持在一起的行数(通过增加 15 并在最后一个 之前\clubpenalties 15添加相同次数)。100000

\raggedcolumns需要防止 LaTeX 插入空格会导致看起来很混乱的间隙。

相关内容