latex-wochenende/slides/chapter-03.de.md
2021-05-28 18:03:21 +02:00

399 lines
8.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@slide(layout=chapter-slide)
@title
Grundstruktur eines L<sup style="font-weight: bold; font-size: 73%; margin-left: -.25em; margin-right: -.05em; position: relative; top: .2em">A</sup>T<sub style="font-size: 100%; margin-left: -.1em">E</sub>X-Dokuments
@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/chapter-03/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]{scrartcl}
```
<ul class="fragment">
<li>**`scrartcl`, `article`** für kurze Dokumente</li>
<li>**`scrreport`, `report`** für längere Dokumente</li>
<li>**`scrbook`, `book`** für Bücher</li>
<li>**`beamer`** für Präsentationen</li>
</ul>
@slide(layout=content-only)
@title
Pakete
@content
``` {.lang-tex .hljs}
\usepackage[<optionen>]{<paketname>}
```
* Pakete stellen zusätzliche Befehle und Funktionalitäten zur Verfügung.
* Es existieren verschiedene Pakete für verschiedene Anwendungsfälle (z.&thinsp;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.&thinsp;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}
```
<div class="fragment">
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}
```
</div>
@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
![](svg/chapter-03/languages-crop.svg)
@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/chapter-03/absätze-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 »`\\`«, Lösung dafür später.
@preview
![](svg/chapter-03/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/chapter-03/abschnitte-crop.svg)
@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
![](svg/chapter-03/abschnitte-anders-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 \\\\ Fachschaft WIAI\thanks{WIe AIn Profi},
Otto-Friedrich-Universität Bamberg}
\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 \\\\ Fachschaft
WIAI\thanks{WIe AIn Profi},
Otto-Friedrich-Universität Bamberg}
\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/chapter-03/titel-orig.svg)
@slide(layout=content-only)
@title
Inhaltsverzeichnis
@content
``` {.lang-tex .hljs}
\tableofcontents
```
* Nummerierung erfolgt automatisch
* Viele Anpassungsmöglichkeiten (Aufzählungszeichen und -tiefe, automatische Benennung, …)
* (Unter-)Kapitel, 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]{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
![](svg/chapter-03/inhalt-crop.svg)
@slide(layout=content-only)
@title
Weitere Verzeichnisse
@content
Abbildungsverzeichnis und Tabellenverzeichnis
``` {.lang-tex .hljs}
\listoffigures
\listoftables
```
* Fügt das gewählte Verzeichnis an der entsprechenden Stelle ins Dokument ein.
* Es wird die jeweilige Bild- bzw. Tabellenunterschrift aufgeführt. Es kann aber auch ein Kurztitel angegeben werden, der dann für das Verzeichnis verwendet wird.
@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}
\usepackage{hyperref}
\usepackage{csquotes}
```
* ++ 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.
* ++ **Kommentiert** zuletzt die Präambel, die Dokumentenumgebung und das Inhaltsverzeichnis **wieder aus**. Nur so kann eure Lösung auch ins Skript eingebunden werden.