134 lines
10 KiB
TeX
134 lines
10 KiB
TeX
\chapter{Grundstruktur}
|
|
\label{sec:basic-document-structure}
|
|
|
|
Wie sieht so ein \LaTeX-Dokument jetzt eigentlich aus?
|
|
Im Kern besteht es immer aus zwei Teilen: einer Präambel zu Beginn sowie der unmittelbar folgenden Dokumentumgebung.
|
|
Als \emph{Präambel} bezeichnen wir die ersten Befehle eines \LaTeX-Dokumentes, mit denen globale Einstellungen wie die Dokumentklasse, die Zeichenkodierung, die Sprache und das Seitenformat festgelegt werden.
|
|
Die \emph{Dokumentumgebung} hingegen enthält den Inhalt, der später in der fertigen \acro{PDF}-Datei erscheinen soll.
|
|
|
|
\Example{lst:latex-document-basic-structure}{basic-document-structure/hello-world}{basic-document-structure/hello-world_crop}{Beispielhafter Aufbau eines einfachen \LaTeX-Dokuments mit Präambel und Dokumentumgebung}
|
|
|
|
\section{Präambel}
|
|
Beginnen wir mit der Präambel.
|
|
Eine minimale Präambel sollte die folgenden Festlegungen treffen:
|
|
|
|
\subsection{Dokumentklasse}\label{sec:document-class}
|
|
\mintinline{latex}|\documentclass[<parameter>]{<dokumentklasse>}|
|
|
definiert die Dokumentklasse.
|
|
Die verbreitetsten von \LaTeX\ standardmäßig unterstützten Dokumentklassen sind \mintinline{latex}{article} für kurze und \mintinline{latex}{report} für längere Dokumente, \mintinline{latex}{book} für Bücher, \mintinline{latex}{beamer}\footnote{Präsentationen in \LaTeX\ sind ein Thema für sich, auf das wir nicht näher eingehen. Bei Interesse sei diese Einführung von Overleaf empfohlen: \url{https://www.overleaf.com/learn/latex/Beamer}} für Präsentationen sowie \mintinline{latex}{letter}\footnote{Auch auf Briefe wird in diesem Skript nicht weiter eingegangen. WikiBooks gibt eine Einführung: \url{https://en.wikibooks.org/wiki/LaTeX/Letters}} für Briefe.
|
|
|
|
Parallel zu den Standard-Dokumentklassen entwickelten sich die \acro{KOMA}-Script-Klassen.\footnote{Einen umfassenden Überblick über die Möglichkeiten von \acro{KOMA}-Script gibt folgendes Handbuch: \url{https://komascript.de/~mkohm/scrguide.pdf}}
|
|
Als Alternative zum \mintinline{latex}{article} steht \mintinline{latex}{scrartcl} bereit, \mintinline{latex}{report} wird durch \mintinline{latex}{scrreport} ersetzt, \mintinline{latex}{scrbook} kann anstelle von \mintinline{latex}{book} verwendet werden und \mintinline{latex}{scrlttr2} ist als Ersatz für \mintinline{latex}{letter} entstanden.
|
|
Eine vollständige Liste aller möglichen \acro{KOMA}-Script-Dokumentklassen ist online\footnote{Erreichbar unter \url{https://komascript.de/komascriptbestandteile}} verfügbar.
|
|
Die \acro{KOMA}-Klassen ändern das Layout des fertigen \acro {PDF}-Dokuments und bringen zusätzliche Funktionalitäten mit.
|
|
Während die Standard-Klassen für den Gebrauch in Amerika gedacht sind, folgen \acro{KOMA}-Klassen europäischen Normen, etwa bei Brief"|formaten.
|
|
|
|
Dem \mintinline{latex}{\documentclass}-Befehl können verschiedene optionale Parameter übergeben werden.
|
|
\mintinline{latex}{\documentclass[10pt,a5paper,landscape]{scrartcl}} etwa konfiguriert einen \acro{KOMA}-Script-Artikel mit Schriftgröße 10\,pt\footnote{Die Standardschriftgröße wäre hier 12\,pt.} auf A5-Papier\footnote{In der Voreinstellung handelte es sich um A4-Papier.} im Querformat.
|
|
Auch die Sprache kann mit übergeben werden (vgl. \cref{sec:language}).
|
|
|
|
\subsection{Exkurs: Pakete}
|
|
\label{sec:packages}
|
|
\begin{minted}{latex}
|
|
\usepackage[<optionen>]{<paketname>}
|
|
\end{minted}
|
|
Pakete sind \LaTeX-Erweiterungen, die zusätzliche Befehle und Funktionalitäten zur Verfügung stellen.
|
|
Es existieren verschiedene Pakete für verschiedene Anwendungsfälle (z.\,B. Formelsatz, Listen, \textellipsis).
|
|
Bevor sie verwendet werden können, müssen sie in der Präambel eingebunden werden.
|
|
Hierfür wird der obige Befehl verwendet.
|
|
Die wichtigsten \LaTeX-Pakete sind im Comprehensive \TeX\ Archive Network,\footnote{Erreichbar unter \url{https://www.ctan.org/}} kurz \acro{CTAN}, abgelegt.
|
|
Hier finden sich auch Dokumentationen zu den einzelnen Funktionalitäten.
|
|
|
|
\subsection{Kodierung}
|
|
\begin{minted}{latex}
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage[t1]{fontenc}
|
|
\end{minted}
|
|
Pakete werden zum Beispiel zur Auswahl der Zeichenkodierung benötigt.
|
|
Die Zeichenkodierung\footnote{Vgl. \url{https://de.wikipedia.org/wiki/Zeichenkodierung}} entscheidet darüber, welcher Zeichensatz zur Verfügung steht.
|
|
Der Standardzeichensatz in \LaTeX\ ist \acro{ASCII}.\footnote{Vgl. \url{https://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange}}
|
|
Dieser amerikanische Standard enthält beispielsweise keine Umlaute und ist daher für die meisten Einsätze wenig geeignet.
|
|
Als universelle Zeichenkodierung kann \acro{UTF-8}\footnote{Vgl. \url{https://de.wikipedia.org/wiki/UTF-8}} verwendet werden.
|
|
|
|
In \LaTeX-Dokumenten sind zwei verschiedene Zeichenkodierungen von Belang.
|
|
Das Input Encoding (kurz: \mintinline{latex}{inputenc}) bezieht sich auf den Quelltext, den wir eingeben, während das Font Encoding (kurz: \mintinline{latex}{fontenc}) das fertige \acro{PDF}-Dokument beeinflusst.
|
|
Konkret beeinflusst \mintinline{latex}{fontenc} die Wahl der Schriftartdatei, die verwendet wird, um den Inhalt des Dokuments darzustellen, denn auch diese muss natürlich Sonderzeichen beinhalten.\footnote{Details zur Arbeitsweise von \mintinline{latex}{fontenc} gibt dieser Beitrag: \url{https://www.texwelt.de/fragen/5537/was-macht-eigentlich-usepackaget1fontenc}}
|
|
\mintinline{latex}{T1} ist eine Kodierung, die mit einer begrenzten Anzahl an Zeichen europäische Sprachen abzubilden versucht.
|
|
|
|
\subsection{Sprache}\label{sec:language}
|
|
\begin{minted}{latex}
|
|
\usepackage[ngerman]{babel}
|
|
\end{minted}
|
|
|
|
Das Paket \mintinline{latex}{babel} stellt sprachspezifische Informationen (z.\,B. Silbentrennung, Sonderzeichen, Wechsel zwischen Fonts, Übersetzung von Labels\footnote{Vgl. \cref{sec:references}} wie \enquote{Kapitel}, \enquote{Inhaltsverzeichnis} oder \enquote{Abbildung}) bereit.
|
|
Als optionaler Parameter kann die Sprache übergeben werden.
|
|
\mintinline{latex}{ngerman} steht hierbei für die Neue Deutsche Rechtschreibung.
|
|
Manche Pakete erfordern es, dass die Sprachangabe schon als optionaler Parameter dem \mintinline{latex}{\documentclass}-Befehl\footnote{Vgl. \cref{sec:document-class}} übergeben wird.
|
|
In diesem Fall wird der optionale Parameter beim Einbinden von \mintinline{latex}{babel} einfach weggelassen.
|
|
|
|
In einem Dokument können auch mehrere Sprachen verwendet werden.
|
|
Sie können einfach kommagetrennt als optionale Parameter aufgelistet werden.
|
|
Im Dokument kann mit dem Befehl \mintinline{latex}{\selectlanguage{<sprache>}} zwischen den Sprachen umgeschaltet werden.
|
|
Fremdsprachiger Text lässt sich alternativ auch über folgenden Befehl einbinden:
|
|
\begin{minted}{latex}
|
|
\foreignlanguage{<sprache>}{<text>}
|
|
\end{minted}
|
|
|
|
\section{Dokumentumgebung}
|
|
|
|
Zwischen \mintinline{latex}{\begin{document}} und \mintinline{latex}{\end{document}} gehören die Inhalte, die tatsächlich im Dokument erscheinen sollen.
|
|
|
|
\subsection{Fließtext}
|
|
Der einfachste Inhalt der Dokumentumgebung ist Fließtext.
|
|
Er kann direkt in den Quelltext geschrieben werden.
|
|
Zeilenumbrüche und zu mehreren auftretende Leerzeichen werden dabei ignoriert.
|
|
Leerzeilen erzeugen einen neuen Absatz, der standardmäßig mit einem Einzug beginnt.\footnote{Der Befehl \mintinline{latex}{\noindent} verhindert dies.}
|
|
Manuelle Umbrüche können mit zwei Backslashes (\enquote{\textbackslash\textbackslash}) erzwungen werden.
|
|
Dies sollte jedoch vermieden werden.
|
|
|
|
\subsection{Kommentare}
|
|
Einige Zeichen sind für besondere Funktionen reserviert.
|
|
So bewirkt ein Prozent-Zeichen beispielsweise, dass der Rest einer Zeile vom Compiler ignoriert wird.
|
|
Der Text erscheint also nicht im fertigen \acro{PDF}-Dokument.
|
|
Dies kann nützlich sein, um während der Bearbeitung Notizen festzuhalten, ohne Einfluss auf das fertige Dokument zu nehmen.
|
|
Wir sprechen hier von einem Kommentar.
|
|
|
|
Falls tatsächlich ein Prozentzeichen erscheinen soll, könnt ihr dies durch einen Backslash erreichen: \mintinline{latex}{\%}.
|
|
Diese Lösung, die auch als Escaping bezeichnet wird, funktioniert auch für die Zeichen \#, \$, \&, \_, \{ und \}.
|
|
Für den Backslash muss der Befehl \mintinline{latex}{\textbackslash} verwendet werden.\footnote{Eine Übersicht weiterer Sonderzeichen ist im zugehörigen \cref{sec:special-characters} zu finden.}
|
|
|
|
\subsection{Abschnitte und Kapitel}
|
|
Texte werden durch Überschriften in Abschnitte und Kapitel unterteilt.
|
|
Immer nutzbar sind die in \cref{lst:headlines} dargestellten Befehle.
|
|
\Example{lst:headlines}{basic-document-structure/headlines}{basic-document-structure/headlines_crop}{Überschriftenebenen}
|
|
Je nach Dokumentklasse sind außerdem \mintinline{latex}{\chapter{Kapitel}} und \mintinline{latex}{\part{Teil}} verfügbar -- beispielsweise in Büchern.
|
|
Mit Sternchen fallen bei allen diesen Befehlen die Nummerierung und der Eintrag im Inhaltsverzeichnis\footnote{Vgl. \cref{sec:table-of-contents}} weg:
|
|
|
|
\begin{minted}{latex}
|
|
\section*{Kommt nicht im Inhaltsverzeichnis vor}
|
|
\end{minted}
|
|
|
|
Ein alternativer Titel im Inhaltsverzeichnis kann als optionaler Parameter in eckigen Klammern zwischen dem Befehl und dem eigentlichen Titel angegeben werden.
|
|
|
|
\begin{minted}{latex}
|
|
\section[Titel im Verzeichnis]{Kapitelüberschrift}
|
|
\end{minted}
|
|
|
|
\subsection{Titelei}
|
|
Ein einfacher Titel lässt sich im Dokument mit dem Befehl \mintinline{latex}{\maketitle} erzeugen.
|
|
Die Werte für die Einträge müssen in der Präambel festgelegt werden.
|
|
Mehrere Autoren werden dabei mit \mintinline{latex}{\and} verbunden.
|
|
Fehlt der Befehl \mintinline{latex}{\date}, wird per default das aktuelle Datum gesetzt.
|
|
Die genaue Gestaltung hängt ab von der verwendeten Dokumentklasse.
|
|
|
|
\Example{lst:titles}{basic-document-structure/titles}{basic-document-structure/titles_crop}{Die Titelei}
|
|
|
|
\subsection{Verzeichnisse}\label{sec:table-of-contents}
|
|
|
|
Aus allen mit den oben genannten Befehlen eingefügten Abschnitten fügt der Befehl \mintinline{latex}{\tableofcontents} ein automatisch nummeriertes Inhaltsverzeichnis zusammen (wie zum Beispiel in \cref{lst:main-file} auf \cpageref{lst:main-file} zu sehen).
|
|
Die Aufzählungszeichen, die Tiefe der Aufzählung und viele weitere Gestaltungselemente sind frei anpassbar.\footnote{Ein empfehlenswerter Blogpost hierzu ist unter \url{https://texblog.org/2011/09/09/10-ways-to-customize-tocloflot/} verfügbar.}
|
|
Damit \LaTeX\ das Inhaltsverzeichnis vollständig baut, muss das Projekt zweimal kompiliert werden.
|
|
|
|
Neben dem Inhaltsverzeichnis stehen auch eine \mintinline{latex}{\listoffigures} (Abbildungsverzeichnis) und eine \mintinline{latex}{\listoftables} (Tabellenverzeichnis) zur Verfügung.
|
|
Aufgeführt werden jeweils die Bild- oder Tabellenunterschriften.\footnote{Siehe hierzu \cref{sec:graphics} (Grafiken) und \cref{sec:tables} (Tabellen).}
|