LATEX-Wochenende

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

Was ist LATEX?

Klassisches Word-Dokument
Klassisches LaTeX-Dokument

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
Klassisches Word-Dokument
Klassisches LaTeX-Dokument

Typografie

Makrotypografie

  • Satzspiegel
  • Zeilenlänge vs. -abstand
  • Platzierung von Überschriften im Weißraum
  • Platzierung von Bildern und Tabellen
  • Schusterjungen / Hurenkinder
  • Gleichmäßiger Grauwert
Satzspiegel-Konstruktion nach Villard (Quelle)

Typografie

Mikrotypografie

  • Ligaturen
  • Kerning
  • echte Kursiven, Kapitälchen, Schriftgrade …
  • Wortabstände
Schriftschnitte:
gerade, schräg, kursiv
Schriftgrade:
klein, klein vergrößert, groß

Weitere Vorteile

  • wesentlich bessere Standardeinstellungen
    als in sämtlichen Textverarbeitungsprogrammen
  • strukturiertes Arbeiten
  • zuverlässiges Undo
  • einfache Versionierung
  • unabhängig von proprietären Programmen
  • Quelltext und Ausgabe langfristig lesbar
  • einfache Zusammenarbeit mit anderen Programmen

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

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

Backslash

Den Backslash erzeugt ihr mit folgender Tastenkombination:

AltGr + ß (Windows/Linux)

Alt + Shift + 7 (MacOS)

Optionale Parameter

In eckigen Klammern können verschieden viele optionale Parameter stehen:

\usepackage[utf8]{inputenc}
% setzt die Textkodierung

\documentclass[a4paper,12pt]{article}
% setzt die Dokumentklasse

\includegraphics[width=12cm,height=4cm]{bild.png}
% bindet das Bild "bild.png" ein

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

Software-Installation

Bitte installiert zuerst den Compiler, also MikTeX (Windows), MacTeX (MacOS) bzw. TeX Live (Linux) und danach den Editor. In diesem Workshop verwenden wir TeXstudio.

Erste Schritte im Umgang mit LaTeX

  • Falls nötig: Install now!
  • Ladet euch aus dem VC das Projektarchiv herunter. Entpackt das Archiv.
  • Öffnet die Datei main.tex im obersten Verzeichnis in TeXstudio.
  • Kompiliert die Datei durch Druck auf .
  • Was ist in dem Ordner passiert, in dem die Datei liegt?

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]{scrartcl}
  • scrartcl, article für kurze Dokumente
  • scrreprt, report für längere Dokumente
  • scrbook, book für Bücher
  • beamer für Präsentationen

Pakete

\usepackage[<optionen>]{<paketname>}
  • Pakete stellen zusätzliche Befehle und Funktionalitäten zur Verfügung.
  • Es existieren verschiedene Pakete für verschiedene Anwendungsfälle (z. B. Formelsatz, Listen, …).
  • Sie müssen vor der Nutzung in der Präambel eingebunden werden.

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.

Sprachen

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

\usepackage[ngerman, swedish, russian, 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{russian}
\today
\selectlanguage{greek}
\today
\selectlanguage{english}
\today

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.

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 »\\«, Lösung dafür später.

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}

Abschnitte und Kapitel

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}

Titelei

\title{Die Welt der Trüffel}
\author{Fooboar Rüssel \\\\ Fachschaft WIAI\thanks{WIe AIn Profi},
        Otto-Friedrich-Universität Bamberg}
\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 \\\\ Fachschaft
WIAI\thanks{WIe AIn Profi},
Otto-Friedrich-Universität Bamberg}
\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}

Inhaltsverzeichnis

\tableofcontents
  • Nummerierung erfolgt automatisch
  • Viele Anpassungsmöglichkeiten (Aufzählungszeichen und -tiefe, automatische Benennung, …)
  • (Unter-)Kapitel, 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}

Weitere Verzeichnisse

Abbildungsverzeichnis und Tabellenverzeichnis

\listoffigures
\listoftables
  • Fügt das gewählte Verzeichnis an der entsprechenden Stelle ins Dokument ein.
  • Es wird die jeweilige Bild- bzw. Tabellenunterschrift aufgeführt. Es kann aber auch ein Kurztitel angegeben werden, der dann für das Verzeichnis verwendet wird.

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]{english}
  • 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.
  • 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 Ctrl+T erreicht werden).

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

