<div class="layout-content-only">
    <div class="layout-content">
        <h1>Projektstruktur</h1>
    </div>
</div>

---

<div class="layout-content-and-preview">
    <div class="layout-content">
        <h2>Zielsetzung</h2>
        <p>Ein größeres LaTeX-Projekt anlegen und dabei …</p>
        <ul>
            <li>verhindern, dass LaTeX-Dokumente zu monströser Größe anwachsen 👹</li>
            <li>den Überblick über die Struktur eines Projekts behalten</li>
        </ul>
    </div>
    <div class="layout-preview">
        <img src="sections/german/04/langes-dokument.png" style="background: white; padding: .2em;">
    </div>
</div>

---

<div class="layout layout-content-and-preview">
    <div class="layout-content">
        <h2 class="layout-title">Hauptdatei 👑</h2>
        <ul>
            <li>enthält Grundgerüst, Titel, Inhaltsverzeichnis etc.</li>
            <li>bindet einzelne Kapitel ein mit<br>
                <code>\input{file.tex}</code> oder <code>\include{file}</code></li>
                </ul>
            </li>
        </ul>
        <pre class="lang-tex hljs" data-sourcefile="main.tex"><code>\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}</code></pre>
    </div>
    <div class="layout-preview">
        ![](sections/german/04/main-orig.svg)
    </div>

---

<div class="layout-content-and-preview">
    <div class="layout-content">
        <h2>Datei mit Teilabschnitt</h2>
        <ul>
            <li>enthält **keine Präambel**<li>
            <li>enthält **kein** `\begin{document}` und `\end{document}`</li>
        </ul>
        <pre data-source="abschnitt1.tex" class="hljs lang-tex"><code>\section{Dies ist Abschnitt1}
Hier ein Absatz zum
Inhalt von Abschnitt 1.</code></pre>
    </div>
    <div class="layout-preview">
        <p><img src="sections/german/04/main_parts.png"></p>
    </div>
</div>

---

<div class="layout-two-columns">
    <div class="layout-title">
        <h2>input oder include?</h2>
    </div>
    <div class="layout-column-one">
        <pre class="lang-tex jshl"><code>\input{filename.tex}</code></pre>
        <ul class="fragment">
            <li>Dateiendung .tex angeben</li>
            <li>**Schachtelung** möglich: Unterdateien können wiederum per `\input{}` andere Unterunterdateien einbinden</li>
            <li>Unterdatei wird im fertigen Dokument **ohne Sprung auf neue Seite** in Hauptdatei eingefügt</li>
        </ul>
    </div>
    <div class="layout-column-two">
        <pre class="lang-tex jshl"><code>\include{filename}</code></pre>
        <ul class="fragment">
            <li>Dateiendung .tex **nicht** angeben</li>
            <li>**Schachtelung** nicht möglich</li>
            <li>für jede Unterdatei wird im fertigen Dokument eine **neue Seite** angelegt</li>
        </ul>
    </div>
</div>

---

<div class="layout-content-and-preview">
    <div class="layout-content">
        <h2 data-category="Exkurs">Dateipfade angeben 👣</h2>
        <ul>
            <li>wichtig für `\input{}` und `\include{}` sowie später für das Einbinden von Bildern</li>
            <li>Datei- und Ordnerstruktur = Baumstruktur 🌳</li>
        </ul>
    </div>
    <div class="layout-preview">
        <img src="sections/german/04/tree.png">
    </div>
</div>

---

<div class="layout-content-and-preview">
    <div class="layout-content">
        <h2 data-category="Exkurs">Dateipfade angeben 👣</h2>
        <h3>Absolute Dateipfade</h3>
        <ul>
            <li>Pfad von der Wurzel des Ordnerbaums bis zur jeweiligen Datei</li>
            <li>die verschiedenen Ebenen des Baums werden dabei durch folgende Zeichen getrennt:
                <ul>
                    <li>Unter Unix: `/`</li>
                    <li>Unter Windows: `\`</li>
                </ul>
            </li>
        </ul>
	Beispiel: Absoluter Pfad zu main.tex
	<ul>
            <li>Unix: /home/knut/docs/latex/main.tex</li>
            <li>Windows: C:\knut\docs\latex\main.tex</li>
        </ul>
	<p>Allerdings muss bei LaTeX stets die Unix-Syntax für Pfadangaben verwendet werden. Deshalb werden wir im folgenden diese verwerden.</p>
    </div>
    <div class="layout-preview">
        <img src="sections/german/04/absolute_path.png">
    </div>
</div>

---

<div class="layout-content-and-preview">
    <div class="layout-content">
        <h2 data-category="Exkurs">Dateipfade angeben 👣</h2>
        <h3>Relative Dateipfade</h3>
        <ul>
            <li>Pfad von einem bestimmten Ort irgendwo im Ordnerbaum bis zur jeweiligen Datei</li>
            <li>kürzer + weniger Schreibarbeit! ☺</li>
            <li>bei `\input{}`und `\include{}` muss der Pfad zu einer Unterdatei relativ zur Hauptdatei angeben werden</li>
        </ul>
        Beispiel: Relativer Pfad von main.tex zu part1.tex
        <p>./part1.tex</p>
        <p>Der **einfache Punkt .** bezieht sich bei relativen Pfaden auf den Ordner, in dem die Ausgangsdatei liegt (hier: latex).</p>
    </div>
    <div class="layout-preview">
        <img src="sections/german/04/relative_path.png">
    </div>
</div>

---

<div class="layout-content-and-preview">
    <div class="layout-content">
        <h2 data-category="Exkurs">Dateipfade angeben 👣</h2>
        <h3>Relative Dateipfade</h3>
	Beispiel: Relativer Pfad von main.tex zu part1.tex in Unterordner
        <p>./sections/part1.tex</p>
    </div>
    <div class="layout-preview">
        <img src="sections/german/04/relative_path_subdir.png">
    </div>
</div>

---

<div class="layout-content-and-preview">
    <div class="layout-content">
        <h2 data-category="Exkurs">Dateipfade angeben 👣</h2>
        <h3>Relative Dateipfade</h3>
        Beispiel: Relativer Pfad von main.tex in eigenem Unterordner zu part1.tex in anderem Unterordner
        <p>../sections/part1.tex</p>
        <p>**Zwei Punkte ..** bezeichnen den Elternordner des aktuellen Ordners (hier: Dokumente, der Elternordner latex des Ordners main).</p>
    </div>
    <div class="layout-preview">
        <img src="sections/german/04/relative_path_superdir.png">
    </div>
</div>

---

<div class="layout-content-only">
    <div class="layout-content">
        <h2>Kompilieren des Projekts</h2>
        <ul>
            <li>**Nur die Hauptdatei** wird kompiliert, um das fertige PDF-Dokument zu erhalten</li>
            <li>Fehlermeldungen enthalten dann Verweis, in welcher Unterdatei sie aufgetreten sind</li>
        </ul>
    </div>
</div>

---

<div class="layout-content-only">
    <div class="layout-content">
        <h2>Kompilieren des Projekts</h2>
        <ul>
            <li>die Unterdateiten können wegen ihrer fehlenden Präambel nicht selbstständig kompiliert werden</li>
            <li>Trick bei `\include{}`: `\includeonly{file1,file2,...}` in die Präambel schreiben, um nur einzelne Unterdateien zu kompilieren</li>
        </ul>
    </div>
</div>

---

<div class="layout-content-and-preview">
    <div class="layout-content">
        <h2>Präambel ausgelagert</h2>
        <p>Was denkt ihr, passiert, wenn wir den Präambel in eine Unterdatei auslagern?</p>
        <p>Wird das Gesamtdokument kompilieren oder nicht?</p>
        <p class="fragment"><strong>Ja, es kompiliert!</strong><br>
            Ein einfacher Weg, um die Hauptdatei noch übersichtlicher zu halten.</p>
    </div>
    <div class="layout-preview">
        <img src="sections/german/04/main_parts_header.png">
    </div>
</div>

---

<div class="layout-only">
    <div class="layout-content">
        <h2 data-category="Aufgabe">4. Projektstruktur für das Skript anlegen</h2>
        <ul>
            <li class="fragment">Teile das Skript in sinnvolle Abschnitte auf und lagere sie in separate <code>.tex</code>-Dateien aus.</li>
            <li class="fragment">Verwende zunächst <code>\input{}</code>, um die Abschnitte in deine Hauptdatei einzubinden.</li>
            <li class="fragment">Beobachte, was sich verändert, wenn du stattdessen <code>\include{}</code> einsetzt.</li>
            <li class="fragment">Verschiebe die Teildateien zur besseren Strukturierung in einen eigenen Unterordner <code>sections</code>. Was musst du nun bei der Angabe des relativen Pfades bei <code>\include{}</code> verändern?</li>
            <li class="fragment">Lagere nun noch die Präambel aus.</li>
        </ul>
    </div>
</div>
