Arbeiten mit LaTeX (Teil 2) - Sections und Labels, (klickbares) Inhaltsverzeichnis


1

Hier geht es zu Teil 1.

4. Sections und Labels

Um ein Dokument in verschiedene Sektionen (Abschnitte/Kapitel; fortan Kapitel) zu unterteilen, verwendet man den Befehl \section{Name des Kapitels}. In geschweifte Klammern wird der gewünschte Name der des Kapitels eingetragen. Neben Kapiteln gibt es auch die Möglichkeit Unterkapitel und Unterunterkapitel zu erstellen. Diese werden später beim Inhaltsverzeichnis automatisch eingedrückt und durchnummeriert. Der Dokumentersteller ist von der eigenen Kapitelnummerierung völlig befreit und muss nur entscheiden, wo welches Kapitel in dem Dokument auftauchen soll (danach richtet sich die von \(LaTeX\) erzeugte Nummer). Ein Unterkapitel wird mit dem Befehl \subsection{Name des Unterkapitels} erstellt. Auch hier gehört in die geschweiften Klammern wieder der Name des Unterkapitels. Analog wird der Befehl \subsubsection{Name des Unterunterkapitels} verwendet. Achte darauf, dass ein definiertes Unterkapitel (Subsection) sich immer auf das direkt vorangehende Kapitel (Section) bezieht. Für

\section{Einleitung}
\section{Kapitel 1}
\subsection{Unterkapitel 1}
\subsubsection{Unterunterkapitel 1}

