我玩了很多不同的可用的惩罚。但我无法实现我想要的。下面是一个例子来解释:
\documentclass[]{article}
\usepackage{lipsum}
\usepackage{multicol}
\begin{document}
\lipsum[1-4]
\begin{multicols}{2}
%\raggedcolumns
\lipsum[4]
\textbf{\lipsum[5]}
\end{multicols}
\end{document}
我想避免最后一段跨越两页。因此,粗体打印部分应放在下一页。其余两列文本应保留在第 1 页。可以使用\raggedcolumns
,这对我来说没问题。after可以解决\newpage
问题\lipsum[4]
,但我如何让 LaTeX 帮我插入它?
编辑:我需要澄清:2 列文本的内容来自外部来源。我不想手动编辑它:没有分页符,没有环境,也不需要做任何其他更改来更改 2 列文本。只是\lipsum[4-5]
。
答案1
答案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
添加相同次数)。10000
0
\raggedcolumns
需要防止 LaTeX 插入空格会导致看起来很混乱的间隙。