Fichiers de cours universitaires qui ne se compileront pas

Triage : première erreur, moteur, packages obsolètes, recherche binaire.

Fichiers de cours universitaires qui ne seront pas compilés

Les modèles de thèse universitaire constituent un type particulier de code existant. Un étudiant diplômé a écrit le dossier de classe il y a quinze ans par rapport à la distribution TeX de l’époque, a obtenu son diplôme et l’a laissé gelé pendant que l’écosystème LaTeX évoluait. Lorsque vous téléchargez « universitythesis.cls » aujourd’hui et qu’il meurt avec un écran d’erreurs, la classe n’est généralement pas tant interrompue que bloquée dans le temps. Les modes de défaillance sont cependant prévisibles et un ordre de tri fixe résout la plupart d’entre eux.

Commencez par la première erreur uniquement

Un échec LaTeX se répercute en cascade : une commande non définie au début de la classe peut produire des dizaines d’erreurs en aval qui ne signifient rien. Faites défiler le journal jusqu’à la première ligne commençant par « ! », corrigez cela et recompilez avant de lire quoi que ce soit d’autre. Répéter cette boucle élimine souvent un mur d’erreurs intimidant en trois ou quatre passes. Si la première erreur est une commande inconnue, Séquence de contrôle non définie parcourt le diagnostic.

Vérifiez le moteur

De nombreux modèles supposent un moteur spécifique et échouent bizarrement sous un autre. Une classe qui charge « fontspec » ou définit les polices par nom nécessite XeLaTeX ou LuaLaTeX ; une classe construite autour de primitives spécifiques à pdftex peut échouer dans les deux cas. Recherchez un commentaire en haut du fichier de classe ou une ligne dans les instructions de l’université nommant le moteur prévu, et faites-le correspondre avant de déboguer quoi que ce soit d’autre. Les différences sont résumées dans Quel moteur pour ce projet.

Modernisez ce que vous contrôlez

Les anciens modèles chargent des packages obsolètes dont les remplacements modernes sont déjà dans votre distribution, et la paire se bat alors ; Des packages qui s’affrontent répertorie les combinaisons classiques. La stratégie réalisable consiste à laisser le fichier de classe lui-même seul, puisque les exigences de formatage de l’université y résident, et à moderniser uniquement votre propre préambule : supprimez les lignes \usepackage obsolètes, chargez hyperref tardivement et évitez de recharger tout ce que la classe charge déjà.

Recherche binaire dans le préambule

Lorsque l’erreur résiste à l’inspection, commentez la seconde moitié de votre préambule et recompilez. Si l’erreur disparaît, le déclencheur est dans la moitié commentée ; restaurez-en la moitié et répétez. Une poignée de compilations isole la seule ligne fautive, ce qui est bien plus rapide que de raisonner sur un préambule que vous n’avez pas écrit.

Cherchez avant de souffrir

Chaque étudiant de cette université rassemble la même classe, donc votre erreur a presque certainement déjà été commise. Recherchez le message d’erreur exact ainsi que le nom du fichier de classe et vérifiez si l’université ou un étudiant successeur maintient un fork corrigé sur GitHub. Utiliser un fork maintenu, lorsqu’il en existe un, vaut mieux que de corriger soi-même les bugs connus.

Retour à {piste}