4 poin oleh GN⁺ 2025-12-14 | 2 komentar | Bagikan ke WhatsApp
  • Font sumber terbuka yang memuat glif (wujud karakter) untuk seluruh karakter Unicode di seluruh dunia, dipelihara sebagai bagian dari proyek GNU.
  • Sejak versi 15.1.01, lewat kontribusi Minseo Lee dan Ho-seok Ee, diperkenalkan pengkodean gabungan baru (metode 6/3/1) sehingga sistem glif Hangul yang ditingkatkan diterapkan.
  • Pada versi 17.0.03 terbaru, banyak glif telah diperbaiki/ditambahkan, termasuk hanzi dan kanji Tiongkok-Jepang, serta simbol Arab dan simbol musik.
  • Mendukung penuh 65.536 code point di seluruh BMP (Basic Multilingual Plane), serta secara bertahap memperluas area SMP (Supplementary Multilingual Plane) dan CSUR (ConScript Unicode Registry).
  • Didistribusikan dengan lisensi ganda GNU GPLv2+ dengan pengecualian font embedding dan SIL Open Font License 1.1, sehingga dapat digunakan secara bebas pada perangkat lunak komersial.
  • Proyek font Unicode sumber terbuka yang menjadi representasi utama dengan tujuan cakupan sistem tulisan dunia secara utuh.

Ikhtisar GNU Unifont

  • GNU Unifont adalah font yang berisi glif untuk semua titik kode Unicode yang dapat dicetak, dan dipelihara sebagai bagian dari proyek GNU.
    • Mendukung BMP (U+0000~U+FFFF) secara penuh.
    • SMP (U+010000~U+01FFFF) dan area CSUR/Under-CSUR juga terus diperluas.
  • Bisa dipakai pada perangkat lunak komersial, dan font turunan wajib dirilis dengan lisensi yang sama.
    • Lisensinya adalah GNU GPLv2+ (termasuk pengecualian penyematan font) dan SIL Open Font License 1.1.
    • Keterbukaan publisitas font turunan digunakan untuk menjamin manfaat publik.

Hak Cipta dan Lisensi

  • Ribuan glif adalah karya para kontributor individu, yang dilindungi oleh hukum hak cipta masing-masing negara.
    • Beberapa di antaranya adalah bentuk karakter yang sudah ada, beberapa merupakan desain ikon atau simbol dengan tingkat perlindungan internasional lebih tinggi.
  • Memorandum terkait hukum hak cipta Jerman telah dipublikasikan.
  • Mulai versi Unifont 13.0.04, didistribusikan dengan lisensi ganda GPL 2+ / SIL OFL 1.1.
    • Menyematkan font di dalam dokumen (embed) tidak melanggar GPL.

Unduhan dan Format Font

  • Menyediakan build standar dan versi dengan glif CSUR/Under-CSUR PUA yang disertakan.
    • Mendukung berbagai format: OpenType(.otf), PCF, BDF, PSF, dan HEX.
    • Dapat dipasang di Windows dan macOS, dan di terminal macOS harus mengaktifkan opsi Antialias agar keterbacaan lebih baik.
  • Beberapa mesin rendering mengabaikan informasi jarak antar glif, sehingga pada engine monospace murni kemungkinan muncul kesalahan tampilan.

Keterbatasan Unifont

  • Hanya menyimpan satu glif per titik kode yang dapat dicetak.
    • Huruf India (Devanagari, Bengali, Tamil, dll.) dan karakter yang bentuknya berubah berdasarkan posisi seperti Arab tidak dirender secara akurat.
    • Untuk skrip kompleks, disarankan menggunakan font OpenType profesional.

Kontribusi Glif Baru

  • Untuk menambahkan glif baru, harus menghubungi lewat email lebih dulu.
    • Boleh berpartisipasi setelah diskusi koordinasi guna menghindari pekerjaan ganda.
  • Glif Hanzi 15×16 piksel (Plane 2 dan 3) yang hak ciptanya dimiliki pemerintah Tiongkok tidak dapat dimasukkan ke font bebas.

Rilis Terbaru — Unifont 17.0

  • 17.0.03 (1 November 2025)
    • Lebih dari 100 karakter Han dengan radikal 馬 (kuda) dan 鳥 (burung) yang disertakan serta diperbaiki.
    • Memuat daftar standar karakter sederhana Tiongkok periode 1935–2013.
    • Menyertakan standar komponen karakter modern yang diterbitkan tahun 2009.
  • 17.0.02 (18 Oktober 2025)
    • Kontribusi dari banyak kontributor pada Plane 0–3, termasuk Paul Hardy, David Corbett, 晓晓Akatsuki, Boris Zhang.
    • Banyak perbaikan pada Arab, simbol catur, dan ekstensi CJK.
  • 17.0.01 (9 September 2025)
    • Menambahkan Ekstensi-B Arab, simbol mata uang, serta karakter Telugu dan Kannada.
    • Pada Plane 1–3 menambahkan banyak skrip baru seperti Ekstensi-C Arab, Sidetic, Tolong Siki, Beria Erfe, Adlam, dan lain-lain.

