Bücher, Dissertationen und lange Berichte machen die Bearbeiten-Kompilieren-Schleife schwerfällig: Builds werden langsam, eine riesige Datei ist unhandlich, und Nummerierung sowie Verweise über Hunderte Seiten konsistent zu halten ist mühsam. Dieses Kapitel bringt ein langes Dokument in eine Form, in der man jeden Tag weiter schreiben kann: nach Kapiteln aufteilen, nur den bearbeiteten Teil bauen und bewusst zwischen draft-Modus und sauberen Vollbuilds wechseln.
Was bei großem Umfang schwierig wird
Mit wachsendem Dokument treten typische Probleme auf: (1) langsame Vollkompilierungen, (2) eine einzelne Datei, die zu lang ist, um sich gut darin zu bewegen, (3) der Aufwand, Querverweise, Nummerierung und Inhaltsverzeichnis über Kapitel hinweg konsistent zu halten, und (4) Fehler, die schwer zu lokalisieren sind. All das wird deutlich leichter, wenn man das Dokument aufteilt und nur den nötigen Teil verarbeitet.
In Dateien aufteilen
Die Grundform ist eine Datei pro Kapitel und eine schlanke Hauptdatei, die alles zusammenbindet. So findet man Stellen leichter, kann Arbeit mit Mitautorinnen und Mitautoren besser aufteilen, und Diffs bleiben klein. Die Einbindemechanik (\input / \include / subfiles) behandelt „Mehrdateiprojekte“ genauer; für Kapitelstücke ist \include passend, weil es davor und danach Seitenumbrüche setzt und jedem Teil eine eigene .aux gibt.
Nur das bearbeitete Kapitel kompilieren — \includeonly
Wenn du mit \include aufgeteilt hast, verarbeitet \includeonly{das-bearbeitete-kapitel} in der Präambel nur dieses Kapitel. Da die .aux-Datei jedes Kapitels die Werte des letzten Vollbuilds enthält, bleiben Seitennummern und Querverweise der ausgelassenen Kapitel korrekt. Aus einem minutenlangen Vollbuild wird ein Teilbuild von wenigen Sekunden. Wichtig ist, zuerst einmal vollständig zu bauen. Überspringt man Kapitel, bevor ihre .aux existiert, bleiben Verweise bei ?? oder Seitennummern veralten. Zusammen mit den inkrementellen Builds von latexmk oder -pvc schrumpft die Wartezeit fast auf null.
% プリアンブルで編集中の章だけに絞る / restrict to the chapter you’re editing
\includeonly{chapters/ch3}\includeonly ist kein Mechanismus für die Endfassung. Seitenzahlen und Verweise hängen von früher geschriebenen .aux-Dateien ab; vor der Abgabe entfernt man es daher und baut alle Kapitel. In einem Dokument mit Index, Bibliografie und Inhaltsverzeichnis ist das PDF aus dem Teilbuild nur eine Arbeitsnäherung, nicht die Endfassung.
Schnell iterieren mit draft-Modus
Die Option draft der Dokumentklasse hilft bei Testbuilds großer Dokumente. (1) Sie markiert overfull boxes, also Zeilen, die in den Rand laufen, mit einem schwarzen Balken, sodass Layoutprobleme auffallen. (2) Sie rendert Bilder nicht, sondern ersetzt sie durch gerahmte Platzhalter mit Dateinamen; dadurch entfällt Bildverarbeitung und die Kompilierung wird schneller. Soll das nur für Bilder gelten, nutze \usepackage[draft]{graphicx}. Für die echte Ausgabe zurück zu final. Wenn Bilder sichtbar bleiben sollen, aber overfull-Regeln erscheinen sollen, hilft \overfullrule=5pt.
\documentclass[draft]{report} % 画像を省き overfull を表示 / skip images, show overfull rules
% 画像だけ draft にする場合 / scope it to images only:
\usepackage[draft]{graphicx}Einen Rhythmus für ein langes Projekt schaffen
Bei großen Dokumenten sollte man nicht zwischen „immer alles perfekt bauen“ und „immer nur ein Fragment bauen“ wählen müssen. Im Alltag iteriert man mit \includeonly und latexmk -pvc am aktuellen Kapitel. Zu Meilensteinen entfernt man draft und baut das ganze Dokument. Vor Wochenenden oder der Abgabe löscht man generierte Dateien und macht einen Clean Build. Dieser Rhythmus hält die Schleife schnell und findet Fehler im End-PDF trotzdem früh.
Weitere Taktiken
- Wartezeiten mit den inkrementellen Builds von
latexmkoder-pvcminimieren (siehe Automatisierte Builds). - Schwere Abbildungen per TikZ-Externalisierung oder vorherigem PDF-Rendering entlasten.
- Riesige Abschnitte vorübergehend aus
\includeonlyherausnehmen oder auskommentieren. - Kurz vor dem Abschluss mit
finalvollständig bauen, damit Nummerierung, Inhaltsverzeichnis, Index und Bibliografie feststehen. - Vor der Abgabe
draftund\includeonlyentfernen, das PDF neu bauen und auch die Warnungen im Log lesen.