
DocBook Publishing


Version 1.02

24. Februar2003

Copyright (c) 2003 Stefan Rinke


Diesen Artikel gibt's online auf Stefan Rinke, Articles [http://
www.stefan-rinke.de/articles/]
-------------------------------------------------------------------------------

Inhaltsverzeichnis

*1. Einfhrung
    +1.1. Voraussetzungen
   
*2. DocBook Publishing online lesen
*3. Software
    +3.1. berblick
    +3.2. Java
    +3.3. HTMLDOC
    +3.4. W3M
    +3.5. HTML Help Workshop
    +3.6. Python
    +3.7. Das Framework selbst
    +3.8. OpenOffice-Writer
        o3.8.1. OOo2sDbk
       
   
*4. Hello World-Projekt
*5. Kleines Tutorial
    +5.1. Book oder Article
    +5.2. Ein einfaches DocBook Buch
    +5.3. Ein Artikel
    +5.4. Online Resourcen
        o5.4.1. DocBook: The Definitive Guide
        o5.4.2. Tutorial von Stephan Wiesner
        o5.4.3. Online Tutorial von Lars Trieloff
       
   
*6. DocBook Publishing mit OpenOffice
    +6.1. Zusammenspiel zwischen OpenOffice und DocBook
    +6.2. Weiterfhrende Funktionen
        o6.2.1. Book oder Article
        o6.2.2. CalloutList
        o6.2.3. Notiz einfgen
       
   
*7. Download DocBook Publishing

Kapitel 1. Einfhrung


DocBook Publishing ist eine Beschreibung eines Frameworks fr das Publishing
mit DocBook. Es beschreibt, wie man auf einfache Weise eine Publikation oder
einen Artikel in den unterschiedlichsten Formaten erzeugen kann. Sie knnen
diesen Artikel online lesen [toc.html] oder ihn in verschiedenen Formaten
herunterladen [#download]. Dieses ganze Framework beruht auf der Arbeit von
sehr vielen Leuten, die viele Teile dazu beigetragen und der Allgemeinheit als
Open-Source zur Verfgung gestellt haben. Herausheben mchte ich Mark Pilgrim,
der mich mit seinen Publikationen, insbesondere Dive Into Python [http://
www.diveintopython.org/], zu diesem Artikel inspiriert hat. Ich habe nichts
weiter getan, als das ganze unter Windows und auf deutsch mit allen notwendigen
Tools zum Laufen zu bringen und nun meinerseits damit zu arbeiten: Dieser
Artikel hier ist selbstverstndlich damit verfasst.

Um es noch einmal hervorzuheben: es geht mir hier nicht so sehr um DocBook an
sich, hier will ich auf andere Sites verweisen, vielmehr soll ein Setup
beschrieben werden, wie man das Ganze praktisch zum Laufen bekommt. Auerdem
sind auf der WebSite auch alle erforderlichen Tools zum Download (auch als
Binary) angeboten, so dass es nicht schwer fallen sollte, selbst ein System
zusammen zu stellen, um so erfolgreich Dokumente mit DocBook schreiben zu
knnen.

1.1. Voraussetzungen


Es ist wichtig zu verstehen, dass sich bei diesem Framework nicht um eine
WYSIWYG Lsung handelt oder eine ??Klick-Klack-Anwendung?? (eine
Windows-Applikation, die sich per Maus bedienen lsst). Vielmehr werden Artikel
im Quelltext in DocBook (also XML) geschrieben und anschlieend ??compiliert??.
Das erinnert manchen vielleicht noch an die alten TEX-Zeiten, wo das Schreiben
eines Dokuments so hnlich abgelaufen ist.

Wer sich also gnzlich vor der Kommandozeile scheut, der sollte vielleicht
lieber die Finger davon lassen und sich weiter mit gngigen Officetools
bescheiden.

Der Umgang mit XML und etwas XSLT sollte einem ebenso gelufig sein, damit man
nicht schon an den einfachsten Dingen scheitert. Alles Weitere will ich hier
versuchen so weit zu erlutern, dass man schon bald ein erstes Ergebnis
erzielen kann.

Kapitel 2. DocBook Publishing online lesen


Im Moment ist dieser Artikel noch nicht ganz vollendet, d.h. ich arbeite
stndig eigene Erweiterungen oder Kommentare von Usern ein. Bald wird auf eine
Revision-History zur Verfgung stehen, die die Vernderungen von Version zu
Version zeigt.

Kapitel 3. Software

3.1. berblick


Um alle Formate erzeugen zu knnen, werden einige Software-Pakete bentigt.
   
*Die Build-Umgebung sttzt sich auf Ant [http://jakarta.apache.org/ant/],
    ein sehr populres Buildtool von der Apache Group [http://www.apache.org/].
    Ebenso sind die XML-Tools insbesondere der Stylesheet-Prozessor, auf Java
    angewiesen. D.h. man braucht eine Java Laufzeit Umgebung mindestens Version
    1.3.
*Um die Wordversion eines Artikels zu erzeugen, wird natrlich ein
    richtiges Microsoft Word benutzt. Dies funktioniert natrlich nur auf
    Microsoft Windows und dies ist auch das einzige, was nicht frei erhltlich
    ist.
*Die Help-File-Formate bentigen ein Tool von Microsoft, welches frei von
    Microsoft heruntergeladen werden kann: hhc.exe der Hilfe-Compiler
*Das PDF Format wird durch das Tool HTMLDOC [http://www.easysw.com/htmldoc
    /] erzeugt. Sourcecode und Binary gibt's ebenfalls frei zum Download.
*Das Text-Plain Format wird ber HTML und das Tool w3m, ein Textbrowser
    hnlich wie Lynx, erzeugt.
*Verschiedene Support-Funktionen wurden von Mark in Python realisiert, so
    dass auch ein Python [http://www.python.org/] auf dem System installiert
    sein sollte.
*Wer schlielich mit OpenOffice [http://www.openoffice.org/] sein DocBook
    erstellen mchte, der muss natrlich ein OpenOffice installieren.
*Das Paket ooo2sDbk [http://www.chez.com/ebellot/ooo2sdbk/] konvertiert
    OpenOffice Dokumente nach DocBook.

3.2. Java


Java wird am besten direkt bei Sun heruntergeladen. Unter http://java.sun.com/
j2se/1.3/download.html [http://java.sun.com/j2se/1.3/download.html] kann man
die Runtime 1.3.1_06[1] fr Windows herunterladen. Sun liefert ein ganz
normales Setup, so dass die Installation keine groen Probleme bereiten sollte.

Wichtig: Damit das Haupt-Batch-File, welches Ant startet, das Java auch findet,
muss man eine Environmentvariable JAVA_HOME setzen. Alternativ kann man den
Java-Installations-Pfad auch direkt in das Batchfile reinschreiben.

Wenn man alles richtig gemacht hat, dann kann man an der Kommandozeile folgende
Tests machen:
[C:\ ]$ echo %JAVA_HOME% 
 C:\Programme\JavaSoft\jdk1.3.1_06 
 [C:\ ]$ %JAVA_HOME%\bin\java 
 Usage: java [-options] class [args...]
 (to execute a class)
 or java -jar [-options] jarfile [args...]
 (to execute a jar file)
 ... 

Auerdem werden zum Bauen und Transformieren per XSLT noch eine paar
Java-Bibliotheken (JARs) gebraucht. Da diese immer dieselben sind fr alle
Projekte installiert man sie am besten im Lib-Verzeichnis von ??JAVA_HOME??
(hier ??C:\Programme\JavaSoft\jdk1.3.1_06\lib??. Zum Download gibt's diese
Bibliotheken hier [download/docbook-jars.zip].

3.3. HTMLDOC


HTMLDOC gibt's unter http://www.easysw.com/htmldoc/ [http://www.easysw.com/
htmldoc/] als Quellcode und als Binary, wobei das Binary in irgendeiner Form
eine eingeschrnkte Funktionalitt haben soll. Ich hab das nicht weiter
ausprobiert und stattdessen ein neues Binary kompiliert.

Alles was bentigt wird ist das htmldoc.exe an sich und ein paar
Zeichensatz-Dateien, die das Binary als Default unter ??C:\Program Files\
htmldoc?? erwartet. In diesem ZIP-File [download/htmldoc.zip] sind alle diese
Dateien zusammengefasst. Zu beachten ist noch, dass das Binary htmldoc.exe
selbst unter dem PATH auch gefunden werden muss. Das erreicht man z.B. dadurch,
dass man es in Windows-Verzeichnis kopiert. Wer das nicht mag, der legt am
besten ein eigenes Verzeichnis fr derartige Tools an (bei mir ist das ??C:\
Programme\bin??) und erweitert den Pfad entsprechend, so dass dieses
Verzeichnis mit einbezogen wird. Testen kann man das am besten dadurch, dass
man auf der Eingabeaufforderung einfach mal htmldoc eingibt. Dann sollte etwa
folgendes erscheinen.
[C:\ ]$ htmldoc
 ERROR: No HTML files!
HTMLDOC Version 1.8.21 Copyright 1997-2002 Easy Software Products, All Rights Reserved.
This software is governed by the GNU General Public License, Version 2, and is based in part on the work of the Independent JPEG Group.
 
Usage:
 htmldoc [options] filename1.html [ ... filenameN.html ]
 
Options:
 
 --batch filename.book
 ...       

3.4. W3M


Das Tool w3m fr die Ausgabe von Plaintext gibt unter http://www.w3m.org/
[http://www.w3m.org/] zum Download. Das Einzige was im Zusammenhang mit diesem
Framework hier bentigt wird ist allerdings das w3m.exe Binary und die
CGYWIN-DLL [2]. Das kann man alternativ auch direkt hier [download/w3m.zip]
herunterladen. Ebenso wie in vorherigen Abschnitt beschrieben, kopiert man das
EXE und die DLL in ein Verzeichnis, was ber den Pfad gefunden wird. Wenn alles
korrekt ist dann sieht man an der Kommandozeile folgendes:
[C:\ ]$ w3m
 version w3m/0.1.9
usage: w3m [options] [URL or filename]
options: 
-t tab set tab width
 ... 

3.5. HTML Help Workshop


Der Hilfecompiler von Microsoft ist direkt bei Microsoft erhltlich z.B. unter
dieser URL [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/
htmlhelp/html/hwMicrosoftHTMLHelpDownloads.asp]. Das File HTMLHELP.EXE Version
1.32 ist das bentigte File und wird nach dem Download einfach gestartet. Das
Setup installiert den HTML Help Workshop in der Regel unter ??C:\Programme\HTML
Help Workshop??. Wiederum gilt, soll alles aus dem Stand laufen, muss auch
dieses Verzeichnis ber den Pfad gefunden werden. Alternativ kann man auch das
??hhc.exe?? in das Toolsverzeichnis kopieren. Wenn alles korrekt ist dann sieht
man an der Kommandozeile folgendes:
[C:\ ]$ hhc
 Usage: hhc <filename>
 where <filename> = an HTML Help project file
 Example: hhc myfile.hhp       

3.6. Python


Python kann man entweder von http://www.python.org/ [http://www.python.org/]
beziehen oder bei ActiveState [http://www.activestate.com/] das ActivePython
[http://www.activestate.com/Products/ActivePython/] herunterladen. Nach
erfolgreichem Setup gilt das schon mehrfach gesagte: Python muss ber den Pfad
erreichbar sein. Beide Distributionen erledigen das normalerweise schon selber.
Testen kann man wie immer direkt auf der Kommandozeile:
[C:\ ]$ python
 ActivePython 2.2.1 Build 222 (ActiveState Corp.) based on
Python 2.2.1 (#34, Apr 15 2002, 09:51:39) [MSC 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>     

Um den interaktiven Modus wieder zu verlassen, drcken Sie Crtl-Z.

Wichtig: Damit das Erzeugen des ??echten?? Worddokuments funktioniert, mssen
die win32com Extension installiert sein. Testen kann man auch das am
schnellsten per Kommandozeile:
>>> import win32com
>>> print win32com
<module 'win32com' from 'C:\Python22\Lib\site-packages\win32com\__init__.pyc'>       

3.7. Das Framework selbst


So nun ist eigentlich alles komplett, jetzt fehlt nur noch ein erstes Projekt.
Sie knnen z.B. im Abschnitt Download [#download] direkt dieses Projekt
herunter laden und mit ??make all?? alle Seiten und Ausgabeformate erzeugen.

Etwas einfacher und bersichtlicher ist es aber trotzdem zuerst mit dem ??Hello
World??-Projekt zu beginnen. Wie das aussieht soll im folgenden Abschnitt
beschieben werden.

3.8. OpenOffice-Writer


Dieser Bestandteil ist optional, weil man im Prinzip mit jedem beliebigen
Editor ein DocBook-Quellcode-File erstellen kann. Allerdings ist es vielleicht
gerade fr den Anfnger interessant OpenOffice zu benutzen. Der Writer des
OpenOffice hat den Vorteil, dass man praktisch WYSIWYG editieren kann, ohne
auch nur zu Grunde liegende XML zu Gesicht zu bekommen. Dieser Vorteil kann
aber natrlich auch zum Nachteil werden, weil die umfassende Kontrolle ber
alle Aspekte des DocBook-Publishings verloren geht. OpenOffice kann in der
Version 1.0.1 unter http://www.openoffice.org/ [http://www.openoffice.org/]
heruntergeladen werden.

3.8.1. OOo2sDbk


Um DocBook mit OpenOffice erzeugen zu knnen, braucht man ein Paket, welches
von OpenOffice-Format nach DocBook konvertiert. Ebenso ein Paket stellt
OOo2sDbk [http://www.chez.com/ebellot/ooo2sdbk/] dar. Es wird im Kapitel 6 ??
DocBook mit OpenOffice?? ausfhrlich erlutert.

Die Installation dieses Pakets ist sehr einfach. Man muss lediglich das
Zip-Archiv ooo2sdbk.zip [download/ooo2sdbk.zip] in das Verzeichnis der Python
Site-Packages entpacken. Dann ist das Modul allgemein verfgbar. Wichtig ist,
dass Sie das Paket von dieser Website herunterladen, da es etwas erweiterte
Funktionen bietet als das Orginal.

Wenn alles richtig installiert ist, dann testet man entsprechend:
>>> import ooo2sdbk
>>> print ooo2sdbk
<module 'ooo2sdbk' from 'C:\Python22\Lib\site-packages\ooo2sdbk\__init__.pyc'> 

------------

[1] alternativ kann auch die 1.4.1 verwendet werden.

[2] eine Umgebung mit der viele Unix-Programme und Tools sehr leicht auf
Windows portiert werden knnen (siehe auch http://www.cygwin.com/ [http://
www.cygwin.com/]

Kapitel 4. Hello World-Projekt


Die Standard-Verzeichnisstruktur sieht immer so aus:
   
*Das Common-Verzeichnis: enthlt alle Bibliotheken und Tools, die zum
    Erstellen des Projekts gebraucht werden. Alles hier ist im Wesentlichen
    erst mal immer gleich und unabhngig vom Projektinhalt.
        Anmerkung: Anmerkung
        Das ist natrlich nicht ganz richtig, denn hier wird insbesondere das
        Aussehen der erstellten Dokumente per XSL Stylesheet festgelegt.
   
*Das Build-Verzeichnis: enthlt die Batch-Datei zum Aufrufen von Ant:
    make.bat (bzw. deren Unixvariante make.sh), die Datei build.xml, die das
    Bauen steuert und das Verzeichnis mit den Quelldokumenten: xml.

*Das XML-Verzeichnis: enthlt alle XML-Dateien, die das eigentliche
    Dokument oder Buch ausmachen. Im Falle von ??Hello World?? kommt man hier
    natrlich auch mit nur einer Datei aus.


Die Steuerdatei fr Ant sieht wie folgt aus:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE project [
         <!ENTITY common "../common">
         <!ENTITY buildcommon SYSTEM "../common/build_common.xml">
]>
<project name="HelloWorld" default="html" basedir=".">(1) 
         <property name="lang" value="de"/>
         <target name="postprocess"/>
         <property name="project" value="HelloWorld"/>
         <property name="javahome" value="..."/>
         <property name="fileversion" value="1.0"/>(2) 
&buildcommon;
</project>       

Was hier also eigentlich nur festgelegt wird, ist wie das Projekt heit und
welche Dokumentenart standardmig erzeugt werden.

(1) Definiert Projektname und Standard-Target (hier html).
(2) Definiert eine Eigenschaft des Projekts. Hier der Projektname, was in der
    gemeinsamen Steuerdatei fr Ant build_common.xml als Variable gebraucht
    wird.


Was jetzt noch fehlt ist der Inhalt in diesem Fall die Datei HelloWorld.xml und
zwar im XML-Verzeichnis.

Fr das allereinfachste HelloWorld steht hier nicht mehr als:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"../../common/docbook/dtd/docbookx.dtd">
<article lang="de">
 <articleinfo>
     <title>Hello World</title>
     <author>
       <firstname>Stefan</firstname>
       <surname>Rinke</surname>
     </author>
 </articleinfo>
 <section>
     <title>Hello World</title>
     <para>Das ist alles. </para>
 </section>
</article>                   
       

Nun ist endgltig alles beisammen, was man zum ersten Testen braucht. Nachdem
alle Tools installiert sind, sollte jetzt das Aufbauen des ersten Projekts kein
Problem mehr sein. Wenn anschlieend der Aufruf von
make all
 BUILD SUCCESSFUL
Total time: 11 seconds                       

liefert. Dann sollten im dist-Verzeichnis unterhalb von build alle Formate des
soeben erzeugten HelloWorld-Dokuments zu finden sein.

Kapitel 5. Kleines Tutorial

5.1. Book oder Article


Die nachfolgenden Ausfhrungen sind grtenteils an das Referenzwerk von Norman
Walsh & und Leonard Muellner angelehnt (siehe hier [#DocBook]).

Ein Buch ist typischerweise ein etwas greres Werk als ein kleiner Artikel. Es
umfasst von seiner Struktur einige Meta-Informationen (<bookinfo>), die den
Autor, den Titel und einen Copyrightvermerk beschreiben. Es kann ein Vorwort
haben und besteht aus Kapiteln, die wiederum in Abschnitte gegliedert sind.
Zustzlich knnen Anhnge folgen, sowie ein Literaturverzeichnis, ein Glossar
und ein Index.

Ein Artikel ist die kleinere Ausgabe, der eben nicht soviel umfasst wie ein
komplettes Buch, sondern im wesentlichen die Struktur eines einzelnen Kapitels
hat. Er enthlt aber genauso Meta-Informationen (<articleinfo>) und kann auch
Anhnge, Literaturverzeichnis, Glossar und Index umfassen.

5.2. Ein einfaches DocBook Buch


Der XML Ausschnitt unten zeigt die typische Struktur eines DocBook Buches.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"../../common/docbook/dtd/docbookx.dtd">
<book lang="de">
 <title>Mein erstes DocBook Buch</title>
 <bookinfo>(1) 
     <author>
       <honorific>Dipl.-Ing</honorific>
       <firstname>Stefan</firstname>
       <surname>Rinke</surname>
     </author>
 </bookinfo>
 <preface>(2) 
     <title>Vorwort</title>
     <para>In einem Vorwort stehen Dinge ber das Buch an sich.</para>
 </preface>
 <chapter>(3) 
     <title>Einfhrung</title>
     <para>Dies ist ein einfacher Artikel
       <indexterm>(4) 
         <primary>Artikel</primary>
         <secondary>DocBook-Artikel</secondary>
       </indexterm>.
     Das ist nur ein Beispielabsatz.</para>
 </chapter>
 <appendix>(5) 
     <title>Anhang 1</title>
     <para>Das ist ein Anhang.</para>
 </appendix>
 <glossary>(6) 
     <glossdiv>
       <title>Ein Glossar</title>
       <glossentry>
         <glossterm id="DocBook">DocBook</glossterm>
         <glosssee>DocBook ist ein Standard zur Erstellung...</glosssee>
       </glossentry>
     </glossdiv>
 </glossary>
 <index/>(7) 
</book>

(1) Der Bookinfo-Teil ist eigentlich optional, allerdings wird man in den
    meisten Fllen als Autor nicht unerwhnt bleiben wollen.
(2) Auch das Vorwort mu nicht unbedingt dabei sein. Wenn das Werk etwas grer
    ausfllt, dann hat das Vorwort jedenfalls mindestens diese Struktur.
(3) Hier folgen nun ein oder mehrere Kapitel, die wiederum mit einem Titel <
    title> beginnen und in Abstze <para> gegliedert sind.
(4) Auf diese Weise erzeugt man einen Indexeintrag. Der Zweit-Eintrag ist
    optional.
(5) Nun folgen noch ein oder mehrere Anhnge.
(6) Wer mchte kann noch ein Glossar anfgen.
(7) Diese Tag markiert nur die Stelle, an der der fertige Index eingefgt
    werden soll.


Wie ein solches ??Buch?? in HTML aussehen kann[3], sieht man hier.
[testbookde.html]

5.3. Ein Artikel


Ganz entsprechend stellt sich ein einfacher Artikel dar.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"../../common/docbook/dtd/docbookx.dtd">
<article lang="de">
 <title>Mein erster Artikel</title>
 <articleinfo>
     <author>
       <honorific>Dipl.-Ing</honorific>
       <firstname>Stefan</firstname>
       <surname>Rinke</surname>
     </author>
 </articleinfo>
 <para>Dies ist ein einfacher Artikel. Dieser Ausdruck
     <indexterm>
       <primary>Ausdruck</primary>
     </indexterm>
         soll im Index erscheinen.</para>
 <appendix>
     <title>Anhang 1</title>
     <para>Das ist ein Anhang.</para>
 </appendix>
 <glossary>
     <glossdiv>
       <title>Ein Glossar</title>
       <glossentry>
         <glossterm id="DocBook">DocBook</glossterm>
         <glosssee>DocBook ist ein Standard zur Erstellung...</glosssee>
       </glossentry>
     </glossdiv>
 </glossary>
 <index/>
</article>         

Auch wie das aussieht, kann man sich direkt online [testarticlede.html]
ansehen.

5.4. Online Resourcen


Wer in das Thema DocBook tiefer einsteigen mchte, der sei an dieser Stelle auf
einige andere Online Resourcen verwiesen.

5.4.1. DocBook: The Definitive Guide


Da ist zunchst das Standardwerk: DocBook: The Definitive Guide [http://
www.oreilly.com/catalog/docbook/chapter/book/docbook.html] man kann es direkt
online lesen und es liefert wirklich alles vom Einstieg bis zur Referenz.
[img001]    

DocBook: The definitive Guide, Norman Walsh & Leonard Muellner

5.4.2. Tutorial von Stephan Wiesner


Ein sehr gutes Tutorial hat Stephan Wiesner geschrieben. Man kann es online
[http://rzserv2.fhnon.de/~lg002556/docbuch/] nachlesen.

5.4.3. Online Tutorial von Lars Trieloff


Ein sehr gutes Tutorial von Lars Trieloff kann man unter http://trieloff.net/
doctutorial/build/index.html [http://trieloff.net/doctutorial/build/index.html]
nachlesen.

------------

[3] das ist natrlich von den definierten Stylesheets abhngig

Kapitel 6. DocBook Publishing mit OpenOffice


Eine sehr einfach Mglichkeit mit DocBook zu arbeiten ist die Verwendung von
OpenOffice als Editor. OpenOffice verwendet von Hause aus XML als Dateiformat,
daher ist es naheliegend an eine Konversion von OpenOffice Writer Dateien zum
DocBook zu denken. In der Tat ist der Weg relativ leicht. Folgende Schritte
sind notwendig:
   
*Entpacken der OpenOffice Datei
*Zusammenfgen der einzelnen XML-Dateien zu einer groen, flachen
    XML-Datei
*Eingebettete Bilder auslagern
*Die groe XML-Datei mit Hilfe eines Stylesheets zu DocBook zu
    transformieren


Damit besser verstndlich ist, wie das genau vor sich geht, soll der Vorgang
kurz erlutert werden.

OpenOffice speichert seine Dokumente in Dateien mit der Endung swx. Diese
Dateien sind eigentlich ZIP-Archive[4], die mehrere XML-Dateien enthalten. Man
kann die einzelnen Dateien also leicht extrahieren und neu zusammenstellen.

Um am Ende besser mit XSLT transformieren zu knnen, packt man nun die
einzelnen XML-Dateien zu einer groen zusammen, wobei die verschiedenen
Teilebereiche weiterhin durch Namespaces getrennt bleiben.

Bilder werden von OpenOffice direkt in die XML-Datei eingebettet und als Base64
in der XML-Datei gespeichert. Leider knnen die blichen DocBook Stylesheets
mit so eingebetteten Bildern nichts anfangen sondern erwarten, dass Bilder
extern zur XML-Datei gespeichert werden.

All diese Schritte werden von einem kleinen Python-Modul von Eric Bellot
erledigt. Es kann entweder hier [http://www.chez.com/ebellot/ooo2sdbk/] bezogen
werden, ist aber auch Teil des dieses Frameworks selbst.

Die anschlieende Transformation wird mit Hilfe eines speziellen Stylesheets
mit einem beliebigen XSLT-Prozessor (hier saxon) durchgefhrt. Das Stylesheet
von Eric Bellot wurde fr dieses Framework noch etwas verbessert und es
existieren mehrere Varianten davon, je nach dem, ob man ein ??Book?? oder einen
??Article?? schreiben mchte.

6.1. Zusammenspiel zwischen OpenOffice und DocBook


OpenOffice verwendet fr Formatierungen Absatzformate, Zeichenformate und
Rahmenformate. Diese sind benannt und an bestimmte Layoutregeln geknpft. Die
Verbindung zwischen DocBook und OpenOffice wird genau ber diese vordefinierten
Formate hergestellt. Wenn ein Satz bespielweise einen Filenamen enthlt, dann
wird er in OpenOffice mit dem Zeichenformat ??Filename?? formatiert und spter
in <filename>...</filename> konvertiert.

Mit Absatzformaten fr Aufzhlungen oder nummerierte Listen verhlt es sich
genauso, in OpenOffice werden diese wie gewohnt verwendet und dann automatisch
in die DocBook Entsprechungen umgesetzt. Damit das immer richtig funktioniert,
sollte man allerdings immer eine bestimmte Dokumentvorlage bzw. ein leeres
Startdokument verwenden. Ein solches Dokument ist dem Framework beigefgt.

Die meisten korrospondieren Formate / Tags sind intuitiv, die ausfhrlichere
Darstellung liefert Eric Bellot auf seiner Seite [http://www.chez.com/ebellot/
ooo2sdbk/].

6.2. Weiterfhrende Funktionen

6.2.1. Book oder Article


Wie schon erwhnt gibt es zwei verschiedene Stylesheets bzw. ein
parametrierbares, um wahlweise ein ??Book?? oder einen ??Article?? erzeugen zu
knnen. Das wird ber die Build-Property ??doc-type?? in der Steuerdatei
festgelegt.

6.2.2. CalloutList


Um sogenannte ??CalloutLists?? erzeugen zu knnen, wurde ein zustzliches
Aufzhlungsformat mit Namen ??CalloutList?? aufgenommen.

Referenzen werden mit Querverweisen erzeugt. Wichtig hierbei ist, dass die
Namen der Textmarken mit ??co.?? beginnen. Wenn diese Konventionen eingehalten
werden, erzeugt das Stylesheet automatisch die richtigen <co id=??co.test??>
und <callout arearefs=??co.test??>. Wie das genau funktioniert, kann man sich
am besten in diesem Dokument ansehen.

6.2.3. Notiz einfgen


Wenn man mit OpenOffice eine Notiz einfgt, wird diese einfach wrtlich ins
DocBook Dokument bernommen. Man kann damit beliebige DocBook-Tags erzeugen.
Allerdings ist die Kontrolle ber die genaue Position im Dokument nicht
mglich, so dass Struktur-Tags, die an ein bestimmtes Inhaltsmodell geknpft
sind, manchmal auf diese Weise nicht sinnvoll eingefgt werden knnen. Was aber
z.B. Problemlos mglich ist, sind Indexeintrge.

------------

[4] Man kann sie tatschlich z.B. einfach mit WinZip ffnen

Kapitel 7. Download DocBook Publishing

*PDF [download/publish-pdfde-1.02.zip]
*HTML [download/publish-htmlde-1.02.zip]
*Microsoft Word [download/publish-wordde-1.02.zip]
*Windows Help [download/publish-helpde-1.02.zip]
*Plaintext [download/publish-textde-1.02.zip]
*HTML (eine Datei) [download/publish-html-flatde-1.02.zip]
*XML (DocBook) [download/publish-xmlde-1.02.zip]
*OpenOffice [download/publish-OpenOfficede-1.02.zip]
*Build Framework [download/publish-common-1.02.zip] (fr Anwender des
    Frameworks)



