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.