编辑: 这个问题的原始标题是“如何使用 geometry 包避免出现孤行和寡行?”然而,正如 egreg 指出的那样,该geometry
包并不是导致问题的原因。因此,我更正了标题。
我正在写论文。我的大学规定了页边距,绝对禁止出现孤行和寡行。为了避免后者,我将和都设置clubpenalty
为widowpenalty
10000。我正在使用geometry
包来设置边距。如以下示例所示(或者,至少在我运行 pdfLaTeX 时显示),这会产生孤行和寡行。我尝试使用geometry
各种选项,例如包括或忽略这个或那个。我怎样才能保持所需的边距而不产生孤行和寡行?
\documentclass{article}
\usepackage[lmargin=1.5in,rmargin=1.0in,tmargin=1.0in,bmargin=1in]{geometry}
\usepackage{lipsum}
\widowpenalty = 10000
\clubpenalty = 10000
\begin{document}
\lipsum
This text is boring and repetitive.
This text is boring and repetitive.
This text is boring and repetitive. However, it is easy to see that
\[x^n + y^n = z^n\]
has no solutions for $n \geq 3$. This text is boring and repetitive. This text is boring and repetitive.
This text is boring and repetitive.
This text is boring and repetitive.
\end{document}
答案1
在孤行和寡行上下文中,显示的方程式不计入段落的一部分。您可以通过设置禁止在显示的方程式后分页
\postdisplaypenalty=10000
答案2
该geometry
软件包有没有什么与寡妇和孤儿有关。在您的示例中,由于显示而创建了一个寡妇。可以应用一些补救措施,但只有当您的文档文本为最终形式时才可以。
例如,在“几乎已满”的长段落中添加一行可能会避免出现孤行或寡行
Some long paragraph that ends almost flush right.\looseness=1
或者相反,试图缩短一个没有填满最后一行的长段落
Some long paragraph that doesn't fill the last line.\looseness=-1
其他已知的技巧是在段落中添加一些单词,或者删减一些单词。
为“避免”孤儿设置的正确参数是
\makeatletter
\@clubpenalty=10000
\makeatother
\clubpenalty=10000 % initial value
因为 LaTeX在某些情况下将其更改为 10000 后\@clubpenalty
会恢复。\clubpenalty
最后的评论:您的机构禁止俱乐部和寡妇线,但强迫您使用一种非常糟糕且难以阅读的页面格式。:(
答案3
必须做出一些让步……
如果你不想让 TeX 崩溃那里您必须让它在其他地方断裂。如果在其他地方断裂,页面上没有足够的伸展空间来填补。以下设置适用于您的示例,但是...
\widowpenalty = 10000
\clubpenalty = 10000
\postdisplaypenalty =100
\parskip0pt plus 15pt
答案4
除了上述所有(非常好!)答案之外,该microtype
软件包可能也会有所帮助。虽然它确实需要不时进行大量调整。但它可以让您在子字母级别上具有灵活性。
例如,如果存在孤儿字母,对于前面的行,您可以要求 TeX/microtype 将字母挤压得更紧密一些,这样就解决了孤儿字母的问题。
但是,在完成整个文档之前,您真的(真的)不应该开始任何此类调整。事实上,在章节开头添加一行可能需要您重新调整该章节中的所有孤行和寡行。