4 puan yazan GN⁺ 2025-12-14 | 2 yorum | WhatsApp'ta paylaş
  • 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

Unifont'un Hangul font sayfası - Hangul(Hangeul) Font

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

 
joyfui 2025-12-14

Minecraft'taki o çirkin Korece fontun ne olduğu işte bu...

 
GN⁺ 2025-12-14
Hacker News görüşleri
  • Solvespace’in metin penceresi ve özellik tarayıcısında GNU Unifont kullanıyoruz
    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
    • Web sürümünün sadeliği gerçekten çok hoş. Solvespace benim en sevdiğim MCAD programı ve hızlıca PCB test jig’leri yapmak gerektiğinde ilk başvurduğum araç oluyor
      Geometri basit olduğunda kullanım hissi çok akıcı
    • Sadece font seçimiyle böyle harika bir sonuç elde edilmesi şaşırtıcı. Elbette Unifont ve tüm Unicode’un arkasında sayısız insan emeği var ama Tunç Çağı CAD mühendisi Linear A ile adını yazsa bile sorun çıkmaması fikri hoşuma gidiyor
    • Web sürümü gerçekten çok temiz. Solvespace’in işlevleri sınırlı ama kısıtları ifade etmedeki esnekliği ve keyfi çok baskın
      Bir gün koda girip “Kısıt oluşturulamıyor” modal iletişim kutusunun yerine başka bir şey koymak istiyorum
  • Diğerleri için özetlemek gerekirse, GNU Unifont bir bitmap font
    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
    • Buradaki BMP, BitMap değil Unicode Basic Multilingual Plane anlamına geliyor. Yani ilk 65.536 kod noktası alanı
    • O hâlde her punto boyutu için ayrı bir dosya mı var diye merak ettim. Fontlar hakkında ne kadar az şey bildiğimi yeniden fark ettim
  • O web sitesinin ilk cümlesinin GNU Unifont’un ne olduğunu açıklaması gerekmez mi diye düşündüm. Muhtemelen neredeyse tüm Unicode kod noktalarını içeren tek bir copyleft font
    • Aslında ikinci ve üçüncü cümle bunu zaten doğru şekilde açıklıyor. BMP’deki tüm yazdırılabilir kod noktaları için glif içeriyor ve son çare fontu olarak uygun
      Diğer fontlarda glif bulunamadığında karakterleri göstermek için var
    • “Neredeyse tümü”, “tamamı” demek değil. Nadir CJK karakterlerini render etmem gereken bir projem var ve Unifont’ta düzgün görünmüyorlar
      Bunun yerine Jigmo fontunu kullandım; CJK glifleri en eksiksiz onda görünüyordu
    • Ben de başta karıştırdım ama “Home” düğmesine basınca bağlantının landing page olmadığını fark ettim
    • İlk cümlede açıklamanın yetersiz olduğu bu tür açık kaynak projeler gerçekten çok fazla
    • “GNU Unifont, GNU projesinin bir parçasıdır ve BMP’deki tüm yazdırılabilir kod noktaları için glif içerir” cümlesinin zaten yeterince açık olduğunu düşünüyorum
  • Çıktı alındığında da gerçekten çok güzel görünüyor. Ben onu spiral poster yaptırıp duvara astım
    The Mostly Complete Unicode Spiral
    • Harika! Hangi boyutta bastırdığını merak ettim. Ana spiral çevresindeki seyrek yerleştirilmiş Han karakterleri Unicode’un doğal yerleşimi mi, yoksa bilinçli bir düzenleme mi?
      Tamamı galaksi gibi görünüyor ve emojilerin dış çepere hizalanması etkileyiciydi. Dünya emojisini aramak da eğlenceliydi
  • Unifont her kod noktası için yalnızca tek bir glif saklıyor
    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
  • Font sitelerinde sık sık “Hello World” gibi bir type specimen önizleme görseli olur. Unifont sayfasına da böyle bir şey eklenmesi iyi olurdu
  • GNU adını gördüğümde, her açıdan en iyi olmasa bile kullanıcıya saygı konusunda neredeyse en iyisi olduğunu hissediyorum
  • Unifont’u tüm sisteme uyguluyorum ve Firefox’ta tek font olarak zorunlu kılıyorum
    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=128 ile çözülebiliyor. RimWorld gibi oyunlarda da sadece Unifont kullanmak istiyorum
    • Neden bu şekilde kullandığını merak ettim
    • Ben de kurdum ama HN’i okuyabilmek için %200 yakınlaştırma yapmam gerekti. XFCE’de idare eder durumdaydı
  • Firefox’ta güzel CJK fontları kullanabilmek için Unifont’u kaldırmam gerekti
    Çünkü font fallback mekanizması garip şekilde önce Unifont’u seçiyordu
    • Çözüm için Firefox ayarlarında Dil ve Görünüm → Fontlar → Gelişmiş bölümüne gidip her yazı sistemi için font belirtmek gerekiyor
      Aksi takdirde hangi fontun seçileceği öngörülemez oluyor
    • Ben de Firefox ve Chrome’da Unifont gliflerinin görünmemesi sorununu yaşadım. nixpkgs issue tracker’da da bununla ilgili raporlar var
      Noto Color Emoji’de de benzer bir durum vardı. Font dünyası gerçekten çok ince ayarlı
  • Unifont’u temel alarak Playdate için bir font yaptım
    https://github.com/remysucre/cuniform