von Patrick Gundlach |

Feature der Woche: Fontalias

Diese Woche ein Feature, das noch ganz frisch ist. Es gibt einen neuen Befehl (seit Version 2.7.12):

<DefineFontalias existing="..." alias="..."/>

Was einen alternativen Namen für einen existierenden Fontnamen zu der Liste der bekannten Fontnamen hinzufügt. Die Befehle

<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"/>

erlauben es nun, die Schriftfamilien wie folgt zu definieren:

<DefineFontfamily name="title" fontsize="15" leading="17">
  <Regular fontface="serif"/>
  <Bold fontface="serif-bold"/>
  <BoldItalic fontface="serif-bolditalic"/>
  <Italic fontface="serif-italic"/>
</DefineFontfamily>

also unabhängig von der tatsächlich genutzten Schriftart.

Mit diesem Trick kann man nun die Fontdefinitionen in eine eigene Datei auslagern:

<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>

(speichern z.B. als dejavuserif.xml)

Anschließend kann diese Datei eingebunden werden mit

<xi:include href="dejavuserif.xml"/>

Damit kann man dann die Schriftfamilien definieren wie oben gezeigt.

Der Namensraum für XInclude muss dann noch deklariert werden, das kann man im öffnenden Layout-Tag erledigen:

<Layout xmlns="urn:speedata.de:2009/publisher/en"
  xmlns:sd="urn:speedata:2009/publisher/functions/en"
  xmlns:xi="http://www.w3.org/2001/XInclude"
  >

Dieser Artikel bezieht sich auf den speedata Publisher in der Version 2.7.12. 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.