% …

input oder include?

\input{path/to/file}
  • Dateiendung .tex kann angegeben werden
  • Schachtelung möglich: Unterdateien können wiederum per \input{} andere Unterunterdateien einbinden
  • Unterdatei wird im fertigen Dokument ohne Sprung auf neue Seite in Hauptdatei eingefügt
\include{path/to/file}
  • Dateiendung .tex nicht angeben
  • Schachtelung nicht möglich
  • für jede Unterdatei wird im fertigen Dokument eine neue Seite angelegt
  • Vorteil bei größeren Projekten: \includeonly{file1,file2,...} in die Präambel schreiben, um nur einzelne Unterdateien zu kompilieren (vorher muss mindestens einmal das gesamte Projekt kompiliert werden)

Dateipfade angeben 👣

  • wichtig für \input{} und \include{} sowie später für das Einbinden von Bildern
  • Datei- und Ordnerstruktur = Baumstruktur 🌳

Dateipfade angeben 👣

Absolute Dateipfade

  • Pfad von der Wurzel des Ordnerbaums bis zur jeweiligen Datei
  • die verschiedenen Ebenen des Baums werden dabei durch folgende Zeichen getrennt:
    • Unter Unix: »/«
    • Unter Windows: »\«

Absoluter Pfad zu main.tex

  • Unix: /home/knut/docs/latex/main.tex
  • Windows: C:\knut\docs\latex\main.tex

Bei LaTeX muss stets die Unix-Syntax für Pfadangaben verwendet werden. Deshalb werden wir im Folgenden diese verwerden.

Dateipfade angeben 👣

Relative Dateipfade

  • Pfad von einem bestimmten Ort irgendwo im Ordnerbaum bis zur jeweiligen Datei
  • kürzer + weniger Schreibarbeit!
  • bei \input{} und \include{} kann der Pfad zu einer Unterdatei relativ zur Hauptdatei angeben werden

Relativer Pfad
von main.tex zu part1.tex

./part1.tex

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

Dateipfade angeben 👣

Relative Dateipfade

Relativer Pfad von main.tex zu part1.tex in Unterordner

./sections/part1.tex

Dateipfade angeben 👣

Relative Dateipfade

Relativer Pfad von main.tex in eigenem Unterordner zu part1.tex in anderem Unterordner

../sections/part1.tex

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

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.

Präambel auslagern

Was denkt ihr, passiert, wenn wir die Präambel in eine Unterdatei auslagern?

Wird das Gesamtdokument kompilieren oder nicht?

Ja, es kompiliert!
Ein einfacher Weg, um die Hauptdatei noch übersichtlicher zu halten.

Ein strukturiertes Projekt

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

  • Lagert die einzelnen Abschnitte in eigene Dateien section1.tex, section2.tex und section3.tex aus und bindet sie mittels \include ein.
  • Welcher Befehl wird durch \include überflüssig?

Sonderzeichen

Leerzeichen

  • normale Wortzwischenräume: Leertaste
  • geschütztes Leerzeichen: ~
  • schmales Leerzeichen: \,
  • viele weitere Breiten verfügbar
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.

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: \@.␣

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

Silbentrennung

LaTeX trennt Wörter im Normalfall automatisch richtig, wenn die richtige Sprache konfiguriert ist. Es kann 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.

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

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.

Sonderzeichen & Symbole

Mathmode

Einige Sonderzeichen und Symbole funktionieren nur in einer Mathematikumgebung:

% griechische Buchstaben
$\pi \Sigma \delta$

% Kreuz
$\dagger$

Sonderzeichen & Symbole

Euro (€)

  • Paket eurosym
  • Befehl \euro
LaTeX zu verwenden kostet 0 \euro.

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. Setzt außerdem ein schmales Leerzeichen vor das Wort Euro.
  • Ersetzt die Bindestriche bei den Öffnungszeiten der ERBA durch Halbgeviertstriche.
  • Setzt beim Wort Studierendenausweis eine ausschließliche Trennstelle nach Studierenden-.
  • Ersetzt das Wort Euro durch ein Euro-Zeichen.

