# Graphite

Graphite (auch SILGraphite, früher OpenGraphite) ist ein Projekt zur Erstellung eines Unicode-kompatiblen sogenannten Smartfont-Formates mit zugehörigem Software-System zur Verarbeitung, das von SIL International unter Leitung von Sharon Correll mit Unterstützung der UNESCO entwickelt wird.
Das Format ist offen dokumentiert und seine Implementation ist als freie Software unter den Bedingungen der GNU Lesser General Public License (LGPL) und der Common Public License (CPL) frei verfügbar.
Graphite wurde für die Darstellung von Zeichen von Minderheitensprachen entwickelt (→Flexibilität bzw. „smart“ness). Es kann (wie auch AAT, anders als OpenType) noch nicht in Unicode genormte Zeichen, die übergangsweise über die sogenannte Private Use Area (U+E000 bis U+F8FF) kodiert werden, anstatt wie definiert als Buchstaben (Lo = Letter, other) beispielsweise auch als Diakritika behandeln.

## Technik

Es basiert auf dem TrueType-Format, das durch drei neue Tabellen mit Regeln in der Graphite Description Language (GDL) erweitert wird. Neben der GDL besteht Graphite aus einem Compiler für die GDL, der den TrueType-Dateien die zusätzlichen Regeln hinzufügt. Weiterhin gibt es eine Rasterungs-Engine für solche Graphite-Zeichensätze mit entsprechendem GDL-Interpreter. Die Engine kann auch in Echtzeit-Anwendungen eingesetzt werden und so beispielsweise editierbaren Text in einem Programmfenster darstellen und auf Ersetzung, Einfügen und Entfernen oder auch Markieren von Textteilen direkt reagieren und die Darstellung entsprechend aktualisieren. Dazu empfängt sie neben darzustellenden Zeichenfolgen z. B. auch die Cursor-Position und sorgt neben der relativen Positionierung der Zeichen zueinander auch für den Textfluss und Zeilenumbrüche. Somit kann sie als Backend für Textverarbeitungsanwendungen eingesetzt werden und ist in dieser Funktion auch schon in experimentelle Varianten eines Mozilla-Browsers (SILA) und von OpenOffice.org verbaut worden. Sie unterstützt bidirektionalen Text (z. B. Arabische Schrift), kontextabhängige Formgebung für Zeichen und die Erzeugung von diakritischen Zeichen und Ligaturen aus angegebenen Zeichen als Komponenten.

## Verwendung

Es steht ein einfacher Texteditor namens Worldpad mit Unterstützung für Graphite zur Verfügung. Frank Tang, der ehemalige Leiter der Internationalisierung bei Netscape, arbeitet an einem um Graphite erweiterten Mozilla-Browser namens SILA, von dem Testversionen verfügbar sind. Ab der Version 3.2 bietet auch OpenOffice Graphite-Unterstützung. Vorher hatte OpenOffice ca. 110 Sprachen unterstützt. Mit der Graphite Engine können Anwender die Software für viele hundert weitere Sprachen nutzen, was vor allem für Minderheitensprachen interessant ist, die sonst kaum Beachtung finden. Der OpenOffice-Ableger LibreOffice enthält die Graphite Engine bereits seit seiner ersten Version (3.3) und bietet ab Version 3.4 eine komplett neu geschriebene Graphite Engine, die starke Geschwindigkeitsverbesserungen und erhöhte Stabilität bieten soll.
Charis SIL und Doulos SIL sind neben einer Reihe weiterer Zeichensätze in diesem Format realisiert.

## Geschichte

Das Projekt begann Mitte der 90er Jahre. 1998 wurde zunächst hinter geschlossenen Türen begonnen an der (Windows-)Software zu schreiben, die zunächst unter dem Namen WinRend lief, der 2000 zum heutigen Namen geändert wurde. Das Software-System wurde (wie der anfängliche Name andeutet) ursprünglich für Windows geschrieben. Nach einer ersten freien Veröffentlichung (Version 0.8) wurde über verschiedene Mailinglisten Kontakt zur Freie-Software-Gemeinschaft aufgenommen und Plattformunabhängigkeit für die Programmbibliothek angestrebt. Die Arbeit an SILA wurde aufgenommen und am 11. Oktober 2002 erstmals Ergebnisse veröffentlicht. Graphite-Entwicklung wurde auf SourceForge verlagert, wo am 15. November 2002 Version 0.9 veröffentlicht wurde. Unter Leitung des Hauptverantwortlichen für die GNU/Linux-Unterstützung Daniel Glassey wurde Graphite auf Linux portiert und zu Schriften-Rasterungssoftware Pango kompatibel gemacht. Mittlerweile wurde es auch auf macOS portiert.
Im Jahr 2024 ist die aktuelle Version der Graphite2-Engine 1.3.14, die Entwicklung findet auf GitHub statt.