CtrlOrdn:超椭圆风竖排用可变字体,及ꓡꓲ-ꓢꓴ老傈僳文
制作新字体前得先考虑用途:目标是否与现有的重复、不可替代。这次我想用一个字体解决一堆问题。

关于需求
起初参与汉化饼☆漫画时,发觉现有英文※字体存在盲区:没有哪个会考虑到竖排用途——因为会被90°旋转;而各种东亚字体里的全角区段又大多很敷衍,排出来就像 在 英 文 之 间 插 空 格 一 样。所以迫切需要这样一个字体:按汉字字面设计的全角大写英文。
※本文的“英文”均指 基本拉丁\ASCII 范围内的字符及对应的全角字符。
首先日本字体厂商怎么做的呢?
森澤(morisawa)有套经典的商业黑体:新ゴ(ShinGo),在日本使用率极高,即便你没听说过也很可能看过,其英文轮廓是圆角方形的,搭配汉字和规整的假名,全角部分也是,只是竖排时相比汉字窄很多。我想全角部分如果放宽到与汉字仿佛,应该会适合竖排。

而这英文部分不完全是原创,如果你看过许多经典科幻电影,那么这些圆角方形的英文一定会让你感到熟悉:


当然这些字体都不免费。而且也没必要制作与它们一样方的:我希望这个字体看起来像汉字撇捺笔画那样又圆又方,那么,不如用超椭圆风格?
此处省略价值200万的原研哉设计小米新标志图及当时营销号对超椭圆的营销稿。准确定义在网上有现成的科普,不是什么border-radius:19px;

虽然字体作不来百分百的超椭圆曲线(要较真的话,字体受限于upm也“作不来圆形”只是无限贴近圆嘛),但可做成贴近的“超椭圆风”,字体名用O开头,也方便大家选字体时直接看到这个超椭圆。

关于「Ordn」和OT特性
做CtrlOrdn之前,我还在考虑另一个需求:排序/排行榜数字。
为了对齐序号,宜用等宽数字或向右对齐,我以前有专栏介绍过等宽数字是一种可选的OpenType特性(略称OT特性):

本字体已支持上述的 'pnum'、'tnum'、'zero' 等OT特性,但会遇到一个问题:排行榜第十名怎么办。如果1与0等宽,这“10”就是2倍宽了。

这需要一点非常规的手段。我设计了一个没有点的全角宽度连字“10”放在附围字母数字区段的序号“⒑”里。为避免随便输入10也连字,设为必须开启'ordn'(ordinal,OT序数特性)才会将全角10连字。这也是字体名CtrlOrdn的来源。


关于可变字体
上面几个动图展示了Ordn是字重可变的,其实字宽也可变,如我之前动态里的「ꓔꓰꓠꓱꓕ」动图演示,具有2个可变轴。
这是我第一个能发布的可变字体,所以关于“可变”方面我也是初学者。我电脑的低级系统甚至用不了可变字体,也不好介绍什么。原理相当于Flash的补间:画出多个极端值(轴),让它们一一对应,自动生成中间任意的插值——也不一定限定中间,还可以外推,只是效果无法保证罢了。
做成可变的动机倒不是为了可变而是图方便:我是想只要制作几个极端字形就可以一劳永逸,生成字重、字宽精准匹配其他东亚黑体的全角字形。如果不做多轴,那每个黑体都要重算然后重画,完全是苦役。
显然并没有我想得那么一劳永逸:不能指望极端字形,还要画出中间字形作为人工校正。除了字形一一对应,字形上看不见的度量也要一一对应,否则中插的字形就飞出去了。

关于ꓡꓲ-ꓢꓴ
我之前动态里的「ꓔꓰꓠꓱꓕ」,用的是老傈僳文。去年(2020-9-4)我曾计划制作支持老傈僳文的字体,现在成了也许是第一个完整支持老傈僳文的可变字体:
傈僳区段:U+A4D0~A4FF
傈僳补充区段:U+11FB0~11FBF ←Noto字体居然不支持……

该书写系统看起来像无衬线体大写拉丁文或其倒转↩(Turned)形式,比如傈僳写作「ꓡꓲ-ꓢꓴ」。是否有人想问,为什么不用英文「LI-SU」代替?
请复制这个「ꓡꓲꓢꓴLISU」到文档编辑器,1.试试大写转小写功能lisu,2.试试改成衬线体或斜体𝓛𝓘𝓢𝓤。

老傈僳文奇妙在限定了字体(详见我去年2020-9-4的动态)。统一码给每个字符配了属性,而文档编辑器的大写转小写功能是遵循这个属性转换的。如果将老傈僳文合并给拉丁,会带来很多麻烦,首先一般人类就无法分清「LI SU」这孤零零一个词究竟是英文人名“李肃”还是老傈僳文,软件就更不能了:难道编辑器还要自带AI吗。
毕竟,编码应该是为了给如实记录和传播带来方便的。如果记作「LI SU」那么传递或处理时没法避免走样。
因此将老傈僳文当作一种“只是看上去很像拉丁而已”的文字单独分配区段处理起来还比较方便,类似于切罗基文。


字体已发布在[ github.com/MY1L/Ctrl#ordn ]
每字体包含几百个字形,对应四百以上个字符,今后也会在这链接更新↑