GNU Unifont
(unifoundry.com)- Eine freie Schrift mit Glyphen (Zeichenformen) für Unicode-Zeichen aus aller Welt, die als öffentliche Schrift als Teil des GNU-Projekts gepflegt wird
- Ab Version 15.1.01 wurde dank der Beiträge von Minseo Lee und Ho-seok Ee eine neue kombinatorische Kodierung (6/3/1-Verfahren) eingeführt und ein verbessertes Hangul-Glyphensystem übernommen
- In der aktuellen Version 17.0.03 wurden zahlreiche Glyphen korrigiert und ergänzt, darunter chinesische und japanische Han-Zeichen sowie arabische und musikalische Symbole
- Unterstützt die gesamten 65.536 Codepoints der BMP (Basic Multilingual Plane), während die Bereiche SMP (Supplementary Multilingual Plane) und CSUR (ConScript Unicode Registry) schrittweise erweitert werden
- Wird unter einer Doppellizenz aus GNU GPLv2+ mit Font-Embedding-Ausnahme und der SIL Open Font License 1.1 veröffentlicht und kann daher auch in kommerzieller Software frei verwendet werden
- Ein repräsentatives Open-Source-Unicode-Font-Projekt mit dem Ziel einer vollständigen Abdeckung der Schriftsysteme der Welt
Überblick über GNU Unifont
- GNU Unifont ist eine Schrift, die Glyphen für alle druckbaren Unicode-Codepoints enthält, und wird als Teil des GNU-Projekts gepflegt
- Vollständige Unterstützung der Basic Multilingual Plane (BMP, U+0000~U+FFFF)
- Die Supplementary Multilingual Plane (SMP, U+010000~U+01FFFF) sowie die Bereiche CSUR/Under-CSUR werden ebenfalls fortlaufend erweitert
- Auch in kommerzieller Software nutzbar, abgeleitete Schriften müssen jedoch unter derselben Lizenz veröffentlicht werden
- Die Lizenzen sind GNU GPLv2+ (einschließlich Font-Embedding-Ausnahme) und SIL Open Font License 1.1
- Die Veröffentlichung abgeleiteter Schriften stellt den öffentlichen Nutzen sicher
Urheberrecht und Lizenz
- Tausende Glyphen sind Werke einzelner Mitwirkender und durch die Urheberrechtsgesetze der jeweiligen Länder geschützt
- Einige entsprechen bestehenden Zeichenformen, andere sind Icon- und Symboldesigns mit höherem internationalem Schutzniveau
- Ein Memorandum zum deutschen Urheberrecht ist veröffentlicht
- Seit Unifont 13.0.04 wird Unifont unter einer Doppellizenz GPL 2+ / SIL OFL 1.1 veröffentlicht
- Das Einbetten (embed) der Schrift in Dokumente ist kein Verstoß gegen die GPL
Schrift-Download und Formate
- Es werden ein Standard-Build und eine Version mit CSUR/Under-CSUR-PUA-Glyphen angeboten
- Unterstützung für verschiedene Formate wie OpenType(.otf), PCF, BDF, PSF, HEX
- Installation unter Windows und macOS möglich; im macOS-Terminal muss für gute Lesbarkeit die Antialias-Option aktiviert werden
- Einige Rendering-Engines ignorieren Glyphenabstands-Informationen, daher können in ausschließlich für Monospace ausgelegten Engines Darstellungsfehler auftreten
Grenzen von Unifont
- Pro druckbarem Codepoint wird nur eine Glyph gespeichert
- Indische Schriften (Devanagari, Bengali, Tamil usw.) oder Zeichen mit positionsabhängigen Formen (wie Arabisch) werden daher nicht exakt gerendert
- Für komplexe Schriftsysteme wird die Verwendung spezialisierter OpenType-Schriften empfohlen
Neue Glyphen beitragen
- Wer neue Glyphen hinzufügen möchte, muss vorab per E-Mail Kontakt aufnehmen
- Nach Abstimmung ist eine Mitarbeit möglich, um doppelte Arbeit zu vermeiden
- 15×16-Pixel-Han-Zeichen-Glyphen (Plane 2, 3), an denen die chinesische Regierung das Urheberrecht hält, können nicht in freie Schriften aufgenommen werden
Neueste Releases — Unifont 17.0
- Version 17.0.03 vom 1. November 2025
- Mehr als 100 Han-Zeichen mit den Radikalen für chinesisch „馬 (Pferd)“ und „鳥 (Vogel)“ wurden korrigiert
- Übernahme der Liste chinesischer Standard-Kurzzeichen aus den Jahren 1935 bis 2013
- Einschluss des 2009 veröffentlichten Standards moderner gebräuchlicher Zeichenradikale
- Version 17.0.02 vom 18. Oktober 2025
- Zahlreiche Beiträge von Paul Hardy, David Corbett, Xiaoxiao Akatsuki, Boris Zhang und weiteren für Plane 0 bis 3
- Viele Korrekturen bei Arabisch, Schachsymbolen, CJK-Erweiterungen u. a.
- Version 17.0.01 vom 9. September 2025
- Ergänzungen bei Arabic Extended-B, Währungssymbolen sowie Telugu- und Kannada-Zeichen
- In Plane 1 bis 3 wurden zahlreiche weitere Schriftsysteme ergänzt, darunter Arabic Extended-C, Sidetic, Tolong Siki, Beria Erfe, Adlam
Frühere Hauptversionen
- Unifont 16.0 (erste Hälfte 2025)
- Zahlreiche Korrekturen bei Arabisch, Griechisch, Hangul, Musiksymbolen u. a.
- Hinzufügung von CSUR-Schriften wie Sitelen Pona und Zbalermorna
- Unifont 15.1 (2024)
- Einführung der kombinatorischen Hangul-Kodierung 6/3/1 Johab von Ho-seok Ee
- Umstellung des Standard-Builds von TrueType auf OpenType
- Umfassende Verbesserungen bei Hangul, CJK-Erweiterungen und Wen Quan Yi-Glyphen
Glyphenabdeckung
- Breite Unterstützung von Unicode-Ebenen bis Plane 0 bis 3, Plane 14 und Plane 15
- Plane 0: Basic Multilingual Plane (vollständige Abdeckung aller wichtigen Zeichen)
- Plane 1: Supplementary Multilingual Plane (Musiksymbole, Hieroglyphen, alte Schriften usw.)
- Plane 2~3: CJK-Erweiterungs-Han-Zeichen
- Plane 14: Tags und Variation Selectors
- Plane 15: CSUR/Under-CSUR-Privatbereich
CSUR- und UCSUR-Schriften
- Tengwar, Cirth, Aurebesh, Klingon, Sitelen Pona, Sadalian u. a.
- Einschließlich verschiedener Kunstschriften (conlang scripts)
- Einige sind noch als unvollständig gekennzeichnet
Japanische und chinesische Varianten
- Es gibt eine unifont_jp-Version mit vollständiger Unterstützung des Standards JIS X 0213
- Zunächst mit Jiskan16, später ersetzt durch veröffentlichte Glyphen aus Izumi16
- Die chinesische Version deckt die Tabelle der allgemein verwendeten normierten Han-Zeichen vollständig ab
- Basiert auf veröffentlichten Glyphen des Projekts Wen Quan Yi(文泉驛)
Technische Details
- Die TrueType-Konvertierung basiert auf einem Skript von Luis Alejandro González Miranda
- Automatisierte Umwandlung
.hex→.sfd→.ttf
- Automatisierte Umwandlung
- Grundlage ist ein 16×16-Pixel-Raster, künftig ist Unterstützung für 32×32-Pixel-Glyphen geplant
Zukunftspläne
- Alle 16×16-Pixel-Glyphen der SMP-Ebenen sind bereits fertiggestellt
- Komplexe Schriften wie Tangut sollen künftig in 32×32 Pixeln erstellt werden
- Die Ergänzung weiterer CSUR-Schriften wird fortgesetzt
- Alle neuen Beiträge müssen unter den Bedingungen von GPL 2+ / SIL OFL 1.1 veröffentlicht werden
Bedeutung des Projekts
- GNU Unifont ist eine repräsentative freie Schrift mit dem Ziel, digitale Zugänglichkeit für die Schriftsysteme der Welt sicherzustellen
- Es spielt eine zentrale Infrastrukturrolle in den Bereichen Open-Source-Ökosystem, Internationalisierung (i18n) und Font Engineering
- Durch kontinuierliche Community-Beiträge verbessert das Projekt die visuelle Vollständigkeit des Unicode-Standards
Hangul Font – die Hangul-Schriftseite von Unifont
Ursprung und Struktur von Hangul
- Hangul wurde zwischen 1443 und 1446 von König Sejong dem Großen geschaffen und 1446 mit dem Hunminjeongeum Haerye veröffentlicht
- Als Ziel der Schaffung wurde festgehalten, dass „das Volk es leicht lernen und täglich bequem verwenden können soll“
- Das Haerye-Buch ist ein kommentierter Text, der die Bildungsprinzipien erklärt; das einzige während des Zweiten Weltkriegs wiederentdeckte Exemplar ist erhalten
- Hangul hat eine Silbenblockstruktur aus drei Elementen: Anfangskonsonant, Vokal und Endkonsonant
- Beispiel: „Hangul“ besteht aus den Kombinationen „hieuh + a + nieun“ und „giyeok + eu + rieul“
- Vokale und Halbvokale (y, w) werden rechts oder unter dem Anfangskonsonanten angeordnet
Konstruktionsprinzip der Konsonanten
- Die Konsonanten gehen von fünf Grundkonsonanten aus, die die Form der Sprechorgane nachbilden (giyeok, nieun, mieum, siot, ieung)
- Durch Hinzufügen von Strichen entstehen die ursprünglich 17 Konsonanten
- Einige Konsonanten markieren Betonung durch Doppelkonsonantenformen
- Compatibility Jamo sind ebenfalls in Unicode enthalten; einige alte Jamo werden heute nicht mehr verwendet
Konstruktionsprinzip der Vokale
- Die Vokale leiten sich vom Konzept der drei Elemente Himmel (Yang), Mensch (Mitte), Erde (Yin) ab
- Grundelemente: Punkt (arae-a), horizontale Linie (eu), vertikale Linie (i)
- Ursprünglich gab es 11 Vokale; arae-a ist im modernen Standardkoreanisch verschwunden, lebt aber im Jeju-Dialekt fort
- Durch Vokalkombinationen entstehen Diphthonge, von denen einige im modernen Hangul nicht mehr verwendet werden
- Das Unifont-Hangul-Jamo-Set unterstützt alle alten und modernen Vokale und Diphthonge
Hangul-Bereiche in Unicode
- Hangul ist in den folgenden Unicode-Bereichen enthalten
- U+1100–U+11FF: Hangul Jamo
- U+3130–U+318F: Hangul Compatibility Jamo
- U+A960–U+A97F: Hangul Jamo Extended–A
- U+AC00–U+D7A3: Hangul Syllables
- U+D7B0–U+D7FF: Hangul Jamo Extended–B
- U+FFA0–U+FFDF: Half-width Compatibility Jamo
- Die Anpassung der Kombinationspositionen von Anfangskonsonant, Vokal und Endkonsonant ist der Kern des Font-Designs, und auch Bitmap-Schriften können kombinierte Silben darstellen
X11-Kombinationsschrift (Johab) und Unifont
- Johab-kodierte Schriften erzeugen Silbenglyphen durch Kombination von Anfangskonsonant, Vokal und Endkonsonant
- Sie wurden im Hanterm-Terminal der Unix-X11-Umgebung verwendet
- Da die freien Schriften für Hanterm nicht GPL-kompatibel waren, erstellte Unifont neue Hangul-Silbenglyphen direkt selbst
- Konvertierungsprozess: Perl-Skript johab2ucs2.pl → .hex → .bdf
- Bestehende Schriften (iyagi16, johabg16 usw.) waren auf eine Hanterm-exklusive Lizenz beschränkt
- Später wurde über mehrere Jahre ein neues Hangul-Syllables-Set erstellt und in Unifont aufgenommen
Jüngste Beiträge und Kodierungsverbesserungen
- Minseo Lee: stellte 2023 moderne Glyphen auf Basis der Hanterm-Reihenfolge und Korrekturen alter Glyphen bereit
- Verbesserungen an Perl-Skripten und Korrekturen der Jamo-Konsistenz innerhalb der Unicode-Bereiche
- Ho-Seok Ee: schlug die Johab-6/3/1-Kodierung vor
- Mit einer Kombinationsstruktur aus 6 Anfangskonsonanten, 3 Vokalen und 1 Endkonsonanten wird die Glyphenerzeugung gegenüber früher vereinfacht
- Vorgeschlagen wurde auch eine Verlagerung der Codepoints in die Private Use Area (U+E000–U+E8FF)
- Dieses Kodierungsverfahren wurde ab Unifont 15.1.01 übernommen
Unicode-Hangul-Silbenblock (U+AC00–U+D7A3)
- Besteht aus insgesamt 11.172 Silbenglyphen
- 19 Anfangskonsonanten (oder 1 Füllzeichen), 21 Vokale, 27 Endkonsonanten (oder keiner)
- Kombinationsformel: (19×21)×28 = 11.172
- Wörter, die mit einem Vokal beginnen, verwenden den Anfangskonsonanten „ieung“ als Füllzeichen
- In Versionen seit Unifont 5.1 wird der neue Erzeugungsprozess für Silbenblöcke im separaten Dokument Generating Hangul Syllables ausführlich beschrieben
2 Kommentare
Das ist also die wahre Identität der hässlichen koreanischen Schriftart in Minecraft...
Hacker-News-Kommentare
Es ist direkt in die ausführbare Datei eingebettet, was sehr praktisch war. Einige Nutzer fügen CJK-Zeichen in ihre Entwürfe ein, und es funktioniert auf allen Plattformen einfach problemlos.
Als ich mir die Lochbeschriftungen in CAD ansah, war ich überrascht, dass die Symbole für counter-bore und counter-sink bereits in Unifont enthalten sind.
Eine experimentelle Web-Version gibt es hier
Wenn die Geometrie einfach ist, fühlt sich die Bedienung sehr angenehm an.
Irgendwann würde ich gern in den Code einsteigen und den modalen Dialog „Constraints können nicht erzeugt werden“ ersetzen.
Sie stellt feste Glyphen für alle Codepoints der BMP bereit und enthält auch Codepoints aus einigen anderen Ebenen.
Sie ist nützlich für Editoren, die Unicode-Text ohne sprachspezifisches Rendering-Wissen bearbeiten können sollen.
Wenn man allerdings komplexe Schriften wie Devanagari verwendet, sieht es wegen fehlendem Shaping nicht wie echter Text aus.
Also dafür, Zeichen anzuzeigen, wenn andere Fonts keine passende Glyphe finden.
Stattdessen habe ich die Jigmo-Schriftart verwendet, die bei CJK-Glyphen am vollständigsten war.
The Mostly Complete Unicode Spiral
Das Ganze sah wie eine Galaxie aus, und dass die Emojis am äußeren Rand ausgerichtet waren, fand ich besonders eindrucksvoll. Es hat Spaß gemacht, das Erde-Emoji zu suchen.
Deshalb werden komplexe Schriften (Indic, Arabisch usw.) nicht korrekt gerendert.
In solchen Fällen muss man OpenType-Fonts verwenden, und Unifont eignet sich wirklich nur als Fallback-Font.
Das Herunterladen von Web-Fonts habe ich auch deaktiviert, und im CSUR (ConScript Unicode Registry) gibt es sogar Zeichen, die ich selbst erstellt habe.
Unter Qt ist die DPI-Konfiguration etwas heikel, aber mit
QT_FONT_DPI=128lässt es sich lösen. Ich würde auch gern Spiele wie RimWorld dazu bringen, nur Unifont zu verwenden.Der Font-Fallback hatte auf seltsame Weise bevorzugt Unifont gewählt.
Sonst ist kaum vorhersagbar, welcher Font gewählt wird.
Bei Noto Color Emoji gab es ein ähnliches Phänomen. Fonts sind wirklich eine subtile Welt.
https://github.com/remysucre/cuniform