@slide(layout=chapter-slide)
@number
3
@title
Grundstruktur eines LATEX-Dokuments
@slide(layout=content-and-preview)
@title
PrÀambel & Dokumentumgebung
@content
đ Ein mit LaTeX gesetztes Dokument besteht aus:
* **PrĂ€ambel:** globale Einstellungen (Dokumentklasse, Kodierung, Sprache, Seitenformat, zusĂ€zliche Pakete, âŠ) und
* **Dokumentumgebung:** Inhalt des Dokuments.
``` {.lang-tex .hljs .fragment}
\documentclass[ngerman]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\begin{document}
Hallo, Welt!
\end{document}
```
@preview

@slide(layout=wide-content)
@title
Dokumentenklasse
@content
``` {.lang-tex .hljs}
\documentclass[]{}
```
Konkret zum Beispiel
``` {.lang-tex .hljs}
\documentclass[10pt,a5paper,landscape]{scrartcl}
```
- **`scrartcl`, `article`** fĂŒr kurze Dokumente
- **`scrreprt`, `report`** fĂŒr lĂ€ngere Dokumente
- **`scrbook`, `book`** fĂŒr BĂŒcher
- **`beamer`** fĂŒr PrĂ€sentationen
@slide(layout=content-only)
@title
Pakete
@content
``` {.lang-tex .hljs}
\usepackage[]{}
```
* Pakete stellen zusĂ€tzliche Befehle und FunktionalitĂ€ten zur VerfĂŒgung.
* Es existieren verschiedene Pakete fĂŒr verschiedene AnwendungsfĂ€lle (z. B. Formelsatz, Listen, ...).
* Sie mĂŒssen vor der Nutzung **in der PrĂ€ambel** eingebunden werden.
@slide(layout=content-only)
@title
Kodierung
@content
``` {.lang-tex .hljs}
\usepackage[utf8]{inputenc}
\usepackage[t1]{fontenc}
```
* ++ Die Zeichenkodierung bestimmt, welche Zeichen verfĂŒgbar sind.
* ++ **ASCII** enthÀlt kaum Sonderzeichen wie deutsche Umlaute.
* ++ **UTF-8** ist eine universelle Kodierung.
@slide(layout=content-only)
@title
Sprache
@content
``` {.lang-tex .hljs}
\usepackage[ngerman]{babel}
```
* Das Paket **`babel`** stellt sprachspezifische Informationen (z. B. Silbentrennung, Sonderzeichen, Wechsel zwischen Fonts, Ăbersetzung von Labels wie âșKapitelâč, âșInhaltsverzeichnisâč oder âșAbbildungâč) bereit.
* **`ngerman`** steht fĂŒr die neue deutsche Rechschreibung.
@slide(layout=wide-content)
@title
Sprachen
@content
Es können auch mehrere Sprachen im Dokument verwendet werden:
``` {.lang-tex .hljs}
\usepackage[ngerman, swedish, russian, greek, english]{babel}
```
Umschalten zwischen Sprachen:
``` {.lang-tex .hljs}
\selectlanguage{}
\selectlanguage{}
```
Eingebetteter Text in anderer Sprache:
``` {.lang-tex .hljs}
\selectlanguage{}
\foreignlanguage{}{Hier steht Text in Sprache B in einem Text in Sprache A}
```
@slide(layout=content-and-preview)
@title
Sprachen â ein Beispiel
@content
``` {.lang-tex .hljs}
\today
\selectlanguage{ngerman}
\today
\selectlanguage{swedish}
\today
\selectlanguage{russian}
\today
\selectlanguage{greek}
\today
\selectlanguage{english}
\today
```
@preview

@slide(layout=content-and-preview)
@title
FlieĂtext
@content
``` {.lang-tex .hljs}
FlieĂtext kann direkt in den Quelltext âČ
geschrieben werden. âČ
Einfache ZeilenumbrĂŒche âČ
werden dabei ignoriert, âČ
genau wie mehrere Leerzeichen. âČ
âČ
Leerzeilen erzeugen einen neuen Absatz,âČ
standardmĂ€Ăig mit Einzug. âČ
Manuelle ZeilenumbrĂŒche können mit âČ
zwei Backslashes erzwungen werden, âČ
haben in FlieĂtext aber eigentlich \\ âČ
nichts verloren.
```
@preview

