GNU Unifont

GNU計畫製作的Unicode字型系列與工具程式

GNU Unifont是一個由Roman Czyborra所製作的,自由且免費的點陣字型,涵蓋了Unicode中的基本多文種平面,使用了中型的點陣字型格式。见于大多數的自由操作系统及一些視窗系統中,如LinuxXFree86X.Org Server,及一些嵌入式韌體,如RockBox英语RockBox。此字型以GNU通用公共许可证第二版或更新釋出,但加入了一個字型嵌入的例外條款(在文件中嵌入字型並不構成違反授權條款的條件)。

GNU Unifont
樣式Unicode等寬點陣
設計師Roman Czyborra, Paul Hardy
創造日期1998
發表日期2021年2月13日,​3年前​(2021-02-13
许可GNU通用公共许可证
查看全部字符
网站unifoundry.com/unifont.html 編輯維基數據鏈接

它在2013年10月成為了GNU軟體包。

狀態

Unicode基本多文種平面涵蓋了216 = 65,536 個碼位,其中2048个是保留給特殊用途的代理對,6400个保留給私人用途,剩餘大約57,000個碼位可供分配。其中多數位置都已分配字形,而一些特殊的碼位没有。

截至2013年10月 (2013-10),GNU Unifont已經完整涵蓋了Unicode 6.3版定義的基本多文種平面。

平面中,中日韓統一表意文字大約有20,000個,字形取自文泉驿的Unibit字形(獲得授權)[1]

.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指令稿按照上述的一行字形定義產生以下的輸出:

這可以在文本编辑器中編輯,再使用同樣的工具轉換回十六進位的字串。其目標是創造一個中間格式以方便加入新字形。

向量

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是它的維護者。

參考資料

  1. ^ Wen Quan Yi: Spring of Letters, [2014-07-09], (原始内容存档于2013-11-12) 
  2. ^ GNU Unifont in TrueType format, [2014-07-09], (原始内容存档于2009-03-07) 
  3. ^ GNU Unifont Glyphs, [2014-07-09], (原始内容存档于2013-11-12) 
  4. ^ Roman Czyborra's GNU Unifont page. [2014-07-09]. (原始内容存档于2011-08-27). 

外部連結