450 lines
9.6 KiB
Markdown
450 lines
9.6 KiB
Markdown
@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> + <kbd>ß</kbd> (Windows/Linux)
|
||
|
||
<kbd>Alt</kbd> + <kbd>Shift</kbd> + <kbd>7</kbd> (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
|
||

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

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

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

|
||
|
||
|
||
@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=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]{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
|
||

|
||
|
||
|
||
|
||
@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**.
|
||
|
||
``` {.lang-tex .hljs .fragment}
|
||
\documentclass{article}
|
||
\usepackage[utf8]{inputenc}
|
||
\usepackage[T1]{fontenc}
|
||
\usepackage[ngerman]{babel}
|
||
```
|
||
|
||
* Öffnet mittels Rechtsklick auf die Datei das Kontextmenü und setzt die Datei als explizites Root-Dokument. Kompiliert sie anschließend.
|
||
* 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{<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
|
||

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

|
||
|
||
|
||
@slide(layout=content-only)
|
||
|
||
@title
|
||
Bevor wir fortfahren können …
|
||
|
||
@content
|
||
::: {.box .warning}
|
||
**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 <kbd>Strg</kbd> + <kbd>T</kbd> erreicht werden).
|
||
:::
|
||
|
||
Im nächsten Kapitel erklären wir, warum das notwendig ist. |