至少Niklaus Wirth、Alan Kay、Rob Pike、Bjarne Stroustrup和Don Knuth都没有把这当成理所当然的事1。
Niklaus Wirth的Oberon
Alan Kay的Smalltalk
Rob Pike的Acme,Dennis Ritchie和Russ Cox也是Acme的使用者
Stroustrup《The C++ Programming Language 3rd》
Knuth《Computers & Typesetting, Volume A: The TeXbook》2
「等宽字体(Monospaced Font)」最初为打字机设计,因为在敲击按键后它只能移动固定的距离。早期的计算机显示设备也使用等宽文字,数码管仅能显示单个字符,以等宽字符显示的早期显示器结构也更简单。在纯文本文档中展示表格数据,使用等宽字体更容易做到对齐——这也是我们在排版代码时看重的,因为相同等级的代码需要保持一致的缩近距离。
但拉丁字母的宽度原本就不相同,「比例字体(Proportional Font)」更符合人们长久以来形成的阅读习惯。相对于等宽字体,它的可读性(Readability)更强。
有没有可能既享受到比例字体易于阅读的优点,同时又保持代码拥有一致的缩进?
Nick Gravgaard 2006年提出了一种名为「Elastic Tabstops」的方案,目前已能应用在一些编辑器中。它重新定义了tab
的行为——每个tab
代表一条垂直线,将代码分隔成不同逻辑列单元,其宽度由单元中最宽行决定。下面的动态图片显示了它的效果。
假如解决了对齐问题,是否我们就可以在代码中放心地使用等宽字体呢?
也没有这么简单。据说过去的出版行业中,作者提交比例字体文稿曾被认为是「失礼的」,因为等宽字体的可辨识性(Legibility)更胜一筹,更易于编辑和估计字数。这一点上,与需要反复编辑的代码非常类似。
或许一种合适的方案是:在编辑器中使用等宽字体,而在印刷品中不妨考虑试试比例字体3。
或是邮件反馈可也:
askdama[AT]googlegroups.com
订阅 substack 体验古早写作:
关注公众号, 持续获得相关各种嗯哼: