如何保持文本连贯

如何保持文本连贯

我目前正在创建各种宏来格式化文本。现在我想将某些信息放在一起。似乎有两种方法可以实现这一点:

  1. 使用如下的框mbox
  2. 使用~将事物放在一起

应该优先选择哪种方法?

答案1

这取决于您的应用程序。

  1. 如果您使用\mbox,则禁止使用连字符,并且单词间距是固定的,可能与周围文本不同。如果您将其用于单个单词,则间距没有差异,但使用多个单词,则可能会有差异(可能不可见,但仍然如此)。

  2. 如果使用~,则单词间距不会改变且灵活,并且单词可能会在连字点处断开,但不会出现在单词间距处。

让我们看一些例子(当然很极端,但仍然如此)。文本的各部分都已用颜色编码以突出显示任何更改:

在此处输入图片描述

\documentclass{article}
\usepackage{xcolor}
\begin{document}

\noindent\textbf{Default paragraph:}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin at ultrices 
quam, condimentum varius leo. Morbi dignissim ut felis id molestie. Pellentesque 
\textcolor{green}{convallis quam lacus, sit amet sodales mauris posuere nec}. Fusce \textcolor{red}{something} 
porttitor vehicula. Pellentesque maximus nunc fermentum eleifend fermentum. 
Phasellus dolor nisl, suscipit vitae leo a, iaculis sollicitudin diam. 

Curabitur a consectetur libero. Duis laoreet lacus turpis, ac 
\textcolor{blue}{pharetra justo venenatis} quis.

\bigskip

\noindent{\bfseries \verb|\mbox| paragraph:}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin at ultrices 
quam, condimentum varius leo. Morbi dignissim ut felis id molestie. Pellentesque 
\mbox{\textcolor{green}{convallis quam lacus, sit amet sodales mauris posuere nec}}. Fusce \textcolor{red}{something} 
porttitor vehicula. Pellentesque maximus nunc fermentum eleifend fermentum. 
Phasellus dolor nisl, suscipit vitae leo a, iaculis sollicitudin diam. 

Curabitur a consectetur libero. Duis laoreet lacus turpis, ac 
\mbox{\textcolor{blue}{pharetra justo venenatis}} quis.

\bigskip

\noindent{\bfseries \verb|~| paragraph:}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin at ultrices 
quam, condimentum varius leo. Morbi dignissim ut felis id molestie. Pellentesque 
\textcolor{green}{convallis~quam~lacus,~sit~amet~sodales~mauris~posuere~nec}. Fusce \textcolor{red}{something} 
porttitor vehicula. Pellentesque maximus nunc fermentum eleifend fermentum. 
Phasellus dolor nisl, suscipit vitae leo a, iaculis sollicitudin diam. 

Curabitur a consectetur libero. Duis laoreet lacus turpis, ac 
\textcolor{blue}{pharetra~justo~venenatis} quis.

\end{document}

something在默认的和段落中, (红色) 是未断开的(未使用连字符)~,因为换行算法认为这样做是最佳的。然而,在段落中\mbox, (绿色) 的间距convallis ... nec改变了段落布局,使得断开 成为“更理想的做法” some-thing。单词间距无法扩大,无法something滚动到下一行。此外,它无法缩小到足以使其适合同一行(如果可能的话)。

pharetra ... venenatis(蓝色)在使用 时允许在单词中间断行~,但\mbox严格避免这种情况。在这两种情况下,您都可能遇到行过满(或行不足)的问题,因为您禁止了某种形式的自然断行。这就是示例中发生的情况,因为段落\mbox可以将单词间空间扩展得足够宽,使pharetra ... venenatis滚动到下一行。对于~段落,唯一最佳的断行点是ve-nenatis,但它仍然溢出到边距中。

答案2

我想说,这得看情况。

~经常使用它来指导多行标题和标题中的换行,以及类似的参考fig.~1(它也会产生常规的单词间空间而不是句末空间)。但它不能防止单词的连字符,也不能防止空间拉伸或收缩。

如果我有一个短语,其中必须防止使用连字符,并且“默认”间距很重要,那么就需要一个框。

相关内容