Выравнивание текста по ширине без огромных пробелов (LaTeX vs Word)

Почему в MS Word возникают «белые реки» и гигантские пробелы

Каждый студент, набиравший дипломную записку в Microsoft Word с выравниванием «по ширине», сталкивался с эффектом: длинное слово или формула не помещается в конец строки и целиком перескакивает на следующую, а оставшиеся 3–4 слова в строке растягиваются с огромными 3-сантиметровыми пробелами.

В профессиональной полиграфии этот дефект называют «белыми реками» (rivers of white). Текст выглядит рваным, неряшливым и утомляет глаза при чтении.

Большие пробелы при выравнивании по ширине: решение алгоритмом Кнута-Пласса

Причина того, почему возникают большие пробелы при выравнивании по ширине в Word, кроется в устаревшем алгоритме: Word форматирует текст построчно (жадно), не зная, что произойдет строкой ниже.

Дональд Кнут создал для TeX революционный алгоритм динамического программирования (алгоритм Кнута-Пласса). LaTeX анализирует весь абзац целиком, минимизируя суммарный штраф (badness) за неравномерность пробелов. В результате ширина межсловных интервалов по всей полосе набора остается практически неотличимой.

Настройка переносов в дипломе онлайн: кириллический babel

Чтобы работала корректная настройка переносов в дипломе онлайн (и при необходимости использовался выборочный запрет переносов слов и неразрывные пробелы в LaTeX), в преамбуле подключается модуль переносов русского языка:

LaTeX
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel} % русские шаблоны переносов

Команду \sloppy часто советуют против вылета слов за поле, но она разрешает TeX растягивать пробелы почти без ограничений — то есть возвращает те самые «дыры», с которыми борется эта статья. Вместо нее используйте пакет microtype и параметр \emergencystretch из совета ниже.

Пакет microtype: микротипографика и оптическое выравнивание полей

Секретное оружие профессиональных верстальщиков — пакет microtype. Он выполняет микромасштабирование символов (на доли процента, незаметные глазу) и выносит мелкие знаки препинания (дефисы, точки, запятые) слегка за правое поле набора (hanging punctuation):

LaTeX
\usepackage{microtype} % Включает оптическое выравнивание и сжатие глифов

Подключение microtype заметно уменьшает число переносов и выравнивает плотность строк, хорошо сочетаясь со стандартным абзацным отступом 1.25 см по ГОСТ.

Ручное устранение предупреждений Overfull / Underfull hbox

Если в абзаце встретилось сложное химическое название или ссылка на URL, создающая предупреждение:

  • Укажите TeX разрешенные места разрыва дефисом: де\-зокси\-рибо\-нук\-ле\-ин;
  • Перефразируйте предложение, поменяв местами пару слов в начале абзаца: алгоритм TeX мгновенно пересчитает раскладку и идеально сбалансирует строки.

Практические советы

1

Команда \emergencystretch

Добавьте \setlength{\emergencystretch}{3em} в преамбулу: это дает LaTeX право при необходимости слегка расширить пробелы в экстремально узких строках без ошибок компиляции.

2

Шрифт Times New Roman

Шрифт в духе Times New Roman с кириллицей для pdfLaTeX дает пакет \usepackage{tempora} вместе с \usepackage[T2A]{fontenc}; другой вариант — гарнитуры ParaType из пакета paratype. Пакета pscyr в TeX Live нет, а у newtxtext нет кириллицы.

Попробуйте прямо сейчас

Создавайте красивую типографику в Labkeeper

Онлайн-редактор LaTeX с выключкой строк по ширине, поддержкой microtype и русскими переносами.

Другие статьи