Versi Utama Sebelumnya

  • Unifont 16.0 (awal 2025)
    • Memperbarui Arab, Yunani, Hangul, dan simbol musik.
    • Menambahkan skrip CSUR seperti Sitelen Pona dan Zbalermorna.
  • Unifont 15.1 (2024)
    • Pengenalan Johab Hangul kombinasi 6/3/1 oleh Ho-seok Ee.
    • Beralih dari build dasar TrueType menjadi OpenType.
    • Peningkatan besar pada Hangul, ekstensi CJK, dan glif Wen Quan Yi.

Cakupan Glif

  • Dukungan luas untuk Plane 0–3, Plane 14, dan Plane 15.
    • Plane 0: BMP (Basic Multilingual Plane), cakupan penuh untuk kebanyakan karakter utama.
    • Plane 1: SMP (Supplementary Multilingual Plane), simbol musik, pictogram, karakter kuno, dan lain-lain.
    • Plane 2–3: Ekstensi Han CJK.
    • Plane 14: tag dan pemilih variasi.
    • Plane 15: area CSUR/Under-CSUR privat.

Skrip CSUR dan UCSUR

  • Tengwar, Cirth, Aurebesh, Klingon, Sitelen Pona, Sadalian, dll.
    • Menyertakan berbagai skrip konstruksi bahasa buatan (conlang).
    • Beberapa masih ditandai sebagai belum selesai.

Variasi Jepang dan Tiongkok

  • Menyediakan versi unifont_jp yang mendukung penuh standar JIS X 0213.
    • Pada awalnya menggunakan glif publik Jiskan16, kemudian diganti dengan glif publik Izumi16.
  • Versi Tiongkok mencakup penuh daftar karakter acuan umum.
    • Berbasis pada glif publik dari proyek Wen Quan Yi (文泉驛).

Detail Teknis

  • Konversi TrueType berbasis skrip milik Luis Alejandro González Miranda.
    • Otomatisasi konversi .hex.sfd.ttf.
  • Dasar antarmuka menggunakan grid 16×16 piksel, dengan rencana dukungan glif 32×32 piksel di masa depan.

Rencana Mendatang

  • Seluruh glif 16×16 piksel pada plane SMP sudah selesai.
  • Skrip kompleks seperti Tangut direncanakan diproduksi ke depan dengan ukuran 32×32 piksel.
  • Pekerjaan penambahan skrip CSUR terus berlanjut.
  • Semua kontribusi baru harus dipublikasikan dengan ketentuan GPL 2+ / SIL OFL 1.1.

Arti Proyek

  • GNU Unifont adalah proyek font bebas percontohan yang bertujuan memastikan akses digital sistem tulisan dunia.
  • Berperan sebagai infrastruktur penting pada ekosistem open source, internasionalisasi (i18n), dan rekayasa font.
  • Melalui kontribusi komunitas yang berkelanjutan, proyek ini meningkatkan kelengkapan visual standar Unicode.

Halaman Font Hangul Unifont - Hangul (Hangeul) Font

Asal-usul dan Struktur Hangul

  • Hangul diciptakan oleh Raja Sejong pada periode 1443–1446 dan diumumkan pada 1446 melalui Hunminjeongeum Haerye.
    • Tujuan penciptaan dinyatakan sebagai: “Agar rakyat mudah mempelajarinya dan dapat menulisnya dengan praktis setiap hari.”
    • Haerye adalah naskah komentar yang menjelaskan prinsip dasar penciptaan huruf; satu-satunya eksemplar terawat ditemukan saat Perang Dunia II.
  • Hangul terdiri dari struktur blok suku kata dengan tiga unsur: choseong (awal), jungseong (tengah), dan jongseong (akhir).
    • Contoh: “Hangul” terdiri dari kombinasi ㅎ+ㅏ+ㄴ dan ㄱ+ㅡ+ㄹ.
    • Vokal dan semivokal (y, w) ditempatkan di sisi kanan atau di bawah posisi konsonan awal.

