2.1 PowerPoint, LaTeX Beamer und Co.
Der geläufigste Weg, Präsentationen zu erstellen, besteht daraus, in einer Software wie PowerPoint oder Keynote Text- und Grafik-Elemente auf Folien zu platzieren und diese Folien zum Zeitpunkt der Vorlesung auf einer Leinwand den Studierenden zu präsentieren. Als weitere gängige Tools sind Google Präsentationen und LibreOffice bzw. OpenOffice Impress zu nennen.
In den MINT-Fächern haben sich dagegen vermehrt LaTeX-basierte Präsentationen durchgesetzt. Unter Verwendung des LaTeX-Beamer-Pakets dienen Kommandos, die den Erstellern meist schon aus dem Anfertigen wissenschaftlicher Publikationen bekannt sind, zur Definition des Erscheinungsbilds der einzelnen Präsentationsfolien. Im Gegensatz zu PowerPoint wird hier jedoch kein What-You-See-Is-What-You-Get-Ansatz verfolgt. Stattdessen muss der LaTeX-Code erst in eine PDF-Datei umgewandelt werden, bevor diese in einem PDF-Anzeigeprogramm dem Publikum präsentiert werden kann.
HTML-basierte Präsentationsframeworks wie zum Beispiel reveal.js, impress.js, Flowtime.js, Webslides oder deck.js verfolgen einen ähnlichen Ansatz wie LaTeX. Auch hier wird zunächst textuell „programmiert“, was auf den einzelnen Folien zu sehen sein soll. Statt eines Kompiliervorgangs ist zum Betrachten der Präsentation jedoch lediglich das Öffnen der HTML-Datei in einem Browser vonnöten. Ein Webserver wird dabei nur bei Verwendung komplexer Plugins wie dem im nächsten Kapitel präsentierten Umfrage-Plugin benötigt, für simple Präsentationen dagegen reicht ein Doppelklick auf die HTML-Datei. Die Frameworks selbst sind in der Programmiersprache JavaScript geschrieben. Sie ermöglichen ähnliche Funktionalitäten wie PowerPoint und LaTeX Beamer, beispielsweise Folienübergänge oder das schrittweise Einblenden einzelner Folienelemente.
Der Hauptvorteil von PowerPoint und Co. ist die einfache Bedienbarkeit und das schnelle Layouten mit graphischen Elementen. Um zwei mit einem Pfeil verbundene Kästchen an einer bestimmten Stelle auf der Folie zu platzieren sind nur wenige Mausklicks nötig. Dieses Vorhaben ist in LaTeX und HTML deutlich aufwändiger. Das TikZ-Paket in LaTeX bietet Kommandos zur Erstellung grafischer Elemente, in HTML kann SVG verwendet werden. Auch das Einbetten von Diagrammen und Graphen wird in LaTeX und HTML über entsprechende Pakete unterstützt. Oft wird hier aber der Einfachheit halber die benötigte Grafik in einem externen Programm (z. B. PowerPoint) erstellt und als Bilddatei in die LaTeX- oder HTML-Präsentation eingebunden. Dieses Vorgehen erschwert jedoch ein nachträgliches Editieren.
Als Vorteil von LaTeX-Präsentationen wird häufig die Darstellung von mathematischen Formeln und Gleichungen genannt. Zwar bieten auch PowerPoint und Co. einen Formeleditor, der auch eine Eingabe in LaTeX-Syntax erlaubt, jedoch ist hier vor allem bei häufiger Verwendung ein höherer Aufwand nötig als in LaTeX. Ein weiterer Vorteil von LaTeX ist die Darstellung von Programmcode mit Syntax-Highlighting. Ein gängiger aber etwas umständlicher Ansatz, dies mit PowerPoint zu erreichen, ist das Einfügen von Code samt Formatierung, z. B. aus einer Entwicklungsumgebung oder einem Syntax-Highlighter-Programm. Darüber hinaus ist LaTeX kostenlos, plattformunabhängig und es wird zum Betrachten der Präsentationen keine spezielle Software benötigt. Oft wird noch die Verträglichkeit mit Versionierungstools wie Git gelobt, was eine Kollaboration und Historisierung von Präsentationsdateien praktikabler macht als es bei Binärdateien der Fall ist.
Viele weitere Funktionen wie das Einbetten von Multimedia-Inhalten in Folien, Hintergründe, Verlinkungen, Foliennotizen oder eine Referentenansicht werden von allen Tools unterstützt.
Sowohl Programme der ersten Kategorie (PowerPoint, …) als auch der zweiten (LaTeX) stoßen irgendwann an ihre Grenzen. Bei PowerPoint können nur die mitgelieferten oder über Plugins verfügbare Funktionen genutzt werden. Es existieren zwar einige PowerPoint-Erweiterungen zum direkten Einbetten von Umfragen (siehe Abschn.
4), das Ausführen von auf den Folien befindlichen SQL-Statements auf einer Datenbank ist jedoch fast undenkbar. In LaTeX dagegen stößt man immer dann an dessen Grenzen, wenn sich das Erwünschte nicht mit dem PDF-Format vereinbaren lässt. Ein schrittweises Erscheinen von Aufzählungspunkten wird beispielsweise in LaTeX Beamer damit gelöst, dass jedes neue Fragment eine neue Seite im PDF-Dokument bildet. Animationen mit Bewegungen jeglicher Art oder sich während des Präsentationsbetriebs dynamisch verändernde Elemente sind jedoch in einer PDF gar unmöglich.
Dadurch dass HTML-basierte Präsentationen mittels eines Webbrowsers angezeigt werden, haben sie ähnliche Vorteile wie LaTeX-Präsentationen: Sie sind plattformunabhängig, erfordern keine spezielle Präsentationssoftware und sind gut geeignet für eine Versionierung [
22]. Gleichzeitig werden einige Nachteile von LaTeX eliminiert: Anders als PDF-Dateien unterstützt das HTML-Format vielerlei Animationen und Interaktionsmöglichkeiten. Mit HTML, CSS und JavaScript stößt man somit viel seltener an die Grenzen des Möglichen. Die wichtigsten Funktionen zur Erstellung von Präsentationen sind dabei im Präsentationsframework bereits eingebaut, für Spezielleres existieren Erweiterungen. Darüber hinaus können aber auch JavaScript-Bibliotheken oder Code-Schnippsel aus dem Internet oder anderen Projekten eingebunden werden, um eine bestimmte Aufgabe zu lösen. Möchte man beispielsweise chemische Strukturformeln auf einer Folie anzeigen, existieren entsprechende Bibliotheken bereits für die Website-Programmierung und können einfach wiederverwendet werden. Auch die Entwickelung eigener Funktionen und Erweiterungen ist nicht schwierig, wenn grundlegende JavaScript-Kenntnisse vorhanden sind.
2.2 reveal.js
Das Open-Source-Framework reveal.js [
7] steht in Form einer Zip-Datei zum Download zur Verfügung, die alle nötigen HTML-, JavaScript- und CSS-Dateien enthält. Nach dem Entpacken bearbeitet man eine mitgelieferte Beispiel-HTML-Datei in einem Texteditor und betrachtet das Resultat schließlich im Browser. Eine solche HTML-Datei beinhaltet mehrere Sections und jedes
<section>
-Element entspricht dabei genau einer Folie. Innerhalb dieser können HTML-Tags wie
<h1>
,
<p>
,
<img>
,
<ul>
,
<li>
, usw. zum Einsatz kommen, um den Inhalt einer Folie zu definieren. Möchte man, dass ein Element erst nach einem Klick auf der Folie erscheint, vergibt man ihm das Attribut
class=’’fragment’’
. Über weitere Klassen lässt sich das Verschwinden oder Animieren von Elementen regeln, aber auch komplette Folienübergangseffekte. Statt in HTML können die Folieninhalte auch in Markdown-Syntax formuliert werden, was das Layouten vor allem für HTML-unerfahrene Entwickler etwas einfacher machen kann. Mit gängigen HTML-Kommandos wie
<video>
oder
<iframe>
werden Videos, Web-Elemente und andere Multimedia-Inhalte in Folien eingebunden, Programmcode kommt in
<pre><code>
-Blöcke. Diese lassen sich über Attribute so konfigurieren, dass ein für die verwendete Programmiersprache passendes Syntax-Highlighting vorgenommen wird und Zeilennummern eingeblendet und bestimmte Zeilen farblich hervorgehoben werden. Mathematische Formeln lassen sich in reveal.js genau wie in LaTeX mittels
$ ... $
bzw.
...
einfügen. Erstere stehen dann im Fließtext, zweitere bilden einen eigenen Absatz und können mehrzeilig sein.
Eine reveal.js-Präsentation lässt sich über die Drucken-Funktion des Webbrowsers in eine PDF-Datei exportieren, beispielsweise zur Erzeugung von Handouts. Entsprechend konfiguriert beinhalten diese auch Foliennotizen, welche in den einzelnen Folien innerhalb von <aside class=’’notes’’>
-Tags verfasst werden können. Das Starten einer Präsentation im Vollbild erfolgt in reveal.js mit der Taste F
. Der Kurzbefehl S
startet eine Referentenansicht. Diese öffnet ein separates Browserfenster, in dem die aktuelle und die folgende Folie, sowie Foliennotizen und eine Uhr angezeigt werden.
2.3 Plugins für reveal.js
Im reveal.js-Repository auf GitHub [
19] befindet sich eine Übersicht über meist von Dritten entwickelte Plugins, welche sich in Präsentationen einbinden lassen. Dazu zählen viele simple aber praktische Dinge, wie eine Zoom- oder Laserpointer-Funktion oder das Springen zu einer bestimmten Folie über die Tastatur. Über andere Plugins können Diagramme oder eine Word-Cloud angezeigt werden, wieder andere dienen zur automatischen Generierung eines Inhaltsverzeichnisses oder eines Navigationsmenüs.
Das Plugin Sampler verfolgt den Ansatz, Programmcode nicht direkt in die Folien zu schreiben, sondern dass dieser in externen Dateien verbleibt und dass lediglich auf diese verwiesen wird. Folgende Code-Zeile blendet beispielsweise die Zeilen 5 bis 8 einer Python-Datei ein: <code data-sample=’’test.py#5-8’’/>
Dieses Vorgehen verhindert zum einen Tippfehler, die beim direkten Verfassen von Code auf Folien passieren können, zum anderen hält es Folien bei Code-Anpassungen stets aktuell. Das Plugin run-in-terminal zeigt ebenfalls den Inhalt einer externen Datei an. Zusätzlich führt es diesen aber auch tatsächlich auf der Konsole aus und zeigt die Ausgabe des Programms direkt auf der Folie.