Herausforderungen bei der EPUB-Erstellung mit tex4ebook
In freiesMagazin 07/2015 und in der DTK 4/2015 habe ich verschiedene E-Book-Konverter gezeigt, die aus einem LaTeX-Dokument eine HTML-Seite bzw. gleich ein EPUB erzeugen.
Auf Basis dessen erreichte mich vor zwei Wochen eine Anfrage, ob ich bei der Konvertierung eines Buches, welches mit TeX gesetzt wurde, helfen könne. Das Buch umfasst ca. 500 Seiten, enthält ca. 70 Abbildungen und 4000 mathematische Formeln. Es werden 32 LaTeX-Pakete eingebunden, wovon ich maximal drei Viertel kenne – was aber auch kein Wunder ist bei der Masse an Paketen, die es gibt.
Unterstützen sollte ich bei der Konvertierung des Buches mittels tex4ebook, was Herbert Voss kurz in der DTK 4/2015 anriss, da ich es in meinem Test damals nicht mit einbezogen hatte. Nach ein bisschen Handarbeit lief tex4ebook in der neuesten Version dann bei mir auch. Schade ist, dass man schon Einiges an Linux- und TeX-Wissen braucht, um das Programm überhaupt zum Kompilieren und Installieren zu bekommen.
Leider übersetzte aber die TeX4ht-Engine – welche zum Konvertieren nach HTML benutzt wird – das Dokument nicht sofort. Folgende Änderungen musste ich manuell vornehmen:
- PDF-Bilder, die mit
\includegraphics
ohne Dateiendung eingebunden wurden, wurden nicht gefunden. Hier musste ich das.pdf
ergänzen, was dazu führt, dass pdflatex das Dokument nicht mehr übersetzt.\includepdf
wäre wohl die richtige Wahl. - Bei einer description, itemize oder enumerate muss der erste Eintrag ein
\item
sein. Im Buch stand dort des öfteren ein Hyperref-Linkziel mit\hypertarget
. - Das Paket
subfig
erzeugt ein fehlendes\fi
und musste daher entfernt werden. Die entsprechenden Benutzungen von\subfloat
habe ich durch simple Tabellen ersetzt. Wie ich gelesen habe, könnte das Paketsubfigure
auch helfen. - Das Paket
arydshln
erzeugt ebenfalls ein Problem mit einem „Undefined control sequence“. Das Paket musste ich entfernen, ebenso wie die genutzten\hdashline
durch\hline
ersetzen. - Ganz tödlich waren Fußnoten
\footnote
bzw.\footnotemark
oder Indexverweise mit\index
in Überschriften. Das erzeugte regelmäßig ein „Tex capacity exceeded, sorry [input stack size = 5000]“. Grund war weniger die Fußnote oder der Index, sondern der Fehler trat bei einem darauf folgenden\label
auf, weil vermutlich das Label dann ebenso die Fußnote/Index enthielt, was zu viel des Guten war.
Nach diesen Anpassungen lief zumindest tex4ebook durch und erzeugte ein PDF. Zu einem großen Teil sah das auch ganz okay aus. Es fehlten aber auch einige Abbildungen, Formeln und vieles mehr. Ich denke, dass man hier einige Stunden bzw. realistischer Tage und Wochen Arbeit vor sich hat, um ein ansehnliches E-Book zu erzeugen.
Mir hat das reale Beispiel (meine Beispieldatei entspricht nicht ganz der Realität und freiesMagazin wurde fast von Anfang an darauf getrimmt) aber wieder einmal mehr gezeigt, dass für die Konvertierung einer TeX-Datei in PDF, HTML und EPUB einige Punkte wichtig sind:
- Trennen von Paketinkludierung, von Befehlsdefinitionen und vom eigentlichen Inhalt. So kann man nämlich wesentlich leichter eine spezielle EPUB-Version mit eigenen Befehlsdefinitionen oder anderen Paketen einbinden.
- Möglichst eigene Befehlsdefinitionen verwenden und keine reinen LaTeX-Befehle. Klingt erst einmal komisch, hilft aber enorm, wenn man für die EPUB-Version eigene Befehlsdefinitionen schreiben muss.
- Fußnoten möglichst spärlich einsetzen, das Konzept passt einfach nicht in ein E-Book.
Ich bin jedenfalls gespannt, wie es mit dem Buch weitergeht und ob es der Ersteller schafft, daraus ein E-Book zu generieren. Ich drücke ihm natürlich die Daumen, es bleibt ein spannendes Unterfangen.