bezieht sich die Subsection auf die vorangehende Section "Kapitel 1" und nicht auf "Einleitung". Das Kapitel "Einleitung" besitzt kein Unterkapitel. Mit Unterunterkapiteln verfährt man analog (hier bezieht sich das "Unterunterkapitel 1" auf "Unterkapitel 1". Um dem \(LaTeX\)−Dokument auch optisch einen organisierten Look zu verschaffen, kann man Unterkapitel und Unterunterkapitel mit ein bzw. zwei Tabs einrücken:

\section{Einleitung}
\section{Kapitel 1}
\subsection{Unterkapitel 1}
\subsubsection{Unterunterkapitel 1}

Wir verwenden im Folgenden die Dokumentstruktur

\section{Einleitung}
\section{Kapitel 1}
\subsection{Unterkapitel 1}
\subsubsection{Unterunterkapitel 1}
\subsection{Unterkapitel 2}

Mit einem Label können Kapitel (und auch Definitionen, Sätze, Beweise, Abbildungen, Tabellen, ...) referenziert werden. Der Vorteil: Einmal definiert, werden diese unabhängig von später vorgenommenen Kapitelverschiebungen (analog für Definitionen, Sätze, Beweise, Abbildungen, Tabellen, ...) automatisch angepasst. Hierfür benötigt (wie bei dem Generieren und Abdrucken eines Inhaltsverzeichnisses, siehe Kapitel 5) zwei Durchläufe. Für das Kapitel "Einleitung" (als Code \section{Einleitung}) könnte ein Label folgendermaßen definiert werden:

\section{Einleitung}
\label{einleitung}

Ein Label definiert man also mit dem Befehl \label{Labelname}. Dieses wird üblicherweise direkt hinter das zu referenzierende Objekt (Kapitel, Definitionen, Sätze, Beweise, Abbildungen, Tabellen, ...) gesetzt (hier direkt hinter \section{Einleitung}).

Bei der Vergabe von Labelnamen solltest Du Dir ein geeignetes System überlegen. Diesen möchte ich an dieser Stelle nicht vorgeben, da jeder mit seinem eigenen System am besten zurechtkommt (und in größeren Teams wird man sich ohnehin auf eine gemeinsame Namenskonvention einigen müssen). Grundsätzlich empfehle ich Dir semantisches Markup bzw. das Loslösen von der Idee kryptischer (nur durch Ziffern kodierte) Labelnamen, da Du Dir (und anderen) beim Referenzieren damit keinen gefallen tust! Exemplarisch könnte man so vorgehen:

\section{Einleitung}
\label{sec:einleitung}

\section{Kapitel 1}
\label{sec:kapitel-1}

\subsection{Unterkapitel 1}
\label{subsec:unterkapitel-1}

\subsubsection{Unterunterkapitel 1}
\label{subsubsec:unterunterkapitel-1}

\subsection{Unterkapitel 2}
\label{subsec:unterkapitel-2}

Das Referenzieren eines Labels funktioniert mit dem Befehl \ref{Name des zu referenzierenden Labels}. Dieser Befehl wird einfach innerhalb des Fließtextes aufgerufen. Vor das \ref wird für gewöhnlich eine Tilde ~ geschrieben, um die Referenz sauber an den Text zu binden. Wir füttern unser Beispiel nun mit ein wenig Inhalt:

\section{Einleitung}
\label{sec:einleitung} Dies ist ein kleines Testdokument, in dem die Grundzüge von \LaTeX\ erklärt werden.
Als der Standard in wissenschaftlichen
Publikationen, lohnt es sich besonders im universitären
Umfeld früh damit
anzufangen. Im Vergleich zu anderen Programmen lohnt sich die lange
Einarbeitungsphase zu 100\%, da es sehr viele Vorteile bietet.

\section{Kapitel 1}
\label{sec:kapitel-1} In der Einleitung wurde bereits erwähnt, dass \LaTeX\ viele Vorteil bietet.
In~\ref{subsec:unterkapitel-1} werden wir dieses Thema auch
noch einmal aufgreifen.
Die besagten Vorteile sind unter anderem:

\subsection{Unterkapitel 1}
\label{subsec:unterkapitel-1}

\subsubsection{Unterunterkapitel 1}
\label{subsubsec:unterunterkapitel-1}

\subsection{Unterkapitel 2}
\label{subsec:unterkapitel-2}

Mit dem Befehl \LaTeX wird das \(\LaTeX\)−Logo eingeblendet. Der zusätzliche Backslash am Ende des Befehl weist \(\LaTeX\) an, hinter dem Logo ein Leerzeichen zu lassen. Die Formulierung

In Unterkapitel 1 werden wir dieses Thema auch noch einmal aufgreifen

im \(\TeX\)−Code ist überhaupt nicht dynamisch und kann in der späteren Überarbeitung ganz anders aussehen. Statt nun eine Liste mit allen potentiell zu tätigenden Änderungen zu führen, können wir diese Formulierung durch den Referenz-Befehl ersetzen:

In Kapitel \ref {subsec:unterkapitel-1} werden wir dieses Thema auch noch einmal aufgreifen.

Zusätzlich wurde das eine hierarchische Struktur implizierende Wort Unterkapitel durch Kapitel ersetzt, was bei Änderungen in der Kapitel-Hierarchie zu keinen Komplikationen führt, da die Nummerierung in \(\LaTeX\) diese Strukturierung vornimmt.

Noch einmal der Hinweis: Immer zweimal auf den neben "Schnelles Übersetzen" befindlichen Pfeil klicken. Näheres dazu im nächsten Kapitel.

5. Erstellen eines Inhaltsverzeichnisses

Das Erstellen des Inhaltsverzeichnis ist mit nur einem einzigen Befehl möglich: \tableofcontents. Dieser wird an der gewünschten Stelle (üblicherweise zu dem in Teil 1 zum Abdrucken des Titels verwendeten Befehl \maketitle) eingefügt:

\maketitle \tableofcontents

Achte aber darauf, dass Du zweimal auf den Pfeil links neben dem "Schnelles Übersetzen" drücken musst, da \(\LaTeX\) für das Generieren und Abdrucken des Inhaltsverzeichnisses zwei Durchläufe benötigt:

 

Dies gilt auch für Änderungen im Inhaltsverzeichnis, die sich durch verschobene, gekürzte oder erweiterte Textpassagen ergeben. Tückisch ist dabei, dass die Notwendigkeit eines doppelten Klicks nicht auf Anhieb ersichtlich ist, da \(\LaTeX\) das bereits bestehende (veraltete) Inhaltsverzeichnis nicht löscht, sondern unverändert stehen lässt. Erst mit dem zweiten Klick werden die Seitenzahlen oder Kapitelnummerierungen auf den neuesten Stand gebracht.

 

6. Klickbares Inhaltsverzeichnis

Bestimmt hast du schon PDF-Dokumente gesehen, in denen die Inhaltsverzeichnisse anklickbar waren. Dadurch ist (gerade bei mehrseitigen Werken) eine leichte Navigation zu den einzelnen Kapiteln möglich. Wir haben bereits unser Inhaltsverzeichnis. Viel fehlt nicht mehr. Um es genau zu nehmen sogar nur ein einzufügendes Package, nämlich

\usepackage{hyperref}

Dieses fügen wir in unserer Dokumentvorlage der Übersichtlichkeit wegen hinter dem Kommentar

% Weitere Packages

ein. Klicken wir nun wieder zweimal auf den Pfeil, erscheinen im Texmaker um die einzelnen Kapitel herum ein roter Kasten. Dieser ist im Druck natürlich nicht zu sehen und signalisiert lediglich, dass dieses Textelement klickbar ist.

 

Doch nicht nur das Inhaltsverzeichnis wird klickbar: Auch die mit dem Befehl \ref referenzierten Labels können angeklickt werden:

Dies ist ein weiterer Beweis dafür, dass man unbedingt auf Labels und Referenzen setzen sollte statt alles hart in den Quellcode zu schreiben! \(\LaTeX\) belohnt dieses Verhalten sofort mit einer enormen Arbeitsersparnis.

Um die Links wieder zu entfernen, kann man entweder mit Package-Optionen (diese sind in eckige Klammern gesetzt [ ]) oder (weitaus effizienter): Man lässt einfach das Hyperref-Package weg ;-)

Unsere Dokumentvorlage hat nun folgenden Stand:

