Mehrdatei-Projekte (\input / \include / subfiles)

Ein langes Dokument lässt sich leichter verwalten, wenn es in Dateien aufgeteilt ist: ein Kapitel pro Datei, Abbildungen in eigenen Dateien. LaTeX bietet mehrere Wege, sie wieder zusammenzufügen, je nach Bedarf: \input zum Einfügen an beliebiger Stelle, \include für Einheiten auf Kapitelebene (mit \includeonly für Teil-Builds) und die Pakete subfiles / standalone, mit denen jedes Teilstück auch allein kompiliert werden kann. Diese Seite hilft bei der Auswahl.

\input — überall einfügen

\input{file} fügt den Inhalt dieser Datei genau an der Stelle des Befehls ein, als hätten Sie ihn dort direkt getippt. Es erzeugt keinen Seitenumbruch, funktioniert in Präambel und Dokumentkörper und kann verschachtelt werden. Die Endung .tex wird angenommen. Es eignet sich für kleine Fragmente: gemeinsame Präambel, Tabelle, kurzer Abschnitt.

latex
% main.tex
\documentclass{report}
\input{preamble/common}
\begin{document}
\input{sections/intro}
\input{tables/experiment-settings}
\end{document}

\include — nach Kapiteln aufteilen

\include{file} führt vor und nach der Einbindung ein \clearpage aus und wechselt für diesen Block zu einer separaten .aux-Datei. Es ist für große Einheiten wie Kapitel gedacht. \include kann nicht verschachtelt werden (eine per \include eingebundene Datei darf aber andere Dateien per \input einbinden). Nutzen Sie es für Kapitelaufteilungen, die auf einer neuen Seite beginnen sollen.

latex
\include{chapters/ch1}

\includeonly — nur einen Teil schnell kompilieren

Wenn \includeonly{ch2,ch3} in der Präambel steht, verarbeitet LaTeX nur diese Kapitel. Da jedes \include eine eigene .aux behält, bleiben Seitenzahlen und Querverweise übersprungener Kapitel aus dem letzten vollständigen Build korrekt. Nach einem kompletten Lauf können Sie also nur das gerade bearbeitete Kapitel in einem Bruchteil der Zeit neu bauen. (Das funktioniert nur mit \include, nicht mit \input.)

latex
\includeonly{chapters/ch3}   % プリアンブルに置く / put in the preamble

subfiles / standalone — eine Datei allein kompilieren

Der \include-Ansatz baut nur von der Hauptdatei aus. Das Paket subfiles ermöglicht, jede Unterdatei für sich zu kompilieren, während sie automatisch die Präambel der Hauptdatei erbt. Die Hauptdatei verwendet \subfile{...}, und jede Unterdatei beginnt mit \documentclass[../main.tex]{subfiles}. Praktisch, wenn Sie ein einzelnes Kapitel prüfen möchten, ohne das ganze Buch zu bauen.

latex
% main.tex
\documentclass{book}
\usepackage{subfiles}
\begin{document}
\subfile{chapters/ch1}
\end{document}

% chapters/ch1.tex
\documentclass[../main.tex]{subfiles}
\begin{document}
  \chapter{はじめに}
\end{document}

Das ähnliche Paket bzw. die Klasse standalone gibt jeder Datei eine eigene Präambel. Das ist flexibler, aber aufwendiger zu schreiben. Besonders stark ist es bei Abbildungen und TikZ: Eine Abbildung bleibt als eigenständige Datei erhalten, die allein zu einem zugeschnittenen PDF/Bild kompiliert, aber auch ins Hauptdokument eingebunden werden kann.

Was wann verwenden

Es hilft, die Aufteilung zuerst auf Verzeichnisebene zu entwerfen. Legen Sie Hauptkapitel in chapters/, lange Abschnitte oder Tabellen in sections/ oder tables/, Grafiken in figures/ und gemeinsame Einstellungen in preamble/ ab. Vermeiden Sie Leerzeichen in Dateinamen; nutzen Sie Buchstaben, Ziffern, Bindestriche und Unterstriche. Wenn das Projekt später in CI oder auf einem anderen Betriebssystem gebaut wird, werden diese schlichten Namensregeln zur Reproduzierbarkeit.

  • Kleine Fragmente, gemeinsame Präambel\input.
  • Einheiten auf Kapitelebene mit neuer Seite\include (plus \includeonly für Teil-Builds).
  • Jedes Kapitel einzeln kompilieren, gemeinsame Präambelsubfiles.
  • Eigenständige Abbildungen im Text wiederverwenden, eigene Präambelstandalone.

Da latexmk eingebundene Dateien als Abhängigkeiten verfolgt, zerstört die Aufteilung des Dokuments weder automatisierte Builds noch Neukompilierung beim Speichern. Wenn ein frisch aufgeteiltes Projekt „file not found“ meldet, prüfen Sie zuerst, ob Pfade relativ zur Hauptdatei angegeben sind, ob die Endung .tex nicht unnötig doppelt steht und ob der Build-Befehl im Projektstamm statt in einem Unterverzeichnis ausgeführt wird.

Ein weiterer häufiger Fehler ist, eine untergeordnete Datei direkt zu kompilieren. Eine Datei, die mit \input oder \include eingebunden wird, hat normalerweise weder \documentclass noch Präambel und ist daher kein eigenständiges Dokument. Wenn Sie ein Kapitel allein kompilieren müssen, verwenden Sie subfiles; wenn Sie ein unabhängiges Abbildungs-PDF brauchen, verwenden Sie standalone. Halten Sie diese Grenze klar, statt normale Kapiteldateien zur Einzelkompilierung zu zwingen.