LaTeX试图猜测一个句点是否结束一个句子,在这种情况下它会在它之后放置额外的空格。 以下是猜测错误的两个例子:
I watched Superman III. Then I went home.
(“超人III”之后的空间太小。)
After brushing teeth etc. I went to bed.
(“等”之后的太多空间。)
请注意,由于LaTeX忽略了这一点,因此在LaTeX源中使用了多少空白并不重要。
答案 0 :(得分:70)
我在这里找到答案:http://john.regehr.org/latex/。摘录:
当一个非句子结尾的句号后面跟一个空格时,该空格必须是一个明确的空格。 所以第二个例子应该是:
After brushing teeth etc.\ I went to bed.
当输入中的大写字母位于句子结束时段之前时,会出现此问题的相反情况,如第一个示例所示。
在这种情况下,LaTeX假设句点终止一个缩写,并用词间空间而不是句子间空格跟随它。
修复是在句点之前放置“\@
”。
所以第一个例子应该是
I watched Superman III\@. Then I went home.
找到此错误的便捷方法是:
grep '[A-Z]\.' *.tex
答案 1 :(得分:13)
如果你喜欢句子末尾的单个空格,你可以回避间距问题:把\frenchspacing
打开(对于旧版本的Latex,这是一个脆弱的命令)。 Knuth遵循传统命名称其为法语间距,尽管在句子之后称法语间距在出版中占主导地位。
Dirk Margulis撰写了一篇很好的文章,总结了单一间距普遍存在的一些原因:Space between sentences。
答案 2 :(得分:5)
我喜欢dreeves的回答以及他建议的方便搜索。我没有Stackoverflow“rep”点来评论,但是......
由于raw * .tex中的行往往很长,因此grep的输出可能会非常大(即整个段落);我建议一个变体只显示以'[A-Z]结尾的单词。 (后跟一个或多个空格,后跟一个新的大写单词)。是的,
grep -o -E '[A-Z]+\. +[A-Z]+[A-Za-z]+' *.tex