latex-wochenende/slides/chapter-04.de.md
2020-06-11 12:17:21 +02:00

6.8 KiB
Raw Blame History

@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}

@preview

@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.

% …

@preview {.thin-padding}

@slide(layout=two-columns)

@title input oder include?

@column-one

\input{path/to/file}
  • Dateiendung .tex kann 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 .tex nicht 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 🌳

@preview

@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: »\«

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.

@preview

@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.

@preview

@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

@preview

@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).

@preview

@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.

@preview {.thin-padding}

@slide(layout=task)

@task-number 3

@title Ein strukturiertes Projekt

@content

  • Entfernt die Präambel, die beiden document-Zeilen und das Inhaltsverzeichnis aus allgemeines.tex.
  • ++ Kompiliert stattdessen l2kurz.tex das ist ab sofort unsere Hauptdatei. Die Datei allgemeines.tex ist 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 Datei praeambel.tex aus 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.tex und allgemeines.tex eingebunden werden.
  • ++ Ersetzt hierzu in der Datei l2kurz.tex alle anderen \input-Statements durch \include-Statements und verwendet den Befehl \includeonly.
  • ++ Achtung: Die Präambel sollte weiterhin durch \input eingebunden werden.
  • ++ Setzt das \includeonly-Statement direkt über \begin{document}.