LaTeX иногда ставит слишком много или слишком мало места после периодов
LaTeX пытается угадать, заканчивается ли период завершением предложения, и в этом случае после него добавляется дополнительное пространство.
Вот два примера, где он ошибается:
I watched Superman III. Then I went home.
(Слишком мало места после "Супермена III.".)
After brushing teeth etc. I went to bed.
(Слишком много места после "и т.д.".)
Обратите внимание, что не имеет значения, сколько пробелов вы используете в источнике LaTeX, так как LaTeX игнорирует это.
Ответы
Ответ 1
Я нашел ответ здесь: 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
Ответ 2
Вы можете обойти проблему с интервалом, если вы предпочитаете одиночные пробелы в конце предложений: put \frenchspacing
on (для более старых версий Latex это была хрупкая команда). Кнут следовал традиционному именованию, назвав его французским интервалом, хотя и вызывал двойной интервал после предложений Французский интервал стал доминирующим в публикации.
Дирк Маргулис написал хороший пост, в котором излагаются некоторые причины распространенности одиночного интервала: Пробел между предложениями.
Ответ 3
Мне нравится ответ от трихвеев и удобный поиск, который он предлагает. У меня нет комментариев "rep" Stackoverflow для комментариев, но...
Так как строки в raw *.tex имеют тенденцию быть очень длинными, вывод grep может быть подавляющим (т.е. целыми абзацами); Я предлагаю вариант, чтобы отображать только слова, заканчивающиеся на "[A-Z]". (за которым следует одно или несколько пробелов, за которым следует новое заглавное слово). Это,
grep -o -E '[A-Z]+\. +[A-Z]+[A-Za-z]+' *.tex