@slide(layout=chapter-slide) @number 2 @title Einfache Dokumente @slide(layout=wide-content) @title Befehle @content Allgemeiner Aufbau eine Befehls: ``` {.hljs .lang-txt} \[]{} ``` ++ 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: AltGr + ß (Windows/Linux) Alt + Shift + 7 (MacOS) @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/basic-documents/hallo-crop.svg) @slide(layout=wide-content) @title Dokumentenklasse @content ``` {.lang-tex .hljs} \documentclass[]{} ``` 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. 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: Strg + T und Strg + U @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. 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. ä.). * 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{} \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=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**.