Text & Formatierung
Absätze und Zeilenumbruch
In LaTeX erzeugt eine Leerzeile einen neuen Absatz. Einfache Zeilenumbrüche im Quellcode werden ignoriert:
Das ist der erste Absatz. Er kann über
mehrere Zeilen im Quellcode gehen.
Das ist der zweite Absatz. Die Leerzeile
dazwischen erzeugt den Absatzabstand.\\ für Absatzumbrüche! Das erzeugt nur einen Zeilenumbruch ohne Absatzabstand. Verwendet stattdessen eine Leerzeile.Einrückung (Indent)
Standardmäßig rückt LaTeX den ersten Absatz nach einer Überschrift nicht ein, aber alle folgenden Absätze schon. Mit \noindent unterdrückt ihr den Einzug eines einzelnen Absatzes manuell.
% Einrückung global deaktivieren:
\setlength{\parindent}{0pt}
% Stattdessen Absatzabstand erhöhen:
\setlength{\parskip}{0.5em}Textauszeichnung
\textbf{Fetter Text}
\textit{Kursiver Text}
\texttt{Schreibmaschinentext (für Code)}
\textsc{Kapitälchen}
\emph{Hervorgehoben} % Kontextabhängig: kursiv in normalem Text
% Kombinieren:
\textbf{\textit{Fett und kursiv}}Schriftgrößen
LaTeX bietet relative Schriftgrößen (abhängig von der Dokumentklasse):
{\tiny winzig}
{\scriptsize sehr klein}
{\footnotesize Fußnotengröße}
{\small klein}
{\normalsize normal}
{\large etwas größer}
{\Large größer}
{\LARGE noch größer}
{\huge riesig}
{\Huge am größten}Aufzählungen
Ungeordnete Liste
\begin{itemize}
\item Erster Punkt
\item Zweiter Punkt
\begin{itemize}
\item Unterpunkt
\end{itemize}
\item Dritter Punkt
\end{itemize}Geordnete Liste
\begin{enumerate}
\item Schritt eins
\item Schritt zwei
\item Schritt drei
\end{enumerate}Beschreibungsliste
\begin{description}
\item[HTTP] Hypertext Transfer Protocol
\item[API] Application Programming Interface
\item[REST] Representational State Transfer
\end{description}Aufzählungen anpassen (mit enumitem)
\usepackage{enumitem}
% Kompaktere Liste (weniger Abstand):
\begin{itemize}[noitemsep]
\item Punkt A
\item Punkt B
\end{itemize}
% Eigene Aufzählungszeichen:
\begin{itemize}[label=--]
\item Gedankenstrich statt Punkt
\end{itemize}
% Römische Nummerierung:
\begin{enumerate}[label=\roman*)]
\item Erster
\item Zweiter
\end{enumerate}Anführungszeichen
Mit dem Paket csquotes bekommt ihr automatisch die richtigen Anführungszeichen für die jeweilige Sprache:
\usepackage{csquotes}
\enquote{Das sind deutsche Anführungszeichen}
% Ergibt: „Das sind deutsche Anführungszeichen“
\enquote{Verschachtelte \enquote{Anführungszeichen}}
% Ergibt: „Verschachtelte ‚Verschachtelte‘“"so" in LaTeX! Das ergibt falsche Zeichen. Immer \enquote{} verwenden.Fußnoten
Das ist ein Satz mit einer Fußnote\footnote{Hier steht die
Fußnote. Sie erscheint automatisch am Seitenende.}.Abkürzungen
Für häufig verwendete Abkürzungen könnt ihr eigene Befehle definieren:
% In der Präambel:
\newcommand{\zB}{z.\,B.\xspace}
\newcommand{\dh}{d.\,h.\xspace}
\newcommand{\ua}{u.\,a.\xspace}
\newcommand{\usw}{usw.\xspace}
\newcommand{\bzw}{bzw.\xspace}
\newcommand{\evtl}{evtl.\xspace}
% Im Text:
Das funktioniert \zB mit Java oder Python.\, erzeugt einen schmalen Abstand zwischen den Buchstaben der Abkürzung. Das \xspace (aus dem Paket xspace) fügt automatisch ein Leerzeichen ein, wenn nötig.Horizontale Linien und Abstände
% Vertikaler Abstand:
\vspace{1cm}
% Horizontaler Abstand:
\hspace{2cm}
% Horizontale Linie:
\noindent\rule{\textwidth}{0.4pt}
% Seitenumbruch:
\newpage
\clearpage % Erzwingt auch Ausgabe aller GleitobjekteFarben
\usepackage{xcolor}
\textcolor{red}{Roter Text}
\textcolor{blue}{Blauer Text}
% Eigene Farben definieren:
\definecolor{htlblau}{RGB}{26, 54, 93}
\textcolor{htlblau}{Text in HTL-Blau}Querverweise
LaTeX kann automatisch auf andere Stellen im Dokument verweisen:
% Label setzen:
\section{Einleitung}
\label{sec:einleitung}
% Später darauf verweisen:
Wie in Abschnitt~\ref{sec:einleitung} beschrieben...
Auf Seite~\pageref{sec:einleitung}.sec: für Abschnitte, fig: für Abbildungen, tab: für Tabellen, lst: für Listings.Umlaute & Sonderzeichen
Mit UTF-8 und dem Paket inputenc (oder modernen TeX-Distributionen ab 2018) können Umlaute direkt eingegeben werden. Es gibt aber auch die klassische LaTeX-Schreibweise.
Direkte Eingabe (empfohlen)
Wenn eure Dateien in UTF-8 gespeichert sind (Standard seit 2018), könnt ihr Umlaute einfach tippen:
% Direkt tippen (UTF-8):
Wörter wie Überblick, Änderung, öffentlich und Straße
funktionieren direkt im Quellcode.Klassische LaTeX-Befehle
Falls UTF-8 nicht funktioniert oder ihr in einer Umgebung ohne Unicode seid:
| Zeichen | LaTeX-Befehl | Beschreibung |
|---|---|---|
| ä | \"{a} | a-Umlaut |
| ö | \"{o} | o-Umlaut |
| ü | \"{u} | u-Umlaut |
| Ä | \"{A} | A-Umlaut |
| Ö | \"{O} | O-Umlaut |
| Ü | \"{U} | U-Umlaut |
| ß | \ss{} | Eszett / scharfes S |
% Klassische Schreibweise:
\"Uberblick, \"Anderung, \"offentlich, \ss{}babel-Paket für deutsche Silbentrennung
Damit LaTeX Wörter mit Umlauten korrekt trennt, braucht ihr das babel-Paket:
\usepackage[ngerman]{babel}
% Damit funktioniert auch die Kurz-Schreibweise:
"u "o "a "s
% Ergibt: ü ö ä ßModerne Lösung (empfohlen)
Mit einer aktuellen TeX-Distribution (TeX Live 2018+) reicht:
% Moderne Präambel (TeX Live 2018+):
\documentclass[12pt,a4paper]{article}
\usepackage[ngerman]{babel}
% Das reicht! UTF-8 ist Standard.
% inputenc ist NICHT mehr nötig.
\begin{document}
Ä, Ö, Ü, ä, ö, ü, ß funktionieren direkt.
\end{document}inputenc ist nicht mehr nötig, aber schadet auch nicht.Umlaute in Code-Listings
Das listings-Paket hat Probleme mit UTF-8-Umlauten in Code-Blöcken. Hier gibt es mehrere Lösungen:
Das Problem
Umlaute in lstlisting-Umgebungen erzeugen Fehler oder werden falsch dargestellt, weil listings keine UTF-8-Zeichen unterstützt.
% Das erzeugt einen Fehler:
\begin{lstlisting}[language=Java]
// Variablenänderung prüfen
String größe = "überdurchschnittlich";
\end{lstlisting}Lösung 1: literate (empfohlen)
Definiert Ersetzungsregeln in der \lstset-Konfiguration:
\lstset{
literate=
{ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
{Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
{ß}{{\ss}}1
}Lösung 2: listingsutf8-Paket
Das Paket listingsutf8 erweitert listings um UTF-8-Unterstützung für externe Dateien:
\usepackage{listingsutf8}
% Dann für externe Dateien:
\lstinputlisting[inputencoding=utf8/latin1,
language=Java]{code/MeineKlasse.java}\lstinputlisting (externe Dateien), nicht mit der lstlisting-Umgebung!Lösung 3: minted statt listings
Das Paket minted verwendet Python/Pygments und hat keine Umlaut-Probleme. Benötigt allerdings Python und die --shell-escape-Option:
\usepackage{minted}
\begin{minted}{java}
// Variablenänderung prüfen – funktioniert!
String größe = "überdurchschnittlich";
\end{minted}
% Kompilieren mit:
% pdflatex --shell-escape main.tex