Mit LaTeX zum E-Book
Pandoc
Pandoc wurde bereits erwähnt, als es um die Konvertierung von HTML nach EPUB ging. Da hierbei aber wichtige Textformatierungen und Elemente wie Tabellen nicht übernommen wurden, stellt sich die Frage, nach einer direkten Konvertierung von LaTeX nach HTML mit Pandoc.
Pandoc von John MacFarlane ist Open Source und steht für BSD, Linux, Mac OS X und Windows zur Verfügung. Die getestete Version ist 1.13.2 vom 20. Dezember 2014. Die Benutzung nach der Installation ist prinzipiell recht einfach:
$ pandoc --toc -R -s -o beispiel.html beispiel.tex
Die Option --toc
erstellt dabei ein Inhaltsverzeichnis, was normalerweise fehlen würde. -s
erzeugt eine Standalone-Ausgabe, sodass eine valide HTML-Seite erzeugt wird. Zuletzt ist die Option -R
wichtig, weil damit auch durch für Pandoc unverständliche LaTeX-Kommandos gegangen wird. Seltsamerweise führt das
dennoch dazu, dass einige Elemente nicht ausgegeben werden.
Der erste Versuch scheitert aber mit der Meldung:
pandoc: Error at "input" (line 191, column 1): unexpected '\n' Die folgende Aufzählung soll mit römischen Ziffern beginnen. Dies geht aber ^
Leider deutet der Fehler nicht auf das echte Problem hin. Problematisch sind nämlich die KOMA-Beschreibungslisten mittels labeling
. Kommentiert man diese aus, gibt es aber weitere Problem mit der Definition eigener Kommandos. So bringt bei \newenvironment
die eingebettete Liste mit itemize
sowie die benutzte enumerate
-Aufzählung in einem Kommando Pandoc durcheinander und bricht den Konvertiervorgang ab. Behebt man diese drei Stellen durch Auskommentieren, lässt sich das LaTeX-Dokument nach HTML übersetzen.
Das Ergebnis ist leider nicht sehr befriedigend, was vor allem daran liegt, dass Pandoc kein \newcommand*
und kein \newenvironment
versteht. Und alle unbekannten Makros und Umgebungen hinterlassen mit Pandoc eine Lücke im HTML-Text, d.h. dass keinerlei Inhalt ausgegeben wird. Das normale \newcommand
ohne Stern wird verstanden, aber es gibt bei manchen Definitionen Probleme, wie man oben gesehen hat. Wenn man in der Datei befehle.tex, in der die Befehle für das Beispieldokument stehen, die Sternchen entfernt und zusätzlich die center
-Umgebung bei der Bildeinbindung auskommentiert, wird wesentlich mehr dargestellt.
Wandlung in HTML
Dennoch ist das resultierende HTML-Dokument nicht sauber konvertiert. Bei den Schriftformatierungen werden \textsf
und \underline
komplett ignoriert. Dafür werden die Kapitälchen korrekt dargestellt. Die Familien \ttfamily
und \sffamily
werden ebenfalls ignoriert. Ebenfalls ungewohnt ist, dass alle Schriftgrößen nicht interpretiert werden.
Schön ist dagegen, dass neben Verbatim auch lstlisting
verstanden wird.
Textausrichtungen werden auch nicht erkannt, ebenso wie Verweise mit \label
und \ref
, was die Verlinkung und Referenzierung innerhalb eines Dokuments hinfällig macht.
Auch die Unterstützung von Tabellen ist nur rudimentär vorhanden, da Tabellenlinien gar nicht gedruckt werden. \multicolumn
wird ebensowenig erkannt wie die Definition mehrfacher Spalten oder eigene Definitionen. Auch longtable
ist unbekannt. Die tabular
-Umgebung wird erkannt, die Tabellenunterschrift steht aber über der Tabelle, was etwas ungewohnt aussieht.
Im Gegensatz tabular
wird figure
zwar auch unterstützt, nur fehlt die Bildunterschrift völlig. Immerhin werden die Bilder angezeigt. PNG und JPG ist dabei kein Problem. PDF und EPS werden per embed src
ins HTML eingebunden, was nur funktioniert, wenn entsprechende Plugins für diese Formate installiert sind.
Zu den weiteren nicht unterstützen Elementen gehören Farben, Zähler und jede Art von Verzeichnis (das Inhaltsverzeichnis ausgenommen). Ohne Quellverzeichnis sind somit auch keine Quellenangaben möglich. Okay sind dagegen die Fußnoten, die auch mit Backlink am Dokumentende eingefügt werden.
equation
(diesmal auch mit Stern) korrekt verstanden.Wandlung in EPUB
Bei der Wandlung in ein EPUB geht die Auszeichnung als Kapitälchen mit
\textsc
und \scshape
verloren, die im HTML noch zu sehen waren. Bei den Bildern ergibt sich die logische Konsequenz, dass PDF und EPS nicht angezeigt werden, da das embed-Tag im EPUB nicht unterstützt wird.
Die mathematischen Formeln werden zu einem Großteil korrekt im EPUB angezeigt, bis auf die Stellen, wo unbekannte Unicode-Zeichen benutzt werden, z.B. das »für alle« oder »es existiert«.