8.5 KiB

Projektstruktur


Zielsetzung

Ein größeres LaTeX-Projekt anlegen und dabei …

  • verhindern, dass LaTeX-Dokumente zu monströser Größe anwachsen 👹
  • den Überblick über die Struktur eines Projekts behalten

Hauptdatei 👑

  • enthält Grundgerüst, Titel, Inhaltsverzeichnis etc.
  • bindet einzelne Kapitel ein mit
    \input{file.tex} oder \include{file}
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\title{Ein Titel}
\begin{document}
    \maketitle
    \tableofcontents
    \input{abschnitt1.tex}
    \input{abschnitt2.tex}
\end{document}
![](sections/german/04/main-orig.svg)

Datei mit Teilabschnitt

  • enthält **keine Präambel**
  • enthält **kein** `\begin{document}` und `\end{document}`
\section{Dies ist Abschnitt1}
Hier ein Absatz zum
Inhalt von Abschnitt 1.


input oder include?

\input{filename.tex}
  • Dateiendung .tex angeben
  • **Schachtelung** möglich: Unterdateien können wiederum per `\input{}` andere Unterunterdateien einbinden
  • Unterdatei wird im fertigen Dokument **ohne Sprung auf neue Seite** in Hauptdatei eingefügt
\include{filename}
  • Dateiendung .tex **nicht** angeben
  • **Schachtelung** nicht möglich
  • für jede Unterdatei wird im fertigen Dokument eine **neue Seite** angelegt

Dateipfade angeben 👣

  • wichtig für `\input{}` und `\include{}` sowie später für das Einbinden von Bildern
  • Datei- und Ordnerstruktur = Baumstruktur 🌳

Dateipfade angeben 👣

Absolute Dateipfade

  • Pfad von der Wurzel des Ordnerbaums bis zur jeweiligen Datei
  • die verschiedenen Ebenen des Baums werden dabei durch folgende Zeichen getrennt:
    • Unter Unix: `/`
    • Unter Windows: `\`
Beispiel: Absoluter Pfad zu main.tex
  • Unix: /home/knut/docs/latex/main.tex
  • Windows: C:\knut\docs\latex\main.tex

Allerdings muss bei LaTeX stets die Unix-Syntax für Pfadangaben verwendet werden. Deshalb werden wir im folgenden diese verwerden.


Dateipfade angeben 👣

Relative Dateipfade

  • Pfad von einem bestimmten Ort irgendwo im Ordnerbaum bis zur jeweiligen Datei
  • kürzer + weniger Schreibarbeit! ☺
  • bei `\input{}`und `\include{}` muss der Pfad zu einer Unterdatei relativ zur Hauptdatei angeben werden
Beispiel: Relativer Pfad von main.tex zu part1.tex

./part1.tex

Der **einfache Punkt .** bezieht sich bei relativen Pfaden auf den Ordner, in dem die Ausgangsdatei liegt (hier: latex).


Dateipfade angeben 👣

Relative Dateipfade

Beispiel: Relativer Pfad von main.tex zu part1.tex in Unterordner

./sections/part1.tex


Dateipfade angeben 👣

Relative Dateipfade

Beispiel: Relativer Pfad von main.tex in eigenem Unterordner zu part1.tex in anderem Unterordner

../sections/part1.tex

**Zwei Punkte ..** bezeichnen den Elternordner des aktuellen Ordners (hier: Dokumente, der Elternordner latex des Ordners main).


Kompilieren des Projekts

  • **Nur die Hauptdatei** wird kompiliert, um das fertige PDF-Dokument zu erhalten
  • Fehlermeldungen enthalten dann Verweis, in welcher Unterdatei sie aufgetreten sind

Kompilieren des Projekts

  • die Unterdateiten können wegen ihrer fehlenden Präambel nicht selbstständig kompiliert werden
  • Trick bei `\include{}`: `\includeonly{file1,file2,...}` in die Präambel schreiben, um nur einzelne Unterdateien zu kompilieren

Präambel ausgelagert

Was denkt ihr, passiert, wenn wir den Präambel in eine Unterdatei auslagern?

Wird das Gesamtdokument kompilieren oder nicht?

Ja, es kompiliert!
Ein einfacher Weg, um die Hauptdatei noch übersichtlicher zu halten.


Projektstruktur für das Skript anlegen

  • Teile das Skript in sinnvolle Abschnitte auf und lagere sie in separate .tex-Dateien aus.
  • Verwende zunächst \input{}, um die Abschnitte in deine Hauptdatei einzubinden.
  • Beobachte, was sich verändert, wenn du stattdessen \include{} einsetzt.
  • Verschiebe die Teildateien zur besseren Strukturierung in einen eigenen Unterordner sections. Was musst du nun bei der Angabe des relativen Pfades bei \include{} verändern?
  • Lagere nun noch die Präambel aus.