‘Impossible things just take longer.’

[更新] iOS 13 beta 5 里,手动添加的空格又不会被缩回成 1/8em 了。

很多人都发现,在目前处于测试版的 iOS 13 里,iOS 的排版引擎会自动为字母/数字和汉字之间加上大约 1/8em 的空间。

不知何时开始,手动在汉字和字母间加半角空格竟然成了一种骄傲。在中西混排时,汉字和字母之间的确应留有一定空间,方能在视觉上达致平衡。但有识之士早已说明,这个空间应由排版引擎留出,而非由写作者手动添加。这不仅因为半角空格的宽度未必(「未必」是很宽容的措辞)是最合适的,还有语义上的理由:在中文里,我能想到的用空格表达某种语义的例子,只有在神和尊称前留空格这一种。汉字和字母之间的空间属于平面设计范畴,它并不表达任何意思,因此不应该由写作者负责。

六月初试用了 iOS 13 beta 后,我说:

是否手动加空格成了难题。加的话,在 iOS 13 效果不好,不加的话在几乎所有其它系统效果不好。

下面就是在当时的 iOS 13 beta 上的测试效果。第二段就是排版引擎自动加了约 1/8em 空间的版本。

一旦看过了正确的宽度,手动留出的半角空格就显得太宽。另一方面,若为了在 iOS 13 上取得好效果而不留空格,在不支持此功能的一切系统上就会变成这样:

从不知第几个 beta 版开始,这个两难消失了。现在就算妳手动加半角空格,iOS 的排版引擎也会把那个空间缩小成正确的宽度。也就是说,不论是否手动加空格,最终显示的效果都是约 1/8em 的空间:

正义会迟到,但不会不到。

(微软的 Word 很早以前就这么做了,但那是一个「在电脑上写,打印出来读」的时代——妳把 Word 里的文字拷贝到别处就没有正确的效果了。在如今这个电脑上写、电脑上看的时代,iOS 是第一个在系统全局正确处理汉字和字母间空间的系统。)