AA_crystal_tkeys_sxc_1341348.jpg

© Tkeys, sxc.hu

Letzter Schliff

PDFs mit Navigation und Links aus LaTeX generieren

12.08.2013
PDF gilt als Standard für plattformunabhängige Dokumente. Mit den LaTeX-Klassen Hyperref und Pdfpages nutzen Sie die Möglichkeiten des Dateiformats gekonnt aus.

Die Unabhängigkeit von einer Plattform gehörte seit jeher zu den Designzielen von LaTeX. Garant dafür war zunächst das TeX-Format DVI; heute markiert PDF den Standard für den Austausch. Mit Pdflatex [1] oder Xelatex [2] erzeugen Sie problemlos Dateien in diesem Format. Um die Möglichkeiten aber richtig auszunutzen, stehen unter LaTeX die beiden Pakete hyperref [3] und pdfpages [4] bereit.

Das Paket hyperref setzt die Metadaten eines Dokuments, erzeugt externe und interne Verweise, legt die Optionen zum Anzeigen fest und erstellt Formularfelder, die Sie bei Bedarf ausfüllen. Sie laden das Paket in der Präambel mit dem Befehl:

\usepackage[Optionen]{hyperref}

Dabei ist es sinnvoll, es als letztes aller Pakete aufzuführen, die Sie einbinden wollen, damit kein anderes Paket die Werte überschreibt, die Sie darüber anpassen. Sie haben die Möglichkeit, die einzelnen in diesem Artikel beschriebenen Optionen des Pakets entweder in eckigen Klammern hinzufügen oder in einem gesonderten Befehl in der Präambel aufzulisten:

\hypersetup{Optionen}

Das Paket pdfpages bietet umfangreiche Möglichkeiten, PDF-Dateien in ein Dokument einzufügen und neu anzuordnen. Sie laden das Paket in der Präambel mit dem Befehl:

\usepackage{pdfpages}

Externe PDF-Dateien fügen Sie über einen eigenen Befehl im Hauptteil an der Stelle ein, an der sie erscheinen sollen.

Metadaten

Metadaten enthalten Informationen über das Dokument, welche die Datei zusätzlich zum eigentlichen Inhalt ergänzen. Zu den Metadaten gehören der Titel, der Autor, die Art des Dokuments, Schlagwörter, das Programm, mit dem Sie die PDF-Datei erstellt haben, sowie das Datum des Erstellens und letzten Änderns. Das Paket hyperref bietet Ihnen die Möglichkeit, diese Metadaten in ein Dokument einzufügen.

Listing 1 zeigt einen exemplarischen Block mit solchen Metadaten. Die wichtigsten Metadaten sind Autor, Titel, Art des Dokuments und Schlagwörter (Zeilen 2 bis 5). Für Felder, die Sie nicht verwenden möchten, sparen Sie die entsprechende Option einfach aus. Die übrigen Felder füllt LaTeX automatisch aus, wenn Sie keine eigenen Werte eintragen (Abbildung 1).

Abbildung 1: Metadaten enthalten zusätzliche Informationen über eine Datei. Sie sehen diese in manchen Fällen im Dateimanager oder – je nach Software – auch PDF-Betrachter.

Listing 1

\hypersetup{
pdfauthor={Edwin A. Abbott},
pdftitle={Flatland. A Romance of Many Dimensions},
pdfsubject={Roman},
pdfkeywords={Literatur, Roman, Science-Fiction},
pdfcreator={LaTeX mit den Paketen hyperref und pdfpages},
pdfproducer={pdfLaTeX},
pdfcreationdate={20130101000000},
pdfmoddate={20130228142857},
% ... weitere Optionen des hyperref-Pakets ...
}

Im Feld Creator erscheint standardmäßig der Eintrag LaTeX with hyperref package, wenn nicht ein anderes Paket dieses Feld mit einem anderen Wert überschreibt. Bei Bedarf weisen Sie dem Feld aber einen anderen Wert zu (Zeile 6). Im Feld Producer speichert LaTeX standardmäßig die LaTeX-Version, die Sie verwenden. Alternativ verwenden Sie auch hier einen eigenen Wert (Zeile 7).

