Аварійна зупинка та суперечка про втечу
Фатальні переривання через відсутність кінців, фігурні дужки або погані включення.
Аварійна зупинка та суперечка про втечу
Симптом
Компіляція відразу вмирає. Журнал закінчується на ! Аварійна зупинка. або показує «Втік аргумент?», після якого йде довгий фрагмент вашого власного тексту, часто з супровідним рядком, наприклад «Файл закінчено під час сканування з використанням \textbf» або «Абзац закінчено до завершення \foo». На відміну від більшості помилок LaTeX, тут взагалі немає PDF-файлу, і номер рядка, який повідомляється, часто вказує на кінець файлу, а не на справжню помилку.
Чому це відбувається
Обидва повідомлення походять від однієї проблеми: TeX почав читати те, що потрібно закрити, і досяг кінця введення до того, як надійшов закриваючий маркер. Коли ви пишете \textbf{, TeX збирає все, аж до відповідного } як аргумент. Якщо ця дужка ніколи не з’являється, TeX продовжує ковтати текст через абзаци та розділи, доки файл не закінчиться. «Втікаючий аргумент» — це TeX, який показує вам, що він проковтнув. «Аварійна зупинка» означає відмову TeX, тому що він не може продовжувати без відсутньої частини. Відсутній \end{document}, незакрите середовище або \input файлу, який не існує, створює той самий стан терміналу.
Як знайти справжнє місцезнаходження
Не довіряйте номеру рядка; він позначає місце, де TeX закінчився вхідними даними, а не місце, де почався дисбаланс. Натомість прочитайте блок Runaway argument? у журналі. Кілька перших слів проковтнутого тексту вказують на те, звідки в документі почалася розбіжність, а рядок «Файл завершено під час сканування з використанням …» називає команду, аргумент якої ніколи не було закрито. Знайдіть цю команду біля цитованого тексту та порахуйте її дужки.
Якщо журнал не допомагає, виконайте двійковий пошук у документі. Закоментуйте другу половину тіла (або загорніть її в \iffalse ... \fi) і перекомпілюйте. Якщо помилка зникає, проблема в половині, яку ви видалили; продовжуйте скорочувати навпіл, доки дефектний абзац не буде ізольовано. Це звучить грубо, але у великому документі він знаходить єдину відсутню дужку в кількох компіляціях.
Звичайні підозрювані
Перевірте наявність { без його } поруч із жирним шрифтом, курсивом, виносками та підписами, оскільки ці команди приймають аргументні дужки, які ви вводите вручну. Переконайтеся, що кожен \begin{...} має відповідний \end{...} з однаковою назвою середовища. Переконайтеся, що файл закінчується на \end{document} і що всі \input і \include іменують файл, який існує на цьому шляху. Редактори допомагають тут: Oleafly підсвічує відповідні фігурні дужки та пари середовищ під час введення, що вловлює більшість із них ще до того, як їх побачить компілятор.