Open Source im professionellen Einsatz
Linux-Magazin 09/2011
682

Dbtoepub

Autoren technischer Dokumente verwenden häufig Docbook als Quellformat, das sich mit Hilfe der freien Stylesheet-Sammlung Docbook XSL [5] in eine Vielzahl von Formaten transformieren lässt. Das mitgelieferte Kommandozeilen-Tool »dbtoepub« wendet das Epub-Modul aus Docbook XSL auf Eingabedateien an und packt die Ergebnisse gemäß Standard in ein Zip-Archiv mit der Datei-Endung ».epub« . Der Aufruf des Tools verweist mittels »--stylesheet« auf die gewünschte XSL-Datei (Listing 1).

Listing 1

Epub mit dbtoepub erzeugen

01 $ dbtoepub --output probe-db5.epub --stylesheet /usr/share/xml/docbook/stylesheet/docbook-xsl/epub/docbook.xsl probe-db5.xml

Mit Dbtoepub lassen sich eigene CSS-Regeln und Schriftarten ins Zieldokument einbinden. Der Epub-Standard verlangt nach Möglichkeit Open-Type-Fonts (OTF). Hier bietet sich eine Open-Source-Schriftfamilie wie Linux Libertine an [6]. Das Einbinden der Schriftarten in das XHTML-Dokument erfolgt über CSS-Regeln in der Datei »styles.css« (Listing 2). Der Anwender kann auch mehrere Schriftartdateien einbinden. Dazu wiederholt er den Kommandozeilenschalter »--font« (Listing 3) und setzt zusätzliche CSS-Regeln in »styles.css« .

Listing 3

Schriftart einbinden

01 $ dbtoepub --output probe-db5.epub --font linlib/LinLibertine_DR.otf --css styles.css --stylesheet /usr/share/xml/docbook/stylesheet/docbook-xsl/epub/docbook.xsl probe-db5.xml

Listing 2

styles.css

01 body {
02   font-family: Libertine;
03   /* font-weight, font-style
04      normal als Default */
05 }
06 @font-face {
07   font-family: Libertine;
08   font-weight: normal;
09   font-style: normal;
10   src: url(LinLibertine_DR.otf)
11 }

Die Epub-Erzeugung mittels Docbook XSL lässt sich durch einen so genannten Customization Layer anpassen. Dazu erstellt der Anwender ein XSL-Stylesheet, das zunächst das vorgefertigte Stylesheet für die Erzeugung von Epubs einbindet und dann Teile darin überschreibt. Wie das geht, zeigt exemplarisch Listing 4, das den Parameter »epub.cover.linear« auf 1 setzt, um das Umschlagbild am Anfang statt am Ende des generierten Epub sichtbar zu machen.

Listing 4

Customization Layer

01 <?xml version='1.0'?>
02 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
03   <xsl:import href="/usr/share/xml/docbook/stylesheet/docbook-xsl/epub/docbook.xsl"/>
04   <xsl:param name="epub.cover.linear" select="1" />
05 </xsl:stylesheet>

Ein Verweis auf eine Bilddatei für das Umschlagbild sieht in einem Docbook-5-Dokument so aus, wie in Listing 5 zu sehen. Erfahrungsgemäß füllt sich eine derartige XSL-Zwischenschicht im Laufe der Zeit mit einer Vielzahl maßgeschneiderter Änderungen, denn das Studium von Docbook XSL verleitet dazu, eigene Ausgabefilter zu entwickeln.

Listing 5

Umschlagbild in Docbook auszeichnen

01 <?xml version="1.0" encoding="UTF-8"?>
02 <book version="5.0" xmlns="http://docbook.org/ns/docbook">
03   <info>
04     <title>Epub mit dbtoepub</title>
05     <cover>
06       <mediaobject>
07         <imageobject>
08           <imagedata fileref="images/umschlag-docbook.png"></imagedata>
09         </imageobject>
10       </mediaobject>
11     </cover>
12   </info>
13 ...

Pandoc

Auch die Makro-Satzsprache Latex kann als Eingabeformat für Epub-Dokumente dienen. Das Umwandeln erledigt das Kommandozeilen-Programm Pandoc [7]. Das GPLv2-lizenzierte Tool erzeugt eine Vielzahl von Formaten, neben Epub auch ODT, HTML und Docbook. Zurzeit liegt der Konverter in Version 1.8.11 vor.

Existiert kein passendes Distributionspaket für Pandoc, lässt sich die Software mit dem Haskell-Tool »cabal-install« installieren. Cabal ist in einer Reihe von Linux-Distributionen vorhanden, so in Debian, Ubuntu oder Fedora. Da die Abhängigkeiten zwischen dem Binärpaket von Cabal bei Ubuntu nicht vollständig definiert sind, installiert der Benutzer in Listing 6 zunächst die benötigten Headerdateien der Bibliothek Zlibg.

Listing 6

Pandoc installieren

01 $ apt-get install zlibg-dev
02 $ apt-get install cabal-install
03 $ cabal update
04 $ cabal install cabal-install
05 $ cabal install pandoc

Da diese Methode Pandoc im Cabal-Verzeichnis des Benutzers installiert, sollte er seinen Pfad mit »PATH=$PATH:~/.cabal/bin« ergänzen. Das folgende Kommando erzeugt aus einer Latex-Datei ein Epub-Buch:

$ pandoc --from latex --to epub--output probe-latex.epub probe-latex.tex

Pandoc bietet viele Kommandozeilen-Schalter. Auch mit diesem Programm lassen sich CSS-Regeln und Metadaten in Epubs einbinden, Inhaltsverzeichnisse erzeugen oder mit der Option »--smart« typografische Korrekturen durchführen. Listing 7 zeigt einige der Schalter.

Listing 7

Pandoc-Optionen

01 $ pandoc --from latex --to epub --toc --smart --epub-stylesheet style.css --output probe-latex.epub --epub-metadata meta-pandoc probe-latex.tex

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Docbook

    Docbook gilt als Nonplusultra der technischen Dokumentation. Dieser Artikel zeigt, dass der Einstieg in die XML-Anwendung gar nicht schwer ist. Als Belohnung winken PDFs, E-Books und Manpages.

  • Bitparade

    Immer mehr Autoren veröffentlichen ihre Werke unabhängig von Verlagen. Auf Self-Publishing-Plattformen kann jeder kostenfrei oder für wenig Geld die eigenen Texte in E-Book-Formate konvertieren und verkaufen. Vier Programme erstellen und bearbeiten elektronische Bücher auf dem Linux-Desktop.

  • Epub mit Open-Source-Tools erzeugen

    Autor Andreas Möller zeigt in seinem Screencast, wie sich E-Books mit dem Tool Sigil schreiben lassen.

  • Bitparade

    Zu guter Software gehört ausführliche Dokumentation. Wer keine Angst vor Quelltext hat, greift zum Format Docbook-XML, aus dem sich von der Manpage bis zum E-Book allerlei generieren lässt. Mit den offenen Publishing-Systemen Daps, Publican und Yelp bekommt ein Autor auch dicke Handbücher in den Griff.

  • Dokumentationssystem Zpub 0.3 erzeugt Epub-Dokumente

    Zpub, ein XML-basiertes System für technische Dokumentationen, ist in Version 0.3 erhältlich.

comments powered by Disqus

Ausgabe 09/2017

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.