static.wiai.de/latex-weekend/slides/project-structure.de.md
2023-11-18 01:26:09 +01:00

4.9 KiB
Raw Permalink Blame History

@slide(layout=chapter-slide)

@number 4

@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}
\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=content-and-preview-with-category)

@category Exkurs

@title Dateipfade angeben 👣

@content

  • wichtig für \input{} sowie später für das Einbinden von Bildern und anderen Medien
  • Datei- und Ordnerstruktur = Baumstruktur 🌳
  • bei \input{} kann der Pfad zu einer Unterdatei relativ zur Hauptdatei angeben werden

Bei LaTeX muss stets die **Unix-Syntax** für Pfadangaben verwendet werden. Pfadelemente werden durch einen Schrägstrich getrennt: `pfad/zur/datei`. Deshalb werden wir im Folgenden diese Schreibweise verwenden.

@preview

@slide(layout=content-and-preview-with-category)

@category Exkurs

@title Dateipfade angeben 👣

@content

`main-exercises.tex` → `praeamble.tex`

`./praeamle.tex`

Der einfache Punkt ».« bezieht sich bei relativen Pfaden auf den aktuellen Ordner (hier: latex-skript). Er ist optional, es könnte also auch nur praeamble.tex geschrieben werden.

@preview

@slide(layout=content-and-preview-with-category)

@category Exkurs

@title Dateipfade angeben 👣

@content

`main-exercises.tex` → `basic-document-structure.tex` (in einem Unterordner)

`./content/basic-document-structure.tex`

@preview

@slide(layout=content-and-preview-with-category)

@category Exkurs

@title Dateipfade angeben 👣

@content

`basic-functionality.tex` → `graphics.raw.tex`

(wenn `basic-functionality.tex` von `main-exercises.tex` importiert wird)

./exercises/graphics/graphics.raw.tex

Pfade sind immer relativ zum Wurzelelement, auch wenn dieses noch andere Dateien einbindet, die wiederum andere Dateien referenzieren.

@preview

@slide(layout=content-only-with-category)

@category Demo

@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.
Von nun an kompilieren wir die Datei `main-exercises.tex` im Wurzelverzeichnis des Projektordners. Klickt hierzu in TeXstudio mit der rechten Maustaste auf die Datei und wählt **„Explizit als Root-Dokument setzen“**. Anschließend könnt ihr wie gewohnt kompilieren.

@slide(layout=task)

@task-number 4

@title Ein strukturiertes Projekt

@content Im Ordner exercises/project-structure findet ihr eine Datei namens main.tex.

  • Erstellt neue Dateien (z.B. section1.tex und section2.tex und verschiebt die Abschnitte in diese.
  • Importiert die Fragmente anschließend mit Hilfe des \input-Befehls.
  • Lagert die Präambel auf demselben Weg in eine eigene Datei aus.
  • Schaut euch abschließend die Gesamtstruktur unseres Projektarchivs an, beginnend mit main-exercises.tex im Wurzelverzeichnis. Wie binden wir hier die einzelnen Abschnitte ein?