LATEX-Wochenende

Ein Workshop der Fachschaft WIAI. Präsentiert von Alice, Christian, Clara, Evelyn, Fabian, Florian, Jochen, Katharina, Kilian, Paul und Sandra.

Ablauf des Workshops

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

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

Gliederung:

  1. Was ist LaTeX?
  2. Einfache LaTeX-Dokumente
  3. Komplexere LaTeX-Projekte
  4. Viele Features
  5. Literaturverwaltung
  6. Ausblick

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

Fünf Gründe für LaTeX

  1. LaTeX ist – neben Word – eines der beiden dominierenden Textsatzsysteme in der akademischen Welt.
  2. Mathematische Formeln fühlen sich in LaTeX am wohlsten. OneNote, Word und Wikipedia nutzen die LaTeX-Formelnotation.
  3. Es gibt unzählige Erweiterungen für die verschiedensten Anwendungsgebiete.
  4. LaTeX wurde entwickelt, um ästhetisch anspechenden Textsatz zu produzieren – und das sieht man den Texten auch an.
  5. Zusammenarbeit wird durch LaTeX enorm erleichtert (z. B. durch Versionierung, Strukturierung, Templates, zuverlässiges Undo, …).

Die Schwächen von LaTeX

  • Der Textsatz ist mitunter sehr aufwändig, insbesondere für kurze Dokumente.
  • Layout-Anpassungen sind nur in einem begrenzten Rahmen möglich.

Die Debatte „LaTeX vs. Word“ ist schon sehr alt. Für eine Recherche dazu lohnt sich als Einstieg folgender Artikel:

Moorhead, A.V. Is LaTeX use correlated with the number of equations in a manuscript? Scientometrics 126, 8259–8273 (2021).

(TL;DR: LaTeX-Nutzende machen mehr Fehler, brauchen außer bei Formeln länger, sind aber zufriedener mit ihrem Werkzeug.)

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?

Compiler

erstellt aus dem Quelltext ein fertig formatiertes PDF-Dokument

MiKTeX (Windows), MacTeX (macOS)
TeX Live (Linux, bestenfalls texlive-full)

Windows: Nach der Installation in der MikTEX-Console einmal nach Updates suchen.

Editor

zum Schreiben unseres Quelltextes mit allen Befehlen zur semantischen Gliederung

TeXstudio (Empfehlung), VS Codium (für Fortgeschrittene, Anleitung auf Github)

Erstmaliges Kompilieren des Skriptes

  • Ladet das Projektarchiv aus dem VC herunter.
  • Entpackt das Archiv.
  • Öffnet die Datei install-verification/main.tex in TeXstudio.
  • Kompiliert die Datei, indem ihr klickt.
  • Schaut euch die neuen Dateien an, die durch das Kompilieren generiert werden.

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

Mikro- und Makrotypografie

Textsatz ist besonders dann gut, wenn er nicht auffällt. Oder anders formuliert: Guter Textsatz sorgt für anstrengungsarmes Lesen. Welche Rolle dabei Schriftarten und -größen, Zeilenabstände und viele weitere Faktoren spielen, zeigt diese Website eindrücklich:

https://leserlich.info/leserlich-und-lesbar

Das Beste daran: LaTeX nimmt uns diese handwerkliche Arbeit weitestgehend ab.

2 . Einfache Dokumente

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[a4paper,12pt,landscape]{article} % konfiguriert die Dokumentenklasse
\frac{1}{4} % fügt den mathematischen Bruch ein

Backslash

Den Backslash erzeugt ihr auf deutschen Tastaturen mit folgender Tastenkombination:

AltGr + ß (Windows/Linux)

Alt + Shift + 7 (MacOS)

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

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.

Für später: Zwischen Zahlen und Einheiten passen schmale Leerzeichen (50\,\%).

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]{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}

Dokument und Text gliedern

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

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

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}

Kopf- und Fußzeilen

Hier hilft das Paket fancyhdr weiter.

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

Dokumente nach eigenen Wünschen

  • 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 und moderner Beamer-Präsentationsvorlagen.

3 . Komplexere Projekte

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.

% …

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.

Ein strukturiertes Projekt

Schließt alle offenen Tabs aus vorherigen Aufgaben.

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-exercises.tex im Wurzelverzeichnis. Wie binden wir hier die einzelnen Abschnitte ein?

PDF-Dokumente einbetten

Das Paket pdfpages erlaubt das Einbetten ganzer PDF-Dokumente.

\includepdf[pages={<from>-<to>}]{<file>}

