Indirektes Anpassen einer Titelseite

(Auszug aus "DocBook-XML: Medienneutrales und plattformunabhängiges Publizieren" von Thomas Schraitle)

Eine Titelseite im Sinne von DocBook besteht aus der Präsentation eines title- oder subtitle-Elements (beispielsweise bei einem Buch, Kapitel oder Abschnitt) mit zugehörigen Metainformationen (wie Autor(en), rechtliche Hinweise usw.) DocBook unterstützt eine Vielzahl von Elementen, die auf einer Titelseite erscheinen können:

abbrev abstract address affiliation
artpagenums author authorblurb authorgroup
authorinitials bibliomisc biblioset citetitle
collab confgroup contractnum contractsponsor
contrib copyright corpauthor corpname
date edition editor firstname
graphic honorific isbn issn
itermset indexterm invpartnumber issuenum
keywordset legalnotice lineage mediaobject
modespec orgname othercredit othername
pagenums printhistory productname pubdate
publisher publishername pubsnumber releaseinfo
revhistory seriesvolnums subjectset subtitle
surname title titleabbrev volumenum  

Warum soll eine Titelseite angepasst werden?

  • Die Reihenfolge der Elemente auf der Titelseite soll geändert werden.
  • Bestimmte Elemente sollen auf der Titelseite erscheinen, andere nicht.
  • Die Darstellung von angezeigten oder unterdrückten Elementen soll kontextabhängig sein. Das bedeutet, dass auf einer Titelseite eines Kapitels andere Informationen erscheinen können als für einen Buchteil.
  • Die Titelseite soll firmenspezifische Besonderheiten wie Logos, Links, Adressen usw. enthalten (Stichwort "Corporate Identity").
  • Unterschied zwischen einem Dokument im Entwurfsstadium und einer finalen Version. So kann es wünschenswert sein, Versionsinformationen und andere Angaben im Entwurf anzuzeigen, während sie in der Endfassung ausgeblendet sind.

Es gibt zwei Möglichkeiten, eine Titelseite anzupassen:

  1. Anpassen einer Spezifikationsdatei für Titelseiten. Der Inhalt ist abhängig vom Ausgabeformat. Diese Methode wird in der folgenden Handlungsanweisung behandelt.
  2. Direktes Anpassen der entsprechenden Templates. Wird in Direktes Anpassen einer Titelseite behandelt.

Eine Spezifikationsdatei ist eine XML-Datei und enthält Einträge für linke ("verso") und rechte ("recto") Seiten. Für (X)HTML ist diese Unterscheidung bedeutungslos, weshalb alle Einträge nur in einer rechten Seite vorgenommen werden.

Die Spezifikationsdatei enthält Elemente von DocBook und Elemente aus dem Namensraum "http://nwalsh.com/docbook/xsl/template/1.0". Eine Übersicht über alle Elemente finden Sie unter Titlepage Template Stylesheet Reference. Das folgende Beispiel zeigt den prinzipiellen Aufbau:

Beispiel: Auszug Spezifikationsdatei für einen Artikel, Ausgabe (X)HTML

<t:templates xmlns:t="http://nwalsh.com/docbook/xsl/template/1.0" xmlns:param="http://nwalsh.com/docbook/xsl/template/1.0/param" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <t:titlepage t:element="article" t:wrapper="div" class="titlepage">
        <t:titlepage-content t:side="recto">
            <title/>
            <subtitle/>
            <corpauthor/>
            <authorgroup/>
            <author/>
            <othercredit/>
            <releaseinfo/>
            <copyright/>
            <legalnotice/>
            <pubdate/>
            <revision/>
            <revhistory/>
            <abstract/>
        </t:titlepage-content>
        <t:titlepage-content t:side="verso"></t:titlepage-content>
        <t:titlepage-separator><hr/></t:titlepage-separator>
        <t:titlepage-before t:side="recto"></t:titlepage-before>
        <t:titlepage-before t:side="verso"></t:titlepage-before>
    </t:titlepage>
    <!-- Weitere t:titlepage-Elemente... -->
</t:templates>

