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). 

外部链接