Digitale Bücher im Format EPUB 2 selbst erstellen: Kopfinformation im Inhaltsverzeichnis

Es gibt Bücher, durch die man alles erfährt und doch zuletzt von der Sache nichts begreift.
Johann Wolfgang von Goethe

Projektmenü; Überblick; Erläuterungen zu EPUB 3; Erläuterungen zu EPUB 2

Inhalt

Die NCX-Datei dient dazu, dem Leser Navigationen durch das Buch anzubieten. Daneben sind im Kopfbereich auch noch Metainformationen zu notieren, die hier erläutert werden.

Wurzelelement

ncx ist das Wurzelelement einer NCX-Datei. Als erstes Kindelement ist ähnlich wie bei XHTML head für Metainformationen anzugeben.

ncx hat das Attribut version für die Versionsangabe von NCX. Der Wert ist '2005-1'.

Die Angabe des Namensraumes mit dem Attribut xmlns ist 'http://www.daisy.org/z3986/2005/ncx/'.

Mit dem Attribut xml:lang kann die verwendete Sprache angegeben werden, also etwa 'de' für deutsch.

Mit dem Attribut dir kann die Schreib- oder Leserichtung des Dokumentes geändert werden. Zu beachten ist dabei, daß Unicode die Schreib- oder Leserichtung für Zeichen automatisch festlegt. Im Normalfalle muß man sich also um dieses Problem nicht kümmern, lediglich, wenn man davon abweichen möchte. Mit dem Wert 'ltr' geht die Richtung von links nach rechts, wie man das für lateinische Schrift kennt. Mit 'rtl' geht es von rechts nach links, wie man das von hebräisch oder arabisch kennt.

Dateikopf

Im Element head von ncx werden ähnlich wie bei XHTML Metainformationen notiert. Als jüngeres Format vermeidet DTB allerdings eher Wiederholungen. Die Metainformationen werden mit meta-Elementen notiert. Das im Prototyp notierte meta-Element ist für EPUB erforderlich, weitere sind optional möglich. Ähnlich wie bei XHTML wird mit dem Attribut name die Art der Information angegeben, mit dem Attribut content der Inhalt oder Wert der Information.

Metainformatinen

Die erforderliche per meta-Element notierte Information ist die Buchidentifikation. Der Wert von name ist dtb:uid und der Wert von content ist die bereits diskutierte Buchidentifikation. Das ist dieselbe, welche im OPF-Dokument per unique-identifier im Element package referenziert wird und in dem OPF-Dokument mit dem Element identifier angegeben wird.

Die weiteren meta-Elemente sind optional für EPUB. Zum Beispiel kann mit dem Wert dtb:generator für name für content der Erzeuger des Buches angegeben werden, also entweder ein Programmname oder der eigene, falls man es mit einem Texteditor erstellt hat, worum es in diesem Artikel ja geht.

Für name können auch die vordefinierten Werte dtb:depth, dtb:totalPageCount, dtb:maxPageNumber verwendet werden. Damit können in content auch Angaben gemacht werden, die sich auf die folgenden Navigationsstrukturen beziehen. Die Werte für content sind einfache ganze Zahlen.

dtb:depth ist eine positive ganze Zahl für die Strukturtiefe. Das eignet sich noch am ehesten für EPUB, wenn man als Strukturtiefe die Verschachtelungstiefe der folgenden navMap annimmt, also die Anzahl der Kapitelverschachtelungsebenen.

dtb:totalPageCount ist eine nicht negative ganze Zahl für die Anzahl der pageTargets in der pageList. Gibt es keine pageList, ist die Anzahl 0.

dtb:maxPageNumber ist eine nicht negative ganze Zahl für den größten Wert von Attribut value des Elementes pageTargets in der pageList. Gibt es keine pageList, ist die Anzahl 0.

Weitere Metainformationen können mit weiteren meta-Elementen notiert werden. Mit dem Attribut scheme kann dazu ein Profil oder Schema zu referenziert werden, damit die Metainformationen auch eine definierte und maschinenlesbare Bedeutung bekommen. 'dtb:' darf nicht im Wert von name als Präfix verwendet werden.
Man könnte hier also wieder ähnlich wie bei XHTML auf Elemente oder Terme von Dublin Core zurückgreifen, um ein bekanntes und wohldefiniertes Schema zu verwenden.

Dokumenttitel

Auf head folgt ein Element docTitle - in dem Kindelement text ist erneut der Buchtitel zu notieren. Das ist also derselbe, der bereits im OPF-Dokument genannt wurde.

Als Attribut kann bei docAuthor und text ein id mit einem Fragmentidentifizierer notiert werden. Bei text kann zusätzlich noch das Attribut class notiert werden, welches ebenfalls die gleiche Bedeutung hat wie bei XHTML.

Nach text kann optional auch noch ein Bild angegeben werden. Dazu dient das Element img.
Mit dem Attribut src von img wird die URI der Bilddatei referenziert. Außerdem können wie bei text die Attribute id und class notiert werden.

Ein Beispiel dazu:

<docTitle id="MeinTitel">
  <text id="TitelText" class="top">
    Der Irrtum als System - 
    Kurzgeschichten für Irrende und Besserwisser
  </text>
  <img id="TitelBild" 
       class="topBild"
       src="titel.png" />
</docTitle>

Dokumentautoren

Danach folgen optional Elemente docAuthor - in dem Kindelement text wird dann jeweils ein Autor notiert. Für jeden Autor wird ein eigenes docAuthor notiert.

Als Attribut kann bei docAuthor ein id mit einem Fragmentidentifizierer notiert werden. Bei text kann zusätzlich noch das Attribut class notiert werden, welches ebenfalls die gleiche Bedeutung hat wie bei XHTML.

Nach text kann optional auch noch ein Bild angegeben werden. Dazu dient das Element img.
Mit dem Attribut src von img wird die URI der Bilddatei referenziert. Außerdem können wie bei text die Attribute id und class notiert werden.

Ein Beispiel dazu:

<docAuthor id="Olaf">
  <text id="OlafText" class="Autor">
    Dr. Olaf Hoffmann
  </text>
  <img id="OlafBild" 
       class="AutorBild"
       src="Olaf2012.jpg" />
</docAuthor>
<docAuthor id="Joerg">
  <text id="JoergText" class="Autor">
    Jörg Hoffmann
  </text>
  <img id="JoergBild" 
       class="AutorBild"
       src="Joerg2012.jpg" />
</docAuthor>