Zeile 1: Wurzelelement mit den Namensraumdeklarationen. Alle Elemente und Attribute, welche für die Verarbeitung zuständig sind, besitzen das t-Präfix.
Zeile 2: Ein t:titlepage enthält den Aufbau einer Titelseite. In diesem Fall für das Element article. t:wrapper: Zielelement, mit dem die Titelseite "eingehüllt" wird (für (X)HTML wird in diesem Fall div verwendet). Das Attribut class und dessen Wert wird in das Element eingefügt, das in t:wrapper angegeben wurde. In diesem Beispiel wird ein Element <div class="titlepage"> erzeugt.
Zeile 3: Inhalt einer rechten Titelseite eines Artikels. Die Reihenfolge der DocBook-Elemente spiegelt die Reihenfolge in der Ausgabe wider.
Zeile 18: Inhalt einer linken Titelseite eines Artikels. Für (X)HTML ist dies bedeutungslos, daher ist der Inhalt leer.
Zeile 19: Ein t:titlepage-separator trennt die Titelseite vom Rest des Inhalts.
Zeilen 20 und 21: Diese beiden Elemente enthalten Inhalt, der vor einer rechten bzw. linken Seite eingefügt wird. Für (X)HTML ist der Inhalt leer.

Jedes t:titlepage-Element besitzt zwei t:titlepage-content mit jeweils recto und verso im Attribut t:side, zwei t:titlepage-before (ebenfalls mit den entsprechenden Attributen) und ein t:titlepage-separator. Die Reihenfolge im Ausgabeformat entspricht der folgenden Aufstellung:

t:titlepage-before   t:side="recto"
t:titlepage-content  t:side="recto"
t:titlepage-before   t:side="verso"
t:titlepage-content  t:side="verso"
t:titlepage-separator

Im folgenden sehen Sie, wie Sie eine Titelseite für einen Artikel erstellen, die für (X)HTML als Ausgabe gedacht ist. Gehen Sie wie folgt vor:

  1. Erstellen der Spezifikationsdatei
    Kopieren Sie die Datei html/titlepage.template.xml und entfernen Sie alle Einträge von t:titlepage, die für Ihre Anpassung nicht relevant sind. Lassen Sie jedoch das t:titlepage-Element intakt, das ein Attribut t:element mit dem Wert article enthält (vgl. obiges Beispiel "Auszug Spezifikationsdatei für einen Artikel, Ausgabe (X)HTML").
  2. Anpassen der Titelseite
    Fügen Sie neue DocBook-Elemente innerhalb von t:titlepage-content ein, sortieren Sie sie um oder entfernen Sie Elemente, die Sie nicht benötigen. Achten Sie darauf, dass Sie nur solche DocBook-Elemente einfügen, die innerhalb von articleinfo bzw. info erlaubt sind.
  3. Erzeugen des Stylesheet
    Wenden Sie das Stylesheet template/titlepage.xsl auf Ihre Spezifikationsdatei an:
xsltproc --output mytitlepage.xsl \ 
   DB/template/titlepage.xsl \ 
   mytitlepage.spec.xml

Ersetzen Sie den Platzhalter DB durch den Installationspfad der DocBook-Stylesheets. Bei der Transformation entsteht als Ausgabe ein Stylesheet, das genau die DocBook-Elemente in der Reihenfolge enthält, die Sie in der Spezifikationsdatei angegeben haben.

  1. Einbinden des Stylesheet in eine Anpassungsdatei
    Fügen Sie das im Schritt 3 generierte Stylesheet in Ihre Anpassungsdatei ein:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
  <xsl:import href="DBBASISURI/html/docbook.xsl"/> 
  <xsl:include href="mytitlepage.xsl"/> 
  <!-- weitere Einträge --> 
</xsl:stylesheet>

Ersetzen Sie den Platzhalter DBBASISURI durch den entsprechenden offiziellen URI.

  

<< zurück vor >>
Tipp der data2type-Redaktion:
Zum Thema DocBook bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © 2009 Millin Verlag
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "DocBook-XML: Medienneutrales und plattformunabhängiges Publizieren" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

Millin Verlag, Siebengebirgsring 36, 53797 Lohmar, info(at)millin.de