# 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 wie immer `tex \begin{document}` und `tex \end{document}`
* Elemente wie Inhalts-, Literatur- und Abbildungsverzeichnis
* die Dateien mit den verschiedenen Teilabschnitten werden eingefügt mit
* `tex \input{filename.tex}` ODER
* `tex \include{filename}`
main.tex:
```tex
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\begin{document}
\maketitle
\tableofcontents
\input{abschnitt1.tex}
\input{abschnitt2.tex}
\end{document}
```
---
## Datei mit Teilabschnitt
* enthält **keine Präambel**
* enthält **kein** `tex \begin{document}` und `tex \end{document`
abschnitt1.tex:
```tex
\section{Dies ist Abschnitt1}
Hier ein Absatz zum Inhalt von Abschnitt 1.
```
---
## Resultierende Projektstruktur

---
## Resultierendes Dokument

---
```tex \input{filename.tex}```
- Dateiendung .tex angeben
- Schachtelung möglich: Unterdateien können wiederum per `tex \input{}` andere Unterunterdateien einbinden
- Unterdatei wird im fertigen Dokument ohne Sprung auf neue Seite in Hauptdatei eingefügt
```tex \include{filename}```
- Dateiendung .tex **nicht** angeben
- Schachtelung nicht möglich
- für jede Unterdatei wird im fertigen Dokument eine neue Seite angelegt
---
## EXKURS: Dateipfade angeben 👣
* wichtig für `tex \input{}` und `tex \include{}` sowie später für das Einbinden von Bildern
* Datei- und Ordnerstruktur = Baumstruktur

---
### Absolute Dateipfade
* Pfad von der Wurzel des Ordnerbaums bis zur jeweiligen Datei
* die verschiedenen Ebenen des Baums werden dabei durch folgende Zeichen getrennt:
* / (Unix, Mac)
* \ (Windows)
---
#### Beispiel

---
### Relative Dateipfade
* Pfad von einem bestimmten Ort irgendwo im Ordnerbaum bis zur jeweiligen Datei
* kürzer + weniger Schreibarbeit! :)
* bei `tex \input{}`und `tex \include{}` muss z.B. der Pfad zu einer Unterdatei relativ zur Hauptdatei angeben werden
---
#### Beispiel

Der einfache Punkt referiert bei relativen Pfaden auf den Ordner in dem die Datei liegt, im Verhältnis zu welcher der Pfad angegeben werden soll (hier: LaTeX-Tut).
---

---

Zwei Punkte referieren auf den Elternordner des Ordners, in dem die Datei liegt, im Verhältnis zu welcher der Pfad angegeben werden soll (hier: Dokumente, der Elternordner von LaTeX-Tut).
---
## Ende des Exkurses
---
## 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
* aber geschickter Trick bei `tex \include{}`: `tex \includeonly{file1,file2,...}` in die Präambel schreiben, um nur einzelne Unterdateien zu kompilieren
---
## Was denkt ihr passiert, wenn wir den Header in eine Unterdatei auslagern?
### Wird das Gesamtdokument kompilieren oder nicht?
---
### Ja, es kompiliert!
Ein einfacher weg, um die Hauptdatei noch übersichtlicher zu halten.
