Файлы университетских занятий, которые не компилируются
Сортировка: первая ошибка, движок, устаревшие пакеты, бинарный поиск.
Файлы университетских классов, которые не компилируются
Шаблоны университетских диссертаций — это особый вид устаревшего кода. Пятнадцать лет назад аспирант написал файл курса против современного дистрибутива TeX, закончил учебу и оставил его замороженным, пока экосистема LaTeX развивалась. Когда вы сегодня загружаете universitythesis.cls и он закрывается с экраном ошибок, класс обычно не столько сломан, сколько застрял во времени. Однако виды отказов предсказуемы, и фиксированный порядок сортировки позволяет устранить большинство из них.
Начинайте только с первой ошибки
Сбои LaTeX каскадируются: одна неопределенная команда в начале класса может привести к десяткам последующих ошибок, которые ничего не значат. Прокрутите журнал до первой строки, начинающейся с !, исправьте это и перекомпилируйте, прежде чем читать что-либо еще. Повторение этого цикла часто устраняет пугающую стену ошибок за три или четыре прохода. Если первая ошибка связана с неизвестной командой, Неопределенная последовательность управления выполняет диагностику.
Проверьте двигатель
Многие шаблоны предполагают использование определенного движка и странным образом терпят неудачу под любым другим. Класс, который загружает fontspec или устанавливает шрифты по имени, требует XeLaTeX или LuaLaTeX; класс, построенный на основе примитивов, специфичных для pdftex, может потерпеть неудачу в обоих случаях. Найдите комментарий в верхней части файла класса или строку в университетских инструкциях, называющую предполагаемый движок, и сопоставьте его, прежде чем отлаживать что-либо еще. Различия суммированы в Какой движок для этого проекта.
Модернизируйте то, что вы контролируете
Старые шаблоны загружают устаревшие пакеты, современные замены которых уже есть в вашем дистрибутиве, и тогда пара ругается; Пакеты, которые борются друг с другом перечисляет классические комбинации. Реальная стратегия состоит в том, чтобы оставить сам файл класса в покое, поскольку университетские требования к форматированию существуют, и модернизировать только свою собственную преамбулу: удалить устаревшие строки \usepackage, загружать hyperref поздно и избегать повторной загрузки всего, что класс уже загружает.
Двоичный поиск по преамбуле
Если ошибка не поддается проверке, закомментируйте вторую половину преамбулы и перекомпилируйте. Если ошибка пропала, триггер находится в закомментированной половине; восстановите половину и повторите. Несколько компиляций изолируют одну ошибочную строку, что гораздо быстрее, чем рассуждать о преамбуле, которую вы не писали.
Ищите, прежде чем страдать
Каждый студент в этом университете учится по одному и тому же курсу, так что ваша ошибка почти наверняка уже была замечена раньше. Найдите точное сообщение об ошибке вместе с именем файла класса и проверьте, поддерживает ли университет или студент-преемник исправленную вилку на GitHub. Использование поддерживаемой вилки, если она существует, лучше, чем самостоятельное исправление известных ошибок.