在多元环境中处理寡妇

发布于 2024-08-24 04:16:48 字数 737 浏览 7 评论 0原文

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

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

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

我还阅读了 multicol 文档 但没有找到任何有用的东西。

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

上述示例的完整 LaTeX 文档

I have problems with dealing with widows within a multicols environment, that is, I have not managed to instruct LaTeX to remove the them.

This PDF document shows an example of the problem. At the top of the second page, I get a widow from the last paragraph of the first page. I have tried a couple of approaches, without luck:

  • setting both \widowpenalty and \clubpenalty to high values
  • switching between \raggedcolumns and \flushcolumns
  • adjusting the collectmore and unbalance counters

I've also read through the documentation for multicol but have not found anything useful.

Is there anything else I could try?

(The complete LaTeX document for the above example)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

演出会有结束 2024-08-31 04:16:48
{\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。该宏之后直到段落末尾将禁止分页。

{\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}

Insert \nomorebreak at any place of your paragraph. Page breaks will be prohibited after this macro until the end of the paragraph.

悲喜皆因你 2024-08-31 04:16:48

似乎 TeX FAQ 项目 控制寡妇和孤儿 有一些您尚未尝试过的选项。

摆脱寡妇可能会更加棘手。选项有

  • 如果上一页包含很长的段落,最后一行很短,则可以将其设置为“紧”:写\looseness=-1
    紧接在该段落的最后一个词之后。
  • 如果这不起作用,请调整页面大小,使用 \enlargethispage{\baselineskip} 向页面“添加一行”,这会
    可能会产生将整个段落放在一页上的效果。
  • 通过 \enlargethispage{-\baselineskip} 减小页面大小可能会产生(或多或少)可接受的“双行寡行”。

It seems that the TeX FAQ item Controlling widows and orphans has some options you did not try yet.

Getting rid of a widow can be more tricky. Options are

  • If the previous page contains a long paragraph with a short last line, it may be possible to set it “tight”: write \looseness=-1
    immediately after the last word of the paragraph.
  • If that doesn’t work, adjusting the page size, using \enlargethispage{\baselineskip} to “add a line” to the page, which
    may have the effect of getting the whole paragraph on one page.
  • Reducing the size of the page by \enlargethispage{-\baselineskip} may produce a (more-or-less) acceptable “two-line widow”.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文