Die Aufbereitung des Manuskripts für den Ausdruck erwies sich als deutlich komplizierter. Dafür gab es eine Reihe von Gründen:
Insbesondere der letzte Punkt war in diesem Fall ein
Hindernis. Selbstverständlich sollte das Setzen des Buches
vom Setzer des Verlags durchgeführt werden und nur im
schlimmsten Fall
von den Autoren. Das Manuskript
musste also eine Form bekommen, die es
erlaubt, die vorhandenen und bekannten Programme (hier
FrameMaker) zu verwenden.
Der Weg dorthin war alles andere als geradlinig. Der erste Ansatz bestand darin, mit Hilfe von Jade eine RTF-VersionJade:RTF-Ausgabe zu erzeugen, die über den Import-Filter in FrameMaker geladen werden sollte. Nach anfänglichen Erfolgen mit den rudimentären Elementen, wie zum Beispiel Absätzen, tauchten rasch Probleme auf. Eine Reihe von Abstürzen beim Einladen von RTF in FrameMaker 5.1 (Solaris 2) deuteten auf Schwierigkeiten dieses Programms mit dem Rich Text Format hin. Der Wechsel zu Word bestätigte dies: Word akzeptierte unsere RTF-Dateien klaglos, und wir konnten auch etwas anspruchsvollere Formatierungen mit Jade durchführen. Zwar war Word ganz und gar nicht unser gewünschtes Ziel, für den Augenblick genügte es jedoch.
Das nächste Hindernis stellte dann Jade dar. Für die
Internet-Reihe benötigten wir unbedingt Formatierungen in
der Marginalspalte. Die in DSSSL dafür
vorgesehene Flow Object Class Marginalia
beherrschte die Version 1.0.1 von Jade leider nicht. An
dieser Stelle haben wir uns darauf konzentriert, ein
FrameMaker-Dokument zu erzeugen, welches Formatvorlagen
einsetzt. Die Formatvorlagen sollten dem Setzer ermöglichen,
das gewünschte Layout zu schaffen. Dass dies mit Jade möglich
ist, hat bereits Chris Maden
[made97]
[made97]Converting SGML to Tagged MIF with Jade
, Chris Maden, 1997, http://www.oreilly.com/people/staff/crism/dsssl/sgml2mif.html
gezeigt. Er hat mitJade:MIF-Ausgabe
Hilfe von Jade und DSSSL die Konvertierung von
SGML in Tagged-MIFMIF (Maker
Interchange Format) durchgeführt und zwar für die
Docbook-DTD. Sein im Web verfügbares Material
zeigt jedoch auch, dass dies eine recht aufwendige Arbeit ist
— ein Aufwand, vor dem wir angesichts der knappen
Terminvorgabe zurückschreckten.
Als wir gerade darüber nachdachten, ob eine auf Cost basierende Lösung geringeren Aufwand bedeuten würde, kam die Rettung in Form einer neuen FrameMaker-Version. Ab der Version 5.5 gibt es nun FrameMaker+SGML. Da wir keine XML-Spezifika, wie etwa die neuen Links nutzen, war der SGML-ImportFrameMaker:SGML-Import genau das, was wir benötigten. Zwar bedeutete auch das Erlernen des Programms einen hohen Zeitaufwand — allein die Dokumentation für den SGML-Import ist fast 500 Seiten stark — aber schließlich versprach dieser Weg, das beste Ergebnis zu liefern.
FrameMaker+SGML speichert strukturelle Informationen in einem so genannten Element Definition Document (EDD). Im wesentlichen erfüllt eine EDD in FrameMaker die Aufgabe einer DTD. Diese enge Verwandtschaft führt dazu, dass man eine initiale EDD einfach durch Einladen der eigenen (SGML-)DTD erhält. In einem zweiten Schritt muss man dann weitgehend manuell jedem Elementtyp der DTD eine gewünschte Formatierung zuordnen. Dieser Schritt war in unserem Fall relativ leicht, da wir bereits eine Musterdatei vom Setzer vorliegen hatten.
Bei den anspruchsvolleren Aufgaben wurde die Arbeit jedoch kompliziert. Man merkt dem Programm den DTP-Hintergrund an. Viele bei DSSSL selbstverständliche Funktionen gibt es bei FrameMaker nicht. Ändern der Reihenfolge von Elementen und das Hinzufügen von Elementen sind beispielsweise nicht möglich. Verschachtelte Tabellen, die im HTML-Tabellenmodell kein Problem sind, beherrscht FrameMaker nicht. Deshalb gestaltete sich der Import unseres Manuskripts schwierig.
Für diese Aufgaben steht zwar ein Ausweg zur
Verfügung, jedoch ist der sehr aufwendig: Das Schreiben
eines Programms, das über die
FrameMaker-API die gewünschten Funktionen
ausführt. Diese Option schien uns wenig angenehm. Die Lösung
war — wie so oft — Jade. Vor dem Import in
FrameMaker haben wir mit Hilfe von Jade alle Aufgaben
durchgeführt, die FrameMaker nicht beherrscht. Das Ergebnis
war ein Dokument, das sich ohne zusätzliche Programmierung
durch Anpassung der Import-Funktion laden läßt. Ein
letztes Problem bestand noch darin, dass es FrameMaker
scheinbar nicht ermöglicht, die Behandlung von Leerraum zu
steuern. In XML/SGML dürfen Leerzeichen und
Tabulatoren etwa zum Einrücken benutzt werden. Zur besseren
Lesbarkeit unseres Manuskripts haben wir davon ausgiebig
Gebrauch gemacht. Leider war es uns nicht möglich, diese
mehrfachen Leerzeichen beim Import zu eliminieren. Diese
Aufgabe hat schließlich ein kleines sed-Skript
übernommenIn diesem Zusammenhang danken wir Peek
et.al.
[porl93]
[porl93]
UNIX Power Tools
, Jerry Peek, Tim O'Reilly, Mike Loukides, Sebastopol/NY, 1993, O'Reilly & Associates/Random House..
Für den allgemeinen Fall kann man daraus zweierlei lernen: