GNU Unifont

本页使用了标题或全文手工转换,现处于中国大陆简体模式
求闻百科,共笔求闻
GNU Unifont
样式Unicode等宽点阵
设计师Roman Czyborra, Paul Hardy
创造日期1998
发表日期2021年2月13日,​3年前​(2021-02-13
许可GNU通用公共许可证
查看全部字符

GNU Unifont是一个由Roman Czyborra所制作的,自由且免费的点阵字体,涵盖了Unicode中的基本多文种平面,使用了中型的点阵字体格式。见于大多数的自由操作系统及一些视窗系统中,像是LinuxXFree86X.Org Server,及一些嵌入式韧体,像是RockBox。此字体是以GNU通用公共许可证第二版或更新释出,但加入了一个字体嵌入的例外条款(在文件中嵌入字体并不构成违反许可证的条件)。

它在2013年10月成为了GNU软件包。

状态

Unicode基本多文种平面涵盖了216 = 65,536 个码位。在这个数字里,2048是保留给特殊用途的代理对,6400是保留给私人用途。大约剩余57,000个码位可供分配。其中一些特殊的码位并没有已分配的字形,但其他多数的位置都有已分配的字形。

截至2013年10月 (2013-10),GNU Unifont已经完整涵盖了在Unicode 6.3版中所定义的基本多文种平面。小于100%完成度的字形可以由任何贡献者完成。

一大块大约20,000个的中日韩表意文字已从文泉驿的Unibit字形复制过来(获得授权)[1]

.hex字体格式

GNU Unifont 的 .hex 格式定义了它的字形大小,宽度8或16像素,高度为16像素。多数西方字母的宽度被定义为8像素,但其他语言的字母(特别是中日韩文字)通常是16像素。

unifont.hex文件的每一个字形都包含一行。每行都包含四位数的Unicode十六进位码位,一个冒号及点阵字符串。一个宽度为8像素的字母的位串有32个十六进位的位数,而宽度为16像素的字母的位串有64个十六进位的位数。

一个在比特字符串中'1'的比特对应到一个'开'的像素。像素比特是以由上到下,由左到右的方式储存。

然后字体会被转换成BDF格式的文件以在X窗口系统上使用。

范例

汉语日语范例

这是包含了一个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是它的维护者。

参考资料

  • Unicode协会: The Unicode 5.0 Standard. 5th, Addison Wesley 2007; ISBN 0-321-48091-0.

外部链接