Ähnliches gilt für die Datumsangaben zum Erstellen des Dokuments sowie zur letzten Änderung (Zeilen 8 und 9): Geben Sie keine eigenen Werte für diese Felder an, speichert LaTeX das tatsächliche Erstelldatum. Das Änderungsdatum bleibt standardmäßig leer, da LaTeX bei jedem Lauf die PDF-Datei neu anlegt und nicht eine bestehende ändert.

Wollen Sie eigene Werte für Erstell- oder Änderungsdatum angeben, tragen Sie dazu Datum und Uhrzeit als eine vierzehnstellige Zahl ohne Trennzeichen in der Reihenfolge Jahr, Monat, Tag, Stunde, Minute, Sekunde in die geschweifte Klammer der entsprechenden Option ein. Dabei trägt die Software diese Daten nur in den Metadaten der PDF-Datei ein; sie erscheinen nicht als Erstell- und Änderungsdatum der Datei im Dateimanager.

Verweise

PDF unterstützt, ähnlich zu einer Webseite, die Integration von Links, die zu einem Sprungziel innerhalb des Dokuments oder zu einer URL außerhalb weiterleiten. Solche Verweise erzeugen Sie bei Bedarf mit dem Paket hyperref. Am einfachsten fügen Sie über \url{URL} einen Verweis ein.

In die geschweifte Klammer tragen Sie die vollständige Adresse inklusive Protokoll ein. Bei Internetseiten verwenden Sie dazu in der Regel ein führendes http://, bei E-Mail-Adressen ein führendes mailto:. Das Verweisziel erscheint als Text im Dokument in Schrift mit fester Breite.

Im Fließtext stört das führende Protokoll aber den Lesefluss. Unter Umständen bietet es sich an, bei einigen Domains das weit verbreitete www. wegzulassen. Bei Mail-Adressen wirkt das führende mailto: im Fließtext ebenfalls störend und verwirrend. Mit dem Befehl folgenden Befehl geben Sie dem eigentlichen Verweisziel noch einen beschreibenden Text mit auf den Weg:

\href{Verweisziel}{Text}

Verweise innerhalb des Dokuments setzen Sie in zwei Schritten. Zunächst definieren Sie das Sprungziel, auf den Sie einen Link setzen möchten. Dazu nutzen Sie den folgenden Befehl:

\hypertarget{Sprungzielname}{Text}

In die erste geschweifte Klammer tragen Sie einen Namen für das Sprungziel ein, das Sie definieren wollen, und in die zweite geschweifte Klammer den Text, den der Link umfasst.

Als zweiten Schritt geben Sie einen anklickbaren Link zu dem definierten Sprungziel aus. In die erste geschweifte Klammer tragen Sie den Namen ein, den Sie für das Sprungziel vergeben haben, und in die zweite geschweifte Klammer den Text, den Sie verlinken möchten:

\hyperlink{Sprungzielname}{Text}

Mit dem Befehl aus Listing 2, Zeile 1, erstellen Sie ein Sprungziel zu Objekten wie Tabellen, Abbildungen, Gleichungen oder ähnlichem, wobei das Sprungziel auf das Objekt verweist innerhalb dessen Umgebung der Befehl steht. Steht der Befehl in keiner speziellen Umgebung, korrespondiert er mit dem Kapitel oder dem Abschnitt, in dem er steht. Sie verweisen auf ein solches Label mit dem Befehl aus Listing 2, Zeile 2.

Als Verweistext gibt LaTeX die Nummer der Tabelle, Abbildung, Gleichung beziehungsweise des Kapitels oder des Abschnitts aus. Wollen Sie stattdessen die Seitenzahl ausgeben, nutzen Sie den Befehl aus Listing 2, Zeile 3.

Diese beiden Befehle verlinken nur die eigentliche Zahl. Wollen Sie zusätzlich zur Zahl auch die Bezeichnung, also das Wort "Kapitel", "Abschnitt", "Tabelle", "Abbildung", "Gleichung", "Seite" oder ähnliches verlinken, stehen dazu die Befehle in Zeile 4 beziehungsweise Zeile 5 bereit.

Listing 2

