von Patrick Gundlach |

Fallback für Schriftarten

In der neusten Version des Publishers ist es nun möglich, Ersatzschriftarten anzugeben, wenn Zeichen aus einer Schriftart nicht gefunden werden. Z.B. hat die mit dem speedata Publisher mitgelieferte TeX Gyre Heros keine Zeichen für Griechisch, Arabisch oder ähnliches im Zeichensatz. Oder viele CJK (Chinesisch, Japanisch, Koreanisch) Schriftarten haben nur rudimentäre Unterstützung für lateinische Sprachen.

Die Syntax erklärt vielleicht etwas schneller, worum es geht:

<LoadFontfile name="zh" filename="Microsoft JhengHei.ttf">
  <Fallback filename="texgyreheros-regular.otf" />
</LoadFontfile>

Ist ein Zeichen in der Schriftart Microsoft JhengHei.ttf nicht vorhanden, wird in der Datei texgyreheros-regular.otf geschaut. Es ist auch möglich, mehr als ein Fallback-Element anzugeben. Es wird dann der Reihenfolge nach geprüft, bis ein Zeichen gefunden wird.

Man kann mit dem Mechanismus auch z.B. Icon-Fonts mit Text mischen, ohne dass man explizit zwischen den Schriftarten umschalten muss. Hier wird als Ersatzschrift line-awesome genutzt:

<Layout
  xmlns="urn:speedata.de:2009/publisher/en"
  xmlns:sd="urn:speedata:2009/publisher/functions/en">

  <LoadFontfile name="helvetica"
                filename="texgyreheros-regular.otf">
    <Fallback filename="line-awesome.ttf" />
  </LoadFontfile>


  <DefineFontfamily name="text"
                    fontsize="10"
                    leading="12">
    <Regular fontface="helvetica"/>
  </DefineFontfamily>

  <Record element="data">
    <PlaceObject>
      <Textblock>
        <Paragraph>
          <Value>Sie erreichen uns unter<br/>
            &#xf1c6; Musterstraße 11, 12345 Speedatahausen<br/>
            &#xf2b3; 0815 12345<br/>
            &#xf219; www.speedata.de
          </Value>
        </Paragraph>
      </Textblock>
    </PlaceObject>
  </Record>
</Layout>

Das Ergebnis ist: