245 lines
8.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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 <span class="emoji">👹</span></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="padding: .2em; height: 100vh">
</div>
</div>
---
<div class="layout layout-content-and-preview">
<div class="layout-content">
<h2>Hauptdatei <span class="emoji">👑</span></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>
<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">
<img src="sections/german/04/main-orig.svg">
</div>
</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-sourcefile="part1.tex" class="hljs lang-tex"><code>\section{Dies ist Abschnitt 1}
Hier ein Absatz zum
Inhalt von Abschnitt 1.
% …</code></pre>
<pre data-sourcefile="part2.tex" class="hljs lang-tex"><code>\section{Dies ist Abschnitt 2}
Hier ein Absatz zum
Inhalt von Abschnitt 2.
% …</code></pre>
</div>
<div class="layout-preview">
<img class="thin-padding" src="sections/german/04/main-parts-crop.svg">
</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 <span class="emoji">👣</span></h2>
<ul>
<li>wichtig für `\input{}` und `\include{}` sowie später für das Einbinden von Bildern</li>
<li>Datei- und Ordnerstruktur = Baumstruktur <span class="emoji">🌳</span></li>
</ul>
</div>
<div class="layout-preview">
<img src="sections/german/04/tree-crop.svg">
</div>
</div>
---
<div class="layout-content-and-preview">
<div class="layout-content">
<h2 data-category="Exkurs">Dateipfade angeben <span class="emoji">👣</span></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>
<div class="fragment">
<p><strong>Beispiel:</strong> Absoluter Pfad zu `main.tex`</p>
<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>
<div class="layout-preview">
<img src="sections/german/04/absolute-path-crop.svg">
</div>
</div>
---
<div class="layout-content-and-preview">
<div class="layout-content">
<h2 data-category="Exkurs">Dateipfade angeben <span class="emoji">👣</span></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! <span class="emoji"></span></li>
<li>bei `\input{}`und `\include{}` muss der Pfad zu einer Unterdatei relativ zur Hauptdatei angeben werden</li>
</ul>
<div class="fragment">
<p><strong>Beispiel:</strong> Relativer Pfad <br/>von `main.tex` zu `part1.tex`</p>
<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>
<div class="layout-preview">
<img src="sections/german/04/relative-path-crop.svg">
</div>
</div>
---
<div class="layout-content-and-preview">
<div class="layout-content">
<h2 data-category="Exkurs">Dateipfade angeben <span class="emoji">👣</span></h2>
<h3>Relative Dateipfade</h3>
<p><strong>Beispiel:</strong> Relativer Pfad von `main.tex` zu `part1.tex` in Unterordner</p>
<p>`./sections/part1.tex`</p>
</div>
<div class="layout-preview">
<img src="sections/german/04/relative-path-subdir-crop.svg">
</div>
</div>
---
<div class="layout-content-and-preview">
<div class="layout-content">
<h2 data-category="Exkurs">Dateipfade angeben <span class="emoji">👣</span></h2>
<h3>Relative Dateipfade</h3>
<p><strong>Beispiel:</strong> Relativer Pfad von `main.tex` in eigenem Unterordner zu `part1.tex` in anderem Unterordner</p>
<p>`../sections/part1.tex`</p>
<p>**Zwei Punkte »`..`«** bezeichnen den Elternordner des aktuellen Ordners (hier: <code>latex</code>, den Elternordner des Ordners <code>main</code>).</p>
</div>
<div class="layout-preview">
<img src="sections/german/04/relative-path-superdir-crop.svg">
</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 die 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 class="thin-padding" src="sections/german/04/main-parts-header-crop.svg">
</div>
</div>
---
<div class="layout-content-only">
<div class="layout-content">
<h2 data-category="Aufgabe" data-task="3">Ein strukturiertes Projekt</h2>
<ul>
<li>Entfernt die Präambel, die beiden `document`-Zeilen und das Inhaltsverzeichnis aus `allgemeines.tex`.</li>
<li class="fragment">Kompiliert stattdessen `l2kurz.tex` das ist ab sofort unsere **Hauptdatei,** `allgemeines.tex` ist bereits eingebunden und wird mit kompiliert.</li>
<li class="fragment">Die Hauptdatei ist sehr unübersichtlich. Lagert alles vor `\begin{document}` in eine neue Datei `praeambel.tex` aus und bindet sie mit `\input{praeambel}` ein.</li>
</ul>
</div>
</div>