0. Erste Schritte mit LATEX

Exkurs: Eine Kommandozeile öffnen

  • Für die kommenden Aufgaben brauchen wir eine Kommandozeile
  • Je nach Betriebssystem, das verwendet wird, gibt es unteschiedliche Wege, sie zu öffnen
  • Windows: Drückt die Windows-Taste, tippt cmd und drückt Enter
  • MacOS: Drückt die Command-Taste und die Leertaste gleichzeitig, tippt danach Terminal und macht einen Doppelklick auf Terminal
  • Linux: Drückt Strg + Alt + T

Den Compiler installieren

  • Der Compiler übersetzt unseren LaTeX-Code in ein PDF
  • Je nach Betriebssystem stehen unterschiedliche Compiler zur Verfügung:
  • Windows: MikTEX
  • Linux-Distributionen: TEXLive
    • Debian-basierte Distros: Führt sudo apt install texlive-full aus
    • Andere Distributionen: Folgt den anweisungen auf der TEXLive-Website

Bitte achtet darauf, die full version mit allen Paketen zu installieren, wenn ihr die Auswahl habt!

Installieren des Editors

  • Ein Editor kann heruntergeladen werden, sobald die Installation des Compilers fertig ist
  • Es funktioniert jeglicher Text-Editor, wie etwa Notepad++ oder VSCode
  • Für Anfänger:innen empfehlen wir jedoch TEXstudio, da es LaTeX-spezifische Features bietet
  • Ladet TEXstudio herunter und installiert es

Kompilieren des Skriptes

  • Ladet das Projektarchiv aus dem VC herunter
  • Entpackt das Archiv
  • Öffnet die Datei main.tex in TeXstudio. Ihr findet es im Wurzelverzeichnis des Archivs
  • Kompiliert die Datei, indem ihr klickt
  • Einige neue Dateien sollten nun durch das Kompilieren generiert werden

Windows-Nutzer:innen: Um Dateiendungen zu aktivieren, klickt auf das Ansichts-Tab im Dateiexplorer und wählt Dateiendungen. So könnt ihr besser zwischen den einzelnen main-Files unterscheiden.

LATEX-Wochenende

Ein Workshop der Fachschaft WIAI. Erstellt von Anika Amma, Evelyn Fradtschuk, Florian Knoch, Christian Kremitzl, Fabian Lamprecht, Bernhard Luedtke und Anna Sauer.

1. Was ist LATEX?

Entstehung

  • Donald Knuth, 1977–1986: Textsatzsystem TeXτεχ → /tɛç/ für The Art of Computer Programming
  • Leslie Lamport, ab 1980er: Softwarepaket LaTeX zur einfacheren Benutzung von TeX
Donald Knuth
Leslie Lamport

Gründe für LaTeX: Makrotypografie

Dieser Absatz soll zeigen, wie sich unter­schied­liche Zeilen­abstände bei unter­schied­lichen Satz­breiten aus­wirken. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht.

☺ Kurz und eng

Dieser Absatz soll zeigen, wie sich unter­schied­liche Zeilen­abstände bei unter­schied­lichen Satz­breiten aus­wirken. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht.

☹ Normale Länge und enger Zeilenabstand

Dieser Absatz soll zeigen, wie sich unter­schied­liche Zeilen­abstände bei unter­schied­lichen Satz­breiten aus­wirken. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht.

☹ Lange Zeilen und enger Zeilenabstand

Dieser Absatz soll zeigen, wie sich unter­schied­liche Zeilen­abstände bei unter­schied­lichen Satz­breiten aus­wirken. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht.

☹ Kurz und normal

Dieser Absatz soll zeigen, wie sich unter­schied­liche Zeilen­abstände bei unter­schied­lichen Satz­breiten aus­wirken. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht.

☺ Normale Länge und Zeilenabstand

Dieser Absatz soll zeigen, wie sich unter­schied­liche Zeilen­abstände bei unter­schied­lichen Satz­breiten aus­wirken. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht.

☹ Lange Zeilen und normaler Zeilenabstand

Dieser Absatz soll zeigen, wie sich unter­schied­liche Zeilen­abstände bei unter­schied­lichen Satz­breiten aus­wirken. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht.

☹ Kurz und weit

Dieser Absatz soll zeigen, wie sich unter­schied­liche Zeilen­abstände bei unter­schied­lichen Satz­breiten aus­wirken. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht.

☹ Normale Länge und weiter Zeilenabstand

Dieser Absatz soll zeigen, wie sich unter­schied­liche Zeilen­abstände bei unter­schied­lichen Satz­breiten aus­wirken. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht. Dazu ist hier noch ein bisschen mehr Text nötig, damit das auch wirklich nach einem Absatz aussieht.

☺ Lange Zeilen und weiter Zeilenabstand

Gründe für LaTeX: Mikrotypografie

☹ schräg (verzerrt)

☺ gerade

☺ kursiv (eigener Schnitt)

☹ kleine Schrift vergrößert

☺ jeweils passender Schriftgrad

☹ große Schrift verkleinert

Gründe für LaTeX: Plaintext

  • zuverlässiges Undo
  • einfache Versionierung
  • unabhängig von proprietären Programmen
  • Quelltext langfristig lesbar
  • einfache Zusammenarbeit mit anderen Programmen
  • keine Ablenkung durch Formatierung oder eingebettete Medien

Ablauf des Workshops

Ziel: Wir arbeiten zusammen unser LaTeX-Skript durch, das ihr nach dem Wochenende als kompakte Referenz verwenden könnt.

  • Learning by Doing
  • Verstehen, wie LaTeX funktioniert
  • Einzelheiten später nachschlagen

Gliederung:

  1. Was ist LaTeX?
  2. Wie funktioniert LaTeX?
  3. Grundstruktur eines LaTeX-Dokuments
  4. Projektstruktur
  5. Viele Features
  6. Literaturverwaltung
  7. Ausblick

2. Wie funktioniert LATEX?

WYSIWaaas?

What You See Is What You Get

  • Formatierung mit unmittelbarem optischen Feedback

What You See Is What You Mean

  • Trennung von Inhalt und Struktur
  • Formatierung erst am Ende ersichtlich

Bildquelle: xkcd

Der Weg zum fertigen Dokument

