有没有办法强制使用连字符,即使会产生过满的水平盒子?我读过这里(texfaq.org)当 tex 无法找到解决方案时没有超过行距,它只会发出警告。我的文档中有很多单词超出行距的情况,但可以使用连字符来缩短超出距离(通常要短得多)。我猜明确添加连字符没有帮助,因为行距仍然会超出。
使用示例进行更新
好吧,我猜这个问题不太恰当,因为我对 texfaq 文章的理解肯定是错误的。我会解释一下我认为发生了什么,以防万一
- 其他人犯了和我一样的错误,或者
- 有人可以纠正我的进一步的误解。
以下示例显示,即使水平盒子已满,tex 也确实可以进行连字符连接。(我不知道使用 cleveref 包是否重要,但我使用了它,所以我将其包括在内。)
注意:文本宽度和连字符的明确设置只是为了本例的目的。
\documentclass[draft]{amsbook}
\textwidth=49mm
\usepackage[english]{babel}
\usepackage[capitalise]{cleveref}
\newtheorem{corollary}{Corollary}
\hyphenation{corol-lary}
\begin{document}
\noindent
aaaaaaaaaaaaaaaaaaaaaaaaaa \cref{testcor}.
\begin{corollary}\label{testcor}
a a a a a a a a a a a a a a
\end{corollary}
\setcounter{corollary}{999}
\noindent
aaaaaaaaaaaaaaaaaaaaa \cref{testcor-b}.
\begin{corollary}\label{testcor-b}
a a a a a a a a a a a a a a
\end{corollary}
\end{document}
输出如下所示:
在引用推论 1 的行中,尽管水平盒子已满,但仍有连字符。在引用推论 1000 的行中,没有出现连字符,因为它太靠近单词末尾。此外,tex 不会将数字 1000 与单词分开,而这正是所需的行为。
我的文档中实际上没有 1000 个推论,但我确实有数字,如 3.4.21,用于引用第 3 章第 4 节中的推论 21。再看一遍,我的大部分长溢出水平盒子都是因为数字太长。我想除了\sloppy
(或以\tolerance
其他方式更改)或重新措辞之外,没有别的办法了。
答案1
\hyphenation{corol-lary}
实际上不做任何事情,因为这是默认设置。如果你允许多几个连字符点
\hyphenation{cor-ol-l-ary}
你可以获得更好的留置权解除:
好吧,我想说这里最好没有对错之分,但在双 L 之后断线对我来说似乎也不算太糟糕。
或者您可以保留默认的连字符,但在 cref 插入的单词周围留出一点空格。我不太了解这个包,所以我将空格作为单词的一部分添加(可能有更好的界面)。如果您添加
\Crefname{corollary}{\hspace{0pt plus 1pt}Corollary\hspace{0pt plus 1pt}}{Corollaries}%
然后你得到