Innere Werte
Werkzeuge für PDF und Postscript (Teil 7)
LaTeX, Pdflatex, Lyx
Auch Textsatz-Experten, die mit einer TeX-Spielart arbeiten, können ihre Dokumente mit Zusatzinformationen anreichern. Hier gibt es sogar zwei Varianten, zwischen denen man wählen kann: Die erste basiert auf dem LaTeX-Paket hyperref, die zweite auf dem direkten Einfügen von PDF-Code in LaTeX-Dokumente.
Für Variante 1 ergänzen Sie die Präambel des LaTeX-Dokuments um einige Zeilen. Zunächst binden Sie das Paket hyperref ein (Abbildung 5, Zeile 1), anschließend legen Sie die Dokumenteninformationen (Zeile 3 bis 5) fest: den Autor (pdfauthor), die Schlüsselworte (pdfkeywords) und den Dokumententitel (pdftitle). Die jeweiligen Werte tragen Sie in geschweiften Klammern ein. Wie auch in Programmiersprachen üblich, trennen Kommas die einzelnen Zuordnungen.
Diese Zuweisungen packen Sie in den Container \hypersetup (Abbildung 5, Zeilen 2 und 6) und übersetzen das LaTeX-File dann entweder mit pdflatex oder der Kombination aus latex und dvipdf. Eine nachfolgende Auswertung mittels pdfinfo zeigt die korrekt befüllten Meta-Tags (Abbildung 6).
Variante 2 basiert darauf, in das LaTeX-File native PDF-Anweisungen einzutragen. Dazu dient der Container \pdfinfo. In Abbildung 7 sehen Sie als Zusatzinformationen Autor (/Author) und Titel (/Title) sowie das Datum der Erzeugung (/CreationDate), das Thema (/Subject) und die Schlüsselworte (/Keywords). Die jeweiligen Werte folgen nach den Meta-Tag-Bezeichnern in runden Klammern.
Der Wert für das Datum der Erzeugung folgt dem Schema JJJJMMTTHHMMSS, wobei J dem Jahr entspricht, M dem Monat, T dem Tag sowie H, M und S den Stunden, Minuten und Sekunden. Das Dokument aus Abbildung 7 ist folglich am 14. Dezember 2009 um 16:00 Uhr (20091214160000) entstanden.
Nach der Variante 2 bestückte Dokumente können Sie nur mit pdflatex nach PDF übersetzen, da Sie ja direkt PDF-Code eingefügt haben. Werten Sie die erzeugte PDF-Datei mit pdfinfo aus, erhalten Sie eine Ausgabe wie in Abbildung 8.
Problemfall Docbook
Bei Docbook handelt es sich um einen XML-Dialekt zum Beschreiben von Dokumentinhalten ([10],[11]). Aus einem Docbook-File lassen sich alle benötigten Formate zur Dokumentation einer Software erzeugen – auch in Buchform. Als Ausgabeformate unterstützt Docbook bislang HTML, LaTeX, ASCII-Text, Man-Pages, RTF sowie natürlich Postscript und PDF. Docbook kommt unter anderem beim KDE-Projekt zum Einsatz, wo die Entwickler damit die Programmdokumentation erstellen.
Docbook bringt eine Reihe von Dokumentenfeldern für Metatags mit. Dazu zählen beispielsweise articleinfo und bookinfo (Kennzeichnung des Informationsblocks des Dokuments), darunter author (Autor), copyright (Informationen zum Copyright und Urheberrecht) sowie title und subtitle (Haupt- und Untertitel). Für ein Buch sieht die XML-Struktur so aus wie in Abbildung 9 zu sehen.
Ein Docbook-File wandeln Sie mit docbook2ps nach Postscript und mit docbook2pdf in ein PDF-File um. Die Tools basieren auf der Scriptsprache (Open)Jade und stehen auch für die anderen, oben erwähnten Ausgabeformate zur Verfügung. Beide Werkzeuge benötigen das umzuwandelnde Docbook-File als Argument:
$ docbook2ps book.docbook $ docbook2pdf book.docbook
Dabei landen nun zwar die Meta-Tags selbst im PDF, nicht jedoch die Werte, mit denen Sie sie belegt haben.
Daher versuchten wir im Test, hier auf eine andere Methode auszuweichen: die Übersetzung mittels XSL-FO ("Extensible Stylesheet Language – Formatting Objects" [12],[13]). Dem liegt die Idee zugrunde, den XML-Dialekt Docbook unter Verwendung einer Stilvorlage in ein PDF zu übertragen. Diese Vorgehen setzt die beiden Werkzeuge xsltproc[14] und fop[15] aus den gleichnamigen Paketen voraus.
Sie können sich die Aufgabe erleichtern, indem Sie eine vorhandene Stilvorlage nutzen, die Docbook von Hause aus mitbringt und unter /usr/share/xml/docbook ablegt. Der Aufruf erfolgt in zwei Stufen – als Erstes erzeugen Sie mithilfe von Xsltproc und der Stilvorlage die Formatieranweisungen in einer FO-Datei. Die wiederum verwendet Fop, um damit das PDF-Dokument zu generieren (Listing 1)
$ xsltproc /usr/share/xml/docbook/stylesheet/nwalsh/fo/docbook.xsl book.docbook > book.fo $ fop book.fo -pdf book2.pdf
Das Ergebnis fällt aber sehr ernüchternd aus. Nicht nur, dass weniger Meta-Tags im PDF landen, als bei der Erzeugung mittels Docbook2pdf: Es werden auch hier keinerlei Informationen im PDF eingetragen.
Sollten Sie einen Trick kennen, um docbook, xsltproc und fop zum gewünschten Handeln zu überreden, bittet der Autor um einen entsprechenden Hinweis. Es würde die Nützlichkeit dieser Umwandlungsvariante enorm steigern.



