hier (in dctt) wird ja gelegentlich nach Anwendungen von TeX in
der `Industriepraxis' gefragt.
Daher moechte ich kurz ueber ein `groesseres' Industrieprojekt
berichten, das jetzt von der QuinScape GmbH in Dortmund mit
grossem Erfolg abgeschlossen wurde.
Es geht um die vollstaendige Umstellung der Erstellung
von Produktdokumentationen der ERCO Leuchten GmbH in
Luedenscheid von der manuellen Erstellung (mit einem
`branchenueblichen' DTP-Programm) zur vollautomatischen
datenbasierten Erzeugung mit pdfTeX.
"Produktdokumentationen" umfasst hier gut 20.000
`Datenblaetter' (je ca. 5-15 Seiten) in 3 Gruppen
(Systemuebersichten, Leuchten, Lichtsteuerungen) sowie
14 Produktkatalogen (je ca. 670 Seiten) in 11 Sprachen.
"vollautomatisch datenbasiert" bedeutet, dass Datensaetze
in Textform aus diversen Produkt- und Marketingdatenbanken
exportiert werden und dann basierend auf diesen (und
diversen einzubindenden Dateien: Abbildungen, Diagramme,
Tabellen, manuell erstellte Seiten fuer Einleitungen etc)
in einem einzigen pdflatex-Lauf das endgueltige Dokument
erstellt wird, das ohne Nachbearbeitung ins Web gestellt
bzw. an die Druckerei geliefert werden kann (genau genommen
werden die Web-Dokumente z.T. mit Acrobat optimiert und
der Printkatalog mit der Acrobat-Funktion "Dateigroesse
reduzieren" von ca. 1GB so verkleinert, dass er auf einer
CD an die Druckerei geliefert werden kann [frueher:
15(!) CDs mit Quark-Dateien fuer den halb so umfangreichen
Vorgaengerkatalog]).
Die 1GB (bzw 60MB fuer die Webversion) grosse pdf-Datei
wird von pdflatex auf einem handelsueblichen Laptop in
ziemlich genau 8 Minuten erzeugt.
Es werden etwa 250 Datensatzdateien mit einer Gesamtlaenge
von ca. 7MB verwendet.
Dabei werden ca. 7500 Abbildungen im jpg- oder pdf-Format
sowie ca. 2500 extern gespeicherte Tabellen und etwa 600
kurze Texte (Bildunterschriften) eingebunden.
Zur Abrundung der Zahlenspielerei hier die Speicherstatistik
des Printkatalogs:
Here is how much of TeX's memory you used:
161086 strings out of 257463
4285479 string characters out of 6937348
11747695 words of memory out of 12700490
154075 multiletter control sequences out of 10000+250000
32145 words of font info for 56 fonts, out of 500000 for 1000
121 hyphenation exceptions out of 1000
78i,21n,156p,1283b,3405s stack positions out of 1500i,500n,5000p,200000b,20000s
24320 PDF objects out of 300000
940 named destinations out of 131072
16300 words of extra memory for PDF output out of 65536
Der deutsche Katalog ist gedruckt, die fremdsprachigen Kataloge
sind zum Teil bei der Druckerei und werden jetzt sukzessive
fertiggestellt.
Alle bisher fertiggestellten Web-Dokumente koennen unter
http://www.erco.com/download/en/en_index_download.htm
heruntergeladen werden. Die Dokumente in den Bereichen
Printed Catalogue
Product Specification Sheets
Product Characteristics
sind alle mit dem von QuinScape erstellten System erzeugt.
Im Rahmen dieses Projekts wurden umfangreiche Makrobibliotheken
fuer LaTeX erstellt.
An (La)TeX-features wurden in erster Linie gebraucht:
* Fontverwaltung;
* automatische Silbentrennung (in 11 Sprachen);
* flexible Einstellung der Parameter fuer den Absatzumbruch
(ragged2e-Paket);
* Grafikeinbindung (graphicx- und pdfpages-Paket);
* Berechnungen und Fallunterscheidungen (Pakete ifthen und calc);
* Verarbeitung von Datenstrukturen (haupts. erweiterbare ein- bis
dreidimensionale Arrays, realisiert durch Makros der Art
\csname arrayname(x,y,z)\endcsname, hunderttausende von denen);
* Boxenschiebereien, einerseits selbstgebastelter Mehrspaltensatz
mit \vsplit, andererseits Konstruktion und Ausmessen von Boxen
und anschliessende Fallunterscheidung zur Realisierung eines
dynamischen, datenabhaengigen Layouts;
* Tabellensatz (tabularx-Paket);
* Verwaltung von Verweisen und Hyperlinks (hyperref-Paket).
Die output-Routine wurde nicht besonders belastet, da fuer das
verwendete mehrschichtige, Rasterbasierte Seitenmodell immer
komplette Seiten `intern' als geschichtete Boxen konstruiert
und direkt ausgegeben wurden; langfristig soll das aber
ein entprechendes Paket mit eigener outpu-Routine werden.
Die folgenden grundlegenden Funktionalitaeten wurden
neu geschaffen:
* Datenbankschnittstelle.
Diese verwendet bei diesem Projekt Datensaetze im LaTeX-Format
(analog dem, was in einschlaegigen DTK-Artikeln empfohlen
wurde), es sind bei anderen Projekten aber auch Daten im
XML-Format verwendet worden.
Eine Besonderheit ist, dass Datensaetze Sequenzen von
(geschachtelten) `Unterdatensaetzen' enthalten koennen,
die eine 1-n Relation realisieren.
Z.B. enthaelt eine Leuchtenfamilie mehrere Charakteristiken,
eine Charakteristik mehrere Baugruppen, eine Baugruppe
mehrere Untergruppen, eine Untergruppe mehrere Artikel.
Jedem Artikel sind wiederum mehrere Lampen, Zubehoerartikel,
Messprotokolle etc. zugeordnet.
Diese strukturierten Daten werden intern strukturerhaltend
gespeichert und koennen sequentiell abgearbeitet werden,
es gibt aber auch Makros, mit denen Daten auf komplexe
Weise aus tief verschachtelten Strukturen `extrahiert' und
neu gruppiert werden koennen.
* Datenverarbeitung.
Neben einer Reihe neuer Befehle fuer Fallunterscheidungen
wurden gaengige Datentypen wie Listen und Mengen implementiert
und mit robusten, verstaendichen Zugriffsmakros versehen.
* Rasterbasiertes Seitenmodell.
Jeder Seite ist ein `Entwurfsraster' unterlegt, das eine
Matrix rechteckiger `units' definiert. Dokumentelemente
wie Abbildungen, Tabellen und Texte nehmen jeweils einen
rechteckigen Bereich von `units' ein, der auf der Seite im
Raster platziert (und intern als belegt markiert) wird.
Platzierungsbefehlen koennen explizite Koordinaten
uebergeben werden, sind keine Koordinaten angegeben, so
wird (parametergesteuert) automatisch ein freier Platz
gesucht.
Texte koennen entweder ein- oder mehrspaltig in einen
rechteckigen Bereich gesetzt werden, oder sie laufen
entlang eines (ggfs. mehrseitigen) `Flusspfades', der
entweder explizit spezifiziert oder automatisch gesucht
wird.
* Gruppierung von Dokumentelementen.
Eine Gruppe ist im hier beschriebenen Kontext eine
`virtuelle' Seite, also ein rechteckiger Bereich von
units, dessen Dimensionen etweder vorgegeben oder automatisch
bestimmt werden.
Gruppen koennen geschachtelt, ausgemessen und ein- oder
mehrspaltig auf einer Seite (oder einer anderen Gruppe)
platziert werden. Sie dienen zur Zusammefassung von
Dokumentelementen, zur Konstruktion komplexer mehrspaltiger
Strukturen, sowie fuer komplexe datenbasierte
Layoutentscheidungen (Konstruktion einer Gruppe, ausmessen,
Fallunterscheidung, ob die Gruppe gesetzt oder verworfen
und in einem anderen Layout neu konstruiert werden soll).
>>> Sagte ich schon, dass die Erzeugung eines komplexen, 670-seitigen
Katalogs von 1 GB Dateigroesse mit abertausenden Ablaeufen dieser
Art auf einem handelsueblichen Laptop 8 Minuten dauert? <<<
* Erstellung komplexer Inhaltsverzeichnisse und
Zwischeninhaltsverzeichnisse.
Dabei werden bei der Katalogerstellung nicht nur Ueberschriften
und Seitenzahlen, sondern auch Abbildungen und durch Analyse
der Daten (z.B. "in Varychrome-Technik erhaeltlich") gewonnene
Hinweise gesammelt und aus diesen komplexe `zweidimensionale'
Gesamt- und Zwischeninhaltsverzeichnisse erzeugt.
* "Fuellbilder".
Die Umbruchregeln fuer das dynamische Layout lassen manchmal
Luecken auf den Seiten entstehen.
Eine Produktfamilie kann eine Reihe von `Fuellbildern'
mit Unterschriften zugeordnet werden. Vor Ausgabe einer Seite
wird geprueft, ob auf dieser eine ausreichend grosse Luecke
existiert. In diesem Fall wird ein Fuellbild platziert.
Zusaetzliche Regeln (nur ein Fuellbild pro Doppelseite,
wenn moeglich auf der rechten Seite) werden automatisch
beachtet.
* Bildstanduebernahme/optimierung.
Die 14 Kataloge werden in Gruppen mit gleicher Produktauswahl
und `aehnlicher' Sprache (z.B. Deutsch, Englisch, Niederlaendisch,
Daenisch, Norwegisch, Schwedisch in einer Gruppe und Franzoesisch,
Italienisch, Spanisch in einer anderen Gruppe) eingeteilt.
Alle Kataloge derselben Gruppe sollen trotz dynamischen Layouts
denselben Bildstand haben, damit nicht alle Druckplatten fuer
alle Kataloge neu erstellt werden muessen.
Zu diesem Zweck gibt es die Moeglichkeit, das fuer einen
Katalog erzeugte Layout abzuspeichern und einem anderen
`aufzupraegen'. Konflikte werden so weit moeglich automatisch
aufgeloest (laeuft z.B. ein Text zu lang, wird durch Modifikation
der Satzparameter versucht, ihn im gegebenen Platz unterzubringen).
Weiterhin ist es moeglich, den Bildstand zu `optimieren'.
Dabei wird das Layout des Katalogs a bei Verarbeitung von
Katalog b so modifiziert, dass beide im optimierten Layout
Platz haben. Durch zyklische Anwendung dieses Verfahrens
wird ein `optimales' Layout berechnet, das alle Kataloge einer
gegebenen Gruppe aufnehmen kann.
Das letzte jetzt noch ausstehende Projekt ist der Japan-Katalog...
Hatte ich schon erwaehnt, dass man Beispiele der Dokumente unter
http://www.erco.com/download/en/en_index_download.htm
herunterladen kann?
Noch was: Am 10.03.2004 wird im Hause der ERCO Leuchten GmbH
in Luedenscheid ein Workshop zum Thema "Erfolgreiche
Informationslogistik im Marketing" stattfinden, mit Praesentationen
der Firmen ERCO ("Case Study: Vom Desktop Publishing zum
Database Publishing - Neuausrichtung der Informationslogistik
bei ERCO"), Klickmeister ("Publizieren und Praesentieren mit
web-basierten Werkzeugen") und QuinScape ("Kataloge und
Produktdatenblaetter auf Knopfdruck") sowie viel Zeit zum
Diskutieren und Problemloesen.
Es ist eine Anmeldung erforderlich (Teilnahme kostenlos).
Naehere Informationen zum Workshop und zur Anmeldung
unter http://www.quinscape.de/qims/jsp/produkte/docscape/docscape-workshop.jsp
Gruss
Stephan
--
QuinScape GmbH Stephan...@QuinScape.de
Thomasstraße 1 Tel. : 0231 / 755 - 6434
44135 Dortmund Fax. : 0231 / 5844 984 - 24
http://www.QuinScape.de Mobil: 0160 / 95263360