Donald Knuth 1980 年的论文:字母 S

查看原文 HN 讨论

文章摘要

这是 Donald Knuth 1980 年发表在《The Mathematical Intelligencer》上的论文,题目就叫《The Letter S》。整整九页全是公式,就为了用数学定义出一个长得对、看起来不别扭的大写 S。背景是 Knuth 当时已经为 TeX 设计了 METAFONT 字体定义语言,整个 Computer Modern 字体家族里其他 25 个大写字母都搞定了,只有 S 让他写了一整篇论文——这件事本身就足够说明问题。

为什么是 S? 26 个大写字母里,几乎所有都可以由”一个主椭圆”或者”直线加椭圆”构成,结构上有锚点可以参考;只有 S 没有任何稳定的轴或基本图形——它从头到尾是一段连续变化曲率的曲线,没有直线、没有圆心、没有对称结构来约束它。更要命的是,视觉上对称的 S 其实”看起来”不对——人眼习惯上半圈比下半圈略小、留白略多,否则会显得头重脚轻。所以 Knuth 不仅要数学定义这条曲线,还要在数学里塞进”看起来好看”这个主观约束。

论文里 Knuth 还借机解释了为什么他要写 TeX 和 METAFONT——他想让《计算机程序设计艺术》(TAOCP)第二版印刷出来和第一版排版一致,但出版商告诉他他们已经不用 Linotype 热铅排版机了。Knuth 一气之下决定亲自重新发明排版,把 TAOCP 放一边搞了十几年的字体研究。这篇 S 的论文,就是这场”yak shaving”的副产品之一。当年他给妻子看初步的字母设计,他妻子说了一句被引为典故的话:“为什么不把它们做成 S 形?” ——意思是他第一版那个字母完全不像 S。

HN 评论精华