CMP-07: Anpassungen mit bookdown

Im siebten Teil des Kurses zu Cross Media Publishing CMP-07 bespreche ich einige einfache Anpassungen. Nach den bisher grundsätzlichen Inhalten der Lektionen 1-6 öffnet sich nun ein reichhaltiges Repertoir an neuen Möglichkeiten. Allerdings erreichen wir hier auch die Grenzen von bookdown für Laien-Anwendungen, weil viele dieser Anpassungen technische Kenntnisse (HTML, CSS oder LaTeX) erfordern. Ich beschränke mich hier auf einige sehr einfache Anpassungen, mit denen Sie allerdings bereits viel erreichen können. Das betrifft ua. die Internationalisierung bzw. ins Deutsche zu übersetzende Begrifflichkeiten: Standardmäßig werden ja englische Ausdrücke verwendet (Content, Chapter, Table, Figure etc.), die für eine deutsch-sprachiges Buch angepasst werden müssen. Außerdem werde ich in dieserm Kurseinheit auch einfache Layout-Anpassungen mit Hilfe von Cascading Style Sheets (CSS) eingehen.

CMP-07: Voraussetzungen

  • Erfolgreiches Durcharbeiten von Cross Media Publishing Tutorial Nr. 1 (CMP-01)
  • Erfolgreiches Durcharbeiten von Cross Media Publishing Tutorial Nr. 2 (CMP-02)
  • Erfolgreiches Durcharbeiten von Cross Media Publishing Tutorial Nr. 3 (CMP-03)
  • Erfolgreiches Durcharbeiten von Cross Media Publishing Tutorial Nr. 3 (CMP-03a)

[Die Tutorials 4 (Grafiken),  5 (Tabellen) 6 (Quellenangaben) sind für diese Lektion nicht unbedingt erforderlich.]

CMP-07: Learning Outcomes

Wenn Sie dieses Tutorial durcharbeiten, dann können Sie

  • Eine BibTeX Datenbank für die Literaturverwaltung erstellen
  • Kurzbelege mit aktiven Links zur Literaturliste erstellen
  • Eine Literaturliste automatisch aus der BibTex-Datenbank generieren

CMP-07: Internationalisierung

Hier müssen Sie die Änderungen zweimal eingeben: Einmal für die HMTL-Versionen (also  gitbook und epub_book) und das andere Mal dann für LaTeX (pdf_book).

Für HTML finden Sie die die standardmäßig verwendeten Bezeichnungen im offiziellen bookdown-Handbuch. Ihre gewünschten Änderungen schreiben Sie in die Datei _bookdown-yml

Für LaTeX öffnen Sie die Datei preamble.tex und fügen den folgenden Text als erste Zeile (also vor \usepackage{booktabs}) ein:

\usepackage[english, ngerman]{babel}

Damit wird das LaTeX Paket babel zur Unterstützung mehrsprachiger Dokumente geladen. Ich verwende zwei Sprachen (für manche Zitate Englisch und als Standard die neue Deutsche Rechtsschreibung). Die zuletzt erwähnte Sprache in der eckigen Klammer wird automatisch als Standardsprache darstellt.

Da es keine Änderungen in den Texten gegeben hat, werden Ihre Dateien jedoch nicht neu kompiliert. Bevor Sie neue Versionen Ihrer Buchdateien mit „Build Book“ erzeugen, müssen Sie vorher „Build -> More -> Clean All“ aufzurufen.  Danach können Sie mit „Build Book“ die neuen eingedeutschten Versionen Ihrer Dateien ansehen.

CMP-07: Verschiedene Einstellungen für HTML

Durch eine eigens dafür vorgesehene Schnittstelle (Option include) lässt sich eigener Programmcode über Dateien einfügen. Das erfordert aber HTML- oder CSS-Kenntnisse, die über diesen Kurs hinausgehen. Ich beschränke mich daher auf Adaptionen und Einstellungen, die auch ohne diese Kenntnisse auskommen.

