@slide(layout=chapter-slide)

@number
2

@title
Einfache Dokumente

@slide(layout=wide-content)

@title
Befehle

@content
Allgemeiner Aufbau eine Befehls:

``` {.hljs .lang-txt}
\<befehl>[<optionale_parameter>]{<obligatorische_parameter>}
```

++ Ein paar Beispiele:

``` {.lang-tex .tex .hljs .fragment}
\newpage % fügt eine neue Seite ein
\textbf{fetter Text} % schreibt den übergebenen Text fett
\documentclass[a4paper,12pt,landscape]{article} % konfiguriert die Dokumentenklasse
\frac{1}{4} % fügt den mathematischen Bruch ein
```


@slide(layout=content-only)

@title
Backslash

@content
Den Backslash erzeugt ihr auf deutschen Tastaturen mit folgender Tastenkombination:

<kbd>AltGr</kbd>&nbsp;+&nbsp;<kbd>ß</kbd>&nbsp;(Windows/Linux)

<kbd>Alt</kbd>&nbsp;+&nbsp;<kbd>Shift</kbd>&nbsp;+&nbsp;<kbd>7</kbd>&nbsp;(MacOS)


@slide(layout=content-and-preview)

@title
Präambel & Dokumentumgebung

@content
<p style="text-indent: -1.3em"><span class="emoji">👁</span> Ein mit LaTeX gesetztes Dokument besteht aus:</p>

* **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
![](svg/basic-documents/hallo-crop.svg)


@slide(layout=wide-content)

@title
Dokumentenklasse

@content
``` {.lang-tex .hljs}
\documentclass[<parameter>]{<dokumentklasse>}
```

Konkret zum Beispiel

``` {.lang-tex .hljs}
\documentclass[10pt,a5paper,landscape]{article}
```


@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.&thinsp;B. Silbentrennung, Sonderzeichen, Wechsel zwischen Fonts, Übersetzung von Labels wie ›Kapitel‹, ›Inhaltsverzeichnis‹ oder ›Abbildung‹) bereit.
* **`ngerman`** steht für die neue deutsche Rechtschreibung.


@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
![](svg/basic-documents/absätze-crop.svg)


@slide(layout=content-and-preview)

@title
Kommentare

@content
Nach einem Prozentzeichen wird der Rest der Zeile vom Compiler ignoriert. Der Kommentartext erscheint also nicht im fertigen Dokument.

``` {.lang-tex .hljs}
% Beginn Steckbrief
Name: Donald Knuth \\
Geburtsdatum: \\ % TODO: einfügen
Geburtsort: Milwaukee, Wisconsin
% Ende Steckbrief
```

Tastenkombinationen: <kbd>Strg</kbd> + <kbd>T</kbd> und <kbd>Strg</kbd> + <kbd>U</kbd>

@preview
![](svg/basic-documents/kommentare-crop.svg)


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

++ Für später: Zwischen Zahlen und Einheiten passen schmale Leerzeichen (`50\,\%`).

@preview
![](svg/basic-documents/reservierte-zeichen-crop.svg)


@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
![](svg/basic-documents/abschnitte-crop.svg)


@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
![](svg/basic-documents/titel-orig.svg)


@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.&thinsp;B. `\section*{}`.
* **am besten zweimal kompilieren**


@slide(layout=content-and-preview)

@title
Inhaltsverzeichnis

@content
``` {.lang-tex .hljs data-source=title.tex}
\documentclass[ngerman]{article}
\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
![](svg/basic-documents/inhalt-crop.svg)



@slide(layout=wide-task)

@task-number
2

@title
Dokument und Text gliedern

@content
::: {.box .warning}
**Schließt alle offenen Tabs** aus vorherigen Aufgaben.
:::

* Ö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**.

``` {.lang-tex .hljs}
\documentclass{article}
\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.&thinsp;ä.).
* Fügt anschließend ein **Inhaltsverzeichnis** in euer Dokument ein.


@slide(layout=extra-wide-content)

@title
Dokumentenklassen

@content
* Natürlich gibt es auch andere Dokumentenklassen als `article`.
* Je nachdem, welche Dokumentenklasse man verwendet, ändert sich das Layout der generierten PDF.
* Die korrekt geschriebenen Dokumentenklassen richten sich nach US-amerikanischen Layout-Normen.
* **`scr`**-Dokumentenklassen versuchen europäische Normen abzubilden.

Folgende Dokumentenklassen stehen zur Verfügung:

* **`scrartcl`, `article`** für kurze Dokumente
* **`scrreprt`, `report`** für lange Dokumente
* **`scrbook`, `book`** für Bücher
* **`beamer`** für Präsentationen


@slide(layout=extra-wide-content)

@title
Sprachen

@content
Es können auch mehrere Sprachen im Dokument verwendet werden:

``` {.lang-tex .hljs}
\usepackage[ngerman, swedish, ukrainian, greek, english]{babel}
```

Umschalten zwischen Sprachen:

``` {.lang-tex .hljs}
\selectlanguage{<sprache a>}
\selectlanguage{<sprache b>}
```

Eingebetteter Text in anderer Sprache:

``` {.lang-tex .hljs}
\selectlanguage{<sprache a>}
\foreignlanguage{<sprache b>}{Hier steht Text in Sprache B in einem Text in Sprache A}
```


@slide(layout=extra-content-and-preview)

@title
Sprachen – ein Beispiel

@content
``` {.lang-tex .hljs}
\today
\selectlanguage{ngerman}
\today
\selectlanguage{swedish}
\today
\selectlanguage{ukrainian}
\today
\selectlanguage{greek}
\today
\selectlanguage{english}
\today
```

@preview
![](svg/basic-documents/languages-crop.svg)


@slide(layout=extra-content-and-preview)

@title
Überschriften und das Inhaltsverzeichnis

@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
![](svg/basic-documents/abschnitte-anders-crop.svg)


@slide(layout=extra-content-only)

@title
Kopf- und Fußzeilen

@content
Hier hilft das Paket `fancyhdr` weiter.

``` {.lang-tex .hljs}
% generell aktivieren
\pagestyle{fancy}     

% auch auf der ersten Seite anwenden
\thispagestyle{fancy} 

% zurücksetzen
\fancyhead{} % bzw. \fancyfoot{}
\fancyhead[L]{Links in der Kopfzeile}
\fancyfoot[C]{Mittig in der Fußzeile}
\fancyfoot[R]{\thepage}
```

Eine ausführliche Anleitung gibt es bei [Overleaf](https://www.overleaf.com/learn/latex/Headers_and_footers).


@slide(layout=wide-task)

@task-number
2x

@title
Dokumente nach eigenen Wünschen

@content
+ Fügt dem Dokument einen **Titel** hinzu.
+ Lasst das heutige Datum in einer **Sprache eurer Wahl** erscheinen. 
+ Lasst eine Überschrift aus dem Inhaltsverzeichnis **verschwinden**.
+ Gebt einer Überschrift im Inhaltsverzeichnis einen **Kurztitel**.
+ Teilt den Text auf **zwei Spalten** auf (Stichwort: `twocolumn`).
+ Fügt rechts eine **Kopfzeile** mit dem Titel und links eine **Fußzeile** mit der Seitenzahl ein.
+ Probiert aus, was sich durch **Ändern der Dokumentenklasse** verändert.
+ Erkundigt euch zu den Möglichkeiten [herkömmlicher](https://hartwork.org/beamer-theme-matrix/) und [moderner](https://gitlab.cs.fau.de/i4/tex/i4neo) **Beamer-Präsentationsvorlagen**.
