EPUBs erstellen mit tex4ebook

This entry is part 1 of 2 in the series EPUBs mit LaTeX

Es gibt ein relativ neues LaTeX-Paket zum Erzeugen von EPUBs aus LaTeX heraus, hier ein kurzes Beispiel:

\documentclass[ngerman]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage{xcolor}
 
\title{Testdokument für tex4ebook}
\author{Uwe Ziegenhagen}
 
\begin{document}
\maketitle
\tableofcontents
 
\section{Hallo}
 
Hallo Welt
 
\section{Welt}
 
\end{document}

In diesem einfachen Beispiel hat das generierte EPUB noch Probleme:

  • Umlaute sind kaputt
  • Das Inhaltsverzeichnis befindet sich hinter dem eigentlichen Text

In den nächsten Artikeln werde ich schauen, was mit dem Paket geht und wo seine Grenzen liegen.

Uwe

Uwe Ziegenhagen has been working with LaTeX for more than a decade. Besides TeX/LaTeX he likes to work with Python, Rasberry/Arduino and his digital camera.

More Posts - Website

Mit LaTeX HTML und EPUB erzeugen: EPUB-Erstellung

This entry is part 2 of 2 in the series EPUBs mit LaTeX

In Teil 2 dieser Artikelreihe schauen wir uns das Musterdokument mal etwas an:

  • Genutzt wird hier die book-Klasse. Ich habe es schon mit den „deutschen“ Klassen wie scrartcl probiert, aber Fehlermeldungen erhalten
  • Als nächstes kommt die Unterscheidung für pdflatex und xelatex/lualatex
  • gefolgt vom Laden des lwarp-Pakets mit diversen Einstellungen
  • makeidx, hyperref und xcolor sind auch bekannte Pakete
% Save this as tutorial.tex for the lwarp package tutorial.
\documentclass{book}
\usepackage{iftex}
% --- LOAD FONT SELECTION AND ENCODING BEFORE LOADING LWARP ---
\ifPDFTeX
\usepackage{lmodern} % pdflatex
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\else
\usepackage{fontspec} % XeLaTeX or LuaLaTeX
\fi
% --- LWARP IS LOADED NEXT ---
 
\usepackage[
% HomeHTMLFilename=index, % Filename of the homepage.
% HTMLFilename={node-}, % Filename prefix of other pages.
% IndexLanguage=english, % Language for xindy index, glossary.
% latexmk, % Use latexmk to compile.
% OSWindows, % Force Windows. (Usually automatic.)
% mathjax, % Use MathJax to display math.
]{lwarp}
% \boolfalse{FileSectionNames} % If false, numbers the files.
 
% --- OTHER PACKAGES ARE LOADED AFTER LWARP ---
\usepackage{makeidx} \makeindex
\usepackage{xcolor} % (Demonstration purposes only.)
\usepackage{hyperref,cleveref} % LOAD THESE LAST!
 
% --- LATEX AND HTML CUSTOMIZATION ---
\title{The Lwarp Tutorial}
\author{Some Author}
\setcounter{tocdepth}{2} % Include subsections in the \TOC.
\setcounter{secnumdepth}{2} % Number down to subsections.
\setcounter{FileDepth}{1} % Split \HTML\ files at sections
\booltrue{CombineHigherDepths} % Combine parts/chapters/sections
\setcounter{SideTOCDepth}{1} % Include subsections in the side\TOC
 
\HTMLAuthor{Some Author} % Sets the HTML meta author tag.
\HTMLLanguage{en-US} % Sets the HTML meta language.
\HTMLDescription{A description.}% Sets the HTML meta description.
\HTMLFirstPageTop{Name and \fbox{HOMEPAGE LOGO}}
\HTMLPageTop{\fbox{LOGO}}
\HTMLPageBottom{Contact Information and Copyright}
\CSSFilename{lwarp_sagebrush.css}
 
\begin{document}
\maketitle % Or titlepage/titlingpage environment.
% An article abstract would go here.
\tableofcontents % MUST BE BEFORE THE FIRST SECTION BREAK!
\listoffigures
\chapter{First chapter}
\section{A section}
This is some text which is indexed.\index{Some text.}
\subsection{A subsection}
See \cref{fig:withtext}.
\begin{figure}\begin{center}
\fbox{\textcolor{blue!50!green}{Text in a figure.}}
\caption{A figure with text\label{fig:withtext}}
\end{center}\end{figure}
\section{Some math}
Inline math: $r = r_0 + vt - \frac{1}{2}at^2$
followed by display math:
\begin{equation}
a^2 + b^2 = c^2
\end{equation}
\printindex
\end{document}

Dieses Beispiel „dampfen“ wir jetzt etwas zusammen, um etwas einfacheren Code für unser erstes Epub zu erhalten. Wir ändern die Klasse auf „article“ und fügen zusätzlich noch \booltrue{FormatEPUB} ein, um die Konvertierung ins EPub zu unterstützen (siehe Handbuch)

\documentclass{article}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
 
\usepackage{lwarp}
\booltrue{FormatEPUB} % !
 
\usepackage{hyperref,cleveref}
 
\title{The Lwarp Tutorial}
\author{Uwe Ziegenhagen}
 
\setcounter{FileDepth}{1} 
\booltrue{CombineHigherDepths}
\setcounter{SideTOCDepth}{1}
 
\HTMLAuthor{Uwe Ziegenhagen}
\HTMLLanguage{de-DE}
\HTMLDescription{Mein erstes LaTeX-Epub}
 
\begin{document}
\maketitle 
 
\tableofcontents
 
\section{Hallo}
 
\blindtext[20]
 
\section{Welt}
 
\blindtext[20]
 
 
\end{document}

Diese Datei übersetzen wir anschließend mit pdflatex und lwarpmk html. Erzeugt werden jetzt die Hauptdatei im HTML sowie die beiden HTML-Dateien für die Sections. Zeit, diese jetzt nach EPUB zu bringen.

Mittel der Wahl ist dabei die eierlegende Wollmilchsau der E-Books, calibre. Also installieren und starten, diese Software ist für alle gängigen Betriebssysteme verfügbar.

In Calibre müssen wir noch einige Einstellungen vornehmen, das lwarp-Handbuch gibt vor, welche:

  • Unter Einstellungen, Erweiterungen, Dateityp-Erweiterungen muss das HTML to ZIP Plugin aktiviert sein
  • Wir müssen Calibre noch mitteilen, welche HTML-Tags den Umbrüchen entsprechen. Dazu gehen wir zu Einstellungen, Allgemeine Optionen, Strukturerkennung und setzten „Kapitel erkennen“ auf //h:h4

Damit ist die Konfiguration abgeschlossen, wir können die HTML-Dateien jetzt umwandeln. Dazu die HTML-Datei zu Calibre hinzufügen und mit „Bücher koinvertieren“ umwandeln. Calibre erzeugt dann nach wenigen Sekunden ein EPUB, das in unserer Ebook-Bibliothek liegt.

Hier wieder das ZIP mit allen Dateien und den Ausgabe-Dateien.

Uwe

Uwe Ziegenhagen has been working with LaTeX for more than a decade. Besides TeX/LaTeX he likes to work with Python, Rasberry/Arduino and his digital camera.

More Posts - Website