% % Dokumentenvorlage
% Autor: F. André Dalwigk
% Veröffentlicht auf www.mathefragen.de
% % ----------------------------------------------------------------------
% Angabe der Dokumentenklasse
\documentclass[a4paper,12pt]{scrartcl}
'% ----------------------------------------------------------------------
% Style-Packages
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
% ----------------------------------------------------------------------
% Weitere Packages
\usepackage{hyperref}
% ---------------------------------------------------------------------- % Definition eigener Direktiven/Befehle % ... % ---------------------------------------------------------------------- % Titel, Untertitel, Autor und Datum festlegen
\title{\LaTeX Tutorial}
\subtitle{Eine kurze Einführung}
\author{André Dalwigk}
\date{\today}
% ----------------------------------------------------------------------
% Dokument beginnen
\begin{document}
\maketitle
\tableofcontents
\section{Einleitung}
\label{sec:einleitung}
Dies ist ein kleines Testdokument, in dem die Grundzüge von \LaTeX\ erklärt werden.
Als der Standard in wissenschaftlichen
Publikationen, lohnt es sich besonders im
universitären Umfeld früh damit
anzufangen. Im Vergleich zu anderen Programmen lohnt
sich die lange
Einarbeitungsphase zu 100\%, da es sehr viele Vorteile bietet.
\section{Kapitel 1}
\label{sec:kapitel-1} In der Einleitung wurde bereits erwähnt,
dass \LaTeX\ viele
Vorteil bietet. In Kapitel~\ ref{subsec:unterkapitel-1}
werden wir dieses Thema auch
noch einmal aufgreifen. Die besagten Vorteile
sind unter anderem:
\subsection{Unterkapitel 1}
\label{subsec:unterkapitel-1}
\subsubsection{Unterunterkapitel 1}
\label{subsubsec:unterunterkapitel-1}
\subsection{Unterkapitel 2}
\label{subsec:unterkapitel-2}

\end{document}

 

 

Community Artikel, geschrieben vor 2 Monate, 2 Wochen
letsrockinformatik, verified
Student, Punkte: 4346
 
Kommentar schreiben Diesen Artikel melden
1 Antwort
0

Sehr gut! :-)


Eine Anmerkung zur Dokumenthierarchie bei verschiedenen Dokumentenklassen. Du benutzt die Dokumentenklasse scrartcl. Von der »Ebene« der Dokumentenklasse her ist das identisch mit der Dokumentenklasse article. In beiden Dokumentenklassen ist die höchste verfügbare Hierarchieebene \section{Überschrift}. Das führt dazu, dass die Gliederung in Deinem Dokument:


\section{Einleitung}
\section{Kapitel 1}
\subsection{Unterkapitel 1}
\subsubsection{Unterunterkapitel 1}
\subsection{Unterkapitel 2}


zu der folgenden Nummerierung führt:


1 Einleitung
2 Kapitel 1
   2.1 Unterkapitel 1
         2.1.1 Unterunterkapitel 1
   2.2 Unterkapitel 2


Alles ist gut. Wörtlich übersetzt heißt »section« allerdings nicht »Kapitel«, sondern »Abschnitt«. Wenn ich jetzt einfach die Dokumentenklasse eine Ebene anhebe, also entweder scrreprt oder report benutze, dann ist die  höchste verfügbare Hierarchieebene \chapter{Überschrift}. Diese befindet sich genau eine Ebene über \section{Überschrift}. Deshalb bekomme ich dann die folgende Nummerierung:


0.1 Einleitung
0.2 Kapitel 1
   0.2.1 Unterkapitel 1
         0.2.1.1 Unterunterkapitel 1
   0.2.2 Unterkapitel 2


Die voangestellte Null (0.x) deutet an, dass es zwar \sections, \subsections und \subsubsections, aber eben kein \chapter im Dokument gibt. Plötzlich fehlt die oberste Ebene. Das bedeutet, die Dokumenthierarchie müsste folgendermaßen umgeschrieben werden:


\chapter{Einleitung}
\chapter{Kapitel 1}
\section{Unterkapitel 1}
\subsection{Unterunterkapitel 1}
\section{Unterkapitel 2}


Wenn ich das tue, bekomme ich in der neuen Dokumentenklasse dieselbe Nummerierung wie in der alten, nämlich:


1 Einleitung
2 Kapitel 1
   2.1 Unterkapitel 1
         2.1.1 Unterunterkapitel 1
   2.2 Unterkapitel 2


An dieser Stelle ist LyX jetzt wirklich einfach. Über Ansicht \(\rightarrow\) Gliederung des Dokuments kann ein Fenster eingeblendet werden, das die Dokumenthierarchie zeigt. In diesem Fenster kann jeder Zweig im Hierarchiebaum um beliebig viele Ebenen ein- oder ausgerückt und auch die Reihenfolge der Zweige geändert werden (Siehe Abbildung 1).



Viele Grüße
jake2042

geantwortet vor 2 Monate, 2 Wochen
jake2042, verified
Sonstiger Berufsstatus, Punkte: 1200
 
Kommentar schreiben Diese Antwort melden