- Dünya genelindeki Unicode karakterler için glifler (karakter şekilleri) içeren özgür bir yazı tipi olup, GNU projesinin bir parçası olarak sürdürülen açık bir fonttur
- 15.1.01 sürümünden itibaren, Lee Minseo ve Lee Ho-seok'un katkılarıyla yeni bir birleşik kodlama (6/3/1 yöntemi) getirildi ve geliştirilmiş bir Hangul glif sistemi uygulandı
- En güncel 17.0.03 sürümünde Çince ve Japonca han karakterleri ile Arapça ve müzik sembolleri dahil çok sayıda glif düzeltildi ve eklendi
- BMP (Temel Çok Dilli Düzlem) içindeki tüm 65.536 kod noktasını destekler; SMP (Yardımcı Çok Dilli Düzlem) ve CSUR (ConScript Unicode Registry) alanları da kademeli olarak genişletilmektedir
- GNU GPLv2+ font embedding exception ve SIL Open Font License 1.1 ile çift lisanslı olarak dağıtılır; bu sayede ticari yazılımlarda da serbestçe kullanılabilir
- Dünya çapındaki yazı sistemlerini eksiksiz kapsama hedefi taşıyan önde gelen bir açık kaynak Unicode font projesidir
GNU Unifont'a genel bakış
- GNU Unifont, yazdırılabilir tüm Unicode kod noktaları için glif içeren bir yazı tipidir ve GNU projesinin bir parçası olarak sürdürülür
- Temel Çok Dilli Düzlem'i (BMP, U+0000~U+FFFF) tamamen destekler
- Yardımcı Çok Dilli Düzlem (SMP, U+010000~U+01FFFF) ile CSUR/Under-CSUR alanları da sürekli genişletilmektedir
- Ticari yazılımlarda da kullanılabilir ve türetilmiş fontların aynı lisansla yayımlanması gerekir
- Lisanslar: GNU GPLv2+ (font embedding exception dahil) ve SIL Open Font License 1.1
- Türetilmiş fontların yayımlanmasıyla kamusal yarar güvence altına alınır
Telif hakkı ve lisans
- Binlerce glif, tek tek katkı sunan kişilerin eserleri olup her ülkenin telif hakkı yasalarıyla korunur
- Bazıları mevcut karakter biçimlerine, bazıları ise ikon ve sembol tasarımlarına dayanır; bu nedenle uluslararası koruma seviyesi daha yüksektir
- Alman telif hakkı yasasına ilişkin bir memorandum yayımlanmıştır
- Unifont 13.0.04 sonrası sürümler GPL 2+ / SIL OFL 1.1 çift lisansıyla dağıtılır
- Fontu belgelere gömmek (embed), GPL ihlali sayılmaz
Font indirme ve biçimler
- Standart derlemeler ile CSUR/Under-CSUR PUA glifleri içeren sürümler sunulur
- OpenType(.otf), PCF, BDF, PSF, HEX gibi çeşitli biçimler desteklenir
- Windows ve macOS'ta kurulabilir; macOS terminalinde okunabilirlik için Antialias seçeneğinin açılması gerekir
- Bazı render motorları glif aralığı bilgisini yok saydığı için yalnızca monospace'e özel motorlarda görüntüleme hataları oluşabilir
Unifont'un sınırlamaları
- Yazdırılabilir her kod noktası için yalnızca bir glif saklanır
- Hint kökenli yazılar (Devanagari, Bengalce, Tamilce vb.) ya da konuma göre şekil değiştiren karakterler (Arapça vb.) doğru şekilde render edilmez
- Karmaşık yazılar için uzmanlaşmış OpenType fontları önerilir
Yeni glif katkısı
- Yeni glif eklemek için önceden e-posta ile iletişim kurulması gerekir
- Yinelenen çalışmayı önlemek için görüşme sonrası katkı sağlanabilir
- Çin hükümetinin telif hakkına sahip olduğu 15×16 piksel han karakteri glifleri (Plane 2, 3) özgür fontlara dahil edilemez
En son sürüm — Unifont 17.0
- 1 Kasım 2025 sürüm 17.0.03
- Çince '馬' (at) ve '鳥' (kuş) radikallerini içeren 100'den fazla han karakteri düzeltildi
- 1935~2013 arasındaki Çin basitleştirilmiş karakter standart listesi yansıtıldı
- 2009'da yayımlanan modern yaygın karakter radikali standardı dahil edildi
- 18 Ekim 2025 sürüm 17.0.02
- Plane 0~3 genelinde Paul Hardy, David Corbett, XiaoxiaoAkatsuki, Boris Zhang ve daha birçok kişinin katkısı yer aldı
- Arapça, satranç sembolleri, CJK uzantıları ve daha fazlasında çok sayıda düzeltme yapıldı
- 9 Eylül 2025 sürüm 17.0.01
- Arabic Extended-B, para birimi sembolleri, Telugu ve Kannada karakterleri eklendi
- Plane 1~3 içinde yeni Arabic Extended-C, Sidetic, Tolong Siki, Beria Erfe, Adlam ve daha birçok yazı eklendi
Önceki önemli sürümler
- Unifont 16.0 (2025'in ilk yarısı)
- Arapça, Yunanca, Hangul, müzik sembolleri ve daha fazlasında çok sayıda düzeltme yapıldı
- Sitelen Pona, Zbalermorna gibi CSUR yazıları eklendi
- Unifont 15.1 (2024)
- Lee Ho-seok'un birleşik Hangul 6/3/1 Johab kodlaması tanıtıldı
- Varsayılan derleme TrueType'tan OpenType'a geçirildi
- Hangul, CJK uzantıları ve Wen Quan Yi gliflerinde büyük iyileştirmeler yapıldı
Glif kapsamı
- Plane 0~3, Plane 14 ve Plane 15 dahil geniş Unicode düzlemi desteği
- Plane 0: Temel Çok Dilli Düzlem (tüm ana yazılar tamamen kapsanır)
- Plane 1: Yardımcı Çok Dilli Düzlem (müzik sembolleri, hiyeroglifler, eski yazılar vb.)
- Plane 2~3: CJK uzantı han karakterleri
- Plane 14: etiketler ve varyasyon seçiciler
- Plane 15: CSUR/Under-CSUR özel kullanım alanı
CSUR ve UCSUR yazıları
- Tengwar, Cirth, Aurebesh, Klingon, Sitelen Pona, Sadalian vb.
- Çeşitli yapay yazılar (conlang script) içerir
- Bazıları hâlâ tamamlanmamış olarak işaretlenmiştir
Japonca ve Çince varyantlar
- JIS X 0213 standardını tam destekleyen unifont_jp sürümü sunulur
- İlk başta Jiskan16, daha sonra açık gliflerle Izumi16 kullanıldı
- Çince sürüm, Tongyong Guifan Hanzi Biao standardını tamamen kapsar
- Wen Quan Yi(文泉驛) projesinin açık gliflerini temel alır
Teknik ayrıntılar
- TrueType dönüşümü, Luis Alejandro González Miranda'nın betiğini temel alır
.hex → .sfd → .ttf dönüşümü otomatikleştirilmiştir
- Temel olarak 16×16 piksel ızgara kullanılır; gelecekte 32×32 piksel glif desteği planlanmaktadır
Gelecek planları
- SMP düzlemindeki 16×16 piksel gliflerin tamamı bitirilmiştir
- Tangut gibi karmaşık yazılar gelecekte 32×32 piksel olarak hazırlanacaktır
- CSUR yazıları ekleme çalışmaları sürmektedir
- Tüm yeni katkılar GPL 2+ / SIL OFL 1.1 koşullarıyla yayımlanmalıdır
Projenin önemi
- GNU Unifont, dünya çapındaki yazı sistemlerine dijital erişim sağlamayı hedefleyen önde gelen bir özgür fonttur
- Açık kaynak ekosistemi, uluslararasılaştırma (i18n) ve font mühendisliği alanlarında temel altyapı görevi görür
- Sürekli topluluk katkılarıyla Unicode standardının görsel olgunluğunu artıran bir projedir
Hangul'un kökeni ve yapısı
- Hangul, Kral Sejong tarafından 1443~1446 yılları arasında oluşturulmuş ve 1446'da Hunminjeongeum Haerye ile ilan edilmiştir
- Oluşturulma amacı, "halkın kolayca öğrenip her gün rahatça kullanabilmesi" olarak açıkça belirtilmiştir
- Haerye, harf oluşturma ilkesini açıklayan şerh niteliğinde bir eserdir; II. Dünya Savaşı sırasında bulunan tek nüsha korunmaktadır
- Hangul, baş ünsüz (choseong), orta ünlü (jungseong) ve son ünsüz (jongseong/batchim) olmak üzere üç öğeden oluşan bir hece bloğu yapısına sahiptir
- Örnek: “Hangul”, 'hieuh+a+nieun' ve 'giyeok+eu+rieul' birleşimlerinden oluşur
- Ünlüler ve yarı ünlüler (y, w), baş ünsüzün sağına veya altına yerleştirilir
Ünsüzlerin oluşum ilkesi
- Ünsüzler, konuşma organlarının şeklini örnek alan beş temel ünsüzden (giyeok, nieun, mieum, siot, ieung) türetilmiştir
- Bunlara çizgi eklenerek özgün 17 ünsüz oluşturulmuştur
- Bazı ünsüzler ikiz ünsüz biçimiyle vurguyu gösterir
- Uyumluluk Jamo (Compatibility Jamo) da Unicode'a dahildir; bazı eski jamo karakterleri artık kullanılmaz
Ünlülerin oluşum ilkesi
- Ünlüler, gök (yang), insan (orta), yer (yin) şeklindeki üçlü kozmolojik kavramdan türemiştir
- Temel öğeler: nokta (arae-a), yatay çizgi (eu), dikey çizgi (i)
- Başlangıçta 11 ünlü vardı; arae-a modern standart dilde kaybolmuş olsa da Jeju lehçesinde yaşamaktadır
- Ünlü birleşimleriyle ikili ünlüler (diphthong) oluşur ve bunların bazıları modern Hangul'da artık kullanılmaz
- Unifont Hangul jamo seti, eski ve modern tüm ünlüleri ve ikili ünlüleri destekler
Unicode içindeki Hangul alanları
- Hangul aşağıdaki Unicode aralıklarında yer alır
- 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
- Baş ünsüz, orta ünlü ve son ünsüzün birleşim konumlarını ayarlamak font tasarımının çekirdeğini oluşturur ve bitmap fontlarda da birleşik hece gösterimi mümkündür
X11 birleşik (Johab) fontları ve Unifont
- Johab kodlamalı fontlar, baş ünsüz, orta ünlü ve son ünsüzü birleştirerek hece glifleri üretir
- Unix X11 ortamındaki Hanterm terminalinde kullanılmıştır
- Hanterm için özgür fontlar GPL uyumlu olmadığından, Unifont yeni Hangul hece gliflerini doğrudan üretti
- Dönüşüm süreci: Perl betiği johab2ucs2.pl → .hex → .bdf dönüşümü
- Mevcut fontlar (iyagi16, johabg16 vb.) yalnızca Hanterm'e özel lisanslarla sınırlıydı
- Daha sonra yeni bir Hangul Syllables seti yıllar boyunca hazırlanıp Unifont'a dahil edildi
Son katkılar ve kodlama iyileştirmeleri
- Lee Minseo: 2023'te Hanterm sıralamasına dayalı modern glifler ve eski gliflerin düzeltilmiş sürümlerini sundu
- Perl betiği iyileştirildi ve Unicode aralığı içindeki jamo tutarlılığı düzeltildi
- Lee Ho-seok: Johab 6/3/1 kodlamasını önerdi
- Baş ünsüz 6, orta ünlü 3, son ünsüz 1 birleşim yapısıyla, önceki yönteme göre glif üretimi basitleştirildi
- Kod noktalarının Private Use Area (U+E000–U+E8FF) alanına taşınmasını önerdi
- Bu kodlama yöntemi Unifont 15.1.01 sürümünden itibaren benimsendi
Unicode Hangul hece blokları (U+AC00–U+D7A3)
- Toplam 11.172 hece glifinden oluşur
- 19 baş ünsüz (veya 1 doldurucu), 21 orta ünlü, 27 son ünsüz (veya boş)
- Birleşim formülü: (19×21)×28 = 11.172
- Ünlüyle başlayan kelimelerde baş ünsüz 'ieung' doldurucu olarak kullanılır
- Unifont 5.1 sonrası sürümlerde yeni hece bloğu üretim süreci ayrı bir belge olan Generating Hangul Syllables içinde ayrıntılı olarak açıklanır
2 yorum
Minecraft'taki o çirkin Korece fontun ne olduğu işte bu...
Hacker News görüşleri
Doğrudan çalıştırılabilir dosyanın içine gömülü olduğu için çok kullanışlı oldu. Bazı kullanıcılar tasarımlarına CJK karakterleri ekliyor ve bu, tüm platformlarda sorunsuz çalışıyor
CAD’de delik notasyonlarına bakarken, counter-bore ve counter-sink sembollerinin zaten Unifont içinde yer almasına şaşırdım
Deneysel web sürümünü buradan görebilirsiniz
Geometri basit olduğunda kullanım hissi çok akıcı
Bir gün koda girip “Kısıt oluşturulamıyor” modal iletişim kutusunun yerine başka bir şey koymak istiyorum
BMP’deki tüm kod noktaları için sabit glifler sağlıyor ve bazı diğer düzlemlerdeki kod noktalarını da içeriyor
Dil bazlı render bilgisi olmadan Unicode metni düzenleyebilen editörler için faydalı
Ancak Devanagari gibi karmaşık yazı sistemlerinde shaping olmadığı için gerçek metin gibi görünmüyor
Diğer fontlarda glif bulunamadığında karakterleri göstermek için var
Bunun yerine Jigmo fontunu kullandım; CJK glifleri en eksiksiz onda görünüyordu
The Mostly Complete Unicode Spiral
Tamamı galaksi gibi görünüyor ve emojilerin dış çepere hizalanması etkileyiciydi. Dünya emojisini aramak da eğlenceliydi
Bu yüzden karmaşık yazı sistemleri (Indic, Arabic vb.) düzgün render edilmiyor
Böyle durumlarda OpenType font kullanmak gerekiyor; Unifont ise ancak fallback font olarak uygun
Web fontlarının indirilmesini de kapattım; ayrıca CSUR’de (ConScript Unicode Registry) benim oluşturduğum karakterler de var
Qt’de DPI ayarı uğraştırıcı ama
QT_FONT_DPI=128ile çözülebiliyor. RimWorld gibi oyunlarda da sadece Unifont kullanmak istiyorumÇünkü font fallback mekanizması garip şekilde önce Unifont’u seçiyordu
Aksi takdirde hangi fontun seçileceği öngörülemez oluyor
Noto Color Emoji’de de benzer bir durum vardı. Font dünyası gerçekten çok ince ayarlı
https://github.com/remysucre/cuniform