David Maus

Darstellung von Planetensymbolen in der Edition des Diariums von Herzog August dem Jüngeren

In der Digitalen Edition des Diariums von Herzog August dem Jüngeren sollen die für die Wochentage verwendeten Planetensymbole in der Onlinepublikation dargestellt werden. Die für die Anzeigqe verwendete Schriftart Junicode definiert allerdings keine Glyphen für die betreffenden Zeichen. Ob und wie die Planetensymbole dargestellt werden, wird damit vom Browser abhängig. Ein aktueller Firefox unter Windows verwendet zum Beispiel eine Schriftart, in der es keine fett geschnittenen Glyphen für die Zeichen U+2642 und U+2640 gibt. Der Browser fällt in diesem Fall auf den regulären Schnitt zurück, wodurch die Darstellung der Symbole uneinheitlich wirkt.

Planetensymbole in Firefox 38

Um eine einheitliche Darstellung der Symbole zu erreichen werden die Glyphen der betreffenden Zeichen aus einer anderen Schriftart entnommen. Als Schriftart wird die von George Douros erstellte Schriftart Symbola ausgewählt. Sie ist frei verfügbar und enthält sowohl fett als auch regulär geschnittene Planetensymbole.

Da nur ein Bruchteil der in der Schriftart definierten Zeichen benötigt wird und die Schriftart mit ca. 1.1 Megabyte verhältnismäßig groß ist, wird als erstes eine Schriftartendatei erzeugt, die nur Glyphen des Unicodeblocks Miscellaneous Symbols (U+2600–U+26FF) enthält.

Block mit U+2600–U+26FF erzeugen
pyftsubset Symbola.ttf --unicodes=2600-26FF --output-file=Symbola-26xx.ttf

Die so erstellte Schriftartendatei wird anschließend in das für Webschriftarten übliche WOFF-Format konvertiert.

Schriftartendatei in WOFF konvertieren
cat > metadata.xml<metadata version="1.0">  <credits>    <credit name="George Douros" url="http://users.teilar.gr/~g1951d/" role="creator"/>  </credits>  <description>    This font is a subset of the complete Symbola font. It only contains glyphs from the Unicode block    Miscellaneous Symbols, range U+2600-26FF.  </description></metadata>^Dsfnt2woff -m metadata.xml Symbola-26xx.ttf

Ideal wäre es, wenn der Browser die Schriftart nur für die Zeichen aus Block Miscellaneous Symbols verwendet. Die aktuelle CSS-Spezifikation der Schriftartenunterstützung, CSS Fonts Module Level 3, behandelt dieses Anwendungsszenario in Abschnitt 4.6 unter der Überschrift "Using character ranges to define composite fonts". Dort wird es wie folgt beschrieben:

Multiple @font-face rules with different unicode ranges for the same family and style descriptor values can be used to create composite fonts that mix the glyphs from different fonts for different scripts. This can be used to combine fonts that only contain glyphs for a single script (e.g. Latin, Greek, Cyrillic) or it can be used by authors as a way of segmenting a font into fonts for commonly used characters and less frequently used characters. Since the user agent will only pull down the fonts it needs this helps reduce page bandwidth.

If the unicode ranges overlap for a set of @font-face rules with the same family and style descriptor values, the rules are ordered in the reverse order they were defined; the last rule defined is the first to be checked for a given character.

Allerdings: Die für das Zusammensetzen von Schriftarten verwendete CSS-Eigenschaft unicode-range wird nicht von allen Browsern unterstützt. Insbesondere Firefox beachtetet diese Angaben standardmäßig erst seit Version 44, zuvor mussten sie ausdrücklich in den Experteneinstellungen eingeschaltet werden. Um größtmögliche Kompatibilität zu gewährleisten, wird die Schriftart daher über eine CSS-Klasse zugewiesen.

Schriftart per CSS-Klasse zuweisen
@font-face {  font-family: Symbole;  src: url(http://diglib.hab.de/rules/fonts/Symbola-26xx.woff) format("woff");}.symbol {  font-family: Symbole;}

Und voilà: Die Planetensymbole werden einheitlich dargestellt.

Planetensymbole in Schriftart Symbola