Prinsip Pembentukan Konsonan

  • Konsonan berawal dari lima konsonan dasar yang meniru bentuk alat bicara: , , , , .
    • Dengan menambah goresan, terbentuk 17 konsonan asli.
    • Sebagian konsonan ditulis dalam bentuk pasangan (geminasi) untuk menandai penekanan.
  • Jamo Kompatibilitas juga termasuk dalam Unicode, dan beberapa jamo lama sudah tidak digunakan saat ini.

Prinsip Pembentukan Vokal

  • Vokal berasal dari konsep trisula: langit (yang), manusia (jung), dan bumi (eum).
    • Elemen dasar: titik (), garis horizontal (), garis vertikal ().
  • Pada awalnya terdapat 11 vokal; (araea) sudah hilang dari bahasa standar modern, tetapi masih ada di dialek Jeju.
  • Kombinasi vokal membentuk diftong, dan beberapa di antaranya tidak lagi digunakan dalam Hangul modern.
  • Set Jamo Hangul Unifont mendukung semua vokal dan diftong, baik kuno maupun modern.

Rentang Hangul dalam Unicode

  • Hangul termasuk di rentang Unicode berikut:
    • 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
  • Penyetelan posisi kombinasi choseong/jungseong/jongseong adalah inti desain font, dan ekspresi suku kata gabungan tetap dapat ditampilkan bahkan di font bitmap.

Font Johab (Johab) X11 dan Unifont

  • Font berpengkodean Johab menggabungkan choseong, jungseong, dan jongseong untuk membuat glif suku kata.
    • Digunakan pada terminal Hanterm di lingkungan Unix X11.
  • Karena font gratis untuk Hanterm tidak kompatibel dengan GPL, di Unifont dibuat glif suku kata Hangul baru secara langsung.
    • Proses konversi: skrip Perl johab2ucs2.pl.hex.bdf.
    • Font lama (iyagi16, johabg16) dibatasi lisensi khusus untuk Hanterm.
  • Kemudian dibuat set Hangul Syllables baru selama beberapa tahun dan disertakan dalam Unifont.

Kontribusi Terkini dan Peningkatan Encoding

  • Minseo Lee (2023): menyediakan revisi glif modern dan glif kuno berbasis urutan Hanterm.
    • Memperbaiki konsistensi jamo dalam rentang Unicode dan menyempurnakan skrip Perl.
  • Ho-seok Ee: mengajukan encoding Johab 6/3/1.
    • Struktur kombinasi 6-3-1 untuk choseong/jungseong/jongseong menyederhanakan pembuatan glif dibandingkan sebelumnya.
    • Mengusulkan pemindahan titik kode ke Private Use Area (U+E000–U+E8FF).
    • Encoding ini mulai diadopsi sejak versi Unifont 15.1.01.

Blok Suku Kata Hangul Unicode (U+AC00–U+D7A3)

  • Terdiri dari 11.172 glif suku kata.
    • 19 choseong (atau satu karakter pengisi), 21 jungseong, dan 27 jongseong (atau tidak ada).
    • Kombinasi: (19×21)×28 = 11.172
  • Kata berawal vokal menggunakan (ieung) sebagai karakter pengisi pada posisi choseong.
  • Sejak versi Unifont 5.1, proses pembuatan blok suku kata baru dijelaskan rinci dalam dokumen terpisah Generating Hangul Syllables.

2 komentar

 
joyfui 2025-12-14

