Digitale Typografie für fiktionale Schriftsysteme – ein Rant

  • Dies ist die Übersetzung eines englischsprachigen Beitrags (click for English version), den ich bereits im August 2011 geschrieben habe. Da scheinbar ein größeres Interesse an diesem Beitrag bestand, dachte ich, es wäre eventuell sinnvoll, ihn auch ins Deutsche zu übersetzen.
  • Mittlerweile habe ich auch einen Font mithilfe von Graphite gebastelt.
  • Beachte, dass ich nicht einmal ein halbprofessioneller Schriftdesigner bin. Alles, was du hier liest, ist learning by doing und daher sehr subjektiv. Ich habe mir bisher nicht mehr über Schriftdesign beigebracht, als nötig ist, um meine eigene Schrift umzusetzen.

Eines meiner fortlaufenden, mit dem Sprachenbasteln verbundenen Projekte ist es, das Schriftsystem meiner Kunstsprache auf den Computer zu bringen. Ich versuche seit mehreren Jahren, brauchbare Lösungen zu finden, bin aber immer früher oder später gegen eine Wand gerannt.

Da du das hier liest, vermute ich, dass auch du etwas mit Sprachenbasteln zu tun hast, genauso wie ich. Und weil viele von uns nicht nur gerne mit Klängen und Bedeutungen herumspielen, sondern auch mit Computern, hast du vielleicht sogar eine TTF-Schriftart für deine Sprache und ihre eigene Schrift erstellt. Wenn es sich dabei um ein Alphabet oder um eine einfache Silbenschrift wie zum Beispiel das japanische Katakana handelt, wirst du nicht allzu viele Probleme damit gehabt haben und deine größte Sorge ist vielleicht, wie man das ganze auf einer regulären Computertastatur schreibt. Gratulation!

Allerdings ist es in meinem Fall leider nicht ganz so einfach, weil ich mit einem Abugida arbeiten muss. Das heißt, Vokale und andere modifizierende Zeichen werden durch einen Haufen Akzente gekennzeichnet, die um Konsonanten herum gruppiert sind, während der Vokal, der am häufigsten vorkommt (normalerweise [a], [ə] oder [ɔ], je nach Sprache), nicht ausgeschrieben wird.

Fig. 1: ta → ti → tiː → t͡ʃiː (*tjiː) → t͡ʃiːe (*tjiːe)
Fig. 1: ta → ti → tiː → t͡ʃiː (*tjiː) → t͡ʃiːe (*tjiːe)

Wenn du dich mit semitischen Schriften auskennst, dann ist es so ähnlich, außer, dass Vokale geschrieben werden müssen. Wenn du dich mit Schriften des indischen Subkontinents und Südostasiens auskennst, dann ist es im Prinzip genau das. Und wenn du Tolkiens Tengwar-Schrift kennst (genau, “Elbisch”), dann ist es auch so ähnlich wie dort. Schauen wir jetzt, welche Lösungsmöglichkeiten ich gefunden habe und auf welche Probleme ich dabei gestoßen bin, weshalb ich ehrlich gesagt die Nase voll davon habe, es auch nur zu versuchen. Trotz allem verlangt der ehrgeizige Teil in mir, nicht einfach so aufzugeben.

1. Alle Kombinationen vorfertigen

Das ist vielleicht die einfachste Lösung: Es einfach genauso zu machen, wie chinesische Schriftzeichen oder koreanische Silbenzeichen in Unicode kodiert sind, also als fertig zusammengebaute Silben, und nicht bloß dutzendfach, sondern in dutzend dutzend dutzendfacher Ausführung.

Fig. 2: Chinesisch und Koreanisch in Unicode

Koreanisch, wie du vielleicht weißt, ist im Prinzip ein Alphabet, außer, dass die Silben in Blöcke gruppiert werden:

Fig. 3: Das Wort 한글 in seine Teile zerlegt (Quelle: Wikipedia: “Hangul”)

Das Problem dabei ist, dass es sehr mühsam und lästig ist, dasselbe für Ayeris Schrift zu tun, denn es gibt 27 Konsonantenzeichen, 8 Vokaldiakritika für oben, 8 Vokaldiakritika für unten, 8 Funktionsdiakritika, die unter Konsonanten auftauchen, 7, die als Varianten vor ihnen auftauchen und 4, die über ihnen auftauchen, teilweise als Varianten. Nicht alle Kombinationen sind möglich, aber nach einer groben Schätzung ergeben sich sage und schreibe 69.000.000 etwa 450.000 Kombinationen, wenn mich meine Kombinatorikkenntnisse nicht im Stich lassen.1
Und auch wenn das falsch sein sollte, wäre es trotz allem eine irrsinnig große Anzahl, wenn man wirklich alle möglichen Kombinationen vorfertigen wollte. Und dann müsste man eine Art Programmbibliothek schreiben, die das richtige Zeichen für die gerade benötigte Silbe sucht, möglichst, indem man das Wort der Bequemlichkeit halber in lateinsicher Schrift eingibt. Sch*** viel Arbeit. Ich habe das eigentlich noch nicht versucht, weil es schon von vornherein verrückt erschien.

