LATEX-Wochenende
Ein Workshop der Fachschaft WIAI. Präsentiert von Alice, Christian, Clara, Evelyn, Fabian, Florian, Jochen, Katharina, Kilian, Paul und Sandra.
Ein Workshop der Fachschaft WIAI. Präsentiert von Alice, Christian, Clara, Evelyn, Fabian, Florian, Jochen, Katharina, Kilian, Paul und Sandra.
Ziel: Wir arbeiten zusammen unser LaTeX-Skript durch, das ihr nach dem Workshop als kompakte Referenz verwenden könnt.
Gliederung:
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.)
Bildquelle: xkcd
install-verification/main.tex in
TeXstudio.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.
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.
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 einDen Backslash erzeugt ihr auf deutschen Tastaturen mit folgender Tastenkombination:
AltGr + ß (Windows/Linux)
Alt + Shift + 7 (MacOS)
👁 Ein mit LaTeX gesetztes Dokument besteht aus:
\documentclass[ngerman]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\begin{document}
Hallo, Welt!
\end{document}
\documentclass[<parameter>]{<dokumentklasse>}
Konkret zum Beispiel
\documentclass[10pt,a5paper,landscape]{article}
\usepackage[utf8]{inputenc}
\usepackage[t1]{fontenc}
\usepackage[ngerman]{babel}
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 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.
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
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\,\%).
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}
\title{Die Welt der Trüffel}
\author{Fooboar Rüssel \and Fachschaft WIAI}
\date{\today}
\begin{document}
\maketitle
\end{document}
\maketitle.\and verbunden.\date{} definiert
werden.\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}
\tableofcontents % Inhaltsverzeichnis
\listoffigures % Abbildungsverzeichnis
\listoftables % Tabellenverzeichnis
*« versehen, also z. B.
\section*{}.\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}
Schließt alle offenen Tabs aus vorherigen Aufgaben.
document-structure.tex, die im Ordner
exercises/basic-document-structure liegt.\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\\ erstellt worden. Ersetzt diese durch richtige
Absätze.\section u. ä.).article.scr-Dokumentenklassen versuchen
europäische Normen abzubilden.Folgende Dokumentenklassen stehen zur Verfügung:
scrartcl, article für
kurze Dokumentescrreprt, report für
lange Dokumentescrbook, book für
Bücherbeamer für PräsentationenEs 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}
\today
\selectlanguage{ngerman}
\today
\selectlanguage{swedish}
\today
\selectlanguage{ukrainian}
\today
\selectlanguage{greek}
\today
\selectlanguage{english}
\today
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}
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.
twocolumn).Ein größeres LaTeX-Projekt anlegen und dabei …
\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}
\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.
% …
Schließt alle offenen Tabs aus vorherigen Aufgaben.
Im Ordner exercises/project-structure findet ihr eine
Datei namens main.tex.
section1.tex und
section2.tex und verschiebt die Abschnitte in diese.\input-Befehls.main-exercises.tex im Wurzelverzeichnis.
Wie binden wir hier die einzelnen Abschnitte ein?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.
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.
\input{} sowie später für das Einbinden von
Bildern und anderen Medien\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.
main-exercises.tex → praeamble.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.
main-exercises.tex →
basic-document-structure.tex (in einem Unterordner)
./content/basic-document-structure.tex
basic-functionality.tex → graphics.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.
main-exercises.tex
im Wurzelverzeichnis des Projektordners.\,) 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.
\frenchspacing), um riesige
Freiräume nach Satzzeichen zu verhindern.| Name | Verwendung | Code | |
|---|---|---|---|
| - | Bindestrich (hypen) | LaTeX-Wochenende |
-
|
| – |
Halbgeviertstrich (en dash) |
als Gedankenstrich – oder als Bis-Strich: 10 – 12 Uhr. |
--
|
| — |
Geviertstrich (em dash) |
a dash — mostly in American English |
---
|
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.}
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).
exercises/special-characters.tex durch schmale
Leerzeichen.\enquote in
Anführungszeichen.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
.\␣
\@.␣
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.
| 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).
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
|
ø |
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.
\emph{}
| Bezeichnung | Befehl |
|---|---|
| fett (bold face) |
\textbf{wichtig}
|
| kursiv (italics) |
\textit{wichtig}
|
| Kapitälchen (small caps) |
\textsc{wichtig}
|
| dicktengleich (teletype) |
\texttt{wichtig}
|
| unterstrichen |
\underline{wichtig}
|
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.
Das Paket hyperref stellt den Befehl \url{}
bereit zur Wiedergabe
\url{https://www.latex-project.org/}
Mit \href{}{} verschwindet die URL hinter einem
klickbaren Linktext.
\href{https://latex-project.org/news/}{Blog}
exercises/text-markup/markup.tex die Wörter
Recursion und recursive mit
\emph{…}.csquotes.{\<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.}
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!
\parindent) verdeutlicht\parskip)
verwendet werden\setlength{\parindent}{0pt}
\setlength{\parskip}{1em
plus .5em % erlaubte Dehnung
minus .5em % erlaubte Stauchung
}
\noindent kann für nur einen Absatz der Einzug
abgeschaltet werden\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.
\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}
\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}
lists.tex im Ordner
exercises/lists als ungeordnete Liste mit
den Elementen Ingredients und Instructions. Nutzt
dafür den Befehl \itemize.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}
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.
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*]
% …
\setcounter).$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
| 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}\) |
Die Umgebung align erlaubt es, Gleichungen zum Beispiel
am › = ‹ auszurichten.
\begin{align}
13 \cdot (4a - 3)^2 &= 13 … \\
&= 208a^2 - 312a + 117
\end{align}
&‹-Zeichen.\\‹ markiert.align und
equation durch durch ein Sternchen nach dem Umgebungsnamen
(z. B. \begin{align*} und \end{align*})
unterdrückt werden.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!}\) |
| 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.
| 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\) |
| 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)\)
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.
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) …
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>}
\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)
|
\begin{figure}[<position>]
\begin{center}
\includegraphics{<dateipfad>}
\end{center}
\end{figure}
Alternativ:
\begin{figure}[<position>]
\centering
\includegraphics{<dateipfad>}
\end{figure}
exercises/graphics findet ihr eine Bilddatei
namens latex-logo.png.\textwidth) an.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.
\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.
\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}
&‹ abgetrennt.\\‹ beendet.\toprule, \midrule und
\bottomrule strukturieren die 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.
Der Tables Generator ist ein wunderbares Werkzeug, um schnell Tabellen verschiedener Formate zu erstellen.
exercises/tables/tables.tex
enthält Infos zu ein paar Lehrveranstaltung an der Fakultät WIAI.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}
longtable
\begin{longtable}{<spaltendefinition>}
\caption{<tabellenüberschrift>}
\label{<label>}
% Tabelleninhalt
\end{longtable}
longtable-Umgebung vereint die
tabular-Umgebung und die table-Umgebung.booktabs eingebunden ist, stehen seine
Features auch in longtable zur Verfügung.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}
\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}
\cellcolor färbt man einzelne Zellen ein.\rowcolor färbt man ganze Zeilen ein.yellow!25) oder Hex-Codes ([HTML]{...})
angegeben werden.\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.\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}
\makecell den Inhalt.\makecell[l]{Inhalt} kann man ihn linksbündig
ausrichten.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}
\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}
booktabs bietet Befehle für hochwertige
Tabellen: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}}
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} …
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.
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: Unterabschnitte
|
ch: Kapitel
|
itm: Aufzählungselemente
|
eq: Gleichungen
|
lst: Quelltextlistings
|
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}
exercises/footnotes/footnotes.tex in eine
Fußnote.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.\Cref.\lstinputlisting anpassen müsst, um beides zu
vergeben.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}
cleveref das Paket
hyperref eingebunden, entsteht ein klickbarer
Link im fertigen PDF.\cref kommagetrennt
angegeben werden.\section{Ein Einstieg}
\label{sec:section1}
% …
Hier sei verwiesen auf
\Cref{sec:section1,sec:section2,
sec:section3,sec:section5}.
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}
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(/*…*/);
}
}
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.
xcolor
für Farbenlistings
Source.java) in der Datei
source-code-listings.tex ein (relativer
Dateipfad!).literate-Option.basicstyle eine dicktengleiche
Schrift (\ttfamily \small).Seht bei Fragen in der Dokumentation des Paketes
listings nach.
.bib-Datei) zur Speicherung von LiteraturverweisenTeXstudio vorbereiten:
BibLaTeX
Biber
.bib-Datei?
@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.
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.
authoryear,
numeric, alphabetic)apa, ieee,
chicago-authordate)\usepackage[style=numeric, citestyle=ieee,
backend=biber]{biblatex}
Zwei Dinge sind unendlich. Das Universum und die Auswahl an Zitierstilen.Unbekannt
\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 |
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>}
\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} …
exercises/literature eine neue
BibTeX-Datei literature.bib.exercises/literature/literature.tex.alphabetic.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.
biblatex
verwendet)💡 Mehr Informationen
Es ist eine Vielzahl an Ressourcen dazu online verfügbar.
Better BibTeX für Zotero
Better BibLaTex als Format und setzt einen Haken bei
keep updated
.bib-Datei\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
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}
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}
Mit dem Paket qtree lassen sich Konstituentenbäume
erstellen:
\Tree [.S [.NP LaTeX ]
[.VP [.V is ] [.NP fun ] ] ]
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}
Das Wikibook zu LaTeX enthält eine große Anzahl interessanter Artikel und ist auch in deutscher Sprache verfügbar.

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

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

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