Text­auszeichnung

Hervorhebungen

Für Hervorhebungen im Fließtext eignet sich am besten der semantische Befehl \emph{} (emphasis), der sich auch schachteln lässt:

\emph{Wenn man in einem ganzen Haufen
von wichtigem Text \emph{noch
wichtigeren Text} verstecken will,
hilft die Verschachtelung von
Emphasen.}

Optische Auszeichnungen

legen genau fest, wie Text formatiert wird:

Bezeichnung Befehl
fett (bold face) \textbf{wichtig}
kursiv (italics) \textit{wichtig}
Kapitälchen (small caps) \textsc{wichtig}
dicktengleich (teletype) \texttt{wichtig}
geneigt (slanted) \textsl{wichtig}
unterstrichen \underline{wichtig}
tiefgestellt \textsubscript{…}
hochgestellt \textsuperscript{…}

Auszeichnungen schachteln

Möglich, solange die verwendete Schrift den entsprechenden Schnitt enthält:

\textbf{Sehr
    \textit{wichtiges
        \textsc{Zeug}
    }
}

Schriftgröße

Ein gutgemeinter Rat: Better Call Saul LaTeX!

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.

Schriftgröße

normalsize

  • Wird für den Fließtext verwendet
  • Standard: 10pt
  • Kann in der Präambel verändert werden:
\documentclass[12pt]{article}

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

Schriftgröße

Manuelle Konfiguration möglich

\fontsize{<schriftgröße>}{<zeilenhöhe>}
\selectfont

Das ist Text in normaler Schriftgröße.

\fontsize{1cm}{0.9cm}\selectfont
Das ist wirklich riesige Schrift.

\normalsize
Back to normal.

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 Rekursion und rekursiv mit \emph{…}.
  • Macht die URL im Text anklickbar.
  • Probiert euch gerne auch an den anderen Textauszeichnungs-Möglichkeiten, die ihr kennengelernt habt. Löscht diese aber wieder, wenn ihr ein sauberes Dokument haben wollt.

Absatz­formatierung

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

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}

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.

Verschachtelte Listen

\begin{compactitem}
  % …
  \item Gemüse \begin{compactitem}
    \item Passierte Tomaten
    \item Möhren
    \item Erbsen
    \item Zwiebeln
  \end{compactitem}
  \item Kräuter \begin{compactenum}
    \item Oregano
    \item Basilikum
    \item Rosmarin
  \end{compactenum}
  % …
\end{compactitem}

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

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 kompakte, ungeordnete Liste und für die Arbeitsschritte eine kompakte, geordnete Liste.

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
\sqrt{16} \(\sqrt{16}\)
\frac{3}{4} \(\frac{3}{4}\)
e^{\pi} \(e^{\pi}\)
\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}\)

Durch ^{…} und _{…} werden die Inhalte in den Klammern hoch- oder tiefgestellt.

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

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.

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) …

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

Quelltext-Listings

Unsere Optionen

Es gibt zwei verbreitete Wege, Quelltext in LaTeX-Dokumenten zu zeigen.

  • minted erstellt sehr hübsche Quelltext-Listings, aber es benötigt etwas mehr Konfiguration und funktioniert nicht auf allen Betriebssystemen zuverlässig.
  • listings ist eine einfach zu nutzende (aber nicht so hübsche) Alternative für diejenigen, die Probleme mit minted haben.

Die Befehle beider Pakete sind sehr ähnlich.

Installation 🖥️

minted benötigt die Programmiersprache Python. Nach der Installation von Python kann das zugehörige Paket Pygments in der Eingabeaufforderung installiert werden durch:

pip install Pygments

Anschließend muss das Paket minted (oder listings) nur noch eingebunden werden:

\usepackage{minted}
\usepackage{listings}

Anpassungen beim Kompilieren

Um Dokumente mit Quelltext-Listings kompilieren zu können, muss die Flag --shell-escape an den Compiler übergeben werden.
Dies ist nur bei vertrauenswürdigen Dokumenten empfehlenswert.

In TeXstudio muss diese unter Optionen → TeXstudio konfigurieren → Befehle (TeXstudio → Einstellungen unter macOS) bei PdfLaTeX vor %.tex ergänzt werden:

pdflatex -synctex=1 -interaction=nonstopmode --shell-escape %.tex

Ein Hinweis zu unserem Skript

Unsere Übungsmaterialien erlauben es, zwischen minted und listings zu wählen. Von Haus aus nutzen wir listings. Um minted zu aktivieren muss eine Datei namens listings-mode.tex mit dem folgenden Inhalt im Wurzelverzeichnis unseres Projekts erstellt werden:

\newcommand\listingsmode{minted}

Kompiliert erneut und die Listings sollten durch minted erstellt worden sein.

Code im LaTeX-Quelltext

In einer eigenen Umgebung:

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

Inline im Quelltext:

\section*{Ein HTML-Beispiel}
Eine Überschrift wird so ausgezeichnet:
\mint{html}|<h2>LaTeX im Studium</h2>|.

Externer Code

Um Redundanz zu vermeiden, ist es manchmal praktisch, den Quelltext direkt aus der Quelldatei einzulesen.

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

Themen und Stile

Durch optionale Parameter können Zeilennummerierung, Umbrüche und Farben ausgewählt werden. Außerdem sind zahlreiche Themes verfügbar.

\usemintedstyle{monokai}
\begin{minted}[
linenos=true,
breaklines=true,
]{javascript}
    % ...
\end{minted}

🔗 Einführung und offizielle Dokumentation

Code im LaTeX-Quelltext

In einer eigenen Umgebung:

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

Das Paket listings stellt keinen Befehl für inline-Listings zur Verfügung.

Externer Code

Praktischerweise bietet auch 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

minted

  • 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.
  • Nutzt das Theme native.
  • Ändert die Hintergrundfarbe des Themes zu Dunkelblau.
  • Bindet jetzt nur die Zeilen 5 bis 7 ein.
  • Entfernt die Leerzeichen am Anfang der Zeilen durch die passende Option (Tipp: Die Dokumentation spricht hier von gobble).

Seht bei Fragen in der Dokumentation des Paketes minted nach.

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.

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.

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 & Aktuelle Version \\
        \midrule
        C++     & Bjarne Stroustrup & 1985             & C++ 17           \\
        Java    & James Gosling     & 1998             & 13               \\
        Python  & Guido van Rossum  & 1991             & 3.8.0            \\
        \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.

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

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.

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

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}

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}

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

Fußnoten einfügen

  • Pack den Text Stand März 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 der Abbildung und Das nachstehende Quelltext-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.

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 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 Alpha-Zitierstil
Zitieren im Natdin-Zitierstil
Zitieren im Natdin-Zitierstil
Finden von fertigen BibTeX-Einträgen – Bamberger Katalog
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 – Google Scholar
Finden von fertigen BibTeX-Einträgen – Google Scholar
Finden von fertigen BibTeX-Einträgen – Wikipedia
Finden von fertigen BibTeX-Einträgen – Wikipedia
Finden von fertigen BibTeX-Einträgen – Wikipedia
Finden von fertigen BibTeX-Einträgen – Wikipedia

Ein Literaturverzeichnis erstellen und einfügen

  • Sucht bei Google Scholar die BibTeX-Einträge für folgende \(\LaTeX\)-Handbücher:
    • Leslie Lamport (1994): \(\LaTeX\). A Document Preparation System.
    • Dilip Datta (2017): \(\LaTeX\) in 24 Hours. A Practical Guide for Scientific Writing.
    • Frank Mittelbach / Michel Goossens (2012): Der \(\LaTeX\)-Begleiter.
  • Vergleicht die Einträge mit den Ergebnissen, die euch dblp.org für dieselben Bücher liefert.
  • Erstellt im Ordner exercises/literature eine neue BibTeX-Datei literature.bib.
  • Fügt die BibTeX-Einträge in die BibTeX-Datei ein. Wählt hierfür aus Google Scholar und dblp die aus eurer Sicht geeigneteren Einträge.
  • 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 drei Handbücher im Text in der Datei exercises/literature/literature.tex.
  • Wählt den Bibliographiestil natdin.

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

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)
Klassisch (Quelle)
Noch klassischer (Quelle)
Noch klassischer (Quelle)
Anders (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