Was brauchen wir dazu?

Editor

zum Schreiben unseres Quelltextes mit allen Befehlen zur semantischen Gliederung

TeXstudio, TeXMaker

Compiler

erstellt aus dem Quelltext ein fertig formatiertes PDF-Dokument

MiKTeX, MacTeX, TeX Live

Befehle

Allgemeiner Aufbau eine Befehls:

\<befehl>[<optionale_parameter>]{<obligatorische_parameter>}

Ein paar Beispiele:

\newpage % fügt eine neue Seite ein
\textbf{fetter Text} % schreibt den übergebenen Text fett
\documentclass[10pt,a5paper,landscape]{article} % setzt konfiguriert die Dokumentenklasse
\frac{1}{4} % fügt den mathematischen Bruch ein

Backslash

Den Backslash erzeugt ihr mit folgender Tastenkombination:

AltGr + ß (Windows/Linux)

Alt + Shift + 7 (MacOS)

3. Grundstruktur eines LATEX-Dokuments

Präambel & Dokumentumgebung

👁 Ein mit LaTeX gesetztes Dokument besteht aus:

  • Präambel: globale Einstellungen (Dokumentklasse, Kodierung, Sprache, Seitenformat, zusäzliche Pakete, …) und
  • Dokumentumgebung: Inhalt des Dokuments.
\documentclass[ngerman]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\begin{document}
Hallo, Welt!
\end{document}

Dokumentenklasse

\documentclass[<parameter>]{<dokumentklasse>}

Konkret zum Beispiel

\documentclass[10pt,a5paper,landscape]{article}

Kodierung

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

Sprache

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

Fließtext

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.

Kommentare

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

% Beginn Steckbrief
Name: Donald Knuth \\
Geburtsdatum: \\ % TODO: einfügen
Geburtsort: Milwaukee, Wisconsin
% Ende Steckbrief

Tastenkombinationen: Strg + T und Strg + U

Reservierte Zeichen

Bestimmte Zeichen lösen in LaTeX Dinge aus:

# $ % ^ & _ { } ~ \

50% sind die Hälfte.

Lösung: »\« voranstellen:

50\% sind die Hälfte.

Funktioniert nicht mit »\\«, nutzt \textbackslash stattdessen.

Abschnitte und Kapitel

Texte werden durch Überschriften in Abschnitte und Kapitel unterteilt. Immer verfügbar:

\section{Ebene 1}
\subsection{Ebene 2}
\subsubsection{Ebene 3}
\paragraph{Ebene 4}
\subparagraph{Ebene 5}

Je nach Dokumentenklasse zusätzlich:

\chapter{Kapitel}
\part{Teil}

Titelei

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

Titelei

\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}

Verzeichnisse

\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

Inhaltsverzeichnis

\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}

Dokument und Text gliedern

  • Ö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.
\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.

Dokumentenklassen

  • 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.
  • src-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

Sprachen

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

\usepackage[ngerman, swedish, ukrainian, greek, english]{babel}

Umschalten zwischen Sprachen:

\selectlanguage{<sprache a>}
\selectlanguage{<sprache b>}

Eingebetteter Text in anderer Sprache:

\selectlanguage{<sprache a>}
\foreignlanguage{<sprache b>}{Hier steht Text in Sprache B in einem Text in Sprache A}

Sprachen – ein Beispiel

\today
\selectlanguage{ngerman}
\today
\selectlanguage{swedish}
\today
\selectlanguage{ukrainian}
\today
\selectlanguage{greek}
\today
\selectlanguage{english}
\today

Überschriften und das Inhaltsverzeichnis

Mit Sternchen fallen bei allen diesen Befehlen die Nummerierung und der Eintrag im Inhaltsverzeichnis weg:

\section*{Kein Verzeichniseintrag}

Außerdem kann für das Inhaltsverzeichnis ein alternativer Titel angegeben werden:

\section[Titel im Verzeichnis]
{Kapitelüberschrift}

Bevor wir fortfahren können …

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.

4. Projektstruktur

Zielsetzung

Ein größeres LaTeX-Projekt anlegen und dabei …

  • verhindern, dass LaTeX-Dokumente zu monströser Größe anwachsen 👹
  • den Überblick über die Struktur eines Projekts behalten

Hauptdatei 👑

  • enthält Grundgerüst, Titel, Inhaltsverzeichnis etc.
  • bindet einzelne Kapitel ein mit
    \input{pfad/zur/datei}
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\title{Ein Titel}
\begin{document}
    \maketitle
    \tableofcontents
    \input{abschnitt1.tex}
    \input{abschnitt2.tex}
\end{document}

Datei mit Teilabschnitt

  • enthält keine Präambel
  • enthält kein \begin{document} und \end{document}
\section{Dies ist Abschnitt 1}
Hier ein Absatz zum
Inhalt von Abschnitt 1.

% …
\section{Dies ist Abschnitt 2}
Hier ein Absatz zum
Inhalt von Abschnitt 2.

% …

Dateipfade angeben 👣

  • wichtig für \input{} sowie später für das Einbinden von Bildern und anderen Medien
  • Datei- und Ordnerstruktur = Baumstruktur 🌳
  • bei \input{} kann der Pfad zu einer Unterdatei relativ zur Hauptdatei angeben werden

Bei LaTeX muss stets die Unix-Syntax für Pfadangaben verwendet werden. Pfadelemente werden durch einen Schrägstrich getrennt: pfad/zur/datei. Deshalb werden wir im Folgenden diese Schreibweise verwenden.

Dateipfade angeben 👣

main.texpraeamble.tex

./praeamle.tex

Der einfache Punkt ».« bezieht sich bei relativen Pfaden auf den aktuellen Ordner (hier: latex-skript). Er ist optional, es könnte also auch nur praeamble.tex geschrieben werden.

Dateipfade angeben 👣

main.texbasic-document-structure.tex (in einem Unterordner)

./content/basic-document-structure.tex

Dateipfade angeben 👣

basic-document-structure.texgraphics.raw.tex (aus einem Unterordner in einen anderen)

../exercises/graphics/graphics.raw.tex

Zwei Punkte »..« bezeichnen den Elternordner des aktuellen Ordners (hier: latex-skript, den Elternordner des Ordners content).

