Файли університетських класів, які не збираються
Сортування: перша помилка, механізм, застарілі пакети, бінарний пошук.
Файли університетських класів, які не компілюються
Шаблони університетських дипломних робіт – це особливий вид успадкованого коду. Аспірант написав файл класу п’ятнадцять років тому на основі тогочасного дистрибутива TeX, закінчив і залишив його замороженим, поки екосистема LaTeX рухалася далі. Коли ви завантажуєте universitythesis.cls сьогодні, і він вмирає з екраном помилок, клас зазвичай не стільки зламаний, скільки застряг у часі. Однак режими відмов передбачувані, і фіксований порядок сортування вирішує більшість із них.
Почніть лише з першої помилки
Каскади відмов LaTeX: одна невизначена команда на початку класу може спричинити десятки помилок, які нічого не значать. Прокрутіть журнал до першого рядка, який починається з !, виправте це та перекомпілюйте, перш ніж читати щось інше. Повторення цього циклу часто очищає лякаючу стіну помилок за три-чотири проходи. Якщо першою помилкою є невідома команда, Невизначена керуюча послідовність виконує діагностику.
Перевірте двигун
Багато шаблонів припускають певний движок і дивно виходять з ладу під будь-яким іншим. Клас, який завантажує fontspec або встановлює шрифти за іменем, вимагає XeLaTeX або LuaLaTeX; клас, побудований навколо специфічних примітивів pdftex, може вийти з ладу в обох випадках. Шукайте коментар у верхній частині файлу класу або рядок в інструкціях університету з назвою передбачуваного механізму та зіставте його, перш ніж налагоджувати щось інше. Відмінності підсумовано в Який двигун для цього проекту.
Модернізуйте те, що ви контролюєте
Старі шаблони завантажують застарілі пакунки, сучасні заміни яких уже є у вашому дистрибутиві, і пара потім бореться; Пакети, які борються між собою містить список класичних комбінацій. Працездатна стратегія полягає в тому, щоб залишити сам файл класу в спокої, оскільки там живуть вимоги університетського форматування, і модернізувати лише свою власну преамбулу: видалити застарілі рядки \usepackage, завантажувати hyperref із запізненням і уникати повторного завантаження всього, що вже завантажує клас.
Бінарний пошук у преамбулі
Якщо помилка не перевіряється, закоментуйте другу половину преамбули та перекомпілюйте. Якщо помилка зникає, тригер знаходиться в коментованій половині; відновіть половину і повторіть. Кілька компілювань виділяє єдиний помилковий рядок, що набагато швидше, ніж міркування про преамбулу, яку ви не писали.
Шукайте, перш ніж страждати
Кожен студент цього університету збирає один і той самий клас, тому ваша помилка майже напевно траплялася раніше. Знайдіть точне повідомлення про помилку разом із назвою файлу класу та перевірте, чи підтримує університет або наступний студент виправлений форк на GitHub. Використання підтримуваного форка, якщо він існує, перевершує повторне виправлення відомих помилок самостійно.