Weitere Parameter lassen mehrere Seiten in Kacheln nebeneinander erscheinen oder ändern die Ausrichtung zu Querformat. Die Paket-Dokumentation enthält eine abschließende Liste aller Möglichkeiten.

Makros

Manchmal ist es nützlich, oft genutzten Codes durch Makros zu vereinfachen.

\newcommand{\<name>}[<parameter_count>][<default>]{<content>}

Im Skript haben wir solche Makros unter anderem verwendet, um Abstände und Akronyme zu definieren (siehe commands.tex für weitere Beispiele):

\newcommand{\widefiguremargin}{-.22\textwidth}
\newcommand{\acro}[1]{\textsc{\lowercase{#1}}}

Es ist auch möglich, bestehende Befehle anzupassen. \(\LaTeX\) erlaubt es sogar, Programmierkonstrukte wie Variablen, Verzweigungen und Schleifen zu nutzen. Für weitere Einblicke dient dieses Kapitel des WikiBooks.

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-exercises.texpraeamble.tex

./praeamle.tex

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

Dateipfade angeben 👣

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

./content/basic-document-structure.tex

Dateipfade angeben 👣

basic-functionality.texgraphics.raw.tex

(wenn basic-functionality.tex von main-exercises.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.

Hinweis

  • Von nun an kompilieren wir die Datei main-exercises.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.

4 . 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-exercises.tex, um eure Änderungen im Übungsskript zu sehen (in diesem Fall im Abschnitt zu Übung 4).

  • 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.
  • Setzt die Wörter Studi-Ticket und Studi-Karte mittels \enquote in Anführungszeichen.

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. Gelegentlich sind manuelle Anpassungen nötig.

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: gleiche Zeichen, andere Kombination).

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.

5 . Text­auszeichnung

Semantische und optische Hervorhebungen

  • semantische Hervorhebungen durch \emph{}
  • 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 zur Wiedergabe

  • zeichentreuer URLs
  • mit bindestrichlosen Umbrüchen
  • und mit gut unterscheidbaren Zeichen,
  • die im PDF anklickbar sind.
\url{https://www.latex-project.org/}

Mit \href{}{} verschwindet die URL hinter einem klickbaren Linktext.

\href{https://latex-project.org/news/}{Blog}

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.
  • Findet einen geeigneten Weg, um den gesamten Absatz als Zitat anzuzeigen. Schaut hierzu in die Doku des Paketescsquotes.
  • Natürlich könnt ihr auch mit anderen Auszeichnungen experimentieren.

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

6 . 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*]
% …

Besondere Aufzählungen

  • Nutze Römische Zahlen für die geordnete Liste.
  • Lass die Nummerierung bei 7 beginnen (Stichwort: \setcounter).
  • Reduziere den Leerraum zwischen den Elementen der ungeordneten Liste.

7 . Mathematische Formeln

Formel-Umgebungen 🧮

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

Mathematische Formeln können nur im sogenannten Mathmode gesetzt werden. Hierfür werden sie durch Dollarzeichen eingerahmt. 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

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

Weitere Anwendungsbeispiele findet ihr auf der LaTeX-Übungsseite des Lehrstuhls für Algorithmen und Komplexitätstheorie.

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 \text{}.

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

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

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

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

9 . Tabellen

Grundstruktur 🗒️

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

\usepackage{booktabs}
\begin{table}[<position>]
    \caption{<tabellenüberschrift>}
    \begin{tabular}{<spaltendefinition>}
        % Tabelleninhalt
    \end{tabular}
\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]
    \caption{Bekannte Programmiersprachen}
    \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}
\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>}
    \caption{<tabellenüberschrift>}
    \label{<label>}
    % Tabelleninhalt
\end{longtable}

Hinweise zu longtable

\begin{longtable}{<spaltendefinition>}
    \caption{<tabellenüberschrift>}
    \label{<label>}
    % Tabelleninhalt
\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}

Eine Tabelle einfärben

\usepackage[table]{xcolor}
\begin{tabular}{lll}
    \toprule
    Eine & \cellcolor{yellow}gelbe & Zelle \\
    Ein  & \cellcolor{yellow!25}helleres & Gelb \\
    \rowcolor[HTML]{FFDE21}
    Eine & gelbe & Zeile \\
    \bottomrule
\end{tabular}
  • Mit \cellcolor färbt man einzelne Zellen ein.
  • Mit \rowcolor färbt man ganze Zeilen ein.
  • Farben können mit Namen, Prozentwerten (z. B. yellow!25) oder Hex-Codes ([HTML]{...}) angegeben werden.

