LaTeX иногда оставляет слишком много или слишком мало места после периодов - PullRequest
45 голосов
/ 08 января 2010

LaTeX пытается угадать, заканчивается ли точка предложением, и в этом случае после него ставится дополнительный пробел. Вот два примера, где он угадывает:

I watched Superman III. Then I went home. 

(Слишком мало места после "Супермена III.".)

After brushing teeth etc. I went to bed.

(Слишком много места после "и т. Д.".)

Обратите внимание, что не имеет значения, сколько пробелов вы используете в источнике LaTeX, поскольку LaTeX игнорирует это.

Ответы [ 3 ]

71 голосов
/ 08 января 2010

Я нашел ответ здесь: 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
13 голосов
/ 08 января 2010

Вы можете обойти проблему с пробелами, если предпочитаете одиночные пробелы в конце предложений: включите \frenchspacing (для более старых версий Latex это была хрупкая команда). Кнут следовал традиционному названию, называя его французским интервалом, хотя называя двойной интервал после предложений французским интервалом, стал доминирующим в публикации.

Дирк Маргулис написал хороший пост, в котором кратко изложены некоторые причины преобладания одиночного пробела: Пробел между предложениями .

5 голосов
/ 11 января 2013

Мне нравится ответ от гномов и удобный поиск, который он предлагает.У меня нет «rep» точек Stackoverflow для комментариев, но ...

Поскольку строки в raw * .tex имеют тенденцию быть очень длинными, выходные данные из grep могут быть ошеломляющими (то есть, целые абзацы);Я предлагаю вариант, чтобы отображать только слова, заканчивающиеся на «[AZ]».(с последующим одним или несколькими пробелами, за которым следует новое заглавное слово).

1004 *
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...