bookdown kommt derzeit mit drei vorgefertigten unterschiedlichen Gestaltungsvarianten:

  • GitBook (bookdown::gitbook): Das ist der für bookdown voreingestellte Stil, den Sie auch bereits die ganze Zeit während des Kurses benutzt haben (gitbook. Er basiert auf dem französischen Open Source Projekt GitBook. Dieser Stil hat etliche Einstellungen, die im entsprechenden Abschnitt des bookdown-Buch detailliert mit Code-Beispielen erläutert werden. So können Sie z.B. festlegen
    • welche Schriften und Schriftgrößen Sie verwenden wollen,
    • welche Social Media Websites mit Ihrem buch verknüpft werden
    • ob das Inhaltsverzeichnis auf. und zusammengeklappt werden kann
    • ob der Menübalken immer sichtbbar ist, auch wenn Sie die Seiten nach unten scrollen
    • welche Buchversionen (PDF, eBook) zum Download angeboten werden 
    • welches Titelbild für das Buch verwendet werden soll
    • auf welches Datenrepositorium verwiesen werden soll (wird in Tutorial 8 eerläutert)
    • welches favicon und/oder apple-touch-icon (für Macs) verwendet werden soll etc.
  • Bootstrap (bookdown::html_book) Das ist der für „normales“ R Markdown eingestellte Standardmodus. Er basiert auf Bootstrap Modulen, die als Open Source Werkzeuge für die Gestaltung von Webseiten mit HTML, CSS und JavaScript entwickelt wurden. Dieses eindrucksvolles Beispiel zeigt Ihnen was mit R Markdown alles gemacht werden kann (inklusive interaktiver Visualisierungen von Grafiken, auf die ich in diesem Tutorial nicht näher eingehe). Auch für die Bootstrap-Einstellung gibt es einen entsprechenden Abschnitt im bookdown-Buch. (Das dafür notwendige Paket rmarkdown wurde bereit mit bookdown installiert und geladen.)
  • Tufte (bookdown::tufte_html_book) Er basiert auf den Arbeiten von Edward Tufte, einem Professor Emeritus der Politikwissenschaften, Statistik und Informatik, der auch vier wichtige Bücher zur Datenvisualisierung im Eigenverlag publiziert hat. Diese Gestaltungsvariante ist sowohl durch die innovative Typografie, die enge Integration von Grafik und Text und besonders durch die intensive Nutzung von Randtexten bekannt geworden (siehe jeweils ein Beispiel in HTML und PDF). Es gibt ebenfalls einen Abschnitt im bookdown-Buch, der – aufbauend auf den Bootstrap-Einstellungen – die Nutzung dieses Stils erklärt. (Es muss dazu das Paket tufte in RStudio installiert und geladen werden.)

CMP-07: Inhaltsverzeichnis

Beim GitBook erscheint das Inhaltsverzeichnis als Navigationsleiste auf der linken Seite. Bei der Bootstrap-Variante ist das Inhaltsverzeichnis weniger schön als ungeordnete Liste vor dem Text der jeweiligen Seite dargestellt.  Sie können jedoch Ihr eigenes CSS für das Inhaltsverzeichnis schreiben und als toc.css in das oberste Verzeichnis Ihres Buches ablegen. Es gibt jedoch auch eine Muster-CSS-Datei für das Inhaltsverzeichnis, die Sie verwenden können. 

CMP-07: Screenshot zeigt wie verschiedene Publikationsformate in _bookdown.yml eingestellt werden

Das Bildschirmfoto zeigt wie verschiedene Publikationsformate in der Datei _output.yml definiert werden

Ich habe bei meinen Tests festgestellt, dass sowohl Bootstrap als auch Tufte zumindest eine weiteres Optionszeile benötigen (z.B. toc: yes oder toc: no), weil sonst mit einer Fehlermeldung die Kompilierung abgebrochen wird.

CMP-07: EPUB und MOBI-Format

Da das epub-Format eine Untermenge von HTML darstellt und nichts anderes als eine Sammlung von HTML-Seiten darstellt, gelten viele der obigen Optionen auch für das eBook-Format. 

Pandoc unterstützt das Kindle-Format (Mobi-eBooks) nicht. Amazon stellt aber mit Kindlegen ein Werkzeug zum Erzeugen von eBooks in Mobi-Format zu Verfügung. Details zur Installation und Anwendung finden sich im bookdown-Manual.

CMP-07: Einstellungen für LaTeX

Über die Datei preamble.tex können beliebige LaTeX-Pakete als Funktionserweiterung aber auch Programmcode eingegeben werden. Ein Beispiel habe ich oben im Abschnitt Internationalisierung mit dem Zusatzpaket babel aufgezeigt. Dazu sind jedoch entsprechende LaTeX-Kenntnisse erforderlich.

CMP-07: Zusammenfassung

Mit dieser Lektion haben Sie einen ersten Einblick in mögliche Anpassungen und Erweiterungen bekommen. Obwohl im Prinzip mit bookdown wahrscheinlich alle Formatierungswünsche erfüllt werden, gibt es praktisch dann doch Barrieren: Je nachdem welche Anpassung Sie vorhaben sind entsprechende Kenntnisse von HTML, CSS oder LaTeX erforderlich.  

Aber das ist noch nicht alles: Obwohl R auf statistische Anwendungen ausgelegt ist, iest eine voll unktionsfähige Programmiersprache. Sie können also auch komplexe interaktive Anwendungen in Ihr Buch einbinden. Dazu kommt, dass Sie direkt in R Markdown auch Blöcke anderer Programmiersprachen einbinden können: die freie Unix-Shell Bash, die höheren Programmiersprachen Python und C++ (über die Einbindung des Rcpp-Package), die Datenbanksprache SQL und Stan, einer Programmiersprache der bayesschen Statistik für statistische Schlussfolgerungen. Mit den Paketen htmlwidgets und shiny können interaktive HTML-Seiten mittels Javascript entwickelt werden.

Doch wir  müssen gar nicht so weit gehen: Schon die bishere Arbeit an einem relativ einfachen Buch als Cross Media Publishing-Projekt zeigt eine doch recht beachtliche Lernkurve: Sie reicht von Markdown bzw. von der mit bookdown erweiterten R Markdown Version, der Nutzung von RStudio und einigen grundlegenden R-Programmbefehlen über das Konvertierwerkzeug pandoc bis hin zu HTML-, CSS und LaTeX-Kenntnissen.

Trotz diesen fast endlosen Möglichkeiten bleibt ein Großteil der Machinerie im Hintergrund und „normalen“ Anwender/innen weitgehend verborgen. Allerdings immer dann, wenn etwas nicht funktioniert, kommt die volle Komplexität (z.B. in der nicht verständlichen Fehlermeldung) zum Vorschein. Es ist daher angebracht, dass wir in diesem Kurs auch Strategien zur Fehlersuche bzw. Fehlerbehebung besprechen.

Flattr this!

Verschlagwortet mit , , . Bookmark the permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload CAPTCHA.