Präsentationen erstellen mit DocBook

Die Slides DTD

Für die Erstellung von Präsentationen mit DocBook hat Norman Walsh den Slides Doctype eingeführt. Es handelt sich hierbei ebenfalls um eine Erweiterung von Simplified DocBook, die ebenfalls bei sourceforge.net heruntergeladen werden kann. Es gibt zwei DTD-Varianten, mit slides.dtd hat man die Erweiterung von Simplified DocBook mit slides-full.dtd den kompletten Umfang von DocBook.

Um Präsentationen zu erstellen, nutzt man am besten den Doctype slides mit dem Public Identifier „-//Norman Walsh//DTD Slides XML V3.0//EN“ und entsprechend slides als Root-Element. Metainformationen über die Präsentation wie der obligatorische title stehen im Element slidesinfo. Um eine einzelne Folie zu erstellen nutzt man foil, und foilgroup für eine Gruppe von Folien. Der Inhalt von foil entspricht einer section, es können also Blockelemente jeder Art darin untergebracht werden.

Innerhalb von foilgroup können mehere foils aber auch foilgroups stehen. An fast jeder Stelle im Dokument kann das Element speakernotes stehen, welches ähnlich gestaltet ist wie footnote und Notizen enthält, die für den Vortragenden interessant sind.

Beispiel 4.5. Eine kurze Präsentation

<?xml version="1.0"?>
<!DOCTYPE slides
 PUBLIC "-//Norman Walsh//DTD Slides XML V3.0b1//EN"
 "file:///opt/docbook-slides/slides.dtd">
<slides>
 <slidesinfo>
                <title>DocBook-Vortrag</title>
        </slidesinfo>
        <speakernotes>
                <para>
                DocBook ist klasse.
                </para>
        </speakernotes>
        <foil>
                <title>Ausgabeformate</title>
                <itemizedlist>
                        <listitem>
                                <para>HTML</para>
                        </listitem>
                        <listitem>
                                <para>PDF</para>
                        </listitem>
                        <listitem>
                                <para>PS</para>
                        </listitem>
                        <listitem>
                                <para>HTML Help</para>
                        </listitem>
                        <listitem>
                                <para>RTF</para>
                        </listitem>
                </itemizedlist>
        </foil>
</slides>

Ausgabeformate für Präsentationen

Beispiele für die erzeugten Präsentationen gibt es auf der Website zum Tutorium

Für die Slides DTD liegen drei Gruppen von Stylesheets vor. Zum einen XSL:FO, um ausdruckbare Notizen für den Redner anzufertigen, HTML und XHTML-Stylesheets, welche im Browser angezeigt werden können. Da die Stylesheets die aktuelle Version der DocBook-XSL-Stylesheets importieren, ist es angebracht, die xsl:import-Statements auf die lokale Kopie der Stylesheets abzuändern, damit nicht bei jedem Umwandlungsvorgang die kompletten Stylesheets heruntergeladen werden müssen.

XSL:FO. 

Ausdruckbare Versionen der Präsentation erzeugt man in zwei Schritten. Im ersten Schritt erzeugt man mit dem Stylesheet xsl/fo/plain.xsl die XSL:FO-Datei im zweiten Schritt erzeugt man daraus PDF oder RTF.

Beispiel 4.6. Slides in PDF wandeln

lars@notebook doctutorial $ /opt/saxon/saxon slides.xml \
 /opt/docbook-slides/xsl/fo/plain.xsl > slides.fo
Making landscape pages on USletter paper (11inx8.5in)

lars@notebook doctutorial $ /opt/fop/fop.sh slides.fo slides.pdf
[INFO] FOP 0.20.4
[INFO] building formatting object tree
[INFO] [1]
[INFO] [2]
[INFO] Parsing of document complete, stopping renderer

HTML und XHTML. 

Es gibt vier verschiedene Varianten, in denen HTML erzeugt werden kann. Da sie sich in ihrer Erzeugung sehr änhlich sind, werde ich nur die Stylesheet-Dateien und die zu erwartende Ausgabe nennen und ein allgemeines Beispiel geben.

xsl/html/w3c.xsl

Erzeugt Ausgabe, deren Navigation an die erinnert, die bei Dokumenten des World Wide Web Consortium verwendet wird

xsl/html/plain.xsl

Einfaches Ausgabeformat

xsl/html/tables.xsl

Ausgabe mit Navigationstabelle am linken Seitenrand

xsl/html/frames.xsl

Ausgabe mit Navigationsframe

Beispiel 4.7. Slides in HTML wandeln

lars@notebook frames $ /opt/saxon/saxon slides.xml /opt/docbook-slides/xsl/html/frames.xsl 
Writing frames.html for slides
Writing toc.html for slides
Writing titlepg.html for slidesinfo
Writing foil01.html for foil