2. Rückwärtszeichen

Eine Idee, die mir ziemlich schlau erschien, ist, die Diakritika um Konsonanten herum zu platzieren, indem man Leerzeichen in der Schriftart definiert, die eine negative Laufweite haben. Das heißt, alle Zeichen in einer Schriftart haben eine Breite, genauso wie jede Grafikdatei. Diese Zeichen jedenfalls – mit negativer Breite ausgestattet – würden den Cursor nicht nach vorne, sondern zurücksetzen, wobei aber immer noch die Links-nach-Rechts-Richtung der Schreibweise beibehalten wird, sodass das Konsonantenzeichen mit dem nachfolgenden Diakritikum überlagert wird. Diese Vorgehensweise war sogar halb erfolgreich, da sich wirklich manche Versionen von OpenOffice.org 2 und auch einige Firefox-Versionen dahingehend austricksen ließen. Austricksen ließen deswegen, weil es eigentlich nicht der vorgesehenen Vorgangsweise entspricht, wie sich herausgestellt hat. Also haben die meisten Programme, mit denen ich diese Lösung versucht habe und auch spätere Versionen von OpenOffice.org und Firefox einfach die Minuszeichen ignoriert und haben stattdessen die absolute Breite der Abstandszeichen verwendet, was ein gruselig gesperrtes Durcheinander als Resultat hatte. Also sollte das auch kein Ansatz sein, wie man die Dinge auf lange Sicht bewerkstelligen könnte.

3. Graphite von SIL

Graphite ist eine Schriftrendering-Engine, die von SIL International entwickelt wurde, einer christlichen Missionsgesellschaft, die sich – unter anderem – darauf spezialisiert hat, (Minderheiten-)Sprachen auf den Computer zu bringen. Du hast vielleicht etwas gegen das erstere, aber als linguistisch interessierte Person wirst du trotzdem sicher das letzere befürworten. Das tolle an Graphite ist, dass es einem erlaubt, seine eigenen typografischen Eigenschaften mithilfe einer GDL genannten Skriptsprache zu definieren. Die Befehle aus dem Definitionsskript werden dann in eine gegebene TrueType-Schriftdatei als letzter Schritt hineinkompiliert, sodass man eine maßgeschneiderte Schriftart erhält, die alle möglichen Arten von dynamischer Positionierung und kontextgesteuerter Umordnung enthält, die man sich wünschen kann. Ich habe es einmal sogar einigermaßen zum Laufen gebracht mit einer Schriftart, die ich nicht veröffentlichen wollte, weil sie zu experimentell war, da ich in keiner Weise GDL flüssig beherrscht habe und sie auch nicht gerade schön anzusehen war. Sie hat einfach zu einem akzeptablen Grad funktioniert. Wie auch immer phantastisch die Aussicht klingt, seine eigenen Platzierungsregeln mit einer Skriptsprache zu definieren und sogar funktionierende Resultate zu erzielen – die Kehrseite ist, dass – meines besten Wissens nach – Graphite momentan nur von ein paar wenigen Programmen unterstützt wird, beachtenswerterweise OpenOffice.org/LibreOffice, XeTeX und SILs eigenem WorldPad. Es gibt auch eine pango-graphite-Bibliothek für Linux, die die Funktionalität von Graphite auf andere Programme erweitert, wie zum Beispiel Firefox, aber das nützt natürlich nichts auf Windows-Computern. Ich habe aufgegeben, meinen Skript zu erweitern und Fehler auszubügeln, weil ich Besseres zu tun hatte. Ich werde dieses lose Ende aber vielleicht später wieder aufnehmen. Leider scheint allerdings die Entwicklung von Graphite eingestellt worden zu sein, zumindest der Webseite nach zu urteilen, die seit einiger Zeit nicht mehr aktualisiert wurde.

4. Anker in OpenType

OpenType, eine Schriftrenderingtechnologie, die Microsoft und Adobe gemeinsam entwickelt haben, wird von wesentlich mehr Programmen als Graphite unterstützt und enthält einige Funktionen, mit denen sich eventuell eine Schriftart für mein Schriftsystem bewerkstelligen ließe. Es ist auch, was ich neulich wieder aufgegriffen habe, nachdem frühere Spielereien mit OpenType in Frustration geendet sind (und gerade anfangen, wieder darin zu enden). OpenType erlaubt es, nicht bloß kontextbedingte Varianten und Umsortierungen zu definieren, sondern auch, Anker zu definieren, an die Diakritika gebunden werden sollen. Im Grunde wie in Graphite, nur, dass man keinen Skript schreiben muss, sondern z. B. Fontforge eine WYSIWYG-Oberfläche hat, um die Anker zu positionieren.

Fig. 4: Fontforges Zeichenbearbeitungsfenster und Vorschau

Mithilfe von ‘mark’ und ‘mkmk’ scheint es sogar sehr machbar, komplexere Zeichen zusammenzubauen:

Fig. 5: Ein komplexes Zeichen in Fontforges Vorschaumodus

Das klingt ziemlich danach, als ob es in denjenigen Anwendungen funktionieren sollte, die die einfacheren, oder zumindest eher am lateinischen Alphabet orientierten Funktionen der fortgeschrittenen typographischen Funktionen, die OpenType anbietet, unterstützen. Es stellt sich aber heraus, dass die Verfügbarkeit solcher Funktionen sehr stark variiert und keine Gegebenheit darstellt. Daher sieht das, was in Fontforge richtig zu funktionieren schien, in Firefox 5 auf Ubuntu 10.10 so aus (mit der momentanen Firefox-6-Beta auf Windows XP SP3 sieht es genauso aus und mir wurde gesagt, dass es in Firefox 5 auf Windows 7 gar nicht funktioniert):

Fig. 6: Ein Test für kombinierende Diakritika in Firefox 5

Wie es scheint, werden gestapelte Diakritika nicht ganz unterstützt in der Weise, wie ich es mir vorgestellt habe, obwohl andere Schriftarten auch die ‘mkmk’-Funktion von OpenType benutzen – zum Beispiel Charis SIL – und hier die Diakritika richtig positioniert werden, wie man in dem zusammengesetzten Zeichen mit ‹a› in der letzten Zeile des Screenshots oben sehen kann. Und eines der Flaggschiffe von Adobe, das eine Große Zahl von OpenType-Funktionen unterstützt, InDesign (in meinem Fall, Version CS3), stellt dasselbe so dar:

Fig. 7: Ein Test für kombinierende Diakritika in Adobe InDesign CS3

Nicht einmal hier werden die Dinge richtig dargestellt: Obwohl ich sicher gegangen bin, dass das ‹ka›-Zeichen in der dritten Zeile alle notwendigen Anker enthält, wollen sich unten rechts anzufügende Diakritika einfach nicht verbinden und ich habe noch nicht herausgefunden, warum. ‹Pa› (sieht aus wie ein lateinisches ‹n›), zum Beispiel, scheint dieses Problem nicht zu haben.

5. Fazit

Wir haben einige Ansätze gesehen, wie man eine TrueType-Schriftart für Ayeris ‘natives’ Schriftsystem, Tahano Hikamu, herstellen könnte. Dies mit SILs Graphite oder Microsofts/Adobes OpenType zu tun, scheint am machbarsten, allerdings gibt es immer noch Hürden, die ich nicht ganz zu bewerkstelligen weiß – was frustrierend ist, wenn man bedenkt, dass ich schon seit einigen Jahren Lösungsmöglichkeiten suche. Dies ist auch der Grund dafür, dass ich bisher keine Schriftart für die breite Öffentlichkeit herausgebracht habe, auch wenn es aus bisher veröffentlichten Beispielen richtigerweise so scheint, dass ich zumindest zwei Schriftarten erstellt habe. Diesen fehlt allerdings die Funktionalität, die ich mir wünsche, sodass es sehr mühsam ist, mit ihnen zu arbeiten, weil alle Positionierung durch manuelles Kerning vorgenommen werden muss, zum Beispiel in InDesign oder Photoshop. Ich hoffe, dass ich irgendwann erfahren werde, wie ich mein Ziel erreichen kann, eine funktionierende Schriftart für Tahano Hikamu bereitzustellen. Allerdings nicht bis auf Weiteres, sowohl wegen meiner begrenzten Kenntnis darüber, wie Computer mit TTF-Dateien umgehen, als auch Einschränkungen in der Umsetzung von Funktionen, mit denen Schriftsatzsysteme theoretisch ausgestattet sind.

  • Nachzutragen ist, dass ich einfach mal in einem Typografie-Forum zu meinen Problemen mit Ankern nachgefragt habe. Jemand dort hat sich aus freien Stücken meiner Sache angenommen und hat tatsächlich eine Lösung gefunden, die besser funktioniert, als das, was ich vorher selbst zusammengebastelt hatte:

    Jedoch habe ich bisher nicht die Zeit gehabt, das weiter zu verfolgen und auszubauen. Die Diskussion findet sich hier.
  1. 27 Konsonanten × 8 Obervokale × 8 Untervokale × 8! 2⁸ Fuktionsdiakritika = 442.368. Die Fakultät von 8, weil all diese Zeichen miteinander kombiniert werden können (während sie kontextuell ihre Form verändern, weswegen man gefahrlos die vorangestellten und oberen Diakritika ignorieren kann), aber nicht zweimal pro Zeichen erscheinen, sodass man mit jedem Schritt eine Kombinationsmöglichkeit verliert.
    • Leser Timwi hat mir gesagt, dass meine Berechnungen falsch waren. Aber es ist immer noch eine ziemlich große Zahl.