3B2 zu SGML
Hintergrund
Das Satzprogramm 3B2 basiert selbst auf SGML und kodiert eigene Befehle in SGML-Syntax.
So werden
Satzbefehle als SGML-Verarbeitungsanweisungen
(processing instructions, kurz PI) kodiert
(<? ... >
). Der Begriff „Verarbeitungsanweisung“
ist hierbei wortwörtlich zu nehmen, es sind die eigentlichen
Verarbeitungsbefehle, also Formatierungsbefehle.
Absatzformate werden als Elemente
kodiert, wobei nur der Starttag
geschrieben wird (<einzug>
), der Endtag wird
durch SGML-Minimierung (in der Programmoberfläche mit dem
Zeilenwechsel ¶
, im SGML-Code
durch <>
) automatisch
erzeugt.
In der Programmoberfläche wird die Dokumentstruktur
sehr vereinfacht eingegeben:
<titel>Überschrift¶
<ohneeinzug> ... ¶
<einzug> ... ¶
<einzug> ... ¶
Programmintern wird diese Struktur als SGML wie folgt gespeichert:
<titel>Überschrift<>
<ohneeinzug> ... <>
<einzug> ... <>
<einzug> ... <>
Der SGML-Parser liest das Dokument wie folgt:
<titel>Überschrift</titel>
<ohneeinzug> ... </ohneeinzug>
<einzug> ... </einzug>
<einzug> ... </einzug>
Dilemma: Das automatische Interpretieren des Zeilenwechsels als Element-Ende-Signal kann für übliche SGML-Daten ein Problem darstellen, welches dazu führt, dass der Zeilenwechsel nicht als Whitespace-Zeichen verwendet werden sollte.
Container-Elemente werden in der üblichen SGML-Syntax
(<beispiel> ... </beispiel>
) geschrieben.
Für Formeln und Formelzeichen wird TeX als Syntax verwendet. Das 3B2-Dateiformat ist ein textbasiertes maschinenlesbares Eigenformat.
Erschwerend kommt hinzu, dass 3B2 einen eigenen Zeichensatz für die Repräsentation von Umlauten und Sonderzeichen verwendet.
Verfahren
Mit unseren Tools extrahieren wir die Datenstrukturen aus den Original-3B2-Satzdaten.
Dabei werden Strukturdaten (Ebenensystem, logische Struktur, Text) und Formeldaten (TeX) separiert, gesondert aufbereitet und letztendlich wieder im SGML-Dokument zusammengeführt.
Die Prozesse sind hierbei hochautomatisiert, müssen aber projektabhängig individuell konfiguriert werden.
Unsere Dienstleistungen
Wir extrahieren SGML-Daten aus 3B2-Satzdaten. Und das unabhängig davon, ob 3B2 mit SGML oder als reines Layoutsystem genutzt wurde.