Переповнена горизонтальна коробка
Рядки, які тикають на полях, і коли це важливо.
Переповнена горизонтальна коробка
Симптом
Журнал повідомляє про щось на кшталт Overfull \hbox (14,2pt занадто широкий) в абзаці в рядках 87--92, а в PDF-файлі один рядок цього абзацу виступає на правому полі. Документ все ще компілюється, оскільки це радше попередження, ніж помилка, але виступаючий рядок видно на друку, і рецензенти його помічають. У режимі чернетки (\documentclass[draft]{...}) LaTeX позначає кожного порушника чорним прямокутником, завдяки чому їх легко помітити.
Чому це відбувається
TeX розбиває абзаци на рядки, зважуючи кожну можливу точку розриву та вибираючи розташування з найменшою загальною «поганістю», де поганість вимірює, наскільки пробіли в рядку повинні були розтягнутися або зменшитися. Іноді не існує прийнятної схеми: довга URL-адреса взагалі не містить точок розриву, вбудована математика розглядається як майже нерозривна, або довге слово не містить переносів. Замість того, щоб розтягувати простори за межі допустимих меж і створювати помітно прогалину рядок, TeX дозволяє рядку працювати довго та повідомляє вам про це. Переповнена коробка — це те, що TeX відмовляється зробити абзац потворним іншим способом.
Виправлення, від найкращого до найпростішого
Найкраще виправлення – редакційне. Переформулювання речення, віддалення довгого слова від кінця рядка або поділ одного речення на два зазвичай усуває проблему без будь-якого коду, і часто покращує прозу в будь-якому випадку.
Для URL-адрес загорніть адресу в \url{...} з пакета url або hyperref, щоб вона могла розбиватися на косі риски та крапки, і завантажте пакет xurl, коли вам потрібні розриви майже на будь-якому символі. Для широкої вбудованої формули або відобразіть її, або скористайтеся середовищем, яке можна порушити, наприклад multline з amsmath, якщо саме рівняння задовге для рядка.
Два покращення на рівні преамбули допомагають глобально. Завантаження мікротипу дозволяє символам виступати незначно, а шрифти трохи розширюються, що вирішує багато маргінальних випадків непомітно. Правильне встановлення мови документа за допомогою babel або polyglossia дає TeX правильні шаблони переносу, оскільки слово, яке він не може поставити через перенос, є словом, яке він не може розбити.
Коли піклуватися
Цифра в попередженні - це перевищення. Все, що менше приблизно 2 пунктів, невидиме для читачів і безпечно ігнорувати в чернетці. Варто виправити десятки моментів, перш ніж хтось інший побачить PDF. Розумний робочий процес полягає в тому, щоб ігнорувати переповнені ящики під час запису, потім прочистити журнал один раз перед поданням і виправити кілька, що залишилися, спочатку найбільші. Протистояйте \sloppy та іншим глобальним допускам: вони замінюють кілька виступаючих рядків на нерівні інтервали по всьому документу.