Zellen verbinden

\begin{tabular}{lll}
    \toprule
    Tier    & Futter  & Größe \\
    \midrule
    Pferd   & Heu     & groß  \\
    Frosch  & Fliegen & klein \\
    Fooboar & \multicolumn{2}{c}{unbekannt} \\
    \bottomrule
\end{tabular}
  • \multicolumn{2}{c}{...} verbindet zwei Spalten zu einer.
  • Das zweite Argument legt die Ausrichtung (und Ränder) fest.

Zeilenumbruch in einer Zelle

\usepackage{makecell}
\begin{tabular}{ll}
    \toprule
    Name  & Beschreibung \\
    \midrule
    Katze & \makecell[l]{klein \\ schläft gerne} \\
    Hund  & \makecell[l]{treu \\ braucht Spaziergänge} \\
    \bottomrule
\end{tabular}
  • Standardmäßig zentriert \makecell den Inhalt.
  • Mit \makecell[l]{Inhalt} kann man ihn linksbündig ausrichten.

Feste Spaltenbreite

Die Spalte p{4cm} bricht den Text automatisch auf 4cm Breite um.

\begin{tabular}{lp{4cm}}
    \toprule
    Gegenstand & Beschreibung               \\
    \midrule
    Stuhl      & Vier Beine, eine Fläche    \\
    Tisch      & Wie ein Stuhl, aber anders \\
    \bottomrule
\end{tabular}

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}

Weitere Ressourcen

  • Für Hinweise zur Formatierung von Tabellen – z. B. was linksbündig sein sollte, wie Spalten zu beschriften sind und wann Rahmenlinien sinnvoll sind – hilft der APA Style Guide weiter:

🔗 Tabellenrichtlinien

  • Das Paket booktabs bietet Befehle für hochwertige Tabellen:

🔗 Dokumentation zu Booktabs

10 . Referenzen und Fußnoten

Fußnoten 📎

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{fig:fooboar}
\end{figure}

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

Referenzen

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

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

Fooboar ist ein sehr engagierter
Jungeber (siehe \Cref{fig: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

  • Verschiebt den Text „as of 2025“ in der Datei exercises/footnotes/footnotes.tex in eine Fußnote.
  • Fügt zusätzlich eine klickbare URL bei, die zum zugehörigen Blogpost (https://github.blog/news-insights/octoverse/octoverse-a-new-developer-joins-github-every-second-as-ai-leads-typescript-to-1/) führt.

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 und Captions für die Elemente, die ihr referenzieren wollt, zu vergeben.
  • Bei Quelltext-Listings funktioniert die Angabe von Labels und Captions leicht anders. Nutzt euer bisheriges Wissen und das Internet, um herauszufinden, wie ihr den Befehl \lstinputlisting anpassen müsst, um beides zu vergeben.

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

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}}1
]
% …
\end{lstlisting}

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

Weitere Materialien

Listings

  • Bindet den Java-Quelltext (zu finden in Source.java) in der Datei source-code-listings.tex ein (relativer Dateipfad!).
  • Erlaubt die Verwendung von Sonderzeichen durch Angabe der literate-Option.
  • Aktiviert das Syntax-Highlighting.
  • 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 . Literatur­verwaltung

Zitieren im Alpha-Zitierstil ([style=alphabetic,backend=biber])
Zitieren im IEEE-Zitierstil ([style=ieee,backend=biber])

Was brauchen wir dafür?

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

TeXstudio vorbereiten:

  • Bibliographie > Art: BibLaTeX
  • Optionen > TeXstudio konfigurieren > Erzeugen > ändert das Standard-Bibliographieprogramm zu Biber

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
    date={1990}, % Erscheinungsjahr
    publisher={Springer} % Verleger des Journals
}

[1] Hinweis: Auch wenn wir mit BibLaTeX arbeiten, folgt unsere Bibliographie-Datei dem Format des alternativen Programms BibTeX. Der Name hat sich für verschiedene Dinge im Zusammenhang mit LaTeX-Referenzen etabliert, ähnlich wie wir spezielle Suchmaschinen im Sprachgebrauch für alle Suchanfragen im Netz verwenden.

BibLaTeX

  • Paket zur Erstellung und Gestaltung von Literaturverzeichnissen
  • Verwendung von biber als Prozessor

Ein gutgemeinter Rat

BibLaTeX bietet viele Optionen und Anpassungen, die nach und nach erweitert werden können.

