GNU Unifont
GNU Unifont是一個由Roman Czyborra所製作的,自由且免費的點陣字型,涵蓋了Unicode中的基本多文種平面,使用了中型的點陣字型格式。见于大多數的自由操作系统及一些視窗系統中,如Linux、XFree86、X.Org Server,及一些嵌入式韌體,如RockBox。此字型以GNU通用公共许可证第二版或更新釋出,但加入了一個字型嵌入的例外條款(在文件中嵌入字型並不構成違反授權條款的條件)。
樣式 | Unicode、等寬、點陣 |
---|---|
設計師 | Roman Czyborra, Paul Hardy |
創造日期 | 1998 |
發表日期 | 2021年2月13日 |
许可 | GNU通用公共许可证 |
查看全部字符 | |
网站 |
它在2013年10月成為了GNU軟體包。
狀態
Unicode的基本多文種平面涵蓋了216 = 65,536 個碼位,其中2048个是保留給特殊用途的代理對,6400个保留給私人用途,剩餘大約57,000個碼位可供分配。其中多數位置都已分配字形,而一些特殊的碼位没有。
截至2013年10月 ,GNU Unifont已經完整涵蓋了Unicode 6.3版定義的基本多文種平面。
.hex字型格式
GNU Unifont 的 .hex 格式定義了它的字形大小,寬度8或16像素,高度為16像素。多數西方字母的寬度定義為8像素,而其他語言的字母(特別是中日韓文字)通常是16像素。
unifont.hex檔案的每一個字形都包含一行。每行都包含四位數的Unicode十六進位碼位,一個冒號及點陣字串。一個寬度為8像素的字母的位元串有32個十六進位的位數,而寬度為16像素的字母的位元串有64個十六進位的位數。
一個在位元字串中'1'的位元對應到一個'開'的像素。像素位元由上到下,由左到右儲存。
然後字型會轉換成BDF格式的檔案以在X Window系統上使用。
範例
這是包含了一個ASCII大寫'A'字形的範例。
0041:0000000018242442427E424242420000
第一個數字是十六進位的Unicode碼位,範圍從0000到FFFF。十六進位的0041是十進位的65,也就是字母'A'的碼位。冒號分隔了點陣字的碼位。在這個範例中,字形是8像素寬,所以位元串有32個十六進位的位數。
位元串以8個零開始,所以前4行是空的(每8位元是2個十六进制的數字,而寬度為8位元的字形則為每行8個位數)。位元串也以4個零結尾,所以最後兩行也是空的。因為如此,預設的字形會比基線低2行,大寫的字母高於基線10行。這是GNU Unifont的拉丁字母範例。
Perl的hexdraw指令稿按照上述的一行字形定義產生以下的輸出:
0041: -------- -------- -------- -------- ---##--- --#--#-- --#--#-- -#----#- -#----#- -######- -#----#- -#----#- -#----#- -#----#- -------- --------
|
這可以在文本编辑器中編輯,再使用同樣的工具轉換回十六進位的字串。其目標是創造一個中間格式以方便加入新字形。
向量
Luis Alejandro Gonzalez Miranda寫了指令稿以進行向量化及使用FontForge轉換BDF格式(unifont.bdf)至TrueType格式[2]。Paul Hardy調整了這些指令稿以處理最新的TrueType版本的組合字母,像是重音符號等[3]。
歷史
Roman Czyborra在1998年創造了Unifont格式[4],更早期的可以追溯至1994年。
2008年,Luis Alejandro González Miranda寫了把這個字型轉換成TrueType字型的程式。Paul Hardy后来修改它以支援在新版TrueType中的組合字母。
最後,理查德·斯托曼在2013年10月接受Unifont成為一個GNU軟體包。Paul Hardy是它的維護者。
參考資料
- Unicode協會: The Unicode 5.0 Standard. 5th, Addison Wesley 2007; ISBN 0-321-48091-0.