Набор текста
Промежутки между словами
Неразрывный пробел
Иногда необходимо обеспечить, чтобы два соседних слова не попали на разные строки. В этом случае между ними надо вставить " символ неразрывного пробела" "~". Такая необходимость возникает, например, в сочетаниях типа "на с.5": нельзя отрывать номер страницы от сокращения "с.". Вот еще примеры:
? |
Число овец в стаде обозначено буквой~$x$. Да здравствует император Франц-Иосиф~I! Муж и жена~--- одна сатана. С~кем вы, мастера культуры? |
В предпоследнем из этих примеров мы поставили неразрывный пробел, поскольку согласно отечественным полиграфическим правилам строка не должна начинаться с тире, а в последнем — потому что однобуквенное слово, начинающее предложение, не должно стоять последним в строке. Полный список русских однобуквенных слов (который может быть полезен, если вы автоматически расставляете символы ~ после них с помощью текстового редактора) содержится в магическом слове "АВИКОСУЯ".
Промежутки между предложениями
В обычном режиме TeX выравнивает справа строки абзаца, при необходимости делая переносы и слегка растягивая или сжимая промежутки между словами. Промежутки между предложениями при этом сами по себе шире и являются более растяжимыми, чем между словами внутри предложения. Посмотрите внимательно на следующий пример (из "Винни-Пуха"; для наглядности все промежутки равномерно растянуты):
North Pole. Discovered by Pooh. Pooh found it.
Такая печать соответствует английским типографским правилам, но в русских текстах промежутки между словами и между предложениями отличаться не должны. Чтобы так и было, следует включить в преамбулу команду \frenchspacing.
Если среди русского текста встречается фрагмент, написанный по-английски, то можно командой \nonfrenchspacing восстановить действие английского правила относительно межсловных промежутков. Когда английский текст кончится, надо восстановить действие российского правила командой \frenchspacing (другой вариант: заключить английский фрагмент вместе с командой \nonfrenchspacing в группу — по выходе из группы действие команды \nonfrenchspacing забудется).
Для читателей, которым необходимо набирать английские тексты, объясним более подробно правила расстановки промежутков в тех случаях, когда команда \frenchspacing не дается.
Чтобы отличить промежутки между словами от промежутков между предложениями, TeX применяет следующие правила:
- Пробел увеличивается после:
- точки, вопросительного знака, восклицательного знака (в максимальной степени);
- двоеточия (несколько меньше);
- точки с запятой (еще меньше);
- запятой (совсем чуть-чуть).
- Если последняя из букв, встретившихся перед одним из упомянутых в пункте 1 знаков препинания, была прописной, то пробел после этого знака препинания не увеличивается.
- Если после одного из упомянутых в пункте 1 знаков препинания следует закрывающая скобка (круглая или квадратная) или закрывающие кавычки, а затем — пробел, то этот пробел увеличивается.
Смысл правила 2 в том, что точка после прописной буквы чаще всего обозначает не конец предложения, а конец чьих-то инициалов.
Как это и бывает обычно с "машинными эвристиками", сформулированные правила иногда приводят к неверным результатам: точка после строчной буквы может встретиться и в середине предложения, например, в сокращении, а точка после прописной буквы может, напротив, попасть в конец предложения. В этих случаях надо следующим образом помочь TeX'у сделать правильные пробелы:
- Если точка после строчной буквы не заканчивает предложения, то после нее следует поставить команду \ (backslash с пробелом), генерирующую обычный пробел между словами .
- Если точка (или любой другой из перечисленных в пункте 1 знаков препинания) после прописной буквы заканчивает предложение, то перед ней следует поставить команду \@ - тогда пробел будет обычным образом увеличен.
Вот примеры:
. |
If $n$ is even (resp.\ odd), then $(-1)^n$ equals one (resp.\ minus one). This research was supported by the NSF\@. The author is grateful to Prof.~Smith. |
Наконец, последнее правило относительно увеличения пробелов: если пробел задан как неразрывный с помощью символа ~, то он не увеличивается, невзирая ни на какие предшествующие знаки препинания.
Установка промежутков вручную
Как команда "backslash с пробелом" "\ ", так и символ неразрывного пробела "~" генерируют пробел, но делать пробелы вручную с помощью набора чего-нибудь вроде "~~~" или "\ \ \ "неразумно, поскольку эти пробелы, как правило, могут растягиваться или сжиматься ради выравнивания строк, и вы не сможете проконтролировать реальный размер пустого пространства, полученного таким способом.
Чаще всего требуется получить промежуток величиной в один или два em . Для этого служат команды \quad, дающая промежуток в 1em, и \qquad, дающая промежуток в 2em. Команда \enskip дает промежуток, в два раза меньший, чем \quad (в стандартных шрифтах он равен ширине цифры). Про команду \, (" backslash с запятой") уже шла речь в разд." Кавычки".
Если необходимо задать промежуток с указанием конкретной длины, можно воспользоваться командой \hspace {длина}
Если этот промежуток должен сохраняться также и в начале (или конце) строки, используется команда \hspace * вместо \hspace . Указание длины состоит из числа и названия единицы , например, \hspace{1.5cm}
Пользуясь командами типа \quad, не сделайте лишнего пробела (разумеется, кроме того, который ограничивает имя команды, состоящей из букв). Вот примеры того, как надо и как не надо делать:
В этом примере используется еще команда \\, начинающая новую строку .