Einführung in Docbook
Docbook XSL
Für Docbook gibt es eine umfangreiche Sammlung von Stylesheets für die Herstellung von verschiedenen Ausgabeformaten mittels XSL-Transformationen (XSLT): Docbook XSL. Sie sind ebenfalls weit entwickelt, sehr vielseitig und können neben den Schemata als zweite Hälfte von Docbook angesehen werden. Im Paket docbook-xsl-ns
ist für Ubuntu 12.04 eine aktuelle, für Docbook 5 vorgesehene Version 1.76 (letzte Veröffentlichung: 1.78) der Stylesheets bequem verfügbar. Diese befinden sich nach der Installation in verschiedenen Unterverzeichnissen von /usr/share/xml/docbook/stylesheet/docbook-xsl-ns. Brandaktuelle Snapshots von Docbook XSL werden regelmäßig gepackt. Mit Hilfe eines der üblichen XSLT-Prozessoren wie Saxon, Xalan, oder Xsltproc können verschiedene Ausgabeformate wie HTML/XHTML, EPUB oder XSL-FO (als Vorstufe u.a. für PDF-Dateien) aus einem Docbook-Master erzeugt werden. Die Stylesheets liegen im XSLT-Format 1.0 vor, und die XSLT 2.0-Version davon ist bisher rein experimentell. Die Stylesheets sind gut dokumentiert; Bob Staytons »Docbook XSL – The definitive guide« (der auch als generelle Einführung gelesen werden kann) ist frei im Netz verfügbar. Dies gilt auch für Norman Walshs »Reference Documentation«. Für den Prozessor Saxon (Paket libsaxon-java
) gibt es für die Verarbeitung von Docbook spezielle Erweiterungen im Paket docbook-xsl-saxon
.
PDF erzeugen
Um mit Docbook eine PDF-Datei zu erzeugen, muss nun zunächst aus der Masterdatei mit Hilfe des dafür gedachten Stylesheets eine XSL-FO-Datei hergestellt werden:
saxon-xslt -o foo.fo foo.xml /usr/share/xml/docbook/stylesheet/docbook-xsl-ns/fo/docbook.xsl
Danach kann die
.fo
-Datei mit einem FO-Formatierer wie FOP in die gewünschte PDF-Datei umgewandelt werden:fop foo.fo foo.pdf
Es empfiehlt sich, für die verschiedenen oft ausgeführten Kommandozeilen-Operationen ein Shellscript oder ein Makefile für die Benutzung mit GNU Make anzufertigen. Mit dem Tool Dblatex können aus Docbook PDF-Dateien mit Hilfe von LaTeX auch ohne Docbook XSL erzeugt werden; dazu müssen allerdings umfangreiche Abhängigkeiten erfüllt sein bzw. mitgezogen werden.
Parameter manipulieren
Die Voreinstellungen der XSL-Stylesheets lassen sich grundsätzlich auf zwei Arten manipulieren: indem bei Aufruf des XSLT-Prozessoren Parameter an diesen übergeben werden und/oder durch eine separate Anpassungsdatei. Die Anpassungsdatei docbook_test.xsl verändert für die XSL-FO-Ausgabe die Standardwerte für Papiergröße (paper.type) von US Letter auf DIN A4, schaltet die automatische Abschnittszählung (section.autolabel
) ein, ändert bei den obersten Abschnittsüberschriften (section.title.level1.properties) die Schriftgröße auf das 1,5-Fache der Brotschrift, und erhöht für diese den oberen Abstand auf 15 pt.
Es handelt sich dabei selbst um eine konforme XSLT-Datei, in der alle Elemente dem dafür vorgesehenen Namensraum xsl
zugeordnet sind.
Dem XSLT-Prozessor kann dieses selbsterstellte Stylesheet dann anstatt der originalen Datei docbook-xsl-ns/fo/docbook.xsl angegeben werden, die von dieser mit xsl:import
reimportiert wird. Auf diese Art und Weise lassen sich die Ausgabedateien bis in alle Einzelheiten kontrollieren.
Das automatisch generierte Inhaltsverzeichnis lässt sich übrigens verhindern, indem man dem Paramater generate.toc
die Einstellung article nop
übergibt. Eine sehr reichhaltige Sammlung von Docbook-Hacks ist Thomas Schraitles DoCookBook-Projekt.
Autoreninformation
Daniel Stender (Webseite) hat einen Magister in Indologie, ist Debian-Maintainer und entwickelt im Bereich Digital humanities.
Dieser Artikel ist in freiesMagazin 03/2013 (ISSN 1867-7991) erschienen. Veröffentlichung mit freundlicher Genehmigung.