EPUB
EPUB (auch ePUB, Akronym für electronic publication) ist ein offener Standard für E-Books vom International Digital Publishing Forum (IDPF), der den älteren Standard Open eBook (OEB beziehungsweise Open eBook Publication Structure, OEBPS) ersetzt.
EPUB | |
---|---|
Dateiendung: | .epub |
MIME-Type: | application/epub+zip |
Entwickelt von: | International Digital Publishing Forum |
Aktuelle Version: | 3.2[1] (Stand: 8. Mai 2019) |
Standard(s): | Spezifikationen |
Optional können DRM-Mechanismen integriert werden. Das Format definiert aber keine Implementierung, sondern überlässt das den jeweiligen Darstellungsprogrammen. Annotationen wie Notizen, Lesezeichen etc. sind nicht Teil des Standards. Mit Version 3 ist es möglich, buchstabengenau auf eine Textstelle zu verweisen.
Auf EPUB basierende E-Books erlauben eine dynamische Anpassung des Textes an die jeweilige Bildschirmgröße des Lesers und eignen sich damit insbesondere für die Ausgabe auf Handheld-Geräten. Im Gegensatz dazu wird beispielsweise der Text bei PDF genau wie im gedruckten Buch formatiert angezeigt.
Format
Der EPUB-Standard basiert auf einer Anzahl freier Standards. In Version 2 sind das hauptsächlich XML, XHTML, DTBook, SVG, CSS, NCX (aus DTBook, DAISY), Dublin Core und Zip. Ferner ist die Interpretation folgender Pixelgraphikformate erforderlich: PNG, JPEG/JFIF, GIF. In Version 3 entfällt einerseits DTBook, dafür kommen weitere Formate, etwa für Audio und optional für Video hinzu (deren Implementierung teilweise Lizenzen benötigt), ebenso Formate für Schriftarten in den Formaten OpenType und WOFF, in Version 3.1 und 3.2 zusätzlich noch TrueType[2].
Die Spezifikation von EPUB in der Version 2 gliedert sich in drei Teile, die unterschiedliche Bereiche definieren[3]:
- Die Struktur der eigentlichen Inhalte
- Das Paketformat
- Die Struktur des Archivs
Hinzu kommen in Version 3 noch[4]:
- Medienüberlagerungen (für eine alternative Präsentation als Hörbuch)
- Kanonische Fragmentidentifizierer (für Verweise auf beliebige Stellen in einem Buch)
Ab Version 3.0.1 kann zudem festgelegt werden, ob die Präsentation seitenbasiert oder rollbar sein soll. Zudem kann festgelegt werden, wie sich der Inhalt an den verfügbaren Platz anpasst – entweder ähnlich wie bei SVG durch Festlegung eines Darstellungsbereiches und gegebenenfalls anschließender Skalierung (fixiert) oder ähnlich wie bei XHTML durch automatische Aufteilung des Inhaltes auf den verfügbaren Platz ohne Skalierung (nicht fixiert).
Open Publication Structure
Die für die eigentlichen Inhalte zu verwendenden Formate werden durch die Open Publication Structure (OPS) geregelt. Die erlaubten Inhaltsdokumente werden in Version 3 in EPUB Content Documents behandelt. Alle verwendbaren Formate sind in Version 3 in EPUB Publications festgelegt, siehe nächster Abschnitt.
EPUB unterscheidet hier prinzipiell zwischen den eigentlichen Inhaltsdokumenten und weiteren Dokumenten in anderen Formaten, die in diese eingebettet werden können, also immer inhaltlich von Inhaltsdokumenten abhängig sind und nicht selbständig auftreten.
Dokumente werden in einer oder mehreren UTF-8- oder UTF-16-codierten Dateien gespeichert.
In der Version 2.0/2.0.1 werden Inhaltsdokumente mit jeweils einer Untermenge von XHTML 1.1 oder mit DTBook realisiert, wobei bei gängigen Darstellungsprogrammen eine Interpretation von DTBook gewöhnlich nicht implementiert ist. SVG 1.1 (ohne Interaktivität oder Animation) kann entweder als Dateninsel in XHTML-Dokumenten verwendet werden oder es wird als Bild oder Objekt eingebettet. Stilvorlagen können in einer Untermenge des Formates CSS 2.0 verwendet werden. Hinzu kommen wenige für EPUB spezifische Stilvorlagen-Eigenschaften. Skript-Anwendungen sind nicht erlaubt.
In der Version 3.0/3.0.1 werden Inhaltsdokumente entweder mit der XML-Variante von HTML5 realisiert oder mit SVG 1.1 (ohne Interaktivität oder Animation). Hinsichtlich HTML5 ist nicht definiert, welchem Arbeitsentwurf Autoren folgen sollen, noch wie angegeben wird, welcher Arbeitsentwurf in einem Buch verwendet wird. Wie in HTML5 beschrieben und eingeschränkt, kann zudem auch Präsentations-MathML als Dateninsel verwendet werden. Stilvorlagen beziehen sich hier hauptsächlich auf CSS 2.1 und einige Module von CSS 3.0. Skript-Anwendungen sind optional, die Dokumente sind jeweils so zu gestalten, dass der Inhalt mit und ohne Interpretation von Skripten zugänglich ist. Eine kleine Untermenge des Formates SMIL kann zudem verwendet werden, um eine Medienüberlagerung zu realisieren. Bei dieser werden Audio-Dateien mit dem Inhalt verknüpft, um eine Präsentation auch als Hörbuch anbieten zu können.
In Version 3.1 wird ausdrücklich darauf hingewiesen, dass diese Version sich nicht auf eine spezielle Version von XHTML, SVG oder CSS festlegt, Autoren und Programmierer von Darstellungsprogrammen sollen sich an den aktuellen Empfehlungen des W3C orientieren. Damit ist die Spezifikation von EPUB unabhängig von den Spezifikationen der genutzten Webstandards.[2] Bei SVG wird folglich zudem auch nicht mehr die Verwendung von Interaktivität oder Animation ausgeschlossen, es gibt lediglich einen allgemeineren Hinweis auf mögliche Implementierungslücken bei diversen Modulen bei den Darstellungsprogrammen.
Weil Version 3.1 einige Inkompatibilitäten zur früheren Versionen aufweist, wird von der zuständigen Arbeitsgruppe dazu geraten, stattdessen gleich die überarbeitete Version 3.2 zu verwenden. Diese lehnt sich stärker an 3.0.1 an, erklärt zudem einige faktisch nicht implementierte Möglichkeiten von 3.0.1 als veraltet, übernimmt von 3.1 allerdings die erweiterten Möglichkeiten hinsichtlich des Inhaltes durch neue Versionen von SVG und HTML5.
Open Packaging Format
Die Strukturierung wird durch das Open Packaging Format (OPF) geregelt, das in Version 3 als EPUB Publications vorliegt.
Die Struktur und die Aufnahme von Metadaten beschreibt eine Stammdatei (Dateinamenserweiterung: .opf
).
Darin werden im ersten Abschnitt, im Element metadata
, die Metadaten hauptsächlich nach dem Dublin-Core-Schema bereitgestellt.
Die Art der Notation ist im Detail für Version 3 anders als für Version 2, was Probleme für Leser bedeuten kann, wenn sie mit älteren Programmen auf solche Information direkt zugreifen möchten, statt das Buch-Archiv zu entpacken und direkt in den Quelltext der OPF-Datei zu gucken. Die gleiche Information, die bei einem Buch nach Version 2 also noch zugänglich sein kann, kann mit einer Notation gemäß Version 3 unzugänglich werden und umgekehrt bei Programmen, die nur Version 3 interpretieren und nicht mehr die Notation von Version 2.
In einem zweiten Abschnitt, im Element manifest
, werden alle weiteren im Archiv gespeicherten Dateien aufgelistet.
Der weitere Abschnitt, durch das Element spine
repräsentiert, ist etwas, was bei gedruckten Büchern dem Buchrücken entspricht, die Struktur dient primär dazu, die Lesereihenfolge des Buches für das Darstellungsprogramm festzulegen. Prinzipiell unterschieden wird dabei zwischen Bestandteilen eines Buches, welche in einer linearen Lesereihenfolge stehen, und solchen, die dies nicht tun. Entsprechend kann dies bei jedem Eintrag eines Inhaltsdokumentes angegeben werden. Insbesondere die Versionen 2 und 3.0.1 verlangen ferner, dass alle Inhaltsdokumente, auf die von Dokumenten verwiesen wird, welche im spine
stehen, selbst in diesem Verzeichnis stehen. Praktisch kann das Probleme für Bücher verursachen, deren Struktur ganz oder teilweise keiner einfachen, linearen Lesereihenfolge folgt und die stattdessen eine eigene, eingebaute Navigation bereitstellen, bei welcher man also etwa zu Alternativen verzweigen kann oder bei welcher es wie in einem Netzwerk oder Labyrinth prinzipiell keine bestimmte Lesereihenfolge gibt. Derartige Inhaltsstrukturen waren schon bei gedruckten Büchern problematisch, sind aber eigentlich für eine digitale Repräsentation kein technisches Problem mehr.
Die praktischen Probleme für EPUB-Bücher ergeben sich daraus, dass viele gängige Darstellungsprogramme die Angabe ignorieren, dass Inhaltsdokumente nicht in einer linearen Lesereihenfolge erscheinen sollen, die Dokumente werden dann in der Reihenfolge angezeigt, wie sie im spine
notiert sind oder im Anschluss an die als linear gekennzeichneten Inhalte. Dies ist ein explizit erlaubtes Vorgehen. Dies erschwert es Autoren nichtlinearer Werke praktisch, in diesem Format sinnvoll zu veröffentlichen (es könnten etwa als improvisierte Gegenmaßnahme viele inhaltsleere Inhaltsdokumente vor und nach einem nicht linearen Dokumenten in das spine
eingefügt werden, um dem Leser nahezulegen, nicht die vom Programm vorgeschlagene Reihenfolge zu nutzen, sondern die dem jeweiligen Buch eigenen Navigationsmittel zu verwenden).
Mit dem Attribut toc
beim Element spine
wird auf ein Inhaltsverzeichnis für menschliche Leser des Buches verwiesen. Mit einem weiteren optionalen Abschnitt können besondere Strukturen des Buches wie die Titelseite, Inhaltsverzeichnis, Index, Glossar etc. angegeben werden.
Das für menschliche Leser gedachte Inhaltsverzeichnis, welches außerhalb der normalen Lesereihenfolge dargestellt wird, wird in Version 2.0/2.0.1 im Abschnitt navMap
in einer Datei, typisch mit der Dateinamenserweiterung .ncx
in dem XML-Format NCX angegeben, das DTBook entstammt. Jedem Eintrag wird im Attribut playOrder
eine Position innerhalb der Reihenfolge der wiederzugebenden Texte zugeordnet.
Ein solches Dokument ist seit Version 3.0/3.0.1 optional und nur als Hilfe für alte Darstellungsprogramme der Versionen 2 gedacht. In Version 3.1 ist das NCX-Dokument als veraltet oder überholt gekennzeichnet[2]. Darstellungsprogramme der Versionen 3 sollen es nicht mehr interpretieren. Dafür ist in diesen Versionen das Inhaltsverzeichnis in einem Dokument anzugeben, welches mit einer Untermenge der XML-Variante von HTML5 zu realisieren ist und damit auch innerhalb der normalen Lesereihenfolge verfügbar gemacht werden kann.
OEBPS Container Format
Die Verpackung aller Teildateien in eine einzelne Datei und die Struktur des darin enthaltenen Dateisystems wird durch das OEBPS Container Format (OCF) geregelt, das in Version 3 als EPUB Open Container Format (OCF) vorliegt. Sämtliche Teildateien werden in einer Zip-Archivdatei mit der Dateinamenserweiterung .epub
zusammengefasst. Darin müssen mindestens enthalten sein:
- eine unkomprimierte Datei mit dem Namen
mimetype
und dem Inhaltapplication/epub+zip
im Wurzelverzeichnis als erste Datei im Archiv, - ein Verzeichnis
META-INF
mit einer Datei namenscontainer.xml
, die auf die Stammdatei der Publikation verweist, - die Stammdatei,
- ein Inhaltsverzeichnis zur Navigation durch die Publikation und
- mindestens eine Inhaltsdatei.
Beispiele
Das Dateisystem in einem minimalen Buch gemäß EPUB 2 könnte so aussehen:
mimetype
META-INF/
container.xml
inhalt.opf
inhalt.ncx
inhalt.xhtml
Das Dateisystem für EPUB 3 kann ähnlich aussehen, allerdings gibt es für die Navigation eine andere Datei (hier nav.xhtml genannt) im Format XHTML, die Datei inhalt.ncx ist hier optional, für alte Darstellungsprogramme aber sinnvoll:
mimetype
META-INF/
container.xml
inhalt.opf
inhalt.ncx
nav.xhtml
inhalt.xhtml
container.xml
<?xml version="1.0" encoding="UTF-8"?>
<container
xmlns="urn:oasis:names:tc:opendocument:xmlns:container"
version="1.0">
<rootfiles>
<rootfile
full-path="inhalt.opf"
media-type="application/oebps-package+xml"/>
</rootfiles>
</container>
Stammdatei inhalt.opf (Version 2)
<?xml version="1.0" encoding="UTF-8"?>
<package version="2.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:opf="http://www.idpf.org/2007/opf"
xmlns="http://www.idpf.org/2007/opf"
unique-identifier="BookId">
<metadata>
<!-- Die folgende Buchidentifikation ist einzigartig für jedes Buch zu wählen -->
<dc:identifier id="BookId" opf:scheme="UUID">6f2e78a1-c4f3-4895-b58b-347f92fb2d14</dc:identifier>
<!-- Hauptsprache des Buches -->
<dc:language>de</dc:language>
<!-- Buchtitel -->
<dc:title xml:lang="de">Hallo Welt</dc:title>
<!-- bis hier notwendige Metainformationen, es folgen einige optionale: -->
<!-- Beschreibung -->
<dc:description xml:lang="de">Beispiel für ein Buch im Format EPUB 2.</dc:description>
<!-- Erzeuger, Erschaffer des digitalen Buches, hier auch der Autor -->
<dc:creator
opf:file-as="Zufall, Rainer"
opf:role="aut"
xml:lang="de">Rainer Zufall</dc:creator>
<!-- Charakteristischer Zeitpunkt der Erstellung des Buches -->
<dc:date opf:event="creation">2013-10-23</dc:date>
<!-- Zeitpunkt der Veröffentlichung -->
<dc:date opf:event="publication">2013-10-23</dc:date>
</metadata>
<!-- Verzeichnis der Dateien des Buches -->
<manifest>
<item id="ncx" href="inhalt.ncx" media-type="application/x-dtbncx+xml"/>
<item id="Datei_1" href="inhalt.xhtml" media-type="application/xhtml+xml"/>
</manifest>
<!-- Reihenfolge der Inhalte des Buches -->
<spine toc="ncx">
<itemref idref="Datei_1"/>
</spine>
</package>
Stammdatei inhalt.opf (Version 3)
<?xml version="1.0" encoding="UTF-8"?>
<package version="3.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:opf="http://www.idpf.org/2007/opf"
xmlns="http://www.idpf.org/2007/opf"
unique-identifier="Id">
<metadata>
<!-- Die folgende Buchidentifikation in Kombination mit folgendem Datum einzigartig für jedes Buch zu wählen -->
<dc:identifier id="Id">6f2e78a1-c4f3-4895-b58b-347f92fb2d14</dc:identifier>
<!-- Datum der letzten Änderung -->
<meta property="dcterms:modified">2013-10-26T17:27:34Z</meta>
<!-- Hauptsprache des Buches -->
<dc:language>de</dc:language>
<!-- Buchtitel -->
<dc:title xml:lang="de">Hallo Welt</dc:title>
<!-- bis hier notwendige Metainformationen, es folgen einige optionale: -->
<!-- Beschreibung -->
<dc:description xml:lang="de">Beispiel für ein Buch im Format EPUB 3.</dc:description>
<!-- Erzeuger, Erschaffer des digitalen Buches, hier auch der Autor -->
<dc:creator id="rainer" xml:lang="de">Rainer Zufall</dc:creator>
<meta refines="#rainer" property="file-as">Zufall, Rainer</meta>
<meta refines="#rainer" property="role" scheme="marc:relators">aut</meta>
<!-- Angabe des Typs der Buchidentifikation -->
<meta property="identifier-type" refines="#Id">UUID</meta>
<!-- Zeitraum der Erstellung des Buches -->
<meta property="dcterms:created">2013-10-23/26</meta>
<!-- Zeitpunkt der Veröffentlichung -->
<meta property="dcterms:issued">2013-10-26</meta>
</metadata>
<!-- Verzeichnis der Dateien des Buches -->
<manifest>
<item id="ncx" href="inhalt.ncx" media-type="application/x-dtbncx+xml"/>
<item id="inhalt" href="inhalt.xhtml" media-type="application/xhtml+xml"/>
<item id="nav" href="nav.xhtml" media-type="application/xhtml+xml" properties="nav"/>
</manifest>
<!-- Reihenfolge der Inhalte des Buches -->
<spine toc="ncx">
<itemref idref="nav"/>
<itemref idref="inhalt"/>
</spine>
</package>
Detailliertes Inhaltsverzeichnis inhalt.ncx (für Version 2, optional für Version 3)
<?xml version="1.0" encoding="UTF-8"?>
<ncx
xmlns="http://www.daisy.org/z3986/2005/ncx/"
version="2005-1"
xml:lang="de">
<head>
<!-- Dieselbe Buchidentifikation wie in der OPF-Datei: -->
<meta name="dtb:uid" content="6f2e78a1-c4f3-4895-b58b-347f92fb2d14"/>
</head>
<docTitle>
<text>Hallo Welt</text>
</docTitle>
<docAuthor>
<text>Rainer Zufall</text>
</docAuthor>
<navMap>
<navPoint playOrder="1" id="id_01">
<navLabel>
<text>Hallo Welt</text>
</navLabel>
<content src="inhalt.xhtml"/>
</navPoint>
</navMap>
</ncx>
Detailliertes Inhaltsverzeichnis nav.xhtml (für Version 3)
<?xml version="1.0" encoding="UTF-8" ?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ops="http://www.idpf.org/2007/ops"
xml:lang="de">
<head>
<title>Inhaltsverzeichnis</title>
</head>
<body>
<nav ops:type="toc">
<h1>Inhaltsverzeichnis</h1>
<ol>
<li><a href="nav.xhtml">Inhaltsverzeichnis</a></li>
<li><a href="inhalt.xhtml">Hallo Welt</a></li>
</ol>
</nav>
</body>
</html>
Eigentlicher Inhalt inhalt.xhtml (für Version 2)
Eine einfache XHTML-Datei:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="de">
<head>
<title>Hallo Welt</title>
</head>
<body>
<h1>Hallo Welt</h1>
<p>Ein einfacher Absatz als Textbeispiel.</p>
</body>
</html>
Eigentlicher Inhalt inhalt.xhtml (für Version 3)
Eine einfache XHTML-Datei (nach einem Arbeitsentwurf für HTML5 und mit erweiterndem Attribut type aus dem Namensraum OPS/EPUB, um die semantische Funktion von Elementen genauer zu kennzeichnen):
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ops="http://www.idpf.org/2007/ops"
xml:lang="de">
<head>
<title>Hallo Welt</title>
</head>
<body>
<h1>Hallo Welt</h1>
<section ops:type="chapter">
<h2>Titel des ersten Kapitels</h2>
<p>Ein einfacher Absatz als Textbeispiel.</p>
<p>...</p>
</section>
<section ops:type="chapter">
<h2>Titel des zweiten Kapitels</h2>
<p>...</p>
</section>
</body>
</html>
Überprüfung
Da alle Inhalte des EPUBs standardisiert sind und auf XML basieren, kann ein EPUB-Archiv auf seine Gültigkeit geprüft werden. Dabei werden der Aufbau des Archivs und die darin enthaltenen Dokumente überprüft.
Zur Prüfung ist der Einsatz von Validatoren üblich. Unproblematisch ist es dabei, die XML-Dokumente in einem EPUB auf Wohlgeformtheit zu prüfen, also auf die Einhaltung der ziemlich einfachen XML-Syntax-Regeln.
Für die für EPUB spezifizierten Formate und im Buch verwendete Formate wie XHTML, SVG, Digital Talking Books gibt es zudem besondere Spezifikationen, also festgelegte Regeln, die zu prüfen sind. Aus verschiedenen Gründen ist dies für Programme deutlich komplizierter. Hier spricht man davon, dass auf Gültigkeit oder auch Validität geprüft wird. Dazu muss der Regelsatz des jeweiligen Formates in speziellen formalen Sprachen vorliegen, welche von dem Prüfprogramm, auch Validator genannt, verstanden werden. Die Formulierung des Regelsatzes eines Formates in solch einer formalen Sprache wird Dokumenttypdefinition oder auch XML-Schema genannt, kurz auch Schema. Häufig verwendet wird zur Prüfung der vom IDPF selbst herausgegebene epubcheck.[5] Die im Mai 2019 aktuelle Version ist 4.2.1. 4.2.x testet die Version EPUB 3.2. (und 2) 4.1.1 ist die letzte Version, die noch nach den Regeln von EPUB 3.0.1 testet.
Je nach verwendeter EPUB-Version kann es dabei im Detail verschiedene Probleme geben:
- Der genannte Validator (die Version 3 davon) hat etwa bei EPUB 2 Probleme damit, Inhaltsdokumente im Format Digital Talking Books zu prüfen. Version 4 kann jedoch auch das Format prüfen.
- EPUB 3.0.1 nutzt leider die gleiche Versionsnummer wie EPUB 3, von daher kann ein Validator nicht automatisch korrekt anhand der im Buch angegebenen Versionsnummer unterscheiden, welche Version vom Autor verwendet wurde, was fehlerhafte Ergebnisse oder falsche Warnungen im Zuge der Validierung zur Folge haben kann.
- Die normative Variante eines Formates besteht oft aus Prosa, ist also nicht formal als Schema formuliert. Nicht normativ gibt es dann häufig Schemata als Repräsentationen des Formates für Programme. Weil die Schemata nicht beliebig komplexe Sachverhalte korrekt darstellen können, können die Schemata von der normativen Spezifikation abweichen, eine Prüfung mit einem Programm kann also zu falschen Fehlermeldungen führen oder auch Fehler übersehen.
- EPUB 3 verlangt, dass die XHTML-Inhaltsdokumente der Empfehlung zu HTML5 folgen. Zu dieser Empfehlung gibt es kein offizielles Schema, welches HTML5 repräsentiert. Mit Version 3.1 werden sogar gar keine speziellen Versionen von XHTML, SVG oder auch CSS mehr vorgesehen, was richtig oder angemessen ist, ist also zeitabhängig und damit nicht mehr eindeutig definiert.
- Die Spezifikationen von EPUB 3.0 und EPUB 3.0.1 wurden vor der von HTML5 veröffentlicht, es ist also nicht genau klar, auf was sich EPUB 3 formal logisch bezieht, wenn es HTML5 nennt. 3.1 verzichtet auf eine präzise Zuordnung explizit.
- In allen Versionen von EPUB kann ebenfalls SVG 1.1 verwendet werden, dies kann zwar gemäß einer Dokumenttypdefinition validiert werden, der Sprachumfang von Dokumenttypdefinitionen reicht aber für die Komplexität des Formates nicht aus, somit wird hier zum einen längst nicht alles geprüft, was automatisch prüfbar wäre, zum anderen erlaubt SVG in der normativen Prosa-Empfehlung diverse Strukturen, die mit der Dokumenttypdefinition nur näherungsweise abgebildet werden, schränkt andere Strukturen dafür wiederum ein, wo diese Einschränkung mit einer Dokumenttypdefinitionen gar nicht formuliert werden kann. Das für das Prüfprogramm verfügbare Schema für SVG weicht also deutlich von dem ab, was tatsächlich spezifiziert ist. In Version 3.1 kann auch eine andere Version von SVG verwendet werden, was eine Prüfung noch komplexer macht, da auch nicht immer angegeben werden muss, welche Version von SVG verwendet wurde.
- epubcheck bis Version 4.0.2 kennt zum Beispiel das Element data nicht, gibt bei Verwendung eine falsche Fehlermeldung aus.
- Ebenfalls bei Version 4.0.2 ergibt sich eine falsche Warnung, wenn auf eine SVG-Dateninsel wieder in einem XHTML-Bereich ein Verweis folgt, was darauf hinweist, dass epubcheck Namensräume fehlerhaft zuordnet.
- Gleichfalls die Version 4.0.2 ist nicht in der Lage, Bücher zur validieren, welche nach der etwa gleichalten Version EPUB 3.1 erstellt wurden.
- In den Versionen 4.2.x werden EPUBs nur noch nach EPUB 2 oder EPUB 3.2 getestet. Aufgrund von Inkompatibilitäten der verschiedenen Unterversionen von HTML5.x kann es so bei erneuten Prüfungen mit epubcheck zu neuen Fehlermeldungen bei bereits zuvor erfolgreich geprüften EPUBs nach Version 3.0.1 kommen.
Insgesamt ist das Ergebnis einer automatischen Prüfung folglich immer nur ein hilfreicher Hinweis auf Probleme. In einem weiteren Schritt ist dann manuell zu prüfen, ob das jeweilige Problem wirklich im Buch selbst liegt, mit einer fehlenden Versionierung der verwendeten Inhaltsformate zusammenhängt, in einem mangelhaften Schema zu suchen ist, an Fehlern des Validators liegt oder mit Mängeln und Inkonsistenzen der jeweiligen EPUB-Empfehlung zusammenhängt.
Trotz dieser Einschränkungen der Aussagekraft einer automatischen Prüfung gibt es Verlage oder Distributoren, die eine Veröffentlichung eines Buches im Format EPUB in ihrem Sortiment davon abhängig machen, ob das Buch einer solchen automatischen Prüfung mit einer gerade verwendeten Version eines Validators standhält.
Geschichte
Open eBook, der Vorläufer von EPUB, wurde von zwei Herstellern von E-Book-Systemen, nämlich SoftBook Press (hauptsächlich) und NuvoMedia Inc., für ihre mobilen Lesegeräte entwickelt und in den späten 1990er Jahren veröffentlicht.[6] Unter anderem setzte Microsoft 1998 auf Open eBook,[6] nachdem das eigene Lit-Format eingestellt wurde. Im September 1999 wurde Version 1.0 der Spezifikation veröffentlicht, die sogenannte Open eBook Publication Structure (OEBPS). Diese wurde im Juni 2001 (Version 1.0.1) und August 2002 (Version 1.2) mit neuen Formatempfehlungen aktualisiert. Im September 2007 wurde die Open Publication Structure (OPS) 2.0 unter dem heutigen Namen EPUB veröffentlicht, welches OEBPS ersetzt. Das Format wird seither im Rahmen des International Digital Publishing Forum (IDPF) entwickelt. Dateien dieser neuen Generation des Formats tragen nicht mehr die bisherige Dateiendung .opf (OEB Package Format), sondern nunmehr .epub.
Im Februar 2017 wurde das IDPF mit dem W3C vereint, die Arbeit an EPUB wird als Arbeitsgruppe des W3C fortgeführt.[7]
Die Arbeitsgruppe des W3C hat zum 8. Mai 2019 als W3C Community Group Final Report/Specification eine Überarbeitung von EPUB als Version 3.2 herausgebracht. Ein solcher Report hat aus formalen Gründen eine etwas andere Bedeutung als die sonst für das W3C üblichen Empfehlungen.
Unterstützung
Auf die Inhalte von digitalen Büchern im Format EPUB kann auf recht verschiedene Art und Weise zugegriffen werden. Weil die eigentlichen Inhalte aus Standardformaten wie XHTML und SVG bestehen, eignet sich prinzipiell eine breite Palette von Programmen zur Präsentation der Inhalte. Sofern das ZIP-Archiv, welches die EPUB-Datei darstellt, entpackt wird, wird der Inhalt des Buches für jegliches Darstellungsprogramm zugänglich, welches die Inhaltsformate interpretieren kann.
EPUB selbst sieht insbesondere in der Version 2 eine solche Verwendung alternativ zu der als ZIP-Archiv direkt vor. Die gängigen allgemeinen Darstellungsprogramme für XHTML und SVG interpretieren aber außerhalb des EPUB-Umfeldes die für EPUB spezifischen Formate nicht, insbesondere die OPF-Datei wäre hier eigentlich von zentraler Bedeutung. Hinterlegt ein Autor oder Erzeuger eines EPUB-Archivs allerdings das in Version 3 ohnehin erforderliche Inhaltsverzeichnis im Format XHTML unter einem eindeutigen Dateinamen (bei einem deutschsprachigen Buch etwa Inhaltsverzeichnis.xhtml) und macht dieses so ausführlich, dass darüber alle Inhaltsdokumente direkt oder indirekt über Einbettung oder weitere Verweise zugänglich werden, wird solch ein EPUB-Archiv auch recht gut für gängige Darstellungsprogramme für Inhalte im Netz, die auf Mozilla/Gecko, Opera/Presto, WebKit/Blink, Trident basieren, ohne zusätzliche Erweiterungen nutzbar.
Zusätzlich gibt es auch Erweiterungen für diese Darstellungsprogramme, die in der Lage sind, das Archiv direkt zu handhaben und auch die EPUB-spezifischen Dateien, insbesondere die OPF-Datei zu interpretieren und so den Inhalt des Buches automatisch zugänglich zu machen.
Daneben kann es auch noch eigenständig entwickelte Programme speziell zur Interpretation von EPUB geben, welche jedenfalls teilweise etwa Mozilla/Gecko oder WebKit/Blink intern als Programmbibliothek verwenden, um damit Inhalte zu präsentieren. Weil die Inhaltsdokumente mit XHTML und SVG aus XML bestehen, ist es allerdings auch für einen Anbieter noch relativ einfach, ausgehend von einem XML-Prozessor ein eigenes Präsentationsprogramm zu entwickeln, welches dann unabhängig von bereits bestehenden Programmbibliotheken verwendet werden kann oder eine Kombination anderer Bibliotheken ermöglicht.
Die Interpretation des Formates ist also primär von Programmen oder Programmbibliotheken abhängig, die recht breit auf vielen verschiedenen Betriebssystemen verfügbar sind, eine Abhängigkeit von bestimmten Geräten besteht nicht. Gleichwohl gibt es neben den gängigen Varianten von Rechnern auch spezielle Lesegeräte für digitale Bücher, teils auch mit bestimmten Einschränkungen hinsichtlich der Präsentation, etwa eine Anzeige nur in Grauwerten aufgrund der eingesetzten Technik (digitale Tinte, „elektronisches Papier“), welche dann intern wiederum auf die bereits genannten Programme oder Programmbibliotheken zurückgreifen können oder eigene Programme verwenden, um den Inhalt eines Buches zu präsentieren. Auch die in solchen Geräten verwendeten Prozessoren und Speicher fallen oft deutlich bescheidener aus, als man dies von den üblichen Rechnern für allgemeine Anwendungen im Büro oder Daheim gewohnt ist, was die darstellbaren Inhalte von der Komplexität und vom Umfang her einschränken kann.
Auch bei Verwendung gleicher Programmbibliotheken kann die Interpretation also verschiedenen Einschränkungen und Einflüssen unterliegen, die von Autoren und Lesern nicht allein daran abgeschätzt werden können, welche Programmbibliothek zur Präsentation verwendet wird. Hat ein Gerät etwa keinen Farbbildschirm, kann es auch farbige SVG-Dokumente nicht so präsentieren, wie vermutlich vom Autor beabsichtigt. Auch die Einbettung einer Bibliothek in eine Nutzerschnittstelle, eine graphische Oberfläche, kann Einfluss auf die Präsentationsmöglichkeiten haben. Hat etwa ein originales Darstellungsprogramm noch keine besonderen Probleme damit, lange Wörter oder große Graphiken zu präsentieren, kann dies ganz anders aussehen, wenn eine EPUB-Erweiterung versucht, denselben Inhalt zur Präsentation zu bringen, wenn dabei die Anmutung eines gedruckten Buches mit umblätterbaren Seiten erreicht werden soll.
Die Fähigkeiten oder die Güte der Interpretation von EPUB bei Eigenentwicklungen für spezielle Geräte sind für Außenstehende noch deutlich schwerer zu beurteilen, wenn das konkrete Gerät nicht vorliegt oder kaum kontrollierbar ist, ob dieses Programmversionen automatisch aktualisiert oder nicht.
Insgesamt ist die Beurteilung der Unterstützung des Formates EPUB also noch schwerer zu überschauen als die allgemeine Unterstützung der eigentlichen Inhaltsformate XHTML und SVG. Pauschal ist allerdings immer davon auszugehen, dass die Darstellungsprogramme nicht alle Anforderungen von EPUB erfüllen und somit nicht jedwedes formal korrekte Buch im Format EPUB auch so präsentieren können, dass alle Inhalte zugänglich wären. In der Praxis sind Autoren daher gezwungen, nur eine Untermenge von EPUB in ihren Büchern zu verwenden, damit den Lesern alle im Buch enthaltenen Inhalte zugänglich bleiben. Die Untermenge ist kleiner als jene, die Autoren verwenden, wenn sie Inhalte direkt im Netz veröffentlichen, also ohne ein EPUB/ZIP-Archiv drumherum.
Lesegeräte für E-Books
Nahezu alle E-Book-Reader (mit Ausnahme von Amazon Kindle) interpretieren das EPUB-Format zumindest teilweise. Oft ist nicht erkennbar oder einfach ermittelbar, ob die Geräte zur Präsentation auf etablierte Programmbibliotheken zurückgreifen oder eigene Entwicklungen einsetzen. Aussagen wie die Fähigkeit zur Interpretation von EPUB 2 oder EPUB 3 für ein bestimmtes Gerät sind in der Praxis meist kritisch zu beurteilen, weil es vermutlich bislang kein Programm gibt, welches die gesamte EPUB-Spezifikation in der Version 2 oder 3 korrekt interpretiert. Gemeint ist damit meistens, dass Basisbestandteile von EPUB interpretiert werden, was es ermöglicht, einfach gestaltete Bücher damit problemlos zu lesen. Bücher, welche die jeweiligen Möglichkeiten einer EPUB-Version mit reichhaltigeren Inhalten ausschöpfen, können immer Fehler und Lücken solcher Programme offenbaren.
Eine Übersicht, welche Geräte oder Programme welche Merkmale interpretieren, bietet zum Beispiel das EPUB 3 Support Grid.[8]
Programme zum Lesen (Auswahl)
Programm | Lizenz | Plattform | Bemerkungen | |
---|---|---|---|---|
Adobe Digital Editions | Freeware | Android, iOS, iPadOS, macOS, Windows | E-Book-Reader, liest und verwaltet neben EPUB-Dokumenten auch die Formate PDF, XHTML und ACSM | |
Aldiko | Freeware | Android | ||
Azardi | Freeware | Windows, Linux, macOS | Nutzt intern zur Darstellung von Inhalten Gecko, wie etwa auch Firefox (kostenlos)[9] | |
Bluefire Reader | Freeware | iOS, Android, Windows | Kann EPUB mit Adobe DRM lesen | |
Calibre | GPLv3 | Windows, macOS, Linux | Open-Source-Suite für E-Books.[10] Calibre verfügt über einen Wiki Reader, mit dessen Hilfe aus Wikipedia und aus Wikivoyage EPUB Dokument erstellt werden können. | |
Cool Reader | GPLv2 | Android, eComStation[11] | Auch auf Kindle Keyboard mit Jailbreak | |
epr/epy | GPLv3 | Windows, macOS, Linux | CLI Ebook Reader für das Terminal mit Bedienung angelehnt an Vim und optionaler TTS.[12] | |
EPUBReader | Freeware | Windows, macOS, Linux | Erweiterung für Firefox, Chrome, Opera und Edge (Chromium basiert), mit der man EPUB-Dateien direkt im Browser lesen kann[13] | |
FBReader | GPLv2 | Windows, Linux, PDAs, Android | ||
Freda | Code Project Open License v1.02 | Windows 8, Windows Phone, Windows Mobile | EPUB-Reader, unterstützt auch TXT- und HTML-Format[14] | |
Foliate | GPL | Linux | A simple and modern eBook viewer for Linux desktops[15] | |
Gitden | Freeware | iOS, Android | EPUB-Reader App, sehr breite Unterstützung von ePub3-Funktionen[16] | |
i2Reader | Freeware | iOS | ||
iBooks | proprietär | iOS, macOS | ab iOS 3.2, ab Mac OS X 10.9 | |
KOReader | AGPLv3 | Android, Linux | Läuft auf E-Book-Readern u. a. Kindle, Cervantes, Sony, Kobo, PocketBook, Tolino, ReMarkable, Onyx. Auf einigen Geräten ist ein Jailbreak erforderlich.[17] | |
Laputa Reader | Freemium | Android | Optisch aufwendiges Blättern ähnlich wie beim iPad | |
eBook.de Lese-App | Freeware | iOS, Android | Kostenlose E-Book-Reader-Software[18] | |
Lucidor | GPL | Windows, Linux, macOS | Nutzt intern zur Darstellung von Inhalten Pale Moon, ältere Versionen auch Mozilla/Gecko[19] | |
Lucifox | GPL | Windows, Linux, macOS | Erweiterung für Darstellungsprogramme vom Typ Mozilla/Gecko wie Firefox, Iceweasel, Seamonkey etc. (ältere Versionen) oder Pale Moon[20] | |
Mantano Reader | proprietär | iOS, Android | ||
Mobipocket | Freeware | Windows, Blackberry, Symbian, Windows Mobile | ||
Moon+ Reader | Freemium | Android | Unterstützt TTS, Markierungen, Kommentare, weitere E-Book-Formate | |
MuPDF | GNU Affero | Linux, Unix, BSD, Windows, Android, iOS | ||
Okular | GPL | Linux, Windows, macOS | Hinweis (Version 0.12): Die Gestaltung des E-Books wird nur eingeschränkt dargestellt (z. B. keine Kapitel, kein Inhaltsverzeichnis) | |
Overdrive Media Console | Freeware | Blackberry, Android, iOS, Windows Phone 7 | ||
pReader | GPLv3 | WebOS | E-Book-Reader für viele Formate | |
Readiator | Freeware | Windows, Linux, macOS | Erweiterung für Darstellungsprogramme vom Typ WebKit oder Blink wie etwa Chromium oder Google Chrome[21] | |
Readium | AGPLv3 / Apache v2.0 | Windows, Linux, macOS | Erweiterung vom IDPF für Darstellungsprogramme vom Typ WebKit oder Blink wie etwa Chromium oder Google Chrome (kostenlos)[22] | |
reMarkable App | proprietär | reMarkable | ||
Sony Reader Apps | Freeware | Windows, Mac, Android, Sony Tablet | ||
Stanza | Freeware | Windows, macOS, iOS | ||
Sumatra PDF (MuPDF) | GPLv3 | Windows | Begann als PDF-Reader und unterstützt neben EPUB zahlreiche weitere Formate | |
Talking Clipboard | Freeware | Windows | Software, die E-Books vorliest | |
Tolino | Freeware | Windows, Android, iOS | Software verfügbar als Webreader für den Browser sowie als App für Apple- und Android-Geräte. Funktionsumfang: Formatierung des Textes, Notizen, Markierungen, Lesezeichen, Nachtmodus | |
Atril/xreader | GPLv2 | Linux |
Programme zum Erstellen und Bearbeiten (Auswahl)
Neben einem Programm, um das ZIP-Archiv selbst zu erstellen, werden keine besonderen Programme benötigt, um Bücher im Format EPUB zu erzeugen. Für die Textinhalte in den XML-Dateien reicht ein einfacher Texteditor. Das ermöglicht es auch, die semantischen Möglichkeiten der Inhaltsformate voll auszuschöpfen. Konvertierungsprogramme und solche mit lediglich einer Ausgabe im Format EPUB verstehen zumeist den Inhalt nicht und sind daher meist nicht in der Lage, den Inhalt optimal zu strukturieren. Wird also ein Programm verwendet, welches eine Formatkonversion verwendet oder eine EPUB-Ausgabe anbietet, so ist es dringend zu empfehlen, den Inhalt mit einem einfachen Texteditor nachzuprüfen und nachzubessern, um ein optimales Ergebnis zu erzielen.
Oft ermöglichen es solche Programme auch, bereits begonnene EPUB-Archive einzulesen. Als Test bietet es sich hier an, ein manuell erstelltes Buch, welches semantische Textauszeichnung intensiv nutzt, ebenso wie die erlaubten Inhaltsformate, insbesondere XHTML und SVG, mit solch einem Programm zu laden und es wieder zu speichern oder nach kleineren Ergänzungen wieder zu speichern. Hat das Programm die semantische Textauszeichnung ohne Nachfrage verändert oder etwa SVG-Dokumente zu Pixelgrafik konvertiert oder ganz weggelassen, ist solch einem Programm offenbar mit äußerster Skepsis zu begegnen. Leider gibt es zahlreiche solche Programme, welche dem Format längst nicht gewachsen sind.
Software | Lizenz | Plattform | Bemerkungen |
---|---|---|---|
ABBYY FineReader 11 | proprietär | Windows, macOS | Texterkennung (OCR) mit Exportfunktion ins EPUB-Format, 30 Tage Trial-Version erhältlich |
Adobe InDesign[23] | proprietär | Windows, macOS | Desktop-Publishing-Programm (ab CS4) |
Adobe RoboHelp | proprietär | Windows | Autorensystem für Online-Dokumentation mit Exportfunktion ins EPUB-Format |
Apple Pages | proprietär | macOS | Textverarbeitung mit Exportfunktion ins EPUB-Format |
Atlantis Word Processor | proprietär | Windows | Textverarbeitung mit Exportfunktion ins EPUB-Format, 30 Tage Trial-Version erhältlich |
BlueGriffon EPUB Edition | proprietär | Windows, Linux, macOS | EPUB-Editor |
Calibre | GPLv3 | Windows, Linux, macOS | Konvertierungsprogramm, Editor für EPUB und AZW3 (Kindle)[24] |
Calligra Author | LPGL / GPL | Linux | Teil der Calligra Suite |
eBooksWriter | proprietär | Windows | Demoversion erhältlich |
eCub | Freeware | Windows, Linux, macOS | Konvertierungsprogramm |
eLaix | GPL | Windows, Linux, macOS | LibreOffice-Plugin, das neben ILIAS-Lerneinheiten auch EPUBs exportiert (Projekt wird jedoch eventuell nicht mehr gewartet[25]) |
ePuper | Freeware | Windows | EPUB-Editor, Freeware |
Jutoh | proprietär | Windows, macOS | erstellt EPUBs aus ODT-Files, die z. B. mit OpenOffice oder LibreOffice erstellt wurden |
Pandoc | GPL | Linux, macOS, Windows, Universal (Haskell) | Universelles Konvertierungsprogramm (auch TeX → EPUB) |
Papyrus Autor | proprietär | Windows, macOS | Deutschsprachige Textverarbeitung mit Exportfunktion ins EPUB-Format |
QuarkXPress[26] | proprietär | macOS, Windows | Desktop-Publishing-Programm |
Sigil | GPLv3 | Windows, Linux, macOS | Open-Source-Editor zum Lesen und Schreiben von EPUBs |
writer2ePub[27] | Freeware | Windows, Linux, macOS | Plug-in für LibreOffice und OpenOffice von Luca “Luke” Calcinai, das aus Textdokumenten EPUBs erstellt. |
Xilisoft PDF to EPUB Converter | proprietär | Windows | Konvertierungsprogramm, 30 Tage Trial-Version erhältlich |
Digitale Rechteverwaltung
Beim Format EPUB ist es vorgesehen, optional in einer bestimmten Datei Informationen zur digitalen Rechteverwaltung (DRM) zu notieren, bis einschließlich Version 3.0 ist allerdings keine bestimmte Struktur dafür definiert. Eine Interpretation solcher Informationen ist folglich optional, eine gegebenenfalls danach vorgenommene Verschlüsselung der Inhalte kann diese also für viele Darstellungsprogramme unzugänglich machen. Momentan existieren zudem unterschiedliche, miteinander nicht kompatible Systeme. Das von Adobe entwickelte ADEPT-DRM-System hat von diesen eine vergleichsweise hohe Verbreitung; fast alle Händler, die ihre EPUB-Bücher schützen, verwenden dieses System, und es wird von vielen kommerziellen E-Book-Readern unterstützt, meist jedoch nicht von freien Darstellungsprogrammen oder Erweiterungen für Browser.
Ein weiteres DRM-System ist von Apple entwickelt. Bisher kann lediglich das firmeneigene Darstellungsprogramm iBooks Bücher in diesem Format entschlüsseln. Damit ist dieses System auf Geräte beschränkt, für die iBooks als Darstellungsprogramm verfügbar ist.
Entfernen des Kopierschutzes
Für die von Adobe entwickelte, digitale Rechteverwaltung ADEPT DRM wurde im Februar 2009 eine Möglichkeit publiziert, den Kopierschutz zu umgehen.[28][29] Dabei wurde nicht der Kopierschutz an sich geknackt, sondern lediglich der private Schlüssel extrahiert. Mit diesem lassen sich dann alle mit diesem Schlüssel geschützten EPUB-Dateien vollständig entschlüsseln und ohne digitales Rechtemanagement neu abspeichern. Diese neuen Dateien unterliegen somit nicht mehr den Restriktionen der digitalen Rechteverwaltung. Die Inhalte werden auch für andere Darstellungsprogramme zugänglich. Eventuell vorhandene persönliche Identifizierungsdaten bleiben vorhanden.
Literatur
- Victor Wang: E-Books mit ePUB – Von Word zum E-Book mit XML. 1. Auflage. mitp, Heidelberg u. a. 2011, ISBN 978-3-8266-5602-6.
- Yves Apel: E-Books mit InDesign CC: Die Profi-Anleitung für ePub, Mobi & Co. dpunkt, Heidelberg 2014, ISBN 978-3-86490-121-8.
- Yves Apel, Sasha Heck: ePub für (In)Designer: Mit InDesign Schritt für Schritt zum E-Book dpunkt, Heidelberg 2012, ISBN 978-3-89864-794-6. komplett online
Weblinks
- Spezifikationen der EPUB zugrundeliegenden Techniken (englisch)
- EPUB-Validator des IDPF (englisch)
- Digitale Bücher, E-Books im Format EPUB selbst erstellen (deutsch, Anleitung zu den Versionen 2 und 3, Generatoren für einfache Bücher in den Versionen 2 und 3, Tests von Darstellungsprogrammen für Version 2 und 3)
- Ausführliche Einführung in EPUB (deutsch, beschreibt Version 2)
- Epub Format Construction Guide (englisch, EPUB-Version des Dokuments; beides beschreibt Version 2)
- IDPF Launches EPUB Standards Maintenance Work (englisch)
Einzelnachweise
- EPUB 3.2. W3C EPUB 3 Community Group, 8. Mai 2019, abgerufen am 18. Juni 2019 (englisch).
- EPUB 3.1 Changes from EPUB 3.0.1. International Digital Publishing Forum, 5. Januar 2017, abgerufen am 29. März 2017 (englisch).
- EPUB 2.0.1. International Digital Publishing Forum, 4. September 2010, abgerufen am 29. März 2017 (en-PK).
- EPUB 3.0. International Digital Publishing Forum, 11. Oktober 2011, abgerufen am 29. März 2017 (englisch).
- epubcheck
- businessweek.com
- New Roadmap for Future of Publishing is Underway as W3C and IDPF Officially Combine. W3C, 1. Februar 2017, abgerufen am 29. März 2017 (englisch).
- epubtest.org
- infogridpacific.com
- calibre-ebook.com
- ecomstation.it
- https://github.com/wustho/epy
- epubread.com
- turnip.demon.co.uk/jim/freda
- https://johnfactotum.github.io/foliate/
- gitden.com
- github.com
- ebook.de
- lucidor.org
- lucidor.org
- github.com
- readium.org
- Prüfstand: Intermezzo Adobes Creative Suite 5.5 setzt auf digitales Publishing. In: c’t, 14/2011
- calibre-ebook.com
- extensions.libreoffice.org
- Prüfstand: Schaltzentrale QuarkXPress 9 rüstet sich fürs digitale Publishing. In: c’t, 11/2011
- Writer2ePub
- Circumventing Adobe ADEPT DRM for EPUB. i♥cabbages – still another reverse engineering blog, 18. Februar 2009, abgerufen am 29. März 2017 (englisch).
- Khawar Mehmood, Mehreen Afzal, M. Mukaram Khan, M. M. WaseemIqbal: A Practical Approach to Impede Key Recovery and Piracy in Digital Rights Management System (DRM). In: Proceedings of 2015 12th International Bhurban Conference on Applied Sciences & Technology (IBCAST). Islamabad 2015, ISBN 978-1-4799-6369-0, doi:10.1109/IBCAST.2015.7058528 (englisch).