Feature der Woche: Layoutregelwerke in einzelne Dateien teilen
Ein kurzes, aber sehr praktisches Feature diese Woche.
Man kann das Layoutregelwerk in mehrere Dateien aufteilen.
Es gibt zwei Möglichkeiten, die Dateien zusammenzuführen.
Auf der Kommandozeile kann man mit --extra-xml
eine oder mehrere Layoutregelwerke angeben, die zusätzlich eingelesen werden.
Alternativ dazu kann man den Mechanismus über XInclude benutzen, hier im Fall einer Fontdefinition:
Die Hauptdatei hat wie üblich diesen Aufbau, neu ist hier die Zeile mit <xi:include>
:
<Layout xmlns="urn:speedata.de:2009/publisher/en"
xmlns:sd="urn:speedata:2009/publisher/functions/en"
xmlns:xi="http://www.w3.org/2001/XInclude"
>
<xi:include href="dejavu.xml"/>
...
</Layout>
Der Namensraum für XInclude muss wie oben deklariert werden, sonst gibt es einen Syntaxfehler in der XML-Datei.
Die über XInclude eingebundene Datei hat den folgenden Aufbau (das Wurzelelement heißt nun <Include>
):
<Include
xmlns="urn:speedata.de:2009/publisher/en">
<LoadFontfile name="DejaVuSerif" filename="DejaVuSerif.ttf" />
<LoadFontfile name="DejaVuSerif-Bold" filename="DejaVuSerif-Bold.ttf" />
<LoadFontfile name="DejaVuSerif-BoldItalic" filename="DejaVuSerif-BoldItalic.ttf" />
<LoadFontfile name="DejaVuSerif-Italic" filename="DejaVuSerif-Italic.ttf" />
<DefineFontalias existing="DejaVuSerif" alias="serif"/>
<DefineFontalias existing="DejaVuSerif-Bold" alias="serif-bold"/>
<DefineFontalias existing="DejaVuSerif-Italic" alias="serif-italic"/>
<DefineFontalias existing="DejaVuSerif-BoldItalic" alias="serif-bolditalic"/>
</Include>
Mit dieser Methode hält man das Layoutregelwerk übersichtlich.
Dieser Artikel bezieht sich auf den speedata Publisher in der Version 2.9.8. Andere Versionen haben womöglich andere Befehle oder die genannten Befehle zeigen ein anderes Verhalten. Bitte schau im Zweifelsfall in der Anleitung nach.
In der Serie »Feature der Woche« beschreibe ich einmal in der Woche mehr oder weniger nützliche Eigenschaften des Publishers. Kommentare gerne an mich per E-Mail oder einfach im Kommentarfeld.