因为 JetBrains Mono 跟 FiraCode 一样支持 ligature,于是在各种支持的终端上体验了一下。发现这个效果并不好。

以常见的例子 -><=:= 来说,合字后重心会变化(<= 的重心在两个字中间,->:= 则右侧变宽,重心左移)。而 != 在合字后变得不容易看清斜线,需要分辨到底是 == 还是 !=,而原版则看到感叹号就已经理解含义,而且感叹号是通用的否定含义,其实 !oknum != 0 本是同一类,合字则变成了两类。

十年前看过一篇文章介绍高速公路路标字体,有段话印象很深:

日本道路公团标准文字(日本道路公団標準文字,或公団ゴシック)由前日本道路公团设计,使用了革新的设计。这款字体设计初衷是「时速100公里,距离140米,判断所需时间在5-6秒」,设计强调了与驾驶员心中字型印象吻合,而不追求笔画细节。

monospace 的初衷就是易于识别(列对齐)而放弃美观,如今的合字有些本末倒置了。仅仅是一个有趣的想法,但程序员每天的工作就是快速识别定位代码,效率是首要的。我反正是不会用的。