\label{Sprungzielname}
\ref{Sprungzielname}
\pageref{Sprungzielname}
\autoref{Sprungzielname}
\autopageref{Sprungzielname}

Standardmäßig verwendet LaTeX dabei englische Bezeichnungen, auch wenn Sie in der Präambel Deutsch als Sprache eingestellt haben. Das Paket babel stellt einen Befehl bereit, um die Bezeichnungen neu zu definieren.

Listing 3 enthält einen exemplarischen Block mit den wichtigsten Bezeichnungen. Zunächst laden Sie das Paket babel (Zeile 1) mit Deutsch in neuer Rechtschreibung (ngerman). Alte Rechtschreibung stellen Sie über die Option german in den eckigen Klammern ein.

Es folgt der Befehlsblock, mit dem Sie die Bezeichnungen umdefinieren (Zeilen 2 bis 13). Haben Sie alte Rechtschreibung ausgewählt, heißt der Befehl in Zeile 2 \extrasgerman. Bestimmte interne Verweise setzt LaTeX automatisch und verlinkt beispielsweise Fußnoten und die Einträge im Inhaltsverzeichnis automatisch.

Listing 3

\usepackage[ngerman]{babel}
\addto\extrasngerman{
\def\appendixautorefname{Anhang}
\def\chapterautorefname{Kapitel}
\def\equationautorefname{Gleichung}
\def\figureautorefname{Abbildung}
\def\Hfootnoteautorefname{Fußnote}
\def\pageautorefname{Seite}
\def\partautorefname{Teil}
\def\sectionautorefname{Abschnitt}
\def\subsectionautorefname{Unterabschnitt}
\def\tableautorefname{Tabelle}
}

Standardmäßig umrandet LaTeX Verweise, wobei die Software für externe und interne Links verschiedene Farben nutzt. Möchten Sie dies beibehalten und nur die Farben des Rands ändern, nutzen Sie dazu als Option oder im Befehl \hypersetup in der Präambel das Kommando aus Listing 4, Zeile 1 für externe Verweise und die Option aus Zeile 2 für interne Verweise. Möchten Sie beide Arten von Verweisen in derselben Farben umranden, legen Sie die Farbe einheitlich fest (Zeile 3).

Listing 4

urlbordercolor={Farbe}
linkbordercolor={Farbe}
allbordercolors={Farbe}

Die Farbe geben Sie als drei Zahlen zwischen 0 und 1 durch ein Leerzeichen getrennt im RGB-Schema an [5]. So definieren Sie die Farbe Blau mit 0 0 1 oder die Farbe Braun mit 0.5 0.25 0.

Darüber können Sie das Umranden der Verweise abschalten und stattdessen deren Text in einer anderen Farbe darstellen. Dazu dient die Option colorlinks=true. Hier haben Sie ebenfalls die Möglichkeit, die Farben der Verweise zu ändern. Dazu steht die Option aus Listing 5, Zeile 1 für Verweise mit URLs, die aus Zeile 2 für interne Verweise, für die einheitliche Darstellung externer und interner Verweise bereit.

Listing 5

urlcolor={Farbe}
linkcolor={Farbe}
allcolors={Farbe}

Anders als bei Umrandungen geben Sie hier den Namen der Farbe an, die Sie auswählen möchten. Vordefiniert sind die Farben Schwarz (black), Weiß (white), Rot (red), Blau (blue), Grün (green), Cyan (cyan), Magenta (magenta) und Gelb (yellow). Möchten Sie andere Farben verwenden, definieren Sie diese zunächst mit dem color-Paket [6].

Abbildung 2: Standardmäßig kennzeichnet LaTeX Verweise durch einen farbigen Rand, wobei die Software zwischen externen und internen Verweisen durch verschiedene Farben unterscheidet. Alternativ entfernen Sie den Rand und färben stattdessen den Text ein.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 11/2014: VIDEOS BEARBEITEN

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Artikelsuche
Erwin Ruitenberg, 09.10.2014 07:51, 1 Antworten
Ich habe seit einige Jahre ein Dugisub LinuxUser. Dann weiß ich das irgendwann ein bestimmtes Art...
Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 6 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...