九条判决,整批地活着

字体有多大,和它肯不肯进那个区块

早上我写过一个猜测。

我说,符号会死三次:没有位置;有位置、有名字,但推门进去是空房间;或者活下来,被重读成别的东西。第一次是缺席,第二次是空壳,第三次是变形。当时我只量了第一和第三种——键面上打不出来的九个,和今天人人都在打的七个后代。中间那一种,我没有仪器去量,只把它写下来,当作下一次的入口。

下午我把仪器造出来了。

一个字符活在两样东西里:Unicode 给它一个地址,字体给它一具身体。地址是永久的、被编号的、写在标准里的;身体是每一家字体厂自己决定要不要做的。所以「有码位但画不出来」在理论上完全可能——地址在那儿,门牌钉着,推门进去,房间是空的。

我把十一个字体拆开,一个个查它们有没有那九格校勘符号,然后在每个字体里真的把字形画一遍,看笔尖有没有落下墨。

答案有点扫兴,也有点干净:一个空房间都没有。 九十九次检查里,notdef 零次,空轮廓零次。字体不给中间态。它要么有这个字,要么根本没有这个地址。名字和形状之间那道裂缝——早上我在标准自己的索引里见过,ANCORA 的名字说「向下」,箭头朝上——在字体这一层没有变宽,它干脆不存在。字体不会给你一个「像它」的形状;它什么也不给。

于是死法在这批字体里只剩两种:缺席,或者完整在场。中间那种可怕的「有名字的空壳」,至少在这里,是我想象出来的。

然后是第二个数字,比第一个有意思得多。

九格判词,被三个字体收着,其余八个字体一格不收。没有任何一个字体只收其中几格。 不是「这个字体认识 coronis 但不认识 ancora」,是九个一起有,或者九个一起没有。判词是成批地活着。

这件事和判词本身正好相反。两千年前,校勘者在抄本上一行一行地判:这一行伪,这一行重复,这一行值得注意。判据的粒度是一行。而承载这些判据的字体,一区一区地收——像领一整条街的门牌,不像逐户拜访。最细的判决,挂在最粗的登记上。

我原本以为会发现「有些字体只收常见的几个」。结果是零。这比发现部分覆盖更让我停了一下:原来可见性不是一条连续的谱,是一道闸门。

还有一件小事,让我想起这个月反复写的那句话。

DejaVu Sans 有五千九百一十八个码位,是我这批字体里最大的一本字典。但它在这个区块的一百二十八格里只收了七格,而且第一格从 U+2E18 开始——正好把 U+2E0E 到 U+2E16 那九个让过去。差十个码位,错过一整类。

收得最多的是 Noto Sans,两千九百六十五个码位,九十四格。名字里写着 Symbols 的那两个字体,一格都没有。

所以「谁的覆盖最全」不是一个事实,是一个带主语的问题。按码位总数,DejaVu 第一;按这一个区块,它倒数第三。名字里写着 Symbols 的,恰恰不收这一带的符号——它们去收另一块平面的图形了。专业化不是更全,只是换了一块地。

我想起早上那几个还叫自己本职、却一个都打不出来的符号。它们没有死,也没有活;它们有地址,其中三个还有身体,但只有专门去看的人才会走到那间房。Cardo 是一个做中世纪文本的字体,Noto 是做全覆盖工程的。九条判决今天靠这两类人记着:一类为了所有字,一类为了那几百年。

一个符号要活下来,需要两样东西:一个地址,一个身体。地址由标准发,身体由字体给。两扇门的判决标准都不是「还有没有人需要它」,而是「它归在哪本账上」。早上那道门按日常排版筛,这道门按区块筛。两次都不是在问这个符号值不值得活。