Haltet euch an vorgegebene Zitierstile und vertraut auf die Voreinstellungen.

Das heißt im Umkehrschluss: Möglichst wenig manuell an den Zitationen herumschrauben.

Was braucht man dafür?

  • Das Paket BibLaTeX in die Präambel einfügen:
\usepackage[style=<citation-style>, 
backend=biber]{biblatex}
  • .bib-Datei in Präambel einfügen:
\addbibresource{<bib-datei>}
  • Bibliographie einfügen:
\printbibliography
  • BibLaTeX-Dokumentation: Link
  • BibLaTeX-Cheat Sheet: Link

Änderung des Zitierstils

  • Built-in Stile für direkte Verwendung (z.B. authoryear, numeric, alphabetic)
  • zusätzlich Anpassungsoptionen für andere Stile (z.B. apa, ieee, chicago-authordate)
\usepackage[style=numeric, citestyle=ieee, 
backend=biber]{biblatex}

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

Sortierung anpassen

\usepackage[style=numeric, citestyle=ieee, 
sorting=nty, backend=biber]{biblatex}
Code Beschreibung
nty Name, Titel, Jahr
nyt Name, Jahr, Titel
nyvt Name, Jahr, Band, Titel
ydtn Jahr (absteigend), Titel, Name

Wie wird das verwendet?

Durch BibLaTeX wird LaTeX um einige Befehle zum Zitieren erweitert.

Code Beschreibung
\parencite{turing1990} [Turing, 1990]
\textcite{turing1990} Turing (1990)
\textcite[S. 159]
{turing1990}
Turing (1990, S. 159)

Zitieren mit weiteren Zusätzen:
\cite[<präfix>][<suffix>]{<quelle>}

An einem Beispiel

\usepackage[style=authoryear, 
maxnames=3, 
minnames=1, 
nohashothers=true, 
dashed=false, 
url=false, 
backend=biber]{biblatex}

Ein Beispielzitat im obigen Zitierstil:

… in Klammern \parencite{thatcher2002} oder 
einfach als \textcite{thatcher2002} …
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 (2010): Der \(\LaTeX\)-Begleiter.
  • Fügt die BibTeX-Einträge in die BibTeX-Datei ein.
  • Vergebt aussagekräftige BibTeX-Keys.
  • Bindet die Bibliografie-Datei in der Präambel des Projektes ein.
  • Zitiert die zwei Handbücher im Text in der Datei exercises/literature/literature.tex.
  • Wählt den Bibliographiestil alphabetic.
  • Stellt sicher, dass das Literaturverzeichnis angezeigt wird.

Hinweis: Wenn das Kompilieren fehlschlägt, kann es helfen, alle temporären Dateien (….aux/bbl/blg/loc/out/pdf/soc/toc) zu entfernen und erneut zu kompilieren.

Die Unibib empfiehlt …

  • Literaturverwaltungsprogramme (insbes. Zotero) helfen, eine Literaturdatenbank aufzubauen, Zitate zu speichern und eigene Notizen zu den Texten zu organisieren
  • Support durch das Literaturverwaltungs-Team der Universitätsbibliothek: literaturverwaltung.ub@uni-bamberg.de
  • in Zotero: aktiviert das Plugin “Better BibTeX” (auch, wenn man biblatex verwendet)

💡 Mehr Informationen

Es ist eine Vielzahl an Ressourcen dazu online verfügbar.

Zotero mit Better BibTeX aufsetzen

  • Zotero:
    • installiert “Better BibTeX”
    • Werkzeuge > Plugins > aktiviert Better BibTeX für Zotero
    • exportiert die Bibliothek von Zotero, wählt Better BibLaTex als Format und setzt einen Haken bei keep updated
    • speichert die exportierte Bibliothek in eurem LaTeX-Projektarchiv und nutzt sie als .bib-Datei

Demo: Referenzieren mit Zotero und BibLaTeX

  • Tipp: “Zotero Connector für Firefox” für einfaches Importieren von BibTeX-Einträgen
  • Setzt zuerst Zotero mit Better BibTeX auf (siehe vorherige Folie)
  • Öffnet die Quelle, die referenziert werden soll und klickt auf die Erweiterungen von Firefox
  • Führt den Zotero Connector aus und importiert den BibTeX-Eintrag nach Zotero
  • Referenziert die Quelle wie gewohnt nach den bereits beschriebenen Vorgehen

13 . 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}
Eine (etwas modernere) beamer-Präsentation

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

14 . 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?

wiai.de/latex-feedback

How to use this presentation

Imprint and privacy policy