4 Punkte von GN⁺ 2025-12-14 | 2 Kommentare | Auf WhatsApp teilen
  • 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
  • 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

 
joyfui 2025-12-14

Das ist also die wahre Identität der hässlichen koreanischen Schriftart in Minecraft...

 
GN⁺ 2025-12-14
Hacker-News-Kommentare
  • Wir verwenden GNU Unifont im Textfenster und im Eigenschaften-Browser von Solvespace.
    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
    • Die Schlichtheit der Web-Version ist wirklich großartig. Solvespace ist mein liebstes MCAD-Programm und immer das erste Werkzeug, zu dem ich greife, wenn ich schnell eine Prüfhalterung für PCBs bauen will.
      Wenn die Geometrie einfach ist, fühlt sich die Bedienung sehr angenehm an.
    • Es ist faszinierend, dass allein die Font-Auswahl so einen coolen Effekt erzeugt. Natürlich stecken in Unifont und Unicode insgesamt unzählige Stunden menschlicher Arbeit, aber mir gefällt die Vorstellung, dass selbst ein CAD-Ingenieur der Bronzezeit seinen Namen in Linear A schreiben könnte, ohne Probleme zu bekommen.
    • Die Web-Version ist wirklich sauber gemacht. Solvespace ist funktional zwar eingeschränkt, aber die Flexibilität und Freude beim Ausdrücken von Constraints ist überwältigend.
      Irgendwann würde ich gern in den Code einsteigen und den modalen Dialog „Constraints können nicht erzeugt werden“ ersetzen.
  • Zur Einordnung für andere: GNU Unifont ist eine Bitmap-Schriftart.
    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.
    • BMP bedeutet hier nicht BitMap, sondern die Unicode Basic Multilingual Plane. Also den Bereich der ersten 65.536 Codepoints.
    • Dann frage ich mich, ob es für jede Punktgröße eine eigene Datei gibt. Da merke ich wieder, wie wenig ich eigentlich über Fonts weiß.
  • Ich finde, der erste Satz auf der Website sollte erklären, was GNU Unifont eigentlich ist. Vermutlich eine einzelne Copyleft-Schriftart, die fast alle Unicode-Codepoints enthält.
    • Tatsächlich erklären der zweite und dritte Satz es schon ziemlich genau. Sie enthält Glyphen für alle druckbaren Codepoints der BMP und eignet sich als Font der letzten Instanz.
      Also dafür, Zeichen anzuzeigen, wenn andere Fonts keine passende Glyphe finden.
    • „Fast alle“ ist eben nicht „alle“. Ich habe ein Projekt, bei dem ich seltene CJK-Zeichen rendern muss, und in Unifont werden sie nicht korrekt angezeigt.
      Stattdessen habe ich die Jigmo-Schriftart verwendet, die bei CJK-Glyphen am vollständigsten war.
    • Ich war anfangs auch verwirrt, aber als ich auf „Home“ geklickt habe, wurde mir klar, dass der Link nicht auf die Landingpage führt.
    • Es gibt wirklich viele Open-Source-Projekte, bei denen im ersten Satz nicht gut genug erklärt wird, worum es geht.
    • Ich finde, der Satz „GNU Unifont ist Teil des GNU-Projekts und enthält Glyphen für alle druckbaren Codepoints der BMP“ ist bereits hinreichend klar.
  • Auch gedruckt sieht es wirklich wunderschön aus. Ich habe daraus ein Spiralposter gemacht und es an die Wand gehängt.
    The Mostly Complete Unicode Spiral
    • Großartig! Mich würde interessieren, in welcher Größe du es gedruckt hast. Sind die vereinzelt verteilten Han-Zeichen rund um die Hauptspirale eine natürliche Folge der Unicode-Anordnung oder absichtlich inszeniert?
      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.
  • Unifont speichert nur eine Glyphe pro Codepoint.
    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.
  • Auf Font-Websites gibt es oft Vorschaubilder als Type-Specimen mit Dingen wie „Hello World“. So etwas auf der Unifont-Seite wäre schön.
  • Wenn ich den Namen GNU sehe, habe ich das Gefühl, dass es vielleicht nicht in jeder Hinsicht das Beste ist, aber beim Respekt gegenüber den Nutzern fast unschlagbar.
  • Ich habe Unifont systemweit aktiviert und erzwinge in Firefox, dass es als einzige Schriftart verwendet wird.
    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=128 lässt es sich lösen. Ich würde auch gern Spiele wie RimWorld dazu bringen, nur Unifont zu verwenden.
    • Mich würde interessieren, warum du es so verwendest.
    • Ich habe es auch installiert, musste HN aber auf 200 % vergrößern, damit es lesbar war. Unter XFCE sah es einigermaßen okay aus.
  • Ich musste Unifont aus Firefox entfernen, um hübsche CJK-Fonts verwenden zu können.
    Der Font-Fallback hatte auf seltsame Weise bevorzugt Unifont gewählt.
    • Um das zu lösen, muss man in Firefox unter Language and Appearance → Fonts → Advanced gehen und für jede Schrift eigene Fonts festlegen.
      Sonst ist kaum vorhersagbar, welcher Font gewählt wird.
    • Ich hatte in Firefox und Chrome ebenfalls das Problem, dass Unifont-Glyphen nicht sichtbar waren. Im nixpkgs-Issue-Tracker gibt es dazu ebenfalls Berichte.
      Bei Noto Color Emoji gab es ein ähnliches Phänomen. Fonts sind wirklich eine subtile Welt.
  • Ich habe auf Basis von Unifont einen Font für Playdate erstellt.
    https://github.com/remysucre/cuniform