LaTeX 的连字符功能很好用。但是,如何才能让每个段落的最后一个单词都不加连字符呢?当然,也可以使用组合\mbox{last word}
,但是这样太复杂了。
答案1
(收到 Enrico 和 Gustavo 的评论后修改了答案)
Plain-TeX 和 LaTeX 都提供以下默认设置:
\finalhyphendemerits=5000
如果段落的倒数第二行以自由连字符结尾,则此参数会起作用。 \finalhyphendemerits=200000
例如,将此设置更改为 会严重增加与段落倒数第二行末尾的自由连字符相关的惩罚 - 使得这种自由连字符发生的可能性(大大)降低。
但是,如果段落的最后一个单词恰好是“supercalifragilisticexpialidocious”之类的词,那么即使\finalhyphendemerits=1000000
有效,TeX 仍可能会在该单词中插入一个自由连字符,因为不使用连字符可能会使段落看起来(甚至)更糟。
这是 MWE。请注意,第一段允许对最后一个“supercalifragilisticexpialidocious”实例进行连字符连接,尽管这\finalhyphendemerits=1000000
是强制的,但看起来比第二段好得多,因为第二段中的最后一个单词由于包装器的存在而无法使用连字符连接\mbox
。
\documentclass[draft]{article} % insert a "slug" at overfull lines
\newcommand\super{supercalifragilisticexpialidocious }
\begin{document}
\finalhyphendemerits=1000000
\noindent
\super\super\super
\noindent
\super\super\mbox{\super}
\end{document}