@slide(layout=content-and-preview-with-category)
@category
Achtung!
@title
Reservierte Zeichen
@content
Bestimmte Zeichen lösen in LaTeX Dinge aus:
`# $ % ^ & _ { } ~ \`
``` {.lang-tex .hljs}
50% sind die HĂ€lfte.
```
Lösung: »`\`« voranstellen:
``` {.lang-tex .hljs}
50\% sind die HĂ€lfte.
```
Funktioniert nicht mit »`\\`«, nutzt `\textbackslash` stattdessen.
@preview

@slide(layout=content-and-preview)
@title
Abschnitte und Kapitel
@content
Texte werden durch Ăberschriften in Abschnitte und Kapitel unterteilt. Immer verfĂŒgbar:
``` {.lang-tex .hljs}
\section{Ebene 1}
\subsection{Ebene 2}
\subsubsection{Ebene 3}
\paragraph{Ebene 4}
\subparagraph{Ebene 5}
```
Je nach Dokumentenklasse zusÀtzlich:
``` {.lang-tex .hljs}
\chapter{Kapitel}
\part{Teil}
```
@preview

@slide(layout=content-and-preview)
@title
Abschnitte und Kapitel
@content
Mit Sternchen fallen bei allen diesen Befehlen die Nummerierung und der Eintrag im Inhaltsverzeichnis weg:
``` {.lang-tex .hljs}
\section*{Kein Verzeichniseintrag}
```
AuĂerdem kann fĂŒr das Inhaltsverzeichnis ein alternativer Titel angegeben werden:
``` {.lang-tex .hljs}
\section[Titel im Verzeichnis]
{KapitelĂŒberschrift}
```
@preview

@slide(layout=wide-content)
@title
Titelei
@content
``` {.lang-tex .hljs data-source=title.tex}
\title{Die Welt der TrĂŒffel}
\author{Fooboar RĂŒssel \and Fachschaft WIAI}
\date{\today}
\begin{document}
\maketitle
\end{document}
```
* In der PrĂ€ambel werden die Werte fĂŒr die EintrĂ€ge gespeichert.
* Das Setzen des Titels erfolgt in der Dokumentumgebung mit dem Befehl `\maketitle`.
* Die genaue Gestaltung hÀngt ab von der verwendeten Dokumentklasse.
* Mehrere Autoren werden mit `\and` verbunden.
* Wird kein Datum angegeben, wird per default das aktuelle Datum gesetzt. Ein abweichendes Datum kann mit `\date{}` definiert werden.
@slide(layout=content-and-preview)
@title
Titelei
@content
``` {.lang-tex .hljs data-source=title.tex}
\documentclass[ngerman]{scrartcl}
\usepackage{babel}
\title{Die Welt der TrĂŒffel}
\author{Fooboar RĂŒssel \and
Fachschaft WIAI}
\date{\today}
\begin{document}
\maketitle
\section{TrĂŒffelsuche}
\subsection{Suche mit Schwein}
\subsection{Suche ohne Schwein}
Wer macht denn sowas?
\section{TrĂŒffelrezepte}
Mein Lieblingsrezept
\end{document}
```
@preview

@slide(layout=content-only)
@title
Verzeichnisse
@content
``` {.lang-tex .hljs}
\tableofcontents // Inhaltsverzeichnis
\listoffigures // Abbildungsverzeichnis
\listoftables // Tabellenverzeichnis
```
* Nummerierung erfolgt automatisch
* Elemente, die nicht im Verzeichnis aufgefĂŒhrt werden sollen, werden mit einem »`*`« versehen, also z. B. `\section*{}`.
* **am besten zweimal kompilieren**
@slide(layout=content-and-preview)
@title
Inhaltsverzeichnis
@content
``` {.lang-tex .hljs data-source=title.tex}
\documentclass[ngerman]{scrartcl}
\usepackage{babel}
\begin{document}
\tableofcontents
\section{TrĂŒffelsuche}
Der erste Abschnitt.
\subsection{Suche mit Schwein}
Ein Unterabschnitt.
\subsection{Suche ohne Schwein}
Ein weiterer Unterabschitt.
\subsubsection[But why?]
{Wer macht denn sowas?}
Unter-Unterabschnitt.
\section{TrĂŒffelrezepte}
Mein Lieblingsrezept
\end{document}
```
@preview

@slide(layout=wide-task)
@task-number
3
@title
Dokument und Text gliedern
@content
* Ăffnet die Datei `document-structure.tex`, die im Ordner `exercises/basic-document-structure` liegt.
* Packt den gesamten Text in der Datei in eine **Document**-Umgebung und schreibt darĂŒber folgende **PrĂ€ambel**. Kompiliert die Datei.
``` {.lang-tex .hljs .fragment}
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
```
* Wie ihr sehen könnt, sind in der Datei die AbsÀtze im Dokument mit `\\` erstellt worden. Ersetzt diese durch richtige AbsÀtze.
* Zeit fĂŒr etwas Struktur! Verwendet fĂŒr die **Ăberschriften** die passenden LaTeX-Befehle (`\section` u. Ă€.).
* FĂŒgt anschlieĂend ein **Inhaltsverzeichnis** in euer Dokument ein.
@slide(layout=content-only)
@title
Bevor wir fortfahren können âŠ
@content
**Kommentiert** zuletzt die PrÀambel, die Dokumentenumgebung und das Inhaltsverzeichnis **wieder aus**.
Nur so kann eure Lösung auch ins Skript eingebunden werden (Schnelles Auskommentieren kann in TeXstudio mit dem Shortcut Strg + T erreicht werden).
Im nÀchsten Kapitel erklÀren wir, warum das notwendig ist.