我在multicols环境中处理寡妇时遇到问题,也就是说,我没有设法指示LaTeX删除它们。

This PDF document显示了该问题的示例。在第二页的顶部,我从第一页的最后一段得到了一个寡妇。我尝试了几种方法,但是没有运气:


\widowpenalty\clubpenalty都设置为高值
\raggedcolumns\flushcolumns之间切换
调整collectmoreunbalance计数器


我也阅读了documentation for multicol,但没有发现任何有用的信息。

还有什么我可以尝试的吗?

The complete LaTeX document for the above example

最佳答案

{\obeyspaces\gdef\nomorebreak{\beginnomorebreak\let \nobreakspace}}
\def\beginnomorebreak{\begingroup
   \def\par{\endgraf\endgroup\par\penalty 9999 }\obeyspaces
   \brokenpenalty 10000 \widowpenalty 10000 \clubpenalty 10000 }
\def\nobreakspace{\vadjust{\nobreak} \removespaces}
\def\removespaces{\futurelet\next\checkspace}
\def\checkspace{\ifx\next\nobreakspace\expandafter\removesinglespace\fi}
\def\removesinglespace#1{\removespaces}


在段落的任何位置插入\nomorebreak。在该宏之后,将禁止分页符,直到该段末尾为止。

关于latex - 在multicol环境中与寡妇打交道,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2386828/

10-12 23:53