blog/content/posts/E-books erstellen schritt für schritt.de.adoc

11 KiB


title: "E-books erstellen schritt für schritt" slug: "e-books-erstellen-schritt-fuer-schritt" description: "Von nichts zum fertigen E-book mit freier software. Diese anleitung fängt beim ersten wort an, behandelt grundlagen der gestaltung, legt besonderen wert auf barrierefreiheit und endet mit dem fertigen EPUB 3 e-book." date: 2021-07-10T15:01:09+02:00 type: posts draft: true tags: - E-books - Calibre toc: true ---

Als ich anfing, e-books zu bauen, fand ich leider keine guten anleitungen, die mir schritt für schritt erklären, was ich tun soll. Ich musste mir alles mühsam zusammensuchen. Dies ist der versuch, die gesammelten informationen übersichtlich an einer stelle zu präsentieren. Diese anleitung fängt beim ersten wort an, behandelt grundlagen der gestaltung, legt besonderen wert auf barrierefreiheit (beziehungsweise barrierearmut) und endet mit dem fertigen EPUB 3 e-book. Ich freue mich über kritik und verbesserungsvorschläge.

Vorraussetzungen zum mitmachen sind grundlegende kenntnisse in XHTML und CSS. Benötigte programme sind ein textverabeitungsprogramm deiner wahl (zum beispiel LibreOffice, gedit oder Kate) und entweder Calibre oder Sigil. Alle diese programme sollten über die paketverwaltung deiner Linux-distribution verfügbar sein. Englischkenntnisse sind von vorteil, da es weitergehende informationen häufig nur auf englisch gibt.

Anm.
Ich konzentriere mich hier auf LibreOffice und Calibre, andere programme und methoden behandle ich nur am rande. Auf Desktop-Publishing programme kann ich leider nicht eingehen, weil ich da noch keine ahnung von habe. LaTeX muss auch außen vor bleiben, um den rahmen nicht zu sprengen.

Den text schreiben

Wenn du noch nicht angefangen hast zu schreiben, lohnt es sich über das dateiformat nachzudenken. Unterschiedliche dateiformate lassen sich unterschiedlich gut in e-books umzuwandeln. ODT-dateien (Wie sie LibreOffice schreibt) eignen sich gut. Aber auch reine textformate wie AsciiDoc[1], Org oder MarkDown[2] sind geeignet. Beispieldateien für LibreOffice, AsciiDoc, Org und MarkDown finden sich am ende des posts.

Achte darauf, die elemente des texts semantisch zu gestalten, also sie mit maschinenlesbarer bedeutung zu verknüpfen. Das heißt, wenn du eine überschrift einfügen willst, mache nicht einfach die schrift größer, sondern wähle in LibreOffice die vorlage „Überschrift 1“ oder „Überschrift 2“ und so weiter aus. Wenn du eine fußnote einfügen willst, mache das über menu:Einfügen[Fuß-/Endnote].[3] So weiß das umwandlungsprogramm später, wie das EPUB strukturiert werden soll.

Umwandlung in ein E-book

Füge die ODT-datei in Calibre hinzu, indem du menu:Bücher hinzufügen[Füge Bücher aus einem Ordner hinzu] auswählst. Das menü erreichst du über den kleinen pfeil neben dem grünen icon ganz links. Nun klicke mit der rechten maustaste auf das buch und dann menu:Bücher konvertieren[Einzeln konvertieren]. Stelle sicher, dass als zielformat „EPUB“ ausgewählt ist und ergänze die metadaten auf der rechten seite. Wenn der umwandlungsprozess abgeschlossen ist, klicke mit der rechten maustaste auf das buch und wähle menu:Buch bearbeiten[] aus. Klicke im editor auf menu:Werkzeuge[Buchstrukturen upgraden] und im folgenden dialog auf btn:[Behalte NCX]. Das ist nötig, um kompatibel mit alten lesegeräten zu bleiben.

XHTML und CSS aufräumen

Lösche alle CSS-dateien. Nun klicke auf das käfer-icon in der werkzeugleiste oder menu:Werkzeuge[Check book]. Du wirst einen haufen fehlermeldungen wegen den fehlenden CSS-dateien kriegen. Klicke auf der rechten seite auf „Alle behebbaren Fehler automatisch zu korrigieren versuchen“. Die verweise auf die CSS-dateien sind nun entfernt.

Als nächstes löschen wir alle überflüssigen sachen, die Calibre uns in die XHTML-dateien geklatscht hat. Öffne dazu eine beliebige XHTML-datei. Nun klicke auf menu:Suchen[Suchen/Ersetzen]. Schreibe in das Suchen-feld  id="calibre_pb_[0-9]+" (beachte das leerzeichen am anfang) und lasse das Ersetzen-feld leer. Stelle den Modus auf „Regex“ und wähle rechts daneben „Alle Textdateien“ aus. Nun klicke auf btn:[Alle ersetzen]. Wiederhole das ganze mit folgenden werten im „Suchen“-feld:

  •  class="calibre[0-9]*"

  •  class="p-[^"]+"

  • <a id="anchor[0-9]+"></a>

Tipp
Wenn du mehr über reguläre ausdrücke (auch „regex“ genannt) erfahren möchtest, schaue mal bei https://www.keycdn.com/support/regex-cheatsheet (englisch) vorbei.

Nun ersetzen wir alle vorkommen von:

  • xmlns:epub="http://www.idpf.org/2007/ops"> mit
    xmlns:epub="http://www.idpf.org/2007/ops" lang="de" xml:lang="de">

  • <title>Unbekannt</title> mit
    <title>Dein Titel</title>

  • <sup><a href="([^"])#" class="citation" id="[^"]">()</a></sup> mit
    <sup id="fn\2-backlink"><a epub:type="noteref" role="doc-noteref" href="\1#fn\2">\2</a></sup>

  • <dt id="footnote-([0-9])">[<a href="([^"])#[^"]">←1</a>\]</dt>\s+<dd>(.)</dd> mit
    <li epub:type="endnote" id="fn\1">\3<a href="\2#fn\1-backlink">←</a></li>

  • <dl class="notes"> mit
    <section epub:type="endnotes" role="doc-endnotes" class="fussnoten">\n<ol>

Und dann in der datei mit den „Anmerkungen“ (normalerweise die letzte) das </dl> ganz unten mit <ol></section> ersetzen.

Um handarbeit kommen wir nicht herum

Wir öffnen jetzt die titelseite (üblicherweise index_split_000.xhtml) und geben dem titel und untertitel IDs, damit wir sie per CSS stylen können. Anschließend packen wir beide in eine section mit epub:type="titlepage" ein.

Das ganze sollte dann ungefähr so aussehen:
<?xml version='1.0' encoding='utf-8'?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" lang="de" xml:lang="de">
  <head>
    <title>Das Testbuch</title>
  </head>
  <body>
    <section epub:type="titlepage" aria-label="Titel">
      <p id="titel" epub:type="title">Das Testbuch</p>
      <p id="untertitel" epub:type="subtitle">Ein Beispieldokument für eine E-book-Anleitung</p>
    </section>
  </body>
</html>

Die möglichen werte für epub:type kannst du in EPUB 3 Structural Semantics Vocabulary (englisch) nachlesen. Was es mit aria-label auf sich hat, erfährst du in EPUB Semantics, ARIA Roles, & Metadata (englisch).

Gehe nun alle dateien nacheinander durch, und gebe jeder überschrift eine eindeutige ID. Zum beispiel „kapitel1“ für das erste kapitel und „kapitel1_1“ für das erste unterkapitel des ersten kapitels. Nun packe jedes kapitel in eine section mit epub:type="chapter" und role="doc-chapter" ein. Das attribut aria-labelledby setzen wir auf die ID der kapitelüberschrift. Das machen wir, damit assistenztechnologien einen besseren überblick anbieten können[4].

Beispieldatei mit den richtigen section-attributen:
<?xml version='1.0' encoding='utf-8'?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" lang="de" xml:lang="de">
  <head>
    <title>Das Testbuch</title>
  </head>
  <body>

    <section epub:type="chapter" role="doc-chapter" aria-labelledby="kapitel2">
      <h1 id="kapitel2">Zweites Kapitel</h1>

      <section epub:type="chapter" role="doc-chapter" aria-labelledby="kapitel2_1">
        <h2 id="kapitel2_1">Unterkapitel des zweiten Kapitels</h2>
        <p>Lorem ipsum dolor sit amet, […]</p>

        <section epub:type="chapter" role="doc-chapter" aria-labelledby="kapitel2_1_1">
          <h3 id="kapitel2_1_1">Unterkapitel des Unterkapitels des zweiten Kapitels</h3>
          <p>Lorem ipsum dolor sit amet, […]</p>
        </section>

      </section>
    </section>

  </body>
</html>
Tipp
Für manche elemente gibt es besser passende epub:types und/oder roles. Zum beispiel könnte eine einleitung mit „introduction“ und „doc-introduction“ markiert werden. Siehe die EPUB Type to ARIA Role Authoring Guide (englisch) für weitergehende informationen.

Neues CSS schreiben

Beispieldateien

  • LibreOffice: buch.odt

    • Kann mit ebook-convert buch.odt buch.epub oder in der GUI von Calibre umgewandelt werden.

  • AsciiDoc: buch.adoc

    • Kann mit asciidoctor-epub3 -o buch.epub buch.adoc umgewandelt werden.

  • Org: buch.org

    • Kann mit pandoc -o buch.epub buch.org umgewandelt werden.

  • MarkDown: buch.md

    • Kann mit pandoc -o buch.epub buch.md umgewandelt werden.


1. Um AsciiDoc in ein e-book umzuwandeln, wird asciidoctor-epub3 benötigt.
2. Um Org oder MarkDown in ein e-book zu verwandeln, wird pandoc benötigt.
3. Näheres kannst du im handbuch von LibreOffice nachlesen.