有时候LaTeX放置太多或太less的空间

LaTeX试图猜测一段时间是否会结束一个句子,在这种情况下,它会留下额外的空间。 这是两个猜测错误的例子:

I watched Superman III. Then I went home. 

(“超人三”之后空间太小)

 After brushing teeth etc. I went to bed. 

(“等”之后的空间太多)

请注意,自LaTeX源代码使用多less空格并不重要,因为LaTeX忽略了这个空格。

我在这里find了答案: http : //john.regehr.org/latex/ 。 摘抄:

当一个非句句结束的时间段后面有一个空格时,空格必须是明确的空格。 所以第二个例子应该是:

 After brushing teeth etc.\ I went to bed. 

当第一个例子中的大写字母在input的句子结束时间段之前出现时,就会出现这个问题。 在这种情况下,LaTeX认为这个时期终止了一个缩写词,并且在词间空间而不是句子间空格之后。 解决的办法是在期限之前加上“ \@ ”。 所以第一个例子应该是

 I watched Superman III\@. Then I went home. 

一个方便的方法来find这个错误是:

 grep '[AZ]\.' *.tex 

如果您希望在句子末尾使用单个空格,则可以避开空格问题:将\frenchspacing放在(对于旧版本的Latex,这是一个脆弱的命令)。 克努特遵循传统的命名方式称为法文间隔,尽pipe在句子之后称为双间距法文间隔在发表中占主导地位。

德克·马古利斯(Dirk Margulis)写了一篇不错的文章,总结了单间距普遍存在的一些原因: 句子之间的空格 。

我喜欢他的build议,也喜欢他提出的方便的search。 我没有Stackoverflow“rep”点来评论,但…

由于raw * .tex中的行往往非常长,grep的输出可能是压倒性的(即整个段落)。 我build议一个变体只显示以[[AZ]结尾的单词。 (后跟一个或多个空格,后跟一个新的大写字母)。 它是,

 grep -o -E '[AZ]+\. +[AZ]+[A-Za-z]+' *.tex