Leerzeichen in Dateipfaden müssen durch einen Backslash markiert werden: pfad/zu/einer\␣datei.

Dateipfade angeben 👣

task.texgraphics.raw.tex (wenn task.tex von main.tex importiert wird)

./exercises/graphics/graphics.raw.tex

Pfade sind immer relativ zum Wurzelelement, auch wenn dieses noch andere Dateien einbindet, die wiederum andere Dateien referenzieren.

Kompilieren des Projekts

  • Nur die Hauptdatei wird kompiliert, um das fertige PDF-Dokument zu erhalten.
  • Fehlermeldungen enthalten dann Verweis, in welcher Unterdatei sie aufgetreten sind.
  • Die Unterdateien können wegen ihrer fehlenden Präambel nicht selbstständig kompiliert werden.

Von nun an kompilieren wir die Datei main.tex im Wurzelverzeichnis des Projektordners. Klickt hierzu in TeXstudio mit der rechten Maustaste auf die Datei und wählt „Explizit als Root-Dokument setzen“. Anschließend könnt ihr wie gewohnt kompilieren.

Ein strukturiertes Projekt

Im Ordner exercises/project-structure findet ihr eine Datei namens main.tex.

  • Erstellt neue Dateien (z. B. section1.tex und section2.tex und verschiebt die Abschnitte in diese.
  • Importiert die Fragmente anschließend mit Hilfe des \input-Befehls.
  • Lagert die Präambel auf demselben Weg in eine eigene Datei aus.
  • Schaut euch abschließend die Gesamtstruktur unseres Projektarchivs an, beginnend mit main.tex im Wurzelverzeichnis. Wie binden wir hier die einzelnen Abschnitte ein?

5. Sonderzeichen

Leerzeichen

  • Nutzt schmale Leerzeichen (\,) und geschützte Leerzeichen (~) an den geeigneten Stellen.
Schmale Leerzeichen werden z.\,B. in
Abkürzungen und zwischen Zahlen und
Einheiten verwendet: 10\,s.
Normalbreite, aber geschützte
Leerzeichen können u.\,a.
dabei helfen, Titel und Namen in
einer Zeile zu halten: Dr.~Fooboar.
  • Nutzt French Spacing (\frenchspacing), um riesige Freiräume nach Satzzeichen zu verhindern.

Striche

Name Verwendung Code
- Bindestrich (hypen) LaTeX-Wochenende -
Halbgeviert­strich
(en dash)
als Gedankenstrich – oder als Bis-Strich: 10 – 12 Uhr. --
Geviertstrich
(em dash)
a dash — mostly in American English ---

Zitate

Das Paket csquotes stellt u. a. den Befehl \enquote zur Verfügung:

\enquote{Ein \enquote{verschachteltes}
Zitat.}

Wenn das Paket mit autostyle=true eingebunden wird, werden bei fremdsprachigen Zitaten die entsprechenden Anführungszeichen verwendet:

\foreignquote{english}{An English
quote.}

Sonderzeichen & Symbole

Detexify to the rescue! ⛑️

Sonderzeichen einfügen

Kompiliert von nun an immer die Datei main.tex, um eure Änderungen im Skript zu sehen (in diesem Fall im Abschnitt „Übung 5“).

  • Ersetzt die Leerzeichen innerhalb der Abkürzungen in exercises/special-characters.tex durch schmale Leerzeichen.
  • Die Bindestriche bei den Öffnungszeiten der ERBA sollen durch Halbgeviertstriche ersetzt werden, optional mit schmalen Leerzeichen außenrum.
  • Nutzt den Befehl \enquote, um die Wörter Studi-Ticket und Studi-Karte in Anführungszeichen zu setzen.

English spacing

In englischsprachigen Dokumenten verwendet LaTeX das traditionelle English spacing, also doppelte Leerzeichen nach dem Satzende.

Das kann mit \frenchspacing vor dem ersten Absatz verhindert werden. \nonfrenchspacing schaltet wieder zurück.

Bei English spacing versucht LaTeX, nach Abkürzungen trotzdem normale Wortzwischenräume zu setzen. Das sollte aber kontrolliert werden. Eingreifen können wir mit

  • erzwungenen Wortzwischenräumen: .\␣
  • erzwungenen Satzenden: \@.␣

Silbentrennung

LaTeX trennt Wörter im Normalfall automatisch richtig, wenn die richtige Sprache konfiguriert ist. Manchmal muss aber auch manuell eingegriffen werden.

Ausschließliche Trennung \-
Zusätzliche Trennstelle "-
Bindestrich (verbietet andere Trennstellen) -
Bindestrich (erlaubt andere Trennstellen) "=
Trennstelle ohne Strich ""
Strich ohne Trennstelle "~

Einige der Codes funktionieren nur mit eingebundenem babel-Paket.

Anführungszeichen

Sprache Befehl Ergebnis
Deutsch \glqq … \grqq „ … “
 2. Ebene \glq … \grq ‚ … ‘
Deutsch altern. \frqq … \flqq » … «
 2. Ebene \frq … \flq › … ‹
Englisch (A. E.) ``…'' “ … ”
 2. Ebene `…' ‘ … ’
Englisch (B. E.) `…' ‘ … ’
 2. Ebene ``…'' “ … ”

Für andere Sprachen können andere Regeln gelten, meistens aber mit den gleichen Zeichen, nur in anderer Zusammensetzung.

Diakritika

Buchstaben mit Diakritika können entweder direkt über die Tastatur eingegeben werden oder über Escape-Codes:

\`{o} ò   \c{c} ç   \d{u}
\'{o} ó \k{a} ą \r{a} å
\^{o} ô \l{} ł \u{o} ŏ
\"{o} ö \={o} ō \v{s} š
\H{o} ő \b{o} o \t{oo} o͡o
\~{o} õ \.{o} ȯ \o ø

Sonderzeichen & Symbole

Auch andere Sonderzeichen können entweder direkt eingegeben werden oder per Befehl:

¿ ?` ¡ !`
^ \textasciicircum ~ \textasciitilde
\textasteriskcentered \ \textbackslash
| \textbar \textbullet
\textcopyright \textdagger
\textdaggerdbl \textellipsis
< \textless > \textgreater
\textperthousand § \textsection

… und so ziemlich alles andere.

6. Text­auszeichnung

Semantische und optische Hervorhebungen

Semantische Hervorhebungen durch \emph{}:

\emph{Super wichtiger Text \emph{mit noch 
wichtigerem Text} im Text.}

Optische Auszeichnungsmöglichkeiten:

Bezeichnung Befehl
fett (bold face) \textbf{wichtig}
kursiv (italics) \textit{wichtig}
Kapitälchen (small caps) \textsc{wichtig}
dicktengleich (teletype) \texttt{wichtig}
unterstrichen \underline{wichtig}

Better Call LaTeX!

Ein gutgemeinter Rat

Konsistentes Aussehen über das gesamte Dokument hinweg gewünscht?

Voreinstellungen von LaTeX zur Schriftgröße verschiedener Textelemente (Titel, Fließtext, Fußnoten) vertrauen!

Das heißt im Umkehrschluss: Möglichst wenig manuell an Schriftgrößen herumschrauben.

URLs

Das Paket hyperref stellt den Befehl \url{} bereit, der URLs

  • zeichentreu
  • mit bindestrichlosen Umbrüchen
  • mit gut unterscheidbaren Zeichen
  • im PDF anklickbar

wiedergibt.

\url{https://www.latex-project.org/}

Text hervorheben

  • Betont in der Datei exercises/text-markup/markup.tex die Wörter Recursion und recursive mit \emph{…}.
  • Macht die URL im Text anklickbar.

Schriftgröße

Voreingestellte Schriftgrößen

{\<fontsize> ein Textabschnitt}

Schriftgrößen relativ zu normalsize:

{\tiny         Wenn}
{\footnotesize du}
{\small        das}
{\normalsize   lesen}
{\large        kannst,}
{\Large        brauchst}
{\LARGE        du}
{\huge         keine}
{\Huge         Brille.}

Flattersatz

Standardmäßig setzt LaTeX Fließtext im Blocksatz, aber auch Flattersatz ist möglich.

\raggedright … \raggedleft …
\centering …

Alternativ einsetzbare Umgebungen:

\begin{flushleft}  Text \end{flushleft}
\begin{flushright} Text \end{flushright}
\begin{center}     Text \end{center}

Guter Flattersatz ist noch schwieriger als guter Blocksatz, daher lieber vermeiden!

Einzüge und Abstände

  • Absätze werden standardmäßig durch Erstzeileneinzüge (\parindent) verdeutlicht
  • Stattdessen (!) können auch Abstände (\parskip) verwendet werden
  • Die beiden Parameter sind beliebig einstellbar:
\setlength{\parindent}{0pt}
\setlength{\parskip}{1em
    plus  .5em % erlaubte Dehnung
    minus .5em % erlaubte Stauchung
}
  • Mit \noindent kann für nur einen Absatz der Einzug abgeschaltet werden

7. Aufzählungen

Ungeordnete Listen 📜

\begin{itemize}
    \item Nudelplatten
    \item Passierte Tomaten, % …
    \item Oregano, Basilikum, % …
    \item Mozzarella
    \item Mehl
    \item Milch
\end{itemize}

Die einzelnen Stichpunkte werden in jeder Aufzählungsumgebung durch den Befehl \item gekennzeichnet.

Geordnete Listen und Definitionslisten

\begin{enumerate}
  \item die Zwiebeln in einem Topf % …
  \item passierte Tomaten, Möhren % …
  \item mit Kräutern und Gewürzen % …
  % \item …
\end{enumerate}
\begin{description}
  \item [Béchamelsauce] Béchamel % …
  \item [Lasagne] Als Lasagne % …
\end{description}

Verschachtelte Listen

\begin{itemize}
  % …
  \item Gemüse \begin{itemize}
    \item Passierte Tomaten
    \item Möhren
  \end{itemize}
  \item Kräuter \begin{enumerate}
    \item Oregano
    \item Basilikum
  \end{enumerate}
  % …
\end{itemize}

Aufzählungen einfügen

  • Formatiert das Rezept in lists.tex im Ordner exercises/lists als ungeordnete Liste mit den Elementen Ingredients und Instructions. Nutzt dafür den Befehl \itemize.
  • Benutzt innerhalb dieser Liste für die Zutaten eine ungeordnete Liste und für die Arbeitsschritte eine geordnete Liste.

Kompakte Listen

Das Paket paralist stellt Aufzählungen ohne riesige Zwischenräume zur Verfügung.

\section{Zutaten}
\begin{compactitem}
  % \item …
\end{compactitem}
\section{Zubereitung}
\begin{compactenum}
  % \item …
\end{compactenum}
\section{Glossar}
\begin{compactdesc}
  % \item …
\end{compactdesc}

Aufzählungen im Absatz

Neben den kompakten Listen stellt paralist auch Listen zur Verfügung, die in einem Absatz stehen.

Folgende Kräuter sind für % …
\begin{inparaitem}
    \item Liebstöckel
    \item Petersilie
    \item Schnittlauch
\end{inparaitem}

Natürlich gibt es auch hier ein Pendant namens inparaenum für geordnete Listen.

Aufzählungsarten

Die Art der Aufzählung lässt sich über den optionalen Parameter label ändern. Hierfür ist das Paket enumitem notwendig.

% Römische Zahlen
\begin{enumerate}[label=\roman*]
% …
% Arabische Zahlen
\begin{enumerate}[label=\arabic*]
% …
% Alphabetisch
\begin{enumerate}[label=\alph*]
% …

8. Mathematische Formeln

Formel-Umgebungen 🧮

$2 \sqrt{\frac{\pi^2}{3} \cdot c_2}$

Mathematische Formeln können nur im sogenannten Mathmode gesetzt werden, der inline durch zwei Dollarzeichen aktiviert wird. Außerdem gibt es eine Blockumgebung:

\begin{equation}
  2 \sqrt{\frac{\pi^2}{3} \cdot c_2}
\end{equation}

Pakete: amsmath, amsthm, amssymb, mathtools

Einige Beispiele

Quelltext Ergebnis
\sum_{i=1}^{n}x^2 \(\sum_{i=1}^{n} x^2\)
12 \leq 4 x^2 + 13 \(12 \leq 4 x^2 + 13\)
{n \choose k} \({n \choose k}\)

Ausrichtung von mehreren Gleichungen

Die Umgebung align erlaubt es, Gleichungen zum Beispiel am › = ‹ auszurichten.

\begin{align}
  13 \cdot (4a - 3)^2 &= 13 … \\
      &= 208a^2 - 312a + 117
\end{align}
  • Ausgerichtet wird am ›&‹-Zeichen.
  • Zeilenumbrüche werden mit ›\\‹ markiert.
  • Die Nummerierung kann bei align und equation durch durch ein Sternchen nach dem Umgebungsnamen (z. B. \begin{align*} und \end{align*}) unterdrückt werden.

Formeln setzen

Setzt die folgenden Formeln in der Datei exercises/maths/math-formulas.tex.

Bedeutung Ergebnis
Fallbeschleunigung (Deutschland) \(9,81\,\frac{m}{s^2}\)
pq-Formel \(x_{1,2} = - \frac{p}{2} \pm \sqrt{\left(\frac{p}{2}\right)^2 - q}\)
Mitternachtsformel \(x_{1,2} = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}\)
Catalansche Zahlen \(C_n = \frac{1}{n+1} {2n \choose n} = \frac{(2n)!}{(n+1)!n!}\)

Formeln setzen

Setzt die folgenden Formeln in der Datei exercises/maths/math-formulas.tex.

Bedeutung Ergebnis
Definition der Fakultät \(n! = \prod_{i=1}^{n} i\)
Menge aller ungeraden natürlichen Zahlen \(\{ x \mid x \in \mathbb{N}, \mathrm{ungerade}(x) \}\)
Elimination \(\neg\exists x\) \(\neg\exists x . p(x) \Leftrightarrow \forall x . \neg p(x)\)

Weitere Beispiele

Quelltext Ergebnis
(x), [x], \lbrace x \rbrace, \lvert x \rvert \((x), [x], \lbrace x\rbrace, \lvert x\rvert\)
\exists, \forall, \in,
\notin, \infty
\(\exists,\forall,\in,\notin,\infty\)
\alpha, \beta, \Gamma,
\Delta, \varepsilon, \pi
\(\alpha, \beta, \Gamma, \Delta, \varepsilon, \pi\)
\rightarrow, \leftarrow, \Rightarrow, \Leftarrow, \Leftrightarrow \(\rightarrow, \leftarrow, \Rightarrow, \Leftarrow, \Leftrightarrow\)
(A \cup B) \cap C \((A \cup B) \cap C\)
(A \lor B) \land C \((A \lor B) \land C\)
(A \cdot B) \times C \((A \cdot B) \times C\)

Mitwachsende Klammern

Quelltext Ergebnis
\left( \frac{1}{2} \right) \(\left( \frac{1}{2} \right)\)
\left[ \frac{1}{2} \right] \(\left[ \frac{1}{2} \right]\)
\left\lbrace \frac{1}{2} \right\rbrace \(\left\lbrace \frac{1}{2} \right\rbrace\)
$4 \cdot \left( \frac{1}{2} % …

\(4 \cdot \left(\frac{1}{2} +\frac{3}{ 12 \cdot \left( 2 + \frac{1}{86 \cdot \left(\frac{1}{2} + 24 \right)} \right)} \right)\)

Darstellung von Grenzen

Mit dem Befehl \limits lassen sich die Grenzen von Integralen unter und über dem Integralzeichen darstellen. Bei Summen, Produkten und Grenzwerten geschieht das automatisch.

\sum_{i=1}^{n^2}(x+2)
\prod_{j=1}^{100}(3 \cdot x)
\lim_{x \rightarrow \infty}(14x^3 - 12)
\int\limits_{-12}^{4}(14x^3 - 12)

Der Einsatz von \limits sollte im Fließtext vermieden werden.

Mengenschreibweise

Manchmal ist es notwendig, im Zusammenhang mit der Mengenschreibweise Prädikate unter Verwendung von textuellen Beschreibungen oder längeren Funktionsnamen zu definieren.

Für diesen Fall gibt es den Befehl \mathrm{}.

\(\left\lbrace x \mid tiefe(x) \geq 20\right\rbrace\)

\(\left\lbrace x \mid \mathrm{tiefe}(x) \geq 20\right\rbrace\)

$\left\lbrace x \mid \mathrm{tiefe}(x) …

9. Grafiken

Grafiken abbilden 🖼️

Um Grafiken darzustellen, muss das Paket graphicx eingebunden werden.

\begin{figure}
    \includegraphics{<dateipfad>}
    \caption[<kurztitel (abbildungsver-
        zeichnis)>]{<bildunterschrift>}
\end{figure}

Bildgröße angeben:

\includegraphics[width=0.5\textwidth,
height=5cm]{<dateipfad>}

Positionierung auf der Seite

\begin{figure}[<positionskürzel>]

LaTeX positioniert Grafiken automatisch. Durch Kürzel können wir unsere Präferenzen (auch in Kombination) angeben.

Kürzel Position
h hier, wenn es dir recht ist
t oberer Seitenrand (top)
b unterer Seitenrand (bottom)
p auf einer eigenen Seite (page)
H Hier, verdammt noch mal!
(benötigt Paket float)

Zentrierte Anordnung

\begin{figure}[<position>]
    \begin{center}
        \includegraphics{<dateipfad>}
    \end{center}
\end{figure}

Alternativ:

\begin{figure}[<position>]
    \centering
    \includegraphics{<dateipfad>}
\end{figure}

Grafiken einfügen

  • Im Ordner exercises/graphics findet ihr eine Bilddatei namens latex-logo.png.
  • Fügt sie genau unterhalb dieser Aufgabenstellung im Skript ein.
  • Das Bild soll zentriert auf der Seite eingebunden werden.
  • Fügt außerdem eine Bildunterschrift ein.
  • Passt die Größe des Bildes an Breite der Seite (\textwidth) an.

10. Tabellen

Grundstruktur 🗒️

Für typografisch schöne Tabellen nutzen wir das Paket booktabs.

\usepackage{booktabs}
\begin{table}[<position>]
    \begin{tabular}{<spaltendefinition>}
        % Tabelleninhalt
    \end{tabular}
    \caption{<tabellenunterschrift>}
\end{table}

Die Positionierung erfolgt analog zu Grafiken.

Spaltendefinitionen

\begin{tabular}{lrcl}
    % Tabelleninhalt
\end{tabular}
Kürzel Bedeutung
l linksbündige Spalte
c zentrierte Spalte
r rechtsbündige Spalte

Vertikale Trennlinien und doppelte horizontale Linien sind unter Typograph*innen nicht gern gesehen und sollten vermieden werden.

Tabelleninhalt

\begin{tabular}{lll}
    \toprule
    Spalte 1 & Spalte 2 & Spalte 3 \\
    \midrule
    Inhalt a & Inhalt b & Inhalt c \\
    Inhalt e & Inhalt f & Inhalt g \\
    Inhalt i & Inhalt j & Inhalt k \\
    \bottomrule
\end{tabular}
  • Zellen werden durch ›&‹ abgetrennt.
  • Reihen werden durch ›\\‹ beendet.
  • \toprule, \midrule und \bottomrule strukturieren die Tabelle.

Die gesamte Tabelle

\begin{table}[h]
    \begin{tabular}{lrcl}
        \toprule
        Sprache & Autor             & Erscheinungsjahr & Dateiendung \\
        \midrule
        C++     & Bjarne Stroustrup & 1985             & .cpp           \\
        Java    & James Gosling     & 1998             & .java          \\
        Python  & Guido van Rossum  & 1991             & .py            \\
        \bottomrule
    \end{tabular}
    \caption{Bekannte Programmiersprachen}
\end{table}

Mit @{} vor und nach einer Spaltendefinition wird der umgebende Weißraum unterdrückt.

\begin{tabular}{@{}lrcl@{}} beschränkt die Linien auf die Breite des Tabelleninhalts.

Mehr Komfort

Der Tables Generator ist ein wunderbares Werkzeug, um schnell Tabellen verschiedener Formate zu erstellen.

Tabellen setzen

  • Die Liste in der Datei exercises/tables/tables.tex enthält Infos zu ein paar Lehrveranstaltung an der Fakultät WIAI.
  • Wandelt die Liste in eine Tabelle um.
  • Die Tabelle soll Spalten für den Namen, das Kürzel und das Semester der Vorlesungen haben.
  • Fügt außerdem eine zentrierte Spalte ganz links in der Tabelle hinzu, in der ihr die Lehrveranstaltungen nummeriert.

Besonders lange Tabellen

Tabellen, die über eine Seite hinaus gehen, werden von tabular einfach abgeschnitten. Die Lösung bietet hier das Paket longtable:

\usepackage{longtable}
\begin{longtable}{<spaltendefinition>}
    % Tabelleninhalt
    \caption{<tabellenunterschrift>}
    \label{<label>}
\end{longtable}

Hinweise zu longtable

\begin{longtable}{<spaltendefinition>}
    % Tabelleninhalt
    \caption{<tabellenunterschrift>}
    \label{<label>}
\end{longtable}
  • Die longtable-Umgebung vereint die tabular-Umgebung und die table-Umgebung.
  • Titel und Label können deshalb direkt unter dem Tabelleninhalt stehen.
  • Sofern das Paket booktabs eingebunden ist, stehen seine Features auch in longtable zur Verfügung.

Besonders breite Tabellen

Sollte die Tabelle einmal zu breit für eine Seite werden, kann sie auch im Querformat dargestellt werden:

\usepackage{rotating}
\begin{sidewaystable}[<position>]
    \begin{tabular}{<spaltendef.>}
        % Tabelleninhalt
    \end{tabular}
\end{sidewaystable}

Weiterführendes Beispiel

\begin{table}[h]
    \begin{tabular}{llr}
        \toprule
        Struktur & \multicolumn{2}{l}{Zeitkomplexität für Zugriff} \\ \cmidrule(r){2-3}
        & Average & Worst \\
        \midrule
        Stack & $\mathcal{O}(n)$ & $\mathcal{O}(n)$ \\
        Binärbaum & $\mathcal{O}(log(n))$ & $\mathcal{O}(log(n))$ \\
        AVL-Baum & $\mathcal{O}(log(n))$ & $\mathcal{O}(log(n))$ \\
        \bottomrule
    \end{tabular}
\end{table}

🔗 Dokumentation zu Booktabs

11. Quelltext-Listings

Direkt im LaTeX-Quelltext

Das Paket listings bietet zum Einfügen von Code eine eigene Umgebung:

\section*{Haskell-Magie}
Quadrate aller geraden % …
\begin{lstlisting}[language=Haskell]
[x^2 | x <- [1..200], even x]
\end{lstlisting}

Externer Code

Praktischerweise bietet listings einen Befehl zum Einfügen externen Codes:

\section*{Einfache Java-Anwendung}
\lstinputlisting[language=Java]{Test.java}
public class Test {
    public static void main(/*…*/) {
        System.out.println(/*…*/);
    }
}

Themen und Stile

listings stellt keine eigenen Themes zur Verfügung. Dies kann aber durch die vielen Konfigurationsoptionen ausgeglichen werden.

\begin{lstlisting}[
    language=Java,
    basicstyle=\footnotesize\ttfamily,
    breaklines=true,
    keywordstyle=\color{ForestGreen},
    commentstyle=\color{DarkGray},
    literate={ö}{{\"o}}
]
% …
\end{lstlisting}

Für die Erstellung eigener Themes ist der Befehl \lstset nützlich.

Weitere Materialien

Listings

  • Im Ordner exercises/source-code-listings findet ihr eine Datei namens Source.java.
  • Bindet den Java-Quelltext in der Datei source-code-listings.tex ein. (Beachtet, dass der Dateipfad relativ zu main.tex ist.)
  • Aktiviert das Syntax-Highlighting durch Angabe der Sprache Java.
  • Nummeriert die Zeilen und aktiviert Umbrüche.
  • Setzt mit dem Parameter basicstyle eine dicktengleiche Schrift (\ttfamily \small).
  • Ändert die Schlüsselwortfarbe zu Blau.
  • Verbergt die Sonderzeichen, die Leerzeichen in Zeichenketten markieren.

Seht bei Fragen in der Dokumentation des Paketes listings nach.

12. Referenzen und Fußnoten

Fußnoten 📎

\usepackage{hyperref}

Die Nummerierung erfolgt automatisch und ist fortlaufend, unabhängig davon, ob ein neuer Abschnitt beginnt.

Eber, beim Hausschwein insbesondere
oberdeutsch Saubär, beim Wildschwein
Keiler, bezeichnet das männliche
Geschlecht des Schweins.
\footnote{\url{https://de.wikipedia.org/
wiki/Eber}}

Querverweise

Manuell (Just don’t!)

Wie man in Abbildung 23 sieht, …

Mit dem Befehl \ref:

\begin{figure}[H]
    \includegraphics % …
    \caption{Unser Maskottchen Fooboar}
    \label{img:fooboar}
\end{figure}

Wie man in Abbildung \ref{img:fooboar} …

Referenzen

Mit dem Paket cleveref (mit einem ›r‹!):

\begin{figure}[H]
    \includegraphics % …
    \caption{Unser Maskottchen Fooboar}
    \label{img:fooboar}
\end{figure}

Fooboar ist ein sehr engagierter
Jungeber (siehe \Cref{img:fooboar}).

Der Befehl \cref fügt selbstständig die passende Abkürzung ein.

Label vergeben

Beide Referenzierungsbefehle funktionieren mit Abschnitten, Bildern, Tabellen, Listings und Gleichungen, sofern die richtigen Label vergeben wurden.

Label müssen eindeutig sein. Zur Strukturierung ist das Voranstellen von Kürzeln üblich, denn einige Pakete ziehen aus den Kürzeln Informationen.

fig: Abbildungen tbl: Tabellen
sec: Abschnitte subsec: Unter­abschnitte
ch: Kapitel itm: Aufzählungs­elemente
eq: Gleichungen lst: Quelltext­listings

Dinge, die zu beachten sind

  • Durch \cref eingefügte Passagen tauchen in einigen Dokumentklassen erst dann auf Deutsch auf, wenn bereits in der Dokumentklasse die Sprache festgelegt wurde:

    \documentclass[ngerman]{article}
  • Beschriftungen (\caption{…}) müssen, von Abschnitten abgesehen, immer und vor dem Label vergeben werden.

  • Bei Abschnitten wird das Label direkt hinter dem Befehl angefügt.

    \section{Hinweise}\label{sec:hinweise}

Fußnoten einfügen

  • Pack den Text March 2021 in der Datei exercises/footnotes/footnotes.tex in eine Fußnote.
  • Fügt zusätzlich eine klickbare URL, die zur Download-Seite des Java Development Kit führt (https://www.oracle.com/java/technologies/javase-downloads.html), als Fußnote ein.

Referenzen einfügen

  • Ersetzt im Text in der Datei references.tex im Ordner exercises/references In the figure und The following source code listing durch eine Referenz auf das Bild bzw. auf das Quelltext-Listing.
  • Nutzt dafür den Befehl \Cref.
  • Achtet darauf, zuerst Labels für die Elemente, die ihr referenzieren wollt, zu vergeben.
  • Packt dafür das Quelltext-Listing in eine Umgebung namens listing.
  • Fügt noch eine Beschriftung zum Listing hinzu.

Konfiguration von Fußnoten

Das Paket footmisc stellt verschiedene weitere Optionen für die Darstellung von Fußnoten zur Verfügung, die als optionale Parameter an den Befehl \usepackage übergeben werden können.

% Zählung auf jeder Seite neu beginnen:
\usepackage[perpage]{footmisc}

% Fußnoten inline anzeigen lassen:
\usepackage[para]{footmisc}

% Symbole statt Nummerierung verwenden:
\usepackage[symbol]{footmisc}

Weiterführend

  • Wurde vor dem Paket cleveref das Paket hyperref eingebunden, entsteht ein klickbarer Link im fertigen PDF.
  • Mehrere Referenzen können in \cref kommagetrennt angegeben werden.
\section{Ein Einstieg}
\label{sec:section1}
% …
Hier sei verwiesen auf
\cref{sec:section1,sec:section2,
sec:section3,sec:section5}.

13. Literatur­verwaltung

Was brauchen wir dafür?

  • eine Bibliographiedatei (nachfolgend .bib-Datei) zur Speicherung von Literaturverweisen
  • BibTeX als Schnittstelle zwischen der Literatur und LaTeX

Was ist diese ominöse .bib-Datei?

  • Sammlung von Literatureinträgen im BibTeX-Format
  • Beispielhafter Literatureintrag:
@article{turing1990, % Art des Dokuments und Bezeichner für den \cite Befehl
    title={The chemical basis of morphogenesis}, % Titel
    author={Turing, Alan Mathison}, % Autor
    journal={Bulletin of mathematical biology}, % Titel des Journals
    volume={52}, % Band des Journals
    pages={153--197}, % Seitenzahl im Journal
    year={1990}, % Erscheinungsjahr
    publisher={Springer} % Verleger des Journals
}

Wie wird das verwendet?

Durch BibTeX wird LaTeX um einige Befehle zum Zitieren erweitert. Außerdem benötigt wird das Paket natbib.

  • Zitieren eines Autors: \citeauthor{<quelle>}
  • Zitieren einer Quelle: \cite{<quelle>}
  • Zitieren einer Seite: \cite[S. 15]{<quelle>}
  • Zitieren mit weiteren Zusätzen:
    \cite[<präfix>][<suffix>]{<quelle>}
  • Verweis auf die genutzte .bib-Datei: \bibliography{<.bib-datei>}
  • Angabe des genutzten Zitierstils:
    \bibliographystyle{<zitierstil>}

Zwei Dinge sind unendlich. Das Universum und die Auswahl an Zitierstilen.Unbekannt

Zitieren im Alpha-Zitierstil
Zitieren im Natdin-Zitierstil
Finden von fertigen BibTeX-Einträgen – Bamberger Katalog
Finden von fertigen BibTeX-Einträgen – Google Scholar
Finden von fertigen BibTeX-Einträgen – Google Scholar
Finden von fertigen BibTeX-Einträgen – dblp.org

Ein Literaturverzeichnis erstellen und einfügen

  • Erstellt im Ordner exercises/literature eine neue BibTeX-Datei literature.bib.
  • Sucht bei Google Scholar oder dblp.org die BibTeX-Einträge für folgende \(\LaTeX\)-Handbücher:
    • Dilip Datta (2017): \(\LaTeX\) in 24 Hours. A Practical Guide for Scientific Writing.
    • Frank Mittelbach / Michel Goossens (2012): Der \(\LaTeX\)-Begleiter.
  • Fügt die BibTeX-Einträge in die BibTeX-Datei ein.
  • Vergebt aussagekräftige BibTeX-Keys.
  • Bindet die BibTeX-Datei an einer geeigneten Stelle ein, an der später auch das Literaturverzeichnis zu sehen sein soll.
  • Zitiert die zwei Handbücher im Text in der Datei exercises/literature/literature.tex.
  • Wählt den Bibliographiestil plain.

14. Paket in Sicht!

Stichwortverzeichnis anlegen

\usepackage{makeidx}
\makeindex
\begin{document}
\maketitle
\section{Was ist LaTeX\index{LaTeX}?}
LaTeX\index{LaTeX} ist ein
Textsatzsystem\index{Textsatzsystem}.
\newpage \section{TeX\index{TeX} vs.
LaTeX\index{LaTeX}} Es basiert auf
TeX\index{TeX}, einer Erfindung von
Donald Knuth\index{Knuth, Donald}.
Da TeX\index{TeX} in seiner Syntax sehr
viel komplexer als LaTeX\index{LaTeX}
ist, ist LaTeX\index{LaTeX} wesentlich
weiter verbreitet.
\printindex

Präsentationen gestalten

Für Präsentationen gibt es die Dokumentenklasse beamer sowie zahlreiche Vorlagen und Themes.

\documentclass{beamer}
\usetheme{Frankfurt}
\usecolortheme{seahorse}
\usepackage[utf8]{inputenc}

\begin{document}
\begin{frame} 
    \frametitle{Zitronensorbet}
    \framesubtitle{Inkarnation des Guten?}
    \begin{definition}
        Ein Zitronensorbet ist eine
        halbgefrorene \textbf{Speiseeiscreme}
        auf Basis von \textit{Zitronen}.
    \end{definition}
\end{frame}
\end{document}

Grafiken erstellen

TikZ (»TikZ ist kein Zeichenprogramm«) ist ein umfangreiches Paket zur Erstellung von Vektorgrafiken.

% …
\tikzstyle{every node}=[draw=black,thick,anchor=west]
\tikzstyle{selected}=[draw=red,fill=red!30]
\tikzstyle{dir}=[fill=gray!50]
\tikzstyle{relativeTo}=[fill=blue!70]
\begin{tikzpicture}[%
grow via
three points={one child at (0.5,-0.7) and
two children at
(0.5,-0.7) and (0.5,-1.4)},
edge from
parent path={(\tikzparentnode.south)
 |- (\tikzchildnode.west)}]
\node {/ oder C:}
child { node {home}
  child { node {knut}
    child { node {pictures}}
    child { node {docs}
      child { node [dir] {latex}
        child { node [relativeTo] {main.tex}
        child { node [selected] {part1.tex}
      }
    }
  }
};
\end{tikzpicture}

Linguistik

Mit dem Paket qtree lassen sich Konstituentenbäume erstellen:

\Tree [.S [.NP LaTeX ]
[.VP [.V is ] [.NP fun ] ] ]

Mathematische Beweisführung

Beweisbäume lassen sich mit dem Paket prftree einwandfrei darstellen.

\begin{displaymath}
\prftree[l,r]{}{[comp$\_{ns}$]}
{
  \prftree[l,r]{}{[comp$\_{ns}$]}
  {
    \prftree[l,r]{}{[ass$\_{ns}$]}
    {
      -
    }
    {
      (\texttt{m:=a}, \sigma\_{\bot,\bot})
      \rightarrow \sigma\_{48,\bot}
    }
  }
  {
    \prftree[l,r]{}{[ass$\_{ns}$]}
    {
      -
    }
    {
      (\texttt{n:=b}, \sigma\_{48,\bot})
      \rightarrow \sigma\_{48,18}
    }
  }
  {
    (\texttt{m:=a; n:=b}, \sigma\_{\bot,\bot})
    \rightarrow \sigma\_{48,18}
  }
}
{
  \prftree[l,r]{}{}
  {
    \dots
  }
  {
    \textbf{[1]}\ (\texttt{LOOP}, \sigma\_{48,18})
    \rightarrow \sigma\_{6,6}
  }
}
{
  (\texttt{m:=a; n:=b; LOOP}, \sigma\_{\bot,\bot})
  \rightarrow \sigma\_{6,6}
}
\end{displaymath}

Weitere nützliche Pakete

Paket Anwendung
xcolor Mach’s mit Farbe
todonotes ToDo-Markierungen und Liste der ToDos
pdfpages Einbinden von PDF-Dateien
subcaption Verschachtelte Abbildungen und ausgefeilte Bildunterschriften
colortbl, tabularx, multirow, makecell Gestalten von Tabellen

15. Hilfe und Informationen

Wikibooks

Das Wikibook zu LaTeX enthält eine große Anzahl interessanter Artikel und ist auch in deutscher Sprache verfügbar.

CTAN

Das »Comprehensive TeX Archive Network« ist die zentrale Quelle für LaTeX-Pakete und ihre Dokumentation.

Overleaf

Ein Online-LaTeX-Editor, der das kollaboratives Arbeiten an Dokumenten ermöglicht.

Außerdem findest du auf der Seite verschiedene Tutorials und unter »Templates« LaTeX-Vorlagen für viele Gelegenheiten (Lebenslauf, Abschlussarbeiten, …).

StackExchange

Frage-Forum zu LaTeX.

TeXample

Webseite mit zahlreichen LaTeX-Beispielvorlagen, vor allem zu TikZ.

Klassisch (Quelle)
Noch klassischer (Quelle)
Anders (Quelle)

Fachschaft WIAI

Wenn ihr sonst noch Fragen oder Probleme habt, kommt gerne bei uns vorbei oder schreibt uns eine Mail!

📍WE5/02.104
☎️0951 863 1219
📧fachschaft-wiai.stuve@uni-bamberg.de

Kurzes Feedback

  • Was hat euch gut gefallen?
  • Was hätten wir besser machen können?
  • Was hättet ihr euch gewünscht?

How to use this presentation

Imprint and privacy policy