Mit pdflatex bessere PDF-Dateien erzeugen

Aus LinuxUser 04/2005

Mit pdflatex bessere PDF-Dateien erzeugen

PDF statt TeX-DVI

Profi-Textsatz ist und bleibt eine Domäne von LaTeX. Soll das Ausgabeformat PDF sein, liefert pdflatex die besten Ergebnisse.

Kleinere Textdokumente erstellt man bequem mit OpenOffice, doch für umfangreichere Arbeiten greifen viele Linux-Anwender bevorzugt auf LaTeX zurück, weil sie damit viele Probleme leichter lösen und Aufgaben automatisieren können, die mit einem traditionellen Office-Programm manuelles Nacharbeiten verlangen.

Speziell für das Dateiformat PDF gibt es mit pdflatex eine LaTeX-Ergänzung, welche die Eigenheiten dieses Formats ausnutzt. So unterstützt pdflatex unter anderem Querverweise innerhalb des Dokuments (z. B. zu Literaturangaben oder in andere Kapitel), das ist besonders beim Inhaltsverzeichnis nützlich, aus dem man im Acrobat Reader direkt zu allen Kapiteln springen kann. Auch die PDF-typische Gliederung, die im Acrobat Reader schnellen Zugriff auf Textstellen erlaubt, und Thumbnails, die kleine Vorschaubilder der Seiten darstellen, erzeugt pdflatex (mehr oder weniger) selbständig.

Dieser Artikel geht nur auf die Besonderheiten von pdflatex ein – eine allgemeine LaTeX-Einführung finden Sie in zwei älteren Artikeln, die bereits online sind [1,2], und im letzten Monat hat LinuxUser den komfortablen TeX-Editor Kile vorgestellt [3].

Von LaTeX zu pdflatex

Wer LaTeX bereits kennt, hat beim Umstieg auf pdflatex keine Probleme. Installiert ist das Programm eh, weil es Teil der LaTeX-Pakete ist. In vielen Fällen können Sie einfach den normalen Aufruf

latex datei.tex

durch die PDF-Variante

pdflatex datei.tex

ersetzen, um eine PDF-Datei datei.pdf zu erzeugen. Damit verzichten Sie aber auf die Besonderheiten, die pdflatex bietet. Will man es richtig machen, sind einige Änderungen notwendig.

Binden Sie Bilder mit \includegraphics ein, dann sollten Sie das Paket graphicx (das diesen Befehl zur Verfügung stellt) mit der Option pdftex laden: Aus

\usepackage{graphicx}

wird also

\usepackage[pdftex]{graphicx}

Außerdem sollten Sie das Paket times verwenden, wenn die erzeugte PDF-Datei später am Bildschirm betrachtet wird: Die Standard-TeX-Schriften sind zwar ästhetischer, aber nur für den Ausdruck optimal.

Schließlich laden Sie noch das Paket thumbpdf, um später die Möglichkeit zu haben, Ihre PDF-Datei mit kleinen Thumbnails auszustatten, die beim Navigieren in größeren Dokumenten sehr hilfreich sind.

Wollen Sie Links auf Web-Seiten integrieren, ergänzen Sie das Paket hyperref mit dem Befehl

\usepackage[pdftex]{hyperref}

Ein typischer Vorspann der TeX-Datei sieht danach aus wie in Listing 1.

Bilder einbinden

Auch mit pdflatex binden Sie Grafiken über

\includegraphics{bild}

ein, aber der Befehl zeigt sich hier flexibler als im Standard-LaTeX: Neben PDF-Grafiken akzeptiert er auch Bilder in gängigen Formaten wie JPG und PNG. Verzichten Sie auf die Angabe einer Dateiendung, sucht pdflatex selbst nach passenden Dateien. Das EPS-Format mag die PDF-Version allerdings nicht: Eingebundene EPS-Grafiken müssen Sie daher ins PDF-Format konvertieren. Bei sehr großen Projekten lohnt es sich, diesen Schritt zu automatisieren, zum Beispiel mit dem Skript in Kasten 1.

