Абзацы, пробелы и спецсимволы

Урок объясняет, как LaTeX обращается с пробелами и абзацами и какие символы нужно экранировать.

Спецсимволы — десять знаков, которые в LaTeX имеют особый смысл и потому требуют экранирования, чтобы напечататься буквально.

Прежде чем верстать формулы и таблицы, нужно научиться просто печатать текст так, как задумано. Здесь у LaTeX свои правила, отличные от Word.

Пробелы и абзацы

LaTeX сжимает любое число пробелов и переводов строки в один пробел. Десять пробелов подряд и один пробел — одно и то же. Новый абзац создаётся пустой строкой, а не переводом строки:

Это первый абзац. Лишние    пробелы
и переносы строки тут не важны.

А вот это уже второй абзац — его
отделяет пустая строка выше.

Запомните правило: один перевод строки = пробел, пустая строка = новый абзац. Это освобождает от ручного выравнивания — вы пишете текст как удобно, а LaTeX сам расставит переносы.

У этого поведения есть тонкость, о которой полезно знать сразу. Пробел в самом конце команды LaTeX «съедает»: после \LaTeX вы напишете пробел, а в PDF его не окажется — слово прилипнет к следующему. Это классическая ловушка: \TeX это мощно напечатает «TeXэто мощно». Лечится либо парой пустых фигурных скобок \TeX{} это, либо явным управляющим пробелом \TeX\ это. Причина в том, что имя команды из букв заканчивается на первом небуквенном символе, и все пробелы после него считаются частью разделителя имени, а не текстом.

Несколько пустых строк подряд не создают несколько абзацев и не добавляют вертикального воздуха — LaTeX трактует их так же, как одну. Поэтому «отбить» заголовок от текста лишними переводами строки не выйдет: интервалы между абзацами и разделами заданы классом документа и параметрами вроде \parskip и \parindent. Если нужен дополнительный вертикальный промежуток, его задают осознанно командой \bigskip или \vspace, а не россыпью пустых строк в исходнике.

Десять спецсимволов

Эти знаки зарезервированы. Чтобы напечатать их буквально, перед большинством ставят обратную косую черту:

СимволСмысл в LaTeXКак напечатать
%комментарий до конца строки\%
$переключение в матрежим\$
&разделитель колонок в таблицах\&
#аргумент макроса\#
_нижний индекс (в матрежиме)\_
{ }группировка\{ \}
~неразрывный пробел\textasciitilde
^верхний индекс\textasciicircum
\начало команды\textbackslash

Пример, где экранирование критично, — проценты и денежные суммы:

Скидка 50\% при оплате через A\&B Bank.

Без обратной косой % «съел» бы остаток строки как комментарий — частая и очень коварная ошибка новичка: половина текста просто исчезает из PDF.

Как работает под капотом

Движок читает поток символов и классифицирует каждый по «категории» (catcode). У % категория «комментарий», у $ — «переключатель режима», у & — «разделитель ячейки» и так далее. Обратная косая \ перед символом превращает его в обычную печатную литеру (или в команду с фиксированным значком). Поэтому экранирование — это не «костыль», а штатный способ сказать движку «здесь это просто знак, а не управляющая конструкция».

Всего категорий шестнадцать, и каждой клавиатурной литере при старте назначен свой catcode: буквы относятся к категории 11 («letter»), цифры и большинство знаков — к категории 12 («other»), пробел — к категории 10. Именно поэтому имена команд могут состоять только из букв: цифра имеет «другую» категорию и обрывает имя. Эта система гибкая: пакеты вроде \verb и окружение verbatim на время переопределяют catcode'ы спецсимволов на «other», чтобы можно было дословно напечатать даже %, \ и { без единого экранирования. Так что внутри \verb|50% & $| ничего экранировать не нужно — там временно отключена вся магия.

Отдельная тонкость — три «текстовых» спецсимвола: ~, ^ и \. Для них простого добавления косой недостаточно, потому что \~ и \^ — это команды акцентов (тильда и циркумфлекс над буквой), а \\ означает перенос строки. Поэтому буквальные тильду, «крышку» и косую печатают именными командами \textasciitilde, \textasciicircum и \textbackslash. Знание этой разницы спасает от загадочных «пропавших» символов и неожиданных акцентов над соседней буквой.

Частые ошибки

  • Незаэкранированный % — пропадает конец строки. Самая частая «загадочная» потеря текста.
  • Незаэкранированный & вне таблицы — ошибка «Misplaced alignment tab».
  • Несбалансированные { и } — ошибка о незакрытой группе.

Итоги

  • Лишние пробелы и переводы строки сжимаются; абзац создаёт пустая строка.
  • Десять символов зарезервированы; печатать буквально — через экранирование.
  • Особенно следите за %, &, $ и парностью скобок.
Проверьте себя
1. Как в LaTeX создаётся новый абзац?
AКомандой \newparagraph
BПустой строкой между абзацами
CОдним переводом строки
DДвойным пробелом
2. Что произойдёт с текстом после незаэкранированного знака процента?
AНичего, он напечатается
BОстаток строки будет воспринят как комментарий и исчезнет из PDF
CДокумент не скомпилируется никогда
DЗнак заменится на пробел
3. Как напечатать символ амперсанда вне таблицы?
AПросто &
B\&
CАмперсанд печатать нельзя
D&&