地址: http://unifoundry.com/unifont/index.html
Unifont 是一款值得单独介绍的字体。它是 GNU 计划的一部分,力图提供对 Unicode 已编码字符的最大覆盖。在知则目前知道的字体中, Unifont 是收录字符最多的通用字体。当然为了做到收字全面,它也简化很多内容。最明显的是它的所有字符本质上都是 16×16 的点阵字符,虽然提供 TTF 和 OTF 格式文件,但那都是基于点阵字符转化而来的。此外,它也不提供意大利体、斜体和不同字重,更不支持连字等比较新的字体特性。
一些并不是由字体提供的功能不会受到 Unifont 极简设计方式的影响。例如 Unicode 中定义的组合字符是由浏览器完成字符拼凑功能的,字体仅负责提供基本的符号。所以只要浏览器支持, Unifont 就能正常显示
āáăà
等组合字符。一些浏览器或编辑器能根据基本字形生成斜体和粗体,所以也能在支持的浏览器或编辑器中使用斜体或粗体的 Unifont。阿拉伯文字母连写变形也是这样的。虽然 Unifont 不支持连字,但是目前大多数情况下,阿拉伯文字母连写变形并不是用字体文件和字符引擎的连字特性实现的。而是在显示时经过了字符映射。由于 Unifont 覆盖 Unicode 中为显示阿拉伯文连写变形设计的区域,所以只要浏览器支持,也能正常显示阿拉伯文的字母连写变形。
Unicode 覆盖
由于收录字符数量超过了 OpenType 目前的字形数量上限 65536,所以 Unifont 被拆成多个文件,如果需要使用完整的 Unifont,就得组合使用这几个字体文件。目前主要有两个文件,这两个文件被当作两个 font family:
Unifont
用于覆盖 Unicode Plane 0 (不包括 PUA)。Unifont Upper
用于覆盖 Unicode Plane 1 及其后区域的已编码字符。
Under-ConScript Unicode Registry
Unifont 其实对于 Unicode 的 PUA 也提供了覆盖,其所采用的协议是 UCSUR (Under-ConScript Unicode Registry)。
UCSUR 是 CSUR (ConScript Unicode Registry)的后继。这两个协议主要是为各种未被 Unicode 收录的人造语言的文字系统分配编号。Unifont 提供一个单独的字体文件(以及 font family)对 CSUR 和 UCSUR 提供支持:
-
Unifont CSUR
用于按协议 CSUR 和 UCSUR 覆盖 Unicode 的 PUA。
字形特点
Unifont 的字形风格相当简单统一,都是一眼就能看出来的点阵字风格。在转换成 OpenType 字体后,每个半角字符(拉丁字符等)高 1024 个单位,宽 512 个单位;每个全角字符(汉字等)高 1024 个单位,宽 512 个单位。不存在全角、半角和零宽度(零宽度只有一些比较特殊的字符使用,一般基本不单独显示)之外的其他宽度。所以 Unifont 是一款等宽字体,而且全角和半角之前严格遵循 2:1 的宽度比;全角字符的宽高还相等,正好是一个方形。
使用建议
当你的文本中同时出现多种文字时,或者追求一个默认字体显示尽可能多的文字类别,就可以考虑 Unifont。但是其点阵字的风格可能对不喜欢的人来说比较难以接受。即便文字尺寸不大时,显示出来也有一些马赛克感。不过如果你喜欢这种风格,当然没问题。
当然也可以将这个字体作为补充字体,补充其他字体没有收录的字符。
另外,如果你是语言文字爱好者,会用到一些 CSUR 中的人造语言文字,那么 Unifont 是为数不多的可选项之一。
用 Unifont 作为补充字体或者仅仅使用 Unifont 中的一部分字形的时候不一定需要三个字体文件全部加载启用,仅仅启用自己用到的部分就可以。三个字体文件都能独立使用。
本文源码采用 MIT 协议开放,托管于: https://github.com/ZhiZe-ZG/ZZToolLibrary
如果觉得本文内容对您有用,希望您能在能力和意愿范围内给我一些资助。我不以此为生,但我也是个普通人。