Ternyata inilah penyebab font Hangul yang jelek di Minecraft...

 
GN⁺ 2025-12-14
Komentar Hacker News
  • Kami menggunakan GNU Unifont di jendela teks dan browser properti Solvespace. Karena tersemat langsung di file executable, ini sangat berguna. Beberapa orang menyertakan karakter CJK dalam desainnya, dan itu berjalan mulus di semua platform. Saat melihat anotasi lubang di CAD, saya terkejut karena simbol counter-bore dan counter-sink sudah termasuk di Unifont. Versi web eksperimennya tersedia di sini
    • Kesederhanaan versi webnya benar-benar keren. Solvespace adalah program MCAD favorit saya, dan selalu menjadi alat pertama saat saya perlu membuat jig pengujian PCB dengan cepat. Saat geometri sederhana, rasanya sangat nyaman digunakan
    • Menakjubkan bahwa efek sehebat ini muncul hanya dari pemilihan font. Tentu saja, Unifont dan seluruh Unicode pasti mengandung waktu manusia dalam jumlah besar, tapi saya suka ide bahwa insinyur CAD era perunggu pun bisa menulis nama dengan Linear A tanpa masalah
    • Versi webnya sangat rapi. Solvespace fiturnya memang terbatas, tetapi fleksibilitas dan kesenangan saat mengekspresikan constraint-nya sangat menonjol. Suatu hari aku ingin masuk ke kodenya dan mengganti dialog modal “tidak bisa membuat constraint”
  • Untuk kejelasan orang lain, GNU Unifont adalah font bitmap. Dia menyediakan glif tetap untuk semua titik kode BMP, dan juga mencakup beberapa titik kode dari plane lain. Berguna untuk editor yang mengedit teks Unicode tanpa harus punya pengetahuan rendering per-bahasa. Namun saat memakai skrip kompleks seperti Devanagari, tidak ada shaping, jadi tidak terlihat seperti teks sebenarnya.
    • Di sini BMP bukan BitMap, melainkan Unicode Basic Multilingual Plane. Artinya rentang 65.536 titik kode pertama.
    • Aku penasaran apakah ada file terpisah per ukuran point. Baru terasa bahwa pengetahuanku tentang font hampir nol.
  • Kalimat pertama di website itu seharusnya menjelaskan apa itu GNU Unifont. Mungkin ini font copyleft tunggal yang mencakup hampir semua titik kode Unicode.
    • Sebenarnya kalimat kedua dan ketiga sudah menjelaskannya dengan tepat. Unifont memuat glif untuk semua titik kode yang dapat dicetak di BMP, dan cocok sebagai font fallback akhir. Fungsinya menampilkan karakter saat glif tidak ditemukan di font lain.
    • “Hampir semua” bukan “semua.” Aku punya proyek yang harus merender karakter CJK langka, dan di Unifont tidak tampil dengan benar. Sebagai gantinya, aku memakai font Jigmo karena glif CJK-nya paling lengkap.
    • Aku juga sempat kebingungan di awal, lalu sadar setelah menekan “Home” bahwa tautan itu bukan halaman beranda.
    • Banyak proyek open source dengan deskripsi yang kurang di kalimat pertama seperti ini.
    • Aku pikir kalimat “GNU Unifont adalah bagian dari proyek GNU dan memuat glif untuk semua titik kode yang bisa dicetak di BMP” sudah cukup jelas.
  • Ini tetap sangat indah saat dicetak. Aku membuatnya menjadi poster spiral dan menggantungnya di dinding. The Mostly Complete Unicode Spiral
    • Bagus sekali! Aku penasaran diprint dengan ukuran berapa. Apakah karakter CJK yang sedikit-sedikit di sekitar spiral utama itu susunan alami Unicode, atau direkayasa? Secara keseluruhan terlihat seperti galaksi, dan penempatan emoji di tepi luar terasa mengesankan. Seru juga mencarinya di ikon planet.
  • Unifont menyimpan satu glif per titik kode. Jadi skrip kompleks (Indic, Arabic, dll.) tidak dirender dengan baik. Dalam kasus ini sebaiknya gunakan font OpenType, dan Unifont memang cocok sebagai font fallback.
  • Situs font sering punya gambar pratinjau type specimen seperti “Hello World”. Akan bagus kalau halaman Unifont juga menambahkannya.
  • Melihat nama GNU, aku merasa meski bukan yang terbaik di segala hal, dalam penghargaan terhadap pengguna ini hampir tak tertandingi.
  • Aku menerapkan Unifont di seluruh sistem, lalu memaksa agar Firefox memakai satu-satunya font. Aku juga menonaktifkan pengunduhan web font, dan di CSUR (ConScript Unicode Registry) ada karakter buatanku. Di Qt, pengaturan DPI kadang rumit, tapi diselesaikan dengan QT_FONT_DPI=128. Aku juga ingin di game seperti RimWorld pakai Unifont saja.
    • Aku penasaran kenapa dipakai begitu.
    • Aku juga sudah menginstalnya, tapi untuk membaca di HN aku harus memperbesar 200%. Di XFCE terlihat cukup baik.
  • Aku harus menghapus Unifont agar bisa memakai font CJK yang bagus di Firefox. Karena fallback font anehnya memberi prioritas Unifont terlebih dulu.
    • Untuk memperbaiki, masuk ke Language and Appearance → Fonts → Advanced di pengaturan Firefox dan tentukan font per skrip. Kalau tidak, pemilihan font akan sulit ditebak.
    • Aku juga mengalami masalah glif Unifont yang tidak terlihat di Firefox dan Chrome. Ada laporan terkait di pelacak isu nixpkgs. Noto Color Emoji juga pernah mengalami hal yang sama. Dunia font itu memang sangat halus.
  • Aku membuat font untuk Playdate berbasis Unifont. https://github.com/remysucre/cuniform