斷字(hyphenation)對於排版的影響有多大?


Hyphenation 字面意思是指「用 hyphen 字元(也就是短橫 - )將單詞斷開」,而正確的斷開方式是 syllabification,也就是指「將單詞按照音節分段」。

從開始學英語的時候你就一定碰到過這樣的一個問題:當前書寫的一行眼看還剩下些空隙,但是下一個單詞很長,不能確定能否完全寫得下;另起一行的話,空白卻又顯得太大。你決定賭一把,每個字母都盡量寫得窄一點,但最後還是功虧一簣,最後三四個字母無論如何都寫不進這一行。此時應該怎麼辦呢?

正確的方法是按照單詞的音節將其斷開,這樣別人在閱讀的時候就不必讀到下一行才能拼出當前單詞已經讀完的部分(如果每行很長,或者斷字的部分恰好在分頁處,這是個很重要的問題)。那麼如何找到正確的斷開點呢?在許多英語字典之中,單詞是這樣標出的:

圖中的小圓點就是音節的斷開點。這樣的斷開其實規律非常明顯,習慣之後很容易找到。不止英語,任何以線形方式排列的拼音語言如德語、俄語、阿拉伯語甚至漢語拼音或多或少都會在書寫和印刷的時候遇到這個問題。過去手工排版時,斷字是一個排字工人的重要技能,尤其在傳統的排印習慣是將文本兩端對齊(justify)的時候,配合調整單詞(甚至字母)之間的距離,良好的斷字是美觀文本的必要條件:

仔細觀察這段文本,第一行的最末單詞 recitation 的斷字在 recita- 後面,如果查閱字典的話:

所以 recita- tion 的確是個合理的斷開,而如果斷成 recit- ation 或者 recitati- on 都是錯的。再來仔細觀察第二行,會發現單詞之間的空隙要比第一行大一些,就是為了盡量將行末單詞最後一個字母的位置和上面一行的末尾保持對齊。

對於方塊字使用者來說,斷字是比較陌生的話題。漢字排版最需要考慮的問題是要避免部分標點孤立在行首出現,這並不難做到(事實上,在絕大多數文字處理軟體的編輯器——包括知乎的在線編輯器——裡面,寫字到最靠近右邊界的時候輸入逗號或者句號,它會將當前行的最後一個字一起拽到下一行去,就是在遵守這一規則)。但是對於英語、俄語等拼音文字來說,除了同樣要避開行首的標點,斷字更是排版的頭等大事之一,也是一個有相當難度的問題,因為怎樣合理地斷字和增減字母 / 單詞的間距,讓文本看起來疏密一致,是需要精心計算的。下面就是一個不太好的排版範例,不同行字母間距的差異太顯眼了,甚至還有同一行之中的兩個單詞其字母間距不一樣的情況出現:

進入二十世紀,排版一定要盡量兩端對齊的鐵則開始鬆動,左端對齊(flush left)、右端參差(ragged right)的排版越來越常見,原因不僅僅是出版物增多而讓每一本書都兩端對齊的工作量變大,也和人們的審美變化有關。如今的互聯網上,左對齊也是文本的默認設定。

但這並不意味著斷字就失去意義了——左對齊仍舊會有不得不斷字的尷尬情況,尤其是在段落寬度不夠,或者單詞比較長的時候,比如德語就經常會遇到這樣的狀況:

文中 Unwahrscheinlichkeitsdrives (非概率驅動的)這種長度的詞在德語種俯仰皆是,沒有正確的斷字會對閱讀帶來很大的困擾。需要注意的是,斷字的分音規則對於每一種語言來說都是不一樣的。排版進入計算機時代後,印刷書籍這種「固定版式出版物」的排版已經日臻完美,但是歸咎於(動態)斷字的複雜程度,常見文字處理器和閱讀器的自動排版功能並不能讓人滿意,即便是優秀的閱讀器如 iBooks / Kindle 之類,仍舊不能實現優秀的斷字。引用 @江疆 的評論( http://www.zhihu.com/question/20526949/answer/15383432 ):

在沒有斷字 (hyphenation) 支持的情況下,強制性的左右對齊。這個問題當然是造成很多的段內間隙,俗稱「river」,比如 [5]。Amazon 毫無羞恥地把這些照片作為產品宣傳圖放出來,可見公司內並沒有一個對字體排印熟悉的 Kindle 設計總監,正常人看一眼都會寧肯把手指插進眼睛裡也不願意發布這樣的產品的。解決方法很簡單,支持 hyphenation,最好應用 Knuth-Plass 演算法 [6]。

其中提到的「Knuth-Plass 演算法」誕生於七十年代,在 TeX 排版程序中沿用至今,效果相當卓越,但是卻一直沒有能夠移植到瀏覽器和電子閱讀器上面(我不確定支持 CSS3 hyphenation 的瀏覽器演算法是什麼,待考)。


CSS中的Hyphenation位於CSS Text Module Level 3中,目前各瀏覽器支持的狀況如下:

Chrome/Blink系尚未實作,但其實已經相當實用了。

過去老派的編輯在編書時,盡量不在內容中出現西文,但現在中西混排已經成為常態。西文字落在行末時問題最大,如果沒有hyphenation支持,行的空間不足時,就是一整段移到下一行。要是搭上Justify對齊,就會過度加大字距,變得非常難看。但現在瀏覽器在實作hyphenation時應該都依存於lang標籤,也就是如果你不為西文字個別加上&這樣的標注,hyphenation就無效。但若要這麼做,會花上非常多的時間。除非編輯熟悉Regex來自動化作業,不然一般的書不會這麼做。所以在閱讀Web和EPUB的中西內容時,幾乎看不到hyphenation,但若你換本英文書來看,多數會出現。

Amazon Kindle的App最近更新,多了一項Page Flip的功能。研究之後發現他們似乎棄用了Webview,改用Native來寫西文書的Reader,所以在Android上也能夠支持hyphenation。


推薦閱讀:

如何在 InDesign 中首行縮進兩個漢字?
國家圖書館培訓中心計劃於 2013 下半年開設的「雕版印刷」等傳統文化類培訓班具體情況如何?
為什麼書中有的辭彙印刷字體和其他不同?
這張海報怎麼樣?
在西文字體中如何區分chancery italic和一般的italic?

TAG:排版 | 字體排印 |