Digitale Bücher im Format EPUB 2 selbst erstellen: Buchrücken

Himmel, laß mich nur kein Buch von Büchern schreiben.
Georg Christoph Lichtenberg

Projektmenü; Anleitung EPUB 2

Inhalt

Die normale Lesereihenfolge der Dokumente wird im OPF-Dokument auf manifest folgend im erforderlichen Element spine festgelegt. Das Element steht sinngemäß für den Buchrücken oder die Bindung des Buches, bestimmt also darüber, wie eigenständige Dokumente im Buch aufeinander folgen sollen. In spine steht mindestens ein Element itemref.

Inhaltsverzeichnis

Mit dem erforderlichen Attribut toc des Elementes spine wird auf das für den Leser zugängliche Inhaltsverzeichnis verwiesen. Der Attributwert von toc ist der Fragmentidentifizierer des Elementes item, welcher auf dieses Dokument mit dem Inhaltsverzeichnis verweist (Dateiendung '.ncx'). Im Prototyp ist das die Datei 'toc.ncx' - man kann das Inhaltsverzeichnis natürlich auch anders nennen, da man aber immer genau eine dieser Dateien braucht, kann man es auch gleich bei dem Namen und dem Fragmentidentifizierer 'ncx' belassen, um sich nicht bei jedem Buch neu orientieren zu müssen.

Inhaltsteile

Mit einem itemref wird jeweils exakt ein item aus manifest referenziert. Ein item darf nicht mehrmals referenziert werden. Dazu wird bei dem Attribut idref des Elementes itemref als Attributwert der Fragmentidentifizierer des item notiert, welcher dort als Wert von id notiert ist. Es müssen nicht alle item aus manifest referenziert werden. Es kommen ohnehin nur jene Dateien in Betracht, welche für die direkte und alleinstehende Darstellung gedacht sind, also keine Stilvorlagen oder Bilder, also nur XHTML-Dokumente und DTB-Dokumente - oder solche Dokumente, die als Alternative im item ein Dokument in einem dieser Formate aufgeführt haben. Die Reihenfolge der itemref bestimmt die normale Lesereihenfolge der Dokumente im Buch.
Jedes der im Buch vorhandenen Inhaltsdokumente, welches an der Lesereihenfolge irgendwie partizipieren soll, ist per itemref zu referenzieren. Referenzieren Inhaltsdokumente andere Inhaltsdokumente, so sind diese referenzierten Dokumente ebenfalls im spine zu notieren. Versehentlich nicht aufgeführte, aber etwa über einen Verweis referenzierte Inhaltsdokumente, kann das Darstellungsprogramm eigenständig zur Liste hinzufügen.

Effektiv wird damit jenen Autoren ein Bein gestellt, die eine eigene Navigation bereitstellen, insbesondere für Bücher, die gar keine lineare Lesereihenfolge aufweisen, etwa wenn Leser zwischen alternativen Fortsetzungen frei wählen können soll oder wenn bei labyrinthartigen Inhaltsstrukturen gar keine lineare Lesereihenfolge vorliegt.

Lineare Lesereihenfolge oder nicht?

Als Attribut von itemref kann mit linear notiert werden, ob das referenzierte Dokument in der linearen Lesereihenfolge präsentiert werden soll oder nicht. Wird das Attribut nicht angegeben, wird der Wert 'yes' angenommen, es wird also in der normalen Reihenfolge präsentiert. Der andere mögliche Wert ist 'no', dann wird das Dokument nicht in der normalen Lesereihenfolge präsentiert. Der Autor muß dann einen anderen Mechanismus wie einen Verweis auf das Dokument verwenden, um es dem Leser zugänglich zu machen. Es bedarf also eines expliziten Aufrufs des Dokumentes, nicht lediglich eines einfachen Weiterblätterns im Buch, um ein solches Dokument einzusehen. Das kann etwa sinnvoll sein, wenn Lösungen zu Aufgaben angegeben werden, aber auch bei experimentelleren Werken, wo ab einem bestimmten Punkt im Inhalt alternative Lesevarianten verfügbar gemacht werden, die lineare Struktur eines klassischen Buches also aufgebrochen wird, um die flexiblere Struktur digitaler Bücher auszunutzen.

Wenigstens ein itemref muß zur linearen Lesereihenfolge gehören. Die Dokumente, die nicht zur linearen Lesereihenfolge gehören, müssen über Dokumente aus der linearen Lesereihenfolge zugänglich gemacht werden, etwa über einen Verweis. Gemäß EPUB dürfen Darstellungsprogramme auch 'no' ignorieren und alles in der angegebenen Reihenfolge darstellen, wenn sie technisch Probleme damit haben, eine nicht lineare Lesereihenfolge zu realisieren, etwa bei einer Druckausgabe des Buches. Von daher ist EPUB also nur begrenzt für experimentelle Literatur geeignet, die explizite Interaktivität als Voraussetzung hat. EPUB reicht also nicht wesentlich über klassische, gedruckte Bücher hinaus. Mehr oder weniger ist noch immer alles in fester Reihenfolge zwischen zwei Buchrücken zusammengebunden.