Ein kleines Beispiel

Listing 1 enthält eine kleine Beispiel-TeX-Datei, mit der Sie die meisten Features von pdflatex ausprobieren können. Um sie zu übersetzen, geben Sie die folgenden Befehle ein:

pdflatex simpel
pdflatex simpel
thumbpdf simpel
pdflatex simpel

Die ersten zwei Durchläufe sind wie beim regulären LaTeX notwendig, um Verweise auf andere Stellen im Text (z. B. auf Unterkapitel und Abbildungen) aufzulösen. Der Aufruf von thumbpdf ist hingegen neu: Aus der bis dahin erstellten PDF-Datei erzeugt das Tool kleine Thumbnail-Bilder, die pdflatex beim letzten Aufruf einbaut.

Listing 1

Mini-Dokument

\documentclass[german,twoside,a4paper,11pt]{article}
\usepackage{isolatin1,ngerman}  % neue deutsche Rechtschr.
\usepackage[pdftex]{graphicx}   % PDF Support
\usepackage[pdftex]{hyperref}   % Hyperlinks
\usepackage{times}              % Font fuer PDF besser
\usepackage{thumbpdf}           % PDF Thumbnails erstellen
\begin{document}
\parindent0pt                   % Einzug der ersten Zeile eines Absatz
\title{Kleine LinuxUser-Demo}
\author{Hans-Georg Eßer}
\date{28.02.2005}
\maketitle                      % Titel
\tableofcontents                % Inhaltsverzeichnis
\section{Einleitung}
In diesem Dokument machen wir nicht viel. Zum Einstieg gibt es
erst mal das LinuxUser-Logo (Abbildung \ref{abb:userlogo}).
\begin{figure}[htbp]
  \begin{center}
    \includegraphics[width=8cm]{user-logo}
    \leavevmode
    \caption{Das LinuxUser-Logo}
    \label{abb:userlogo}
  \end{center}
