断字(hyphenation)对于排版的影响有多大?

Hyphenation 字面意思是指「用 hyphen 字符(也就是短横 - )将单词断开」,而正确的断开方式是 syllabification,也就是指「将单词按照音节分段」。

从开始学英语的时候你就一定碰到过这样的一个问题:当前书写的一行眼看还剩下些空隙,但是下一个单词很长,不能确定能否完全写得下;另起一行的话,空白却又显得太大。你决定赌一把,每个字母都尽量写得窄一点,但最后还是功亏一篑,最后三四个字母无论如何都写不进这一行。此时应该怎么办呢?

正确的方法是按照单词的音节将其断开,这样别人在阅读的时候就不必读到下一行才能拼出当前单词已经读完的部分(如果每行很长,或者断字的部分恰好在分页处,这是个很重要的问题)。那么如何找到正确的断开点呢?在许多英语字典之中,单词是这样标出的:


图中的小圆点就是音节的断开点。这样的断开其实规律非常明显,习惯之后很容易找到。不止英语,任何以线形方式排列的拼音语言如德语、俄语、阿拉伯语甚至汉语拼音或多或少都会在书写和印刷的时候遇到这个问题。过去手工排版时,断字是一个排字工人的重要技能,尤其在传统的排印习惯是将文本两端对齐(justify)的时候,配合调整单词(甚至字母)之间的距离,良好的断字是美观文本的必要条件:


仔细观察这段文本,第一行的最末单词 recitation 的断字在 recita- 后面,如果查阅字典的话:


所以 recita- tion 的确是个合理的断开,而如果断成 recit- ation 或者 recitati- on 都是错的。再来仔细观察第二行,会发现单词之间的空隙要比第一行大一些,就是为了尽量将行末单词最后一个字母的位置和上面一行的末尾保持对齐。

对于方块字使用者来说,断字是比较陌生的话题。汉字排版最需要考虑的问题是要避免部分标点孤立在行首出现,这并不难做到(事实上,在绝大多数文字处理软件的编辑器——包括知乎的在线编辑器——里面,写字到最靠近右边界的时候输入逗号或者句号,它会将当前行的最后一个字一起拽到下一行去,就是在遵守这一规则)。但是对于英语、俄语等拼音文字来说,除了同样要避开行首的标点,断字更是排版的头等大事之一,也是一个有相当难度的问题,因为怎样合理地断字和增减字母 / 单词的间距,让文本看起来疏密一致,是需要精心计算的。下面就是一个不太好的排版范例,不同行字母间距的差异太显眼了,甚至还有同一行之中的两个单词其字母间距不一样的情况出现:


进入二十世纪,排版一定要尽量两端对齐的铁则开始松动,左端对齐(flush left)、右端参差(ragged right)的排版越来越常见,原因不仅仅是出版物增多而让每一本书都两端对齐的工作量变大,也和人们的审美变化有关。如今的互联网上,左对齐也是文本的默认设定。

但这并不意味着断字就失去意义了——左对齐仍旧会有不得不断字的尴尬情况,尤其是在段落宽度不够,或者单词比较长的时候,比如德语就经常会遇到这样的状况:


文中 Unwahrscheinlichkeitsdrives (非概率驱动的)这种长度的词在德语种俯仰皆是,没有正确的断字会对阅读带来很大的困扰。需要注意的是,断字的分音规则对于每一种语言来说都是不一样的。

排版进入计算机时代后,印刷书籍这种「固定版式出版物」的排版已经日臻完美,但是归咎于(动态)断字的复杂程度,常见文字处理器和阅读器的自动排版功能并不能让人满意,即便是优秀的阅读器如 iBooks / Kindle 之类,仍旧不能实现优秀的断字。引用 @江疆 的评论( zhihu.com/question/2052 ):
在没有断字 (hyphenation) 支持的情况下,强制性的左右对齐。这个问题当然是造成很多的段内间隙,俗称“river”,比如 [5]。Amazon 毫无羞耻地把这些照片作为产品宣传图放出来,可见公司内并没有一个对字体排印熟悉的 Kindle 设计总监,正常人看一眼都会宁肯把手指插进眼睛里也不愿意发布这样的产品的。解决方法很简单,支持 hyphenation,最好应用 Knuth-Plass 算法 [6]。
其中提到的「Knuth-Plass 算法」诞生于七十年代,在 TeX 排版程序中沿用至今,效果相当卓越,但是却一直没有能够移植到浏览器和电子阅读器上面(我不确定支持 CSS3 hyphenation 的浏览器算法是什么,待考)。
原发布于 https://www.zhihu.com/question/20602582/answer/15606120