@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 ![](svg/chapter-03/hallo-crop.svg) @slide(layout=wide-content) @title Dokumentenklasse @content ``` {.lang-tex .hljs} \documentclass[]{} ``` Konkret zum Beispiel ``` {.lang-tex .hljs} \documentclass[10pt,a5paper,landscape]{scrartcl} ``` @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 ![](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 »`\\`«, nutzt `\textbackslash` stattdessen. @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 \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/chapter-03/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. 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=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.