\end{figure}
\subsection{Unterabschnittig}
Ein kleiner Unterabschnitt ist oft hilfreich, darum wurde hier
einer eingefügt.
Das war ein guter Anfang, und deswegen soll direkt ein weiterer
Abschnitt folgen.
\section{Mehr Spaß mit pdflatex}
An dieser Stelle ist auch schon Schluss, so bleibt alles auf
einer Seite. Mehr Informatinen auf unserer Web-Seite,
\href{http://www.linux-user.de/}{\tt http://www.linux-user.de/}.
\end{document}

Abbildung 1 zeigt das Ergebnis in einem Acrobat-Reader-Fenster: Sie sehen hier zwei Arten von Links, rot umrandete Links sind intern und verweisen auf Bilder, Fußnoten oder andere Kapitel; die blau umrandeten Links sind extern – im Beispiel ist es ein Link auf unsere Web-Seite. In Abbildung 2 sind die Thumbnails (eines größeren Dokuments mit mehreren Seiten) zu sehen, die der Aufruf von thumbpdf erzeugt hat.

Abbildung 1: Die von "pdflatex" erzeugte PDF-Datei enthält zwei Arten von Links.

Abbildung 1: Die von “pdflatex” erzeugte PDF-Datei enthält zwei Arten von Links.

Abbildung 2: In großen Dokumenten findet man sich schneller zurecht, wenn der Acrobat Reader Thumbnails anzeigt.

Abbildung 2: In großen Dokumenten findet man sich schneller zurecht, wenn der Acrobat Reader Thumbnails anzeigt.

Metadaten

Über den Menüpunkt File / Document Properties / Summary zeigt der Acrobat Reader Dokumentinformationen wie Titel und Autor an – diese Felder sind standardmäßig leer, selbst wenn man die LaTeX-Befehle \title und \author verwendet. In vielen pdflatex-Dokumentationen wird der Befehl \pdfinfo vorgestellt, mit dem man Autor, Titel und Stichworte setzen kann – leider verarbeitet der Befehl keine Umlaute. Besser ist es, \hypersetup zu verwenden:

\hypersetup{
  pdftitle={Kleine LinuxUser-Demo},
  pdfauthor={Hans-Georg Eßer},
  pdfkeywords={Demo Test PDF LaTeX}
}

Das Ergebnis der Mühe sehen Sie im Summary-Fenster des Acrobat Readers (Abbildung 3).

Abbildung 3: Dank "hypersetup" tauchen im Summary-Fenster Autor, Titel und Schlagworte auf.

Abbildung 3: Dank “hypersetup” tauchen im Summary-Fenster Autor, Titel und Schlagworte auf.

latex und pdflatex

Nach den Anpassungen an pdflatex hat das normale latex Schwierigkeiten mit dem Dokument – unter anderem, weil es die pdftex-Optionen für die Pakete graphicx und hyperref nicht mag. Wollen Sie ein größeres Dokument so pflegen, dass Sie stets zwischen Standard-LaTeX und der PDF-Variante wählen können, erstellen Sie einfach zwei kleine Dateien, die die Unterschiede enthalten und den Rest des Dokuments über \input und \include einlesen. Für die PDF-Variante enthält dann simpel-pdftex.tex nur die Zeilen

\documentclass […]
\usepackage[pdftex]{graphicx}
\usepackage[pdftex]{hyperref}
\input{simpel-header}
\hypersetup{pdftitle={…}, …
\begin{document}
  \include{simpel-hauptteil}
\end{document}

und in simpel-tex.tex stehen die für Standard-LaTeX angepassten Varianten:

\documentclass […]
\usepackage{graphicx}
\usepackage{hyperref}
\input{simpel-header}
\begin{document}
  \include{simpel-hauptteil}
\end{document}

Weitere Befehle aus dem Header (dem Text vor \begin{document}) stehen in der Datei simpel-header.tex, die von beiden Dateien eingelesen wird, und der ganze Hauptteil kommt in die Datei simpel-hauptteil.tex. Jetzt müssen Sie nur noch dafür sorgen, dass alle \includegraphics-Aufrufe Dateinamen ohne Endung verwenden – dann sucht sich TeX beim latex– oder pdflatex-Aufruf jeweils die passende Datei (z. B. EPS für LaTeX und PNG für die PDF-Variante) heraus. LaTeX rufen Sie in diesem Beispiel mit

latex simpel-tex.tex

auf, und für pdflatex verwenden Sie die andere Datei:

pdflatex simpel-pdftex.tex

Präsentationen

Wenn Sie LaTeX nutzen, um Präsentationen zu erstellen, werden Sie sich über das Spezialkommando \Acrobatmenu freuen: Damit erzeugen Sie Links, die Menüpunkte des Acrobat Readers aufrufen. So bauen Sie schnell eine Seitennavigation in Ihr Dokument ein. Die nötigen Befehle sind

\Acrobatmenu{PrevPage}{Zur"\uck}
\Acrobatmenu{NextPage}{Vor}

und können beispielsweise in der Kopf- oder Fußzeile platziert werden. (Umlaute akzeptiert dieser Befehl nicht; sie müssen sie in der “alten” TeX-Notation mit Backslash und Anführungszeichen schreiben.)

Wer will, kann den Acrobat Reader sogar per Link im Dokument schließen; das geht mit dem Befehl \Acrobatmenu{Close}{Beenden}. Für die optimale Darstellung schalten Sie den PDF-Betrachter mit [Strg-L] in den Vollbildmodus.

Abbildung 4: Eine mit "pdflatex" erstellte PDF-Präsentation mit aktiviertem Link zur vorherigen Seite.

Abbildung 4: Eine mit “pdflatex” erstellte PDF-Präsentation mit aktiviertem Link zur vorherigen Seite.

Fazit

pdflatex erweitert die Möglichkeiten, die LaTeX schon in der Standardversion bietet, um spezielle PDF-Features, mit denen Sie professionelle PDF-Dokumente für die Bildschirmausgabe erzeugen.

Soll ein Dokument nur gedruckt werden, ist auch der herkömmliche Weg über latex, dvips und ps2pdf möglich. (hge)

Kasten 1: Alte LaTeX-Projekte konvertieren

Wenn Sie bereits ein größeres Dokument mit mehreren TeX-Dateien erstellt haben und dieses nun mit pdflatex bearbeiten wollen, stört eventuell die Tatsache, dass Sie keine Grafiken im EPS-Format (Encapsulated Postscript) verwenden können. Das folgende Skript tex2pdftex.sh konvertiert EPS- in PDF-Grafiken und passt die TeX-Dateien an.

Bevor Sie das Skript verwenden, sollten Sie das gesamte TeX-Projektverzeichnis in ein neues Verzeichnis kopieren. Das Skript legt aber auch von jeder bearbeiteten Datei eine Sicherheitskopie Datei.orig an, so dass Sie zur Not die Ursprungsfassung wiederherstellen können.

Rufen Sie tex2pdftex.sh im obersten Verzeichnis auf, so dass sich alle TeX-Dateien und alle EPS-Grafiken in diesem oder in darunter liegenden Verzeichnissen befinden.

#!/bin/sh
# tex2pdftex.sh konvertiert LaTeX- in pdflatex-Projekte
echo 'WARNUNG!'
echo 'Konvertiere ins PDFLatex-Format'
read -p "[Strg-C] für Abbruch: "
echo Konvertiere EPS-Dateien…
for i in `find . -name "*.eps"`; do
  echo $i
  ps2pdf -dSubsetFonts=true -dEmbedAllFonts=true \
     -dAutoFilterColorImages=false -dAutoFilterGrayImages=false \
     -dColorImageFilter=/FlateEncode -dGrayImageFilter=/FlateEncode \
     -dModoImageFilter=/FlateEncode -r1200x1200 \
     -dPDFSETTINGS=/prepress $i `echo $i|sed -e 's/eps$/pdf/'`
done
echo ""
echo Konvertiere TEX-Dateien…
for i in `find . -name "*.tex"`; do
  echo $i
  mv $i $i.orig
  sed -e 's/includegraphics\(.*\)\.eps}/includegraphics\1.pdf}/g' < $i.orig > $i
done

Der sehr lange Aufruf von ps2pdf führt dazu, dass die sonst übliche Qualitätsverschlechterung ausbleibt. Testen Sie das ruhig manuell, indem Sie eine EPS-Datei (die aus einem Screenshot erzeugt wurde) mit

ps2pdf datei.eps datei.pdf

ohne diese Optionen konvertieren. In der so erzeugten PDF-Datei finden sich Bildfehler, die an JPEG-Artefakte erinnern.

Nach dem Aufruf des Skripts müssen Sie noch manuell in der Hauptdatei den Vorspann ändern und die PDF-Optionen eintragen.

Infos

[1] LaTeX-Workshop, Teil 1: Heike Jurzik, “Gutenberg am Rechner”, LinuxUser 09/2002, S. 43 http://www.linux-user.de/ausgabe/2002/09/043-latex/

[2] LaTeX-Workshop, Teil 2: Heike Jurzik, “LaTeX im Umbruch”, LinuxUser 11/2002, S. 46, http://www.linux-user.de/ausgabe/2002/11/046-latex2/

[3] LaTeX-Editor Kile: Daniel Molkentin, “Einfach losTeXten”, LinuxUser 03/2005, S. 60, http://www.linux-user.de/ausgabe/2005/03/060-kile/

LinuxUser 04/2005 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben