LaTeX Kurs
LaTeX Kurs
Was ist LaTeX?
- TeX ist ein Textsatzsystem
- LaTeX ist eine komfortable Benutzerschnittstelle (1980, L. Lamport)
- pdfTeX ist ein LaTeX zu PDF compiler. Mit pdfTeX werden die LaTeX Dokumente also zu PDFs übersetzt.
- “LaTeX is based on the idea that it is better to leave document design to document designers, and to let authors get on with writing documents.” (https://www.latex-project.org/about/)
Warum überhaupt LaTeX?
TLDR: Word ist Quatsch (für Mathe)
Warum nicht Word, OpenOffice, LibreOffice, …?
- LaTeX wurde speziell zur Erstellung wissenschaftlicher und insbesondere mathematischer Texte entwickelt
- LaTeX nimmt einem viel Arbeit ab, wie z.B. das Erstellen von Inhaltsverzeichnissen, Silbentrennung, Seitenziffern, …
- LaTeX Dokumente sehen Standardmäßig gut aus
Wo liegt der Unterschied?
- LaTeX ist kein WYSIWYG (What you see is what you get) Editor
- Man gibt an was man meint, nicht wie es aussieht
- Man “programmiert” sein Dokument, ähnlich wie bei HTML
Grundstruktur
Befehle
-
Haben in Latex die Form \Befehlsname
-
LaTeX liest alle Buchstaben nach einem \ bis zu einem Leerzeichen, oder nur das darauf folgende Zeichen
Beispiel: \LaTex
kompiliert zu $\LaTeX$
- Einige Befehle verlangen Parameter welche in geschweiften klammern übergeben werden
Beispiel: \documentclass{amsart}
- Optionale Parameter können in eckigen Klammern angegeben werden
Beispiel: \documentclass{amsart}[a4paper, 12pt]
oder \foo[bar]{FUBAR}
- Es gibt auch Befehle mit mehreren Parametern
Beispiel: \frac{1}{2}
wird zu $\frac{1}{2}$
Besondere Symbole
- In $\LaTeX$ haben einige Symbole eine besondere Bedeutung
-
$: Dollarzeichen definieren die Grenzen für die Mathe-Umgebung.
-
%: Mit dem Prozentzeichen schreibt man Kommentare.
-
&: Das Und-Zeichen ist nur in bestimmten Umgebungen nützlich, wie zum Beispiel
table
,matrix
undalign
. -
{ und }: In geschweiften Klammern übergibt man Parameter
-
_: Ein Unterstrich indiziert ein Objekt.
-
#:
#1
,#2
, … wird in Makrodefinitionen verwendet, um auf Argumente zuzugreifen. -
\: leitet Befehle ein.
-
~: ist ein geschütztes Leerzeichen, das dafür sorgt, dass kein Zeilenumbruch an dieser Stelle stattfindet.
-
^: wird verwendet, um etwas hochzustellen (Superscript)
-
- Wenn man irgendwann im Text eines dieser Zeichen schreiben möchte, muss man ein
\
davor setzen. Also\$
,\%
,\&
,\{
,\}
,\_
und\#
. - Ausnahmen sind
\backslash
,\~
,\^
wobei\~{}
und\^{}
einen leeren Parameter benötigen.
Dokumente
-
Grob lässt sich eine
.tex
Datei in zwei Abschnitte aufteilen- Vor dem eigentlichen Inhalt steht die Präambel. In der Präambel werden Formatierung, Pakete, Metadaten wie Authoren, Titel, Datum und evtl. eigene Befehle definiert.
- Der zweite Teil ist innerhalb der
document
Umgebung in welcher der eigentliche Inhalt eures Dokuments steht
-
Dieses Minimalbeispiel erstellt euch eine Pdf mit dem Satz: Hallo Welt!
\documentclass{article}
% Präambel
\begin{document}
Hallo Welt!
\end{document}
Umgebungen
- Durch Umgebungen kann man innerhalb eines begrenzten Textbereichs bestimmte Formatierungsänderungen anwenden.
- Sie werden mit den Befehlen
\begin{...}
und\end{...}
eingerahmt.
Beispiel:
\begin{document}
\begin{center}
Dieser Text ist zentriert
\end{center}
Dieser Text ist wieder linksbündig
\end{document}
Wird Kompiliert zu:
Beispiel:
\begin{document}
\begin{itemize}
\item Stichpunkt 1
\item Stichpunkt 2
\end{itemize}
% \item würde hier einen Fehler werfen
\end{document}
Wird Kompiliert zu:
- Stichpunkt 1
- Stichpunkt 2
Beispiel Analog zum vorherigen Beispiel kompiliert
\begin{enumerate}
\item Stichpunkt 1
\item Stichpunkt 2
\end{enumerate}
zu
- Stichpunkt 1
- Stichpunkt 2
und
Beispiel
\begin{description}
\item[Stichpunkt] 1
\item{Stichpunkt} 2
\end{description}
Stichpunkt 1 Stichpunkt 2
Beispiel
\begin{figure}[h]
\includegraphics{pfad/zum/bild.jpg}
\caption{Bildbeschreibung}
\end{figure}
Innerhalb der figure
Umgebung kann man z.B. Bilder anzeigen lassen und diese mit Beschriftungen versehen.
Die Option [h]
sagt dem \(\LaTeX\) compiler, dass man das Bild an Stelle wie im Quellcode angegeben positioniert haben möchte.
Es gibt die Optionen
h
ungefähr an die selbe Positiont
nach oben auf eine Seiteb
unten an einer Seitep
auf eine gesonderte SeiteH
exakt an die Position wie im Quellcode
Mit einem !
kann man die \(\LaTeX\) internen Parameter zur Positionierung überschreiben.
Beispiel
\begin{table}[h]
\begin{tabular}[c | c | c]
1.1 & 1.2 & 1.3 \\ \hline
2.1 & 2.2 & 2.3 \\ \hline
3.1 & 3.2 & 3.3
\end{tabular}
\end{table}
Der Syntax für Tabellen in \(\LaTeX\) ist schmutz, dafür gibt es tools wie https://www.tablesgenerator.com/
Mathe Umgebung
-
Besonders wichtige Umgebungen sind die Mathe-Umgebungen
math
unddisplaymath
. -
Weil es sehr mühsamn wäre immer
\begin{math}...\end{math}
schreiben zu müssen, gibt es zwei kürzel für die beiden Mathe-Umgebungen.- Die
inline
-Umgebung wird mit\(
geöffnet und mit\)
wieder geschlossen. - Die
display
-Umgebung wird mit\[
geöffnet und mit\]
wieder geschlossen.
- Die
-
Inhalte in einer
inline
-Umgebung werden direkt in den Fließtext integriert, während Inhalte in einerdisplay
-Umgebung zentriert in einer gesonderten Zeile angezeigt werden -
Die
display
-Umgebung benutzt man, wenn man Inhalte, wie zum Beispiel wichtige Formeln, hervorheben möchte. Man kann es auch benutzen, wenn ein Textblock zu lang wird, um den Lesefluss zu verbessern.
Beispiel:
Hier ist das Integral \( \int_a^b f(x) d x \) direkt im Fließtext und hier
\[
\int_a^b f(x) d x
\]
in einer gesonderten Zeile
kompiliert zu:
Hier ist das Integral \(\int_a^b f(x) d x \) direkt im Fließtext und hier \[\int_a^b f(x) d x\] in einer gesonderten Zeile.
- Klammern werden nicht automatisch skaliert
- Mit
\left( ... \right)
werden die Klammern automatisch skaliert.
Beispiel
\[ \left( \sum_{i=0}^n i \right) \quad \text{vs.} \quad (\sum_{i=0}^n i) \]
\[ \left( \sum_{i=0}^n i \right) \quad \text{vs.} \quad (\sum_{i=0}^n i) \]
- Innerhalb der Mathe-Umgebung werden alle Zeichen als mathematische Symbole betrachtet, sodass
\( Hallo Welt! \)
als \(Hallo Welt!\) ausgeben werden. - Mit
\text{}
lässt sich Text in Mathe-Umgebungen richtig darstellen so, dass wir mit\(text{Hallo Welt!}\)
\(\text{Hallo Welt!}\) erhalten.
Gleichungen
Eine weitere wichtige Umgebung für mathematischen Aufschrieb ist die align
-Umgebung.
Innerhalb der align
-Umgebung lassen sich Symbole in unterschiedlichen Zeilen ane`inander ausrichten.
Beispiel:
\begin{align}
a^2 + b^2 &= c^2 \tag{1}\\
c^2 &= b^2 + a^2 \tag{2}
\end{align}
Wird kompiliert zu
\(\begin{align}a^2 + b^2 &= c^2 \tag{1}\ c^2 &= b^2 + a^2 \tag{2}\end{align}\)
Wenn man die Zeilen nicht nummeriert haben möchte, dann fügt man einen Stern hinzu und benutzt diealign*
-Umgebung.
Um die align
-Umgebung nutzen zu können muss das Paket amsmath
mittels \usepackage{amsmath}
importiert werden.
Pakete
Über Packages kann man \(\LaTeX\) mit zusätzlichen Features und Befehlen ausstatten. Packages können wie folgt für ein Dokument importiert werden
\usepackage[optionen]{packagename}
Beispiel: Das Package geometry
erlaubt es uns zum Beispiel mit \usepackage[margin=2cm]{geometry}
die Abstände des Inhalts zu den Seitenrändern anzugeben. Mit \usepackage[layout=a4]{geometry}
forciert man das DIN-A4 Layout.
Beispiel: Das Paket amsmath
gibt euch viele verschiedene Befehele die für Mathe gedöns nützlich sind wie z.B.
\DeclareMathOperator{\rk}{rang}
Mathe Operatoren haben spezielles spacing zu anderen Symbolen im Mathe Modus, weswegen es gut ist sie zu benutzen.
\( \mathrm{rang} A \quad \text{vs.} \quad \operatorname{rang}A \)
Beispiel: Das Paket amsthm
stellt euch Umgebungen für mathematischen Aufschrieb zur Verfügung wie zum Beispiel
\begin{theorem}
Hier steht ein sehr spannender Satz für sehr spannende Mathematik
\end{theorem}
Satz 1 Hier steht ein sehr spannender Satz für sehr spannende Mathematik.
Beispiel Mit amsfonts
kriegt ihr viele praktische Schriftarten und Zeichen in euren Befehlssatz.
\( \mathbb{R} \\ \mathcal{O} \\ \mathfrak{A} \)
\(\mathbb{R} \ \mathcal{O} \ \mathfrak{A} \)
Beispiel Mit inputenc
lassen sich deutsche Umlaute darstellen
\usepackage[utf8]{inputenc}
Beispiel Mit enumerate
lassen sich nummierte Listen erzeugen
\begin{enumerate}[(i)]
\item Stichpunkt
\item Zweiter Stichpunkt
\end{enumerate}
(i) Stichpunkt (ii) Zweiter Stichpunkt
Beispiel mathtools
bietet eine Reihe von Funktionen, die das Erscheinungsbild von Dokumenten mit viel Mathematik verbessern sollen
Beispiel Das Paket babel
übersetzt Überschriften in die spezifizierte Sprache.
Beispiel Das Paket fontenc
ermöglicht es dem Benutzer, Font-Encodings auszuwählen, und bietet für jedes Encoding eine Schnittstelle zu „Font-Encoding-spezifischen“ Befehlen für jeden Font
Beispiel Mit hyperref
werden z.B. die Überschriften im Inhaltsverzeichnis ‘klickbar’.
Beispiel tikz
ist kein Zeichenprogramm https://en.wikibooks.org/wiki/LaTeX/PGF/TikZ
Eine Sammlung an Paketen findet sich auch auf https://www.ctan.org/.
Gliederung
- Dokumente lassen sich je nach Dokumentenklasse (nicht jede Klasse unterstützt jede Untergliederung) unterteilen bzw. gliedern. Latex stellt folgende Befehle zur Verfügung.
\part{...}, \chapter{...}, \section{...},\subsection{...}, \subsubsection{...}
- Diese werden durchgehend nach Ebene nummeriert.
Beispiel
\documentclass{scrartl}
\begin{document}
\section{Ein Abschnitt}
\section{Noch ein längerer Abschnitt}
\subsection{Ein kurzer Unterabschnitt}
\subsection{Einandererunterabschnitt}
\end{document}
1. Ein Abschnitt 2. Noch ein längerer Abschnitt 2.1 Ein kurzer Unterabschnitt 2.2 Einandererunterabschnitt
Mit der documentclass book
kommt auch der Befehlt \chapter{...}
einher.
\documentclass{book}
\begin{document}
\chapter{Supercoolerkapitelname}
\section{Supercoolersectionname}
\section{Auch ein SupercoolersectionnameSection}
\chapter{Auch ein Supercoolerkapitelname}
\section{Supercoolersectionname}
\end{document}
Wird kompiliert zu
1. Supercoolerkapitelname 1.1 Supercoolersectionname 1.2 auch ein Supercoolersectionname 2. Auch ein Supercoolerkapitelname 2.1 Supercoolersectionname
Mit dem Befehl \tableofcontents
könnt ihr euch ein Inhaltsverzeichnis erzeugen. Das Inhaltsverzeichnis wird automatisch über die angegebenen Gliederungsbefehle erzeugt.
Beispiel
\tableofcontents
\section{Ein Abschnitt}
\section{Noch ein längerer Abschnitt}
\subsection{Ein kurzer Unterabschnitt}
\subsection{Einandererunterabschnitt}
1. Ein Abschnitt 2. Noch ein längerer Abschnitt 2.1 Ein kurzer Unterabschnitt 2.2 Einandererunterabschnitt
[…]
Documentclasses
- Durch die Angabe der Dokumentklasse kann die Grundstruktur des Dokumentes festgelegt werden.
- Zusätzliche Schriftbildinformationen können über den Optionsparameter angegeben werden.
Es gibt z.B. die Klassen
- article: Kurzer Artikel
- letter: Brief
- book: Längeres Buch
- amsart: Artikel, aber anders
- scrartcl: Artikel, aber wieder anders
Makros
Makros machen das Benutzen von nervigen Idiomen einfacher.
Makro ohne Argument definieren
\newcommand{\NAME}{ERSETZUNG}
Beispiel
\newcommand{\R}{\mathbb R}
\R
\( \mathbb R \)
Makro mit Argumenten definieren Man kann auch etwas kompliziertere Makros defineren, die selber Argumente entgegen nehmen Beispiel
\newcommand{\set}[1]{\left\{#1\right\}}
\( \set{x \in \R \mid x \leq 0} \)
\( {x \in \mathbb{R} \mid x \leq 0 }\)
Bibliographie
-
Mit dem Paket
bibtex
können Quellenangaben erzeugt werden. -
Die Quellen werden in
.bib
-Dateien verwaltet.Beispiel:
@book{Harro, author = {Harro Heuser}, title = {Lehrbuch der Analysis Teil 2}, publisher = {Vieweg+Teubner Verlag}, year = {2004}, edition = {13., durchgesehene Auflage} }
-
Der Syntax für
.bib
Dateien ist sehr reudig und man hat wenig Spaß daran die selber zu schreiben. -
Zum Glück gibt es hier für Tools wie z.B.
Zotero
, die einem den Großteil der Arbeit abnehmen.
- Das Kommando
\cite{QUELLENANGABE}
erzeugt eine Zitation auf eine Quelle . - Das Kommando
\thebibliography
gibt ein Quellenverzeichnis aus.
Beispiel:
Jede differenzierbare Funktion ist stetig \cite{Harro}.
\thebibliography
wird zu
Jede differenzierbare Funktion ist stetig [1].
[1] Harro Heuser. Lehrbuch der Analysis Teil 2. 13., durchgesehene Auflage. 2004. Vieweg+Teubner Verlag.
Hilfe zur Selbsthilfe
- tex.stackexchange.com
- short-math-guide.pdf
- Overleaf tutorials
- ChatGPT
- Detexify
Aufgaben
- Erstellt ein einfaches Hallo Welt Dokument
- Benutzt die Documentclass
article
- Gib den Author, Titel und ein beliebiges Datum für das Dokument an
- Lass dir einen Titel erzeugen
- Benutzt die Documentclass
- Fügt eurem Dokument 20 Paragraphen Blindtext ein
- Sucht dafür nach einem geeigneten Paket und importiert dieses in euer Dokument
- Versteht, wie die Befehle des Pakets funktionieren und welche Parameter sie übergeben bekommen
- Fügt noch drei weitere Paragraphen Blindtext ein und formatiert jeweils einen Absatz linksbündig, zentriert und rechtsbündig.
- Findet heraus, wie man Text hervorheben kann. Probiert das bei euch im Dokument aus.
- Fügt eurem Dokument Abschnitte hinzu. Das Dokument soll im Anschluss die folgende Struktur haben:
1. Mein erster \LaTeX Abschnitt
2. Mein zweiter Abschnitt
2.1 Eine Unterüberschrift
2.1.1 Eine Unterunterüberschrift
- Erstellt ein Inhaltsverzeichnis am Anfang eures Dokuments.
- Findet heraus, mit welchen Optionen das Paket
babel
importiert werden muss, damit die Überschrift des Inhaltsverzeichnisses auf deutsch ist. - Erstellt einen weiteren Abschnitt, dessen Überschrift nicht im Inhaltsverzeichnis angezeigt werden soll.
- Erstellt in diesem Abschnitt die folgende Liste:
- Hier geht es um Listen
- Listen kann man schön verschachteln
- man muss dabei einiges beachten
- \(\LaTeX\) ist eine strukturierte Sprache
- Verschachtelung geht aber immer
- … wie man hier sieht!
- man muss sich beim Eingeben nur konzentrieren, sonst passieren Fehler:
- beliebt ist, eine enumerate Umgebung mit einer itemize Umgebung zu schließen
- oder statt itemize itemise zu schreiben
- Importiert das Paket
enumerate
und ersetzt in der vorherigen Aufgabe die Nummerierung mit (i), (ii), (iii), … - Findet heraus, wie man in der
itemize
Umgebung das Symbol für die\item
s anpasst - Bindet eine beliebige Grafik aus dem Internet in euer Dokument ein.
- Benutzt dafür die
figure
Umgebung - Gibt eurem Bild eine passende
caption
- Spielt herum mit den Optionen
h
,t
,b
, … für diefigure
Umgebung
- Benutzt dafür die
- Erstellt eine einfache Tabelle mit 3 Spalten und 3 Zeilen. Die Tabelle soll wie folgt aussehen:
- Findet die \LaTeX-Kommandos für die folgenden Symbole:
- \( \uplus\)
- \( \pm \)
- \( \varphi \)
- \( \infty \)
- \( \oint \)
- \( \complement \)
- \( \succeq \)
- \( \neq \)
- \( \forall \)
- \( \partial \)
- \( \exists \)
- \( \in \)
- \( \varnothing \)
- Schreibt die Definition einer Gruppe selber auf:
- Stellt dieses Dokument nach
.
- Schreibt einige Makros für eure Präambel. Hier einige Vorschläge für Nützliche Makros, die man immer mal wieder braucht:
\newcommand{\R}{\mathbb{R}}
für \(\mathbb{R}\) (Hier bietet es sich an, das auch für andere Zahlenmengen wie \(\mathbb{N}\) zu tun.)- Einen Makro für den Betrag \(|x|\).
- Einen Makro, der das Schreiben von Matrizen erleichtert, damit ihr nicht immer
\begin{pmatrix}...\end{pmatrix}
schreiben müsst - Einen Makro für das Skalarprodukt
- Einen Makro für Mengen (beachtet hier, dass die Mengenklammern mittels \left und \right automatisch skaliert werden können)
- Überschreibt
\phi
mit\varphi
, weil\phi
hässlich ist. (Hier kann man\renewcommand
benutzen) - Einen Makro für die Norm \(||x||\)
- Erstellt euch eine Datei
preamble.tex
, in der ihr eure Makros und die wichtigsten Pakete, die man immer benutzt sammelt. Findet heraus, wie ihr die Datei dann in anderen.tex
Dateien importiert. Diese Präambel könnt ihr im Verlauf eures Studiums weiter durchschleifen und nach belieben erweitern.