Как запретить разрыв слова и перенос на новую строку в LaTeX
Зачем управлять переносами слов
LaTeX славится лучшим в мире алгоритмом выключки строк (алгоритм Кнута-Пласса). Однако автоматический перенос иногда дает сбои на сложных технических терминах, аббревиатурах (ГОСТ, ЮНЕСКО, СПбГУ) и фамилиях с инициалами (подробнее о различиях верстки читайте в статье о выравнивании по ширине и переносах в LaTeX против Word).
Особое внимание нормоконтроль уделяет «висячим предлогам»: однобуквенные союзы и предлоги (и, в, с, к, о, на) по правилам русской типографики категорически нельзя оставлять в самом конце строки.
Неразрывный пробел в latex тильда: защита от висячих предлогов
Главный инструмент типографа — неразрывный пробел в latex тильда (символ ~). Он заменяет стандартный пробел и сообщает компилятору: эти два элемента должны остаться на одной строке ни при каких обстоятельствах (это особенно важно соблюдать вместе с правильным абзацным отступом 1.25 см по ГОСТ).
В~соответствии с~требованиями ГОСТ~7.32-2017, приведенными в~разделе~4...
Профессор Иванов~И.~И. провел измерения на~стенде.
Длина волны составила 532~нм при температуре 20~$^\circ$C.
Обязательно ставьте тильду:
- Между числом и единицей измерения:
10~кг,250~В,5~мин. - Между инициалами и фамилией:
А.~С.~Пушкин. - Перед ссылками на формулы, рисунки и литературу:
рисунок~\ref{fig:1},[~\cite{lit1}].
Запретить перенос слова в latex: команда mbox
Если вам нужно запретить перенос слова в latex локально в конкретном месте, оберните его в команду \mbox{...}:
Новейший чипсет \mbox{GeForce-RTX-5090} не будет разрываться дефисом.
Команда \mbox{\textbf{sudo systemctl restart}} останется единым блоком.
Команда \mbox создает неделимый горизонтальный бокс, запрещая перенос в любом месте внутри фигурных скобок.
Глобальный список исключений через hyphenation
Чтобы не оборачивать термин в \mbox десятки раз по всему тексту, задайте словарь исключений в преамбуле с помощью команды \hyphenation:
% Слова без дефисов вообще не будут переноситься
\hyphenation{микроконтроллер блокчейн интерфейс}
% Слова с дефисами будут переноситься строго в указанных слогах
\hyphenation{мик-ро-процес-сор диссер-та-ция}
Запрет разрывов математических выражений в строке
В строчных формулах $a + b = c$ LaTeX может разорвать строку на знаке равенства или сложения. Чтобы запретить такой перенос:
% Локально через фигурные скобки:
${a + b = c}$
% Или глобально в преамбуле через штрафы за перенос:
\binoppenalty=10000 % Запрет разрыва на бинарных операциях (+, -)
\relpenalty=10000 % Запрет разрыва на отношениях (=, <, >)
Практические советы
Пакет microtype
Подключение \usepackage{microtype} включает оптическое выравнивание полей и микромасштабирование глифов, сокращая число переносов на 80% естественным путем.
Перенос слов с уже имеющимся дефисом
В русских составных словах (интернет-магазин) используйте специальный макрос пакета babel интернет"=магазин, чтобы разрешить перенос как в месте дефиса, так и в словах вокруг него.