即使创建了过满的水平盒子,也要使用连字符

即使创建了过满的水平盒子,也要使用连字符

有没有办法强制使用连字符,即使会产生过满的水平盒子?我读过这里(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}%

然后你得到

在此处输入图片描述

相关内容