Universitätskursdateien, die nicht kompiliert werden können

Triage: erster Fehler, Engine, veraltete Pakete, binäre Suche.

Universitätskursdateien, die nicht kompiliert werden können

Vorlagen für Universitätsarbeiten sind eine besondere Art von Legacy-Code. Ein Doktorand schrieb die Klassendatei vor fünfzehn Jahren gegen die damalige TeX-Distribution, machte seinen Abschluss und ließ sie eingefroren, während sich das LaTeX-Ökosystem weiterentwickelte. Wenn Sie „universitythesis.cls“ heute herunterladen und es mit einem Fehlerbildschirm abbricht, ist die Klasse normalerweise nicht kaputt, sondern in der Zeit gestrandet. Die Fehlermodi sind jedoch vorhersehbar und die meisten davon können durch eine feste Triage-Reihenfolge behoben werden.

Beginnen Sie nur mit dem ersten Fehler

Ein LaTeX-Fehler kaskadiert: Ein undefinierter Befehl zu Beginn der Klasse kann Dutzende nachgelagerter Fehler erzeugen, die keine Bedeutung haben. Scrollen Sie im Protokoll bis zur ersten Zeile, die mit „!“ beginnt, beheben Sie das Problem und kompilieren Sie es erneut, bevor Sie etwas anderes lesen. Das Wiederholen dieser Schleife überwindet oft eine einschüchternde Fehlerwand in drei oder vier Durchgängen. Wenn der erste Fehler ein unbekannter Befehl ist, durchläuft Undefinierte Steuersequenz die Diagnose.

Überprüfen Sie den Motor

Viele Vorlagen gehen von einer bestimmten Engine aus und scheitern auf seltsame Weise unter jeder anderen. Eine Klasse, die „fontspec“ lädt oder Schriftarten nach Namen festlegt, erfordert XeLaTeX oder LuaLaTeX; Eine Klasse, die um „pdftex“-spezifische Grundelemente herum aufgebaut ist, kann unter beiden fehlschlagen. Suchen Sie nach einem Kommentar oben in der Klassendatei oder nach einer Zeile in den Anweisungen der Universität, in der die beabsichtigte Engine benannt wird, und vergleichen Sie sie, bevor Sie etwas anderes debuggen. Die Unterschiede sind in Welche Engine für dieses Projekt zusammengefasst.

Modernisieren Sie, was Sie kontrollieren

Alte Vorlagen laden veraltete Pakete, deren moderne Ersatzpakete sich bereits in Ihrer Distribution befinden, und das Paar kämpft dann; Pakete, die gegeneinander kämpfen listet die klassischen Kombinationen auf. Die praktikable Strategie besteht darin, die Klassendatei selbst in Ruhe zu lassen, da dort die Formatierungsanforderungen der Universität bestehen, und nur Ihre eigene Präambel zu modernisieren: Entfernen Sie veraltete „\usepackage“-Zeilen, laden Sie „hyperref“ zu spät und vermeiden Sie das erneute Laden von allem, was die Klasse bereits lädt.

Binärsuche in der Präambel

Wenn sich der Fehler nicht überprüfen lässt, kommentieren Sie die zweite Hälfte Ihrer Präambel aus und kompilieren Sie sie erneut. Wenn der Fehler verschwindet, befindet sich der Trigger in der kommentierten Hälfte; Stellen Sie die Hälfte davon wieder her und wiederholen Sie den Vorgang. Eine Handvoll Kompilierungen isolieren die einzelne fehlerhafte Zeile, was weitaus schneller ist, als über eine Präambel nachzudenken, die Sie nicht geschrieben haben.

Suchen Sie, bevor Sie leiden

Jeder Student an dieser Universität stellt den gleichen Kurs zusammen, sodass Ihr Fehler mit ziemlicher Sicherheit schon einmal aufgetreten ist. Suchen Sie nach der genauen Fehlermeldung zusammen mit dem Namen der Klassendatei und prüfen Sie, ob die Universität oder ein Nachfolgestudent einen gepatchten Fork auf GitHub unterhält. Die Verwendung eines gepflegten Forks, sofern vorhanden, ist besser, als bekannte Fehler selbst erneut zu beheben.

Zurück zu Lange Form