यह सामग्री अभी तक आपकी भाषा में उपलब्ध नहीं है. अंग्रेजी संस्करण दिखा रहा हूँ.

Bestanden van universitaire klassen die niet kunnen worden gecompileerd

Triage: eerste fout, engine, verouderde pakketten, binair zoeken.

Universiteitsklassebestanden die niet kunnen worden gecompileerd

Universitaire scriptiesjablonen zijn een speciaal soort legacy-code. Een afgestudeerde student schreef het klassenbestand vijftien jaar geleden tegen de TeX-distributie van die tijd, studeerde af en liet het bevroren terwijl het LaTeX-ecosysteem verder ging. Als je vandaag universitythesis.cls downloadt en het sterft met een scherm vol fouten, dan is de klasse meestal niet zozeer kapot als wel gestrand in de tijd. De faalwijzen zijn echter voorspelbaar en een vaste triagevolgorde lost de meeste ervan op.

Begin alleen met de eerste fout

Een LaTeX-fout treedt op: één ongedefinieerd commando vroeg in de klas kan tientallen stroomafwaartse fouten opleveren die niets betekenen. Blader door het logboek naar de eerste regel die begint met !, repareer dat en compileer het opnieuw voordat u iets anders leest. Door deze lus te herhalen, wordt vaak in drie of vier passen een intimiderende foutmuur opgeruimd. Als de eerste fout een onbekend commando is, doorloopt Undefined control sequence de diagnose.

Controleer de motor

Veel sjablonen gaan uit van een specifieke engine en falen op bizarre wijze onder een andere. Een klasse die fontspec laadt of lettertypen op naam instelt, vereist XeLaTeX of LuaLaTeX; een klasse die rond pdftex-specifieke primitieven is gebouwd, kan onder beide falen. Zoek naar een opmerking bovenaan het klassenbestand of naar een regel in de instructies van de universiteit waarin de bedoelde engine wordt genoemd, en vergelijk deze voordat u iets anders debugt. De verschillen zijn samengevat in Welke engine voor dit project.

Moderniseer wat u beheert

Oude sjablonen laden verouderde pakketten waarvan de moderne vervangingen al in uw distributie aanwezig zijn, en het paar vecht vervolgens; Pakketten die met elkaar vechten somt de klassieke combinaties op. De werkbare strategie is om het klassenbestand zelf met rust te laten, aangezien daar de opmaakvereisten van de universiteit gelden, en alleen uw eigen preambule te moderniseren: verwijder verouderde \usepackage-regels, laad hyperref laat en vermijd het opnieuw laden van alles wat de klasse al laadt.

Binair zoeken in de preambule

Wanneer de fout niet kan worden geïnspecteerd, becommentarieer dan de tweede helft van uw preambule en compileer deze opnieuw. Als de fout verdwijnt, bevindt de trigger zich in de commentaarhelft; herstel de helft ervan en herhaal. Een handvol compilaties isoleert de enkele regel die de fout veroorzaakt, wat veel sneller is dan redeneren over een preambule die je niet hebt geschreven.

Zoek voordat je lijdt

Elke student aan die universiteit stelt dezelfde les samen, dus je fout is vrijwel zeker al eerder opgetreden. Zoek de exacte foutmelding samen met de naam van het klassenbestand en controleer of de universiteit of een opvolgerstudent een gepatchte fork op GitHub onderhoudt. Het gebruik van een onderhouden vork, als die bestaat, is beter dan het zelf opnieuw oplossen van bekende bugs.

{ट्रैक} पर वापस जाएँ