6.8 KiB
@slide(layout=chapter-slide)
@title Projektstruktur
@slide(layout=content-and-preview)
@title Zielsetzung
@content 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
@preview
{style="padding: .2em; height: 100vh"}
@slide(layout=content-and-preview)
@title Hauptdatei 👑
@content
- enthält Grundgerüst, Titel, Inhaltsverzeichnis etc.
- bindet einzelne Kapitel ein mit
\input{pfad/zur/datei}oder\include{pfad/zur/datei}
\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}
@slide(layout=content-and-preview)
@title Datei mit Teilabschnitt
@content
- enthält keine Präambel
- enthält kein
\begin{document}und\end{document}
\section{Dies ist Abschnitt 1}
Hier ein Absatz zum
Inhalt von Abschnitt 1.
% …
\section{Dies ist Abschnitt 2}
Hier ein Absatz zum
Inhalt von Abschnitt 2.
% …
@slide(layout=two-columns)
@title
input oder include?
@column-one
\input{path/to/file}
- Dateiendung
.texkann angegeben werden - 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
@column-two
\include{path/to/file}
- Dateiendung
.texnicht angeben - Schachtelung nicht möglich
- für jede Unterdatei wird im fertigen Dokument eine neue Seite angelegt
- Vorteil bei größeren Projekten:
\includeonly{file1,file2,...}in die Präambel schreiben, um nur einzelne Unterdateien zu kompilieren (vorher muss mindestens einmal das gesamte Projekt kompiliert werden)
@slide(layout=content-and-preview-with-category)
@category Exkurs
@title Dateipfade angeben 👣
@content
- wichtig für
\input{}und\include{}sowie später für das Einbinden von Bildern - Datei- und Ordnerstruktur = Baumstruktur 🌳
@slide(layout=content-and-preview-with-category)
@category Exkurs
@title Dateipfade angeben 👣
@content
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: »
\«
- Unter Unix: »
Absoluter Pfad zu `main.tex`
- Unix:
/home/knut/docs/latex/main.tex - Windows:
C:\knut\docs\latex\main.tex
Bei LaTeX muss stets die **Unix-Syntax** für Pfadangaben verwendet werden. Deshalb werden wir im Folgenden diese verwerden.
@slide(layout=content-and-preview-with-category)
@category Exkurs
@title Dateipfade angeben 👣
@content
Relative Dateipfade
- Pfad von einem bestimmten Ort irgendwo im Ordnerbaum bis zur jeweiligen Datei
- kürzer + weniger Schreibarbeit! ☺
- bei
\input{}und\include{}kann der Pfad zu einer Unterdatei relativ zur Hauptdatei angeben werden
Relativer Pfad \ von `main.tex` zu `part1.tex`
./part1.tex
Der einfache Punkt ».« bezieht sich bei relativen Pfaden auf den aktuellen Ordner (hier: latex). Er ist optional, es könnte also auch nur part1.tex geschrieben werden.
@slide(layout=content-and-preview-with-category)
@category Exkurs
@title Dateipfade angeben 👣
@content
Relative Dateipfade
Relativer Pfad von `main.tex` zu `part1.tex` in Unterordner
./sections/part1.tex
@slide(layout=content-and-preview-with-category)
@category Exkurs
@title Dateipfade angeben 👣
@content
Relative Dateipfade
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: latex, den Elternordner des Ordners main).
@slide(layout=content-only)
@title Kompilieren des Projekts
@content
- Nur die Hauptdatei wird kompiliert, um das fertige PDF-Dokument zu erhalten.
- Fehlermeldungen enthalten dann Verweis, in welcher Unterdatei sie aufgetreten sind.
- Die Unterdateien können wegen ihrer fehlenden Präambel nicht selbstständig kompiliert werden.
@slide(layout=content-and-preview)
@title Präambel auslagern
@content Was denkt ihr, passiert, wenn wir die 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.
@slide(layout=task)
@task-number 3
@title Ein strukturiertes Projekt
@content
- Entfernt die Präambel, die beiden
document-Zeilen und das Inhaltsverzeichnis ausallgemeines.tex. - ++ Kompiliert stattdessen
l2kurz.tex– das ist ab sofort unsere Hauptdatei. Die Dateiallgemeines.texist bereits eingebunden und wird mit kompiliert. - ++ Die Hauptdatei ist sehr unübersichtlich. Lagert alle Befehle, die vor der Dokumentumgebung (
\begin{document}) aufgerufen werden, in eine neue Dateipraeambel.texaus und bindet diese mit\input{praeambel}ein. - ++ Technischer Hinweis: Wählt beim Kompilieren bitte die Option »(c) nutze das vorgegebene Kommando«, wenn sich ein entsprechendes Pop-up öffnet.
@slide(layout=task)
@task-number 3
@title Ein strukturiertes Projekt
@content
- Um lange Kompilierzeiten zu verhindern, sollten vorerst nur noch die Abschnitte
einleitung.texundallgemeines.texeingebunden werden. - ++ Ersetzt hierzu in der Datei
l2kurz.texalle anderen\input-Statements durch\include-Statements und verwendet den Befehl\includeonly. - ++ Achtung: Die Präambel sollte weiterhin durch
\inputeingebunden werden. - ++ Setzt das
\includeonly-Statement direkt über\begin{document}.