Wenn es mehrere Möglichkeiten gibt, wieder in die lineare Lesereihenfolge einzusteigen oder das nächste Dokument der normalen Lesereihenfolge im spine nicht auf das nicht lineare Dokument folgt, ist natürlich wieder mit Verweisen im nicht linearen Dokument dafür zu sorgen, daß der Leser in den normalen Lesefluß zurückfindet - und zwar an der Stelle, an der dieser den normalen Lesefluß verlassen hat.

In der Praxis ignorieren viele Darstellungsprogramme die Angabe zu linear 'no', stellen solche Inhalte entweder in der angegebenen Reihenfolge dar oder im Anschluß an die als linear angegebenen Dokumente. Gemäß EPUB ist dieses Verhalten sogar zulässig. Das sabotiert eine sinnvolle Funktion für nicht-lineare Bücher.

Technisch sind solche Inhalte bei digitalen Büchern natürlich eigentlich kein Problem. Allein EPUB selbst macht sie zum Problem, weil sich die Autoren der Empfehlung offenbar nicht von der Vorstellung klassischer, gedruckter Bücher lösen können, bei denen ja bekannt ist, daß nicht-lineare Inhalte für diese problematisch sind, weil bei solchen Büchern der Inhalt auf Seiten gedruckt wird, die zusammengebunden werden und an einem Buchrücken befestigt werden. EPUB vermag sich leider nicht von dieser Vorstellung gedruckter Bücher lösen und vertut hier eine große Chance, wirklich neue Typen von Büchern zu ermöglichen, die mit gedruckten Büchern nie gut umgesetzt werden konnten.

Autoren von nicht-linearen Büchern können hier bestenfalls improvisieren, indem sie zum Beispiel die nicht-linearen Inhalte in einer zufälligen Reihenfolge im spine notieren oder aber aber auch vor und nach jedem nicht-linearen Dokument im spine zahlreiche weitere nicht-lineare Dokumente ohne Inhalt einfügen, oder nur mit solchem Navigationsinhalt, welcher dem Leser hilft, unter den sinnvollen Alternativen eines nicht-linearen Buches auszuwählen, statt durch den untauglichen, automatischen Mechanismus des Darstellungsprogrammes zu an dieser Stelle falschen Inhalten zu gelangen.

Beispiel

Gegeben sei ein Lehrbuch, welches in Kapitel, Aufgaben und Aufgabenlösungen eingeteilt ist. Die Aufgaben sollen auf die jeweiligen Kapitel folgen und Aufgabenlösungen bekommt man nur zu sehen, wenn man explizit einen Verweis anklickert. Da könnten das Dateienverzeichnis und der Buchrücken wie folgt aussehen:

<manifest>
    <item href="toc.ncx" 
          id="ncx"
          media-type="application/x-dtbncx+xml"/>
  
    <item href="titelseite.xhtml" 
          id="titelseite" 
          media-type="application/xhtml+xml"/>

          
    <item href="kapitel1.xhtml" 
          id="k1" 
          media-type="application/xhtml+xml"/>
    <item href="aufgaben1.xhtml" 
          id="a1" 
          media-type="application/xhtml+xml"/>
    <item href="ergebnis1.xhtml" 
          id="e1" 
          media-type="application/xhtml+xml"/>
          
     <item href="kapitel2.xhtml" 
          id="k2" 
          media-type="application/xhtml+xml"/>
    <item href="aufgaben2.xhtml" 
          id="a2" 
          media-type="application/xhtml+xml"/>
    <item href="ergebnis2.xhtml" 
          id="e2" 
          media-type="application/xhtml+xml"/>
          
    <item href="kapitel3.xhtml" 
          id="k3" 
          media-type="application/xhtml+xml"/>
    <item href="aufgaben3.xhtml" 
          id="a3" 
          media-type="application/xhtml+xml"/> 
    <item href="ergebnis3.xhtml" 
          id="e3" 
          media-type="application/xhtml+xml"/>
          
    <!-- etc ... -->
    

     <item href="nachwort.xhtml" 
          id="nach" 
          media-type="application/xhtml+xml"/> 
     <item href="bibliographie.xhtml" 
          id="bib" 
          media-type="application/xhtml+xml"/>
     <item href="stichworte.xhtml" 
          id="stich" 
          media-type="application/xhtml+xml"/>        
     <!-- etc ... -->
     
     
  </manifest> 
 
  <spine toc="ncx">
    <itemref idref="titelseite"/>
    <itemref idref="k1"/>
    <itemref idref="a1"/>
    <itemref idref="k2"/>
    <itemref idref="a2"/>
    <itemref idref="k3"/>
    <itemref idref="a3"/>
    <!-- etc ... -->
    

    <itemref idref="nach"/>
    <itemref idref="bib"/>  
    <itemref idref="e1" linear="no"/>   
    <itemref idref="e2" linear="no"/>  
    <itemref idref="e3" linear="no"/>     
    <!-- etc ... -->    
    <itemref idref="stich"/>     
  </spine>

Die Lösungen werden also zum einen mittels linear="no" aus dem normalen Ablauf genommen, in jeder Aufgabensammlung eines Kapitels könnten dann Verweise auf die Lösunge stehen. Zum anderen werden die Lösungsseiten ziemlich am Ende angeordnet, für den Fall, daß linear="no" von einem Programm ignoriert werden sollte.