為了提高閱讀體驗,總結(jié)了這份中文排印三原則

2019-12-10    資深UI設(shè)計者

給大家看兩張圖,這兩頁的文字內(nèi)容相同,你更想看哪本?

不出意外的話,大家應(yīng)該會選右手邊的吧(選左邊的請自覺去面壁)。(所拍書籍為《西文字體》,高岡昌生 )

雖然大家不是專業(yè)做文字排印的,但對文字排版的感知力,其實是生而有之的。

中文也是如此,優(yōu)秀的出版社(譯林出版社、廣西師范大學(xué)出版社等),為了讓閱讀體驗順暢、版面舒適,在文字排印上做了許多工序。

正是這些工序,提升了書籍正文的閱讀體驗。想要在閱讀軟件上打造優(yōu)秀的閱讀頁,這些工序正是我們需要借鑒的。

通過設(shè)計師與開發(fā)的共同努力,我們最近完成了這一文字排版能力的建造,讓閱讀頁的效果能夠更上一層樓。

最終效果如下:

本文將從以下幾個部分說明這些工序存在的理由、實現(xiàn)的邏輯等。

細(xì)致的來看,文章包括以下內(nèi)容:

優(yōu)秀的文字排印三原則與實現(xiàn)工序

通過前期的大量學(xué)習(xí)與調(diào)研(專家觀點:小林章先生、鳥海修先生、劉慶先生等人關(guān)于字體排印 or 字體設(shè)計的講座、W3C 中文排版需求(強(qiáng)烈建議大家看這個)、孔雀計劃的文章、字體排印的專著:《平面設(shè)計中的網(wǎng)格系統(tǒng)》、《字體排印》、《西文字體》等;本次改版幾乎所有的功能與邏輯都參照了以上專著與文章。)

文字排印要遵循的三個原則

我們把文字書排版時的工序,總結(jié)為「文字排印要遵循的三個原則」:

1. 盡量保證字間距恒定

原則說明

中文排版中,字與字之間的間距被稱為「字間距」。

文字間距會影響閱讀節(jié)奏。字間距大的文章,閱讀速度會變慢。因此,散文、詩歌在排版時,會刻意調(diào)大字間距。

下面的圖,僅憑自己感受,選一張更好的:

不出意外的話,應(yīng)該是覺得下圖更好看。

嘗試默讀一下,你會發(fā)現(xiàn),上邊的圖片,最后兩行字間距被拉大,閱讀速度放慢;而這不是作者的本意,換言之,這會破壞閱讀節(jié)奏。

因此,我們把「保證字間距恒定」作為首要原則,來保障閱讀節(jié)奏感。

備注(建議第二次看文章的時候再讀):需要說明的是,部分字面較大的字體(方正博雅宋、蘭亭黑等)在書籍排版時為了契合書籍內(nèi)容的調(diào)性,有時會刻意設(shè)置字間距,這與「字間距保持恒定」的原則并不沖突。在電子閱讀軟件中,由于無法針對特定書籍進(jìn)行調(diào)整,因此本次設(shè)計實際上是保持「密排」(字與字之間沒有額外添加字間距,保留字體原始的間距)。

工序

行長是字號的整數(shù)倍。相同字號下,漢字字寬固定(就是字號本身),漢字標(biāo)點的字寬同樣也是字號本身(除了個別標(biāo)點之外,例如破折號)

漢字排版時,沒有額外字間距的情況下,是上圖所示的字面框依次密排。

因為中文書籍的正文排版常用兩端對齊,如果行長不是字號的整數(shù)倍,則漢字之間會有異常的行間距出現(xiàn)。

更嚴(yán)重的是:閱讀軟件字號可變的情況下,行長不可能做到適應(yīng)所有字號且字間距不會被拉大。

行長是字號的整數(shù)倍是中文字體排印中標(biāo)點擠壓等的前提。
——《孔雀計劃》,原文鏈接:https://thetype.com/2017/07/12513/

在閱讀軟件中,隨著字號調(diào)整,如果沿用「版心寬度固定」的思路,難免存在字間距被拉大的情況。
對此,我們調(diào)查了國內(nèi)外知名中文閱讀軟件,發(fā)現(xiàn):KindleAPP 能隨著字號變化自由變動,但這會導(dǎo)致:改變字號大小時,版心寬度略微變化。

有此顧慮,我們做了一個測試。結(jié)果證明,大家不會發(fā)現(xiàn)版心寬度有變化。這說明用戶投入到閱讀當(dāng)中、調(diào)整字號時,并不會因為版心寬度變化而有不適,甚至不會感知。通過測試,打消了我們的顧慮。
最終我們大膽采取了「版心寬度跟隨字號調(diào)整而變化」,來確保「行長是字號的整數(shù)倍」。

雖然「版心寬度跟隨字號變化」并沒有不適,但我們需要保證在多種屏幕尺寸、字號下,版心占據(jù)屏幕的區(qū)域都舒適。

面對這個問題,我們制定了一個公式,可根據(jù)屏幕大小、字體大小等,自動調(diào)整版心寬度。確?!感虚L是字號的整數(shù)倍」的同時,保證頁面美觀。

標(biāo)點符號「優(yōu)先推入式避頭尾」。如圖所示,為宋抄本《孫子算經(jīng)》;在古代,書籍排版可以做到字間距恒定,原因是古代不存在「標(biāo)點」,也就沒有「標(biāo)點避頭尾」導(dǎo)致的種種問題。

而現(xiàn)代漢語存在標(biāo)點符號,有的標(biāo)點不能放在行首,有的不能放在行尾。

我們把不能放在行首的標(biāo)點叫做避頭標(biāo)點,如逗號、頓號、句號等;把不能放置在行尾的叫做避尾標(biāo)點,如前引號、前括號等。

「推出式」避頭尾是大部分閱讀軟件的做法:

以避頭標(biāo)點為例,若此標(biāo)點被排到了行首,「推出式」 的做法是從上一行拉一個字放在本行。如下圖所示:

然而這么做的話,上一行的字間距被拉大,打斷了閱讀節(jié)奏(閱讀節(jié)奏放慢)。

我們發(fā)現(xiàn)專業(yè)的排版軟件(Indesign)和出版社(廣西師范大學(xué)理想國系列、人民文學(xué)出版社、譯林出版社等知名出版社)的做法是「優(yōu)先推入式避頭尾」,這種方式可以很好地解決「僅推出式」造成的問題。如下圖所示:

△ 《少數(shù)派報告》譯林出版社

通過「優(yōu)先推入式避頭尾」,上圖中標(biāo)出的雙引號的寬度被擠壓了一半,如果它保留為「全寬」,就沒辦法排在這一行,這就是「優(yōu)先推入式避頭尾」的最終效果。

以避頭尾標(biāo)點為例,「優(yōu)先推入式」避頭尾在這種情況下會將本行內(nèi)標(biāo)點寬度擠壓,為避頭尾的標(biāo)點騰出空間,如下圖所示:

上面的圖可以看到:通過「優(yōu)先推入式標(biāo)點擠壓」,第一行的字間距沒有被拉大,保持了密排。

通過將本行內(nèi)的標(biāo)點寬度進(jìn)行擠壓后,騰出了空間給本來排不到的逗號,確保了字間距的恒定。然后只有在本行內(nèi)標(biāo)點無法壓縮出足夠空間時,才會選擇「推出式」的處理方式。

因此這種處理方式叫做「優(yōu)先推出式」標(biāo)點避頭尾。

行內(nèi)標(biāo)點擠壓。因為相鄰標(biāo)點擠壓、行首段首擠壓,會出現(xiàn)部分標(biāo)點符號占據(jù)半寬的情況。這種時候,一行的末尾可能正好有漢字或標(biāo)點軋在了邊框上,如下圖所示,為漢字軋在邊框的情況:

遇到這種情況,通過擠壓行內(nèi)標(biāo)點寬度,從而騰出空間給最后一個字。這種做法叫做「行內(nèi)標(biāo)點擠壓」

標(biāo)點懸掛的邏輯和配套內(nèi)容。存在另外一種處理方式來避頭,叫做「標(biāo)點懸掛」,即將標(biāo)點懸掛在文本框外。

然而這種采用「標(biāo)點懸掛」,需要配套做「行尾強(qiáng)制半寬」,如下圖所示:

然而行尾強(qiáng)制半寬帶來的問題是字間距被拉大,違反了原則一(盡量保證字間距恒定),對于寬度有限的手機(jī)屏幕,盡量不要改動。因此最終我們沒有采用標(biāo)點懸掛的處理方式。
Type is Beautiful 網(wǎng)站中對此有詳盡的思考,如有興趣請看:https://thetype.com/kongque/

2. 版心灰度均衡

原則說明

書籍排版中,文字所在的范圍稱為「版心」。

經(jīng)驗老道的文字排印設(shè)計師,檢查正文排版效果時,最常用的方法是:離遠(yuǎn)看頁面,就像蒙上一層磨砂玻璃一樣,檢查整個頁面是否疏密均衡(《字體排印》,高岡昌生先生),也叫做「灰度均衡」(龜倉雄策先生稱之為「濃淡勻稱」,from《疾風(fēng)迅雷》)。灰度均衡的版心可以讓整個頁面美觀的同時,也保證了讀者閱讀中不會被突然的空白打斷。

如下圖所示,第一張圖因為一些原因?qū)е铝隧撁嬷杏性S多「窟窿」,顯得零碎,灰度明顯不均衡。而第二張圖,通過「標(biāo)點擠壓」將這些「窟窿」填上,整個版面更像是一個整體,灰度更均衡。

看倒數(shù)第二行的「乃跪地罪曰:‘大人何故’」兩個標(biāo)點連續(xù)的地方,從整體的角度看,會不會覺得這里有一個窟窿?

總的來說,灰度均衡的版面整體感更強(qiáng)、視覺上更舒適,因此也是相當(dāng)重要的原則。
工序:

相鄰標(biāo)點擠壓

眾所周知的,漢字是方塊字,在字體設(shè)計時會被放在一個方形里;中文標(biāo)點同樣也會被放置于同等大小的方框之中,如下圖所示。

如上圖所示,中文標(biāo)點所占體積一般遠(yuǎn)小于漢字,因此當(dāng)多個標(biāo)點符號連續(xù)排列時,會讓版面在這里好像有一個窟窿。專業(yè)的中文排版中會做的事情是「相鄰標(biāo)點擠壓」。如下圖所示:

如上圖所示,有連續(xù)標(biāo)點存在時,通過壓縮標(biāo)點所占的寬度,從而補上「窟窿」。

3. 版面齊整

原則說明

與西文書籍的左側(cè)對齊不同,中文書籍(橫排)傳統(tǒng)而言是講究兩端對齊。這是被大多數(shù)國人認(rèn)可的中文排版方式,因此不再贅述。

工序

行首段首標(biāo)點擠壓。當(dāng)行首出現(xiàn)標(biāo)點符號,會感覺左側(cè)不齊:

可以看到,處理前版心左側(cè)因為有單引號,看起來第一行沒有和第二行左對齊,處理后效果回歸正常。同樣的,段首的標(biāo)點也需要擠壓。

實際落地時的經(jīng)驗與產(chǎn)出

知道了以上內(nèi)容,我們需要把它變成開發(fā)需要的邏輯。具體如下:

1. 相鄰標(biāo)點擠壓邏輯

在 W3C 的《中文排版需求》中,對相鄰標(biāo)點擠壓的具體做法為:

  • 依照中國大陸的常見的排版規(guī)則,當(dāng)結(jié)束夾注符號出現(xiàn)在頓號、逗號、句號之后時,縮減兩者間二分之一個漢字大小的空白;而在港臺則不會做此調(diào)整。
  • 當(dāng)頓號、逗號、句號出現(xiàn)在結(jié)束夾注符號之后時,縮減其間二分之一個漢字大小的空白。
  • 當(dāng)開始夾注符號出現(xiàn)在頓號、逗號、句號之后時,縮減其間二分之一個漢字大小的空白。
  • 當(dāng)開始夾注符號出現(xiàn)在結(jié)束夾注符號之后時,縮減其間二分之一個漢字大小的空白。
  • 當(dāng)兩個(或以上)開始夾注符號連續(xù)排列時,縮減其間二分之一個漢字大小的空白。
  • 當(dāng)兩個(或以上)結(jié)束夾注符號連續(xù)排列時,縮減其間二分之一個漢字大小的空白。
  • 當(dāng)間隔號出現(xiàn)于結(jié)束夾注符號之后時,縮減其間四分之一個漢字大小的空白。
  • 當(dāng)間隔號出現(xiàn)于開始夾注符號之前時,縮減其間四分之一個漢字大小的空白。

通過梳理,我們將其簡化描述為 4個邏輯(實際邏輯與 W3C 基本一致):

  • 「1個結(jié)束夾注符」后面是:開始夾注符、結(jié)束夾注符、頓、逗、句(包括全寬句點)、冒、分,就擠。
  • 「1個開始夾注符」后面是:開始夾注符,就擠。
  • 「頓、逗、句(包括全寬句點)」后面是:開始夾注符、結(jié)束夾注符,就擠。
  • 「分、冒」后面是:開始夾注符,就擠。

備注:成對出現(xiàn)的標(biāo)點叫做夾注符,如雙引號、書名號等;其中細(xì)分為開始夾注符與結(jié)束夾注符。
此外,我們注意到,一些出版書在以上邏輯之外,把問號與嘆號與[頓、逗、句]歸為一類,實際效果良好,因此出于問號與嘆號同樣占據(jù)字面不多的邏輯,采用了這種分類法。然而隨后在走查階段發(fā)現(xiàn)線上部分字體的問號與句號占據(jù)字面的位置不同。

這促使我們關(guān)注到標(biāo)點在字面中占據(jù)的位置,我們梳理了客戶端所有字體的中文標(biāo)點。

發(fā)現(xiàn)漢儀樂喵、方正蘭亭黑、漢儀啟體等幾款字體的問號字面占據(jù)異常,如果進(jìn)行相鄰標(biāo)點擠壓可能會造成標(biāo)點粘連的情況,因此最終我們決定保持問號與嘆號不參與相鄰標(biāo)點擠壓。

2. 避頭、避尾標(biāo)點匯總表:

以上邏輯實施需要首先讓程序判定哪些標(biāo)點是避頭尾標(biāo)點,因此我們梳理了所有漢字標(biāo)點并分為避頭、避尾兩類(部分標(biāo)點即避頭又避尾)。

漢字標(biāo)點符號與西文的標(biāo)點符號許多時候僅憑肉眼難以分辨(如,與,前者是西文標(biāo)點中的逗號,后者是中文標(biāo)點中的逗號),因此我們使用Unicode 碼為每一個標(biāo)點精準(zhǔn)劃分,確保不會造成錯誤。

3. 行內(nèi)標(biāo)點擠壓與「優(yōu)先推入式避頭尾」邏輯:

「行內(nèi)標(biāo)點擠壓」與「優(yōu)先推入式避頭尾」其實本質(zhì)上都是對行內(nèi)標(biāo)點寬度進(jìn)行壓縮,因此在邏輯上歸為一類。根據(jù)具體解決邏輯的不同將其分為以下四類:

針對這四種情況要做的具體事項補充在右側(cè):

至于推出邏輯,則稍簡單些,書籍中有時候會遇到連續(xù)幾個標(biāo)點符號都是避尾標(biāo)點的情況(或連續(xù)避頭標(biāo)點),因此對推出的邏輯設(shè)定為:

備注:國內(nèi)知名的字體設(shè)計與排印網(wǎng)站 Type is Beautiful 中有介紹,行內(nèi)標(biāo)點擠壓的方式有多種,「開明式」「全部半寬式」「平均式」等等…我們選擇了「平均式」(有權(quán)重),開發(fā)難度會稍小些、效果也更可控制,不再贅述。

4. 整體邏輯流程圖

但是僅僅通過文字性質(zhì)的描述還不夠,我們需要能讓程序理解的邏輯。

由于部分處理方式之間互相干擾,因此根據(jù)這四種方式影響的內(nèi)容不同,以「對其他處理方式的干擾程度」從高到低排序,并串聯(lián)成整整體的邏輯圖,以保證整體邏輯簡單、不重復(fù),如下圖所示。

在此基礎(chǔ)上,我們將文章中第二部分所梳理的邏輯細(xì)節(jié)填充進(jìn)流程圖內(nèi),并合并重復(fù)流程,最終獲得如下流程圖,方便開發(fā)理解和工作:

5. 小結(jié)

通過「避頭尾標(biāo)點列表」「可擠壓標(biāo)點與擠壓空間」「廣義的推入邏輯具體說明」「整體邏輯流程圖」四個文件,我們可以順暢的將設(shè)計要求傳達(dá)給開發(fā)。

最終,通過這些工序,我們可以在最大限度上保證字間距恒定、版面齊整和內(nèi)容灰度均衡。提升閱讀流暢性和閱讀頁的體驗。

總結(jié)

文字排印作為一個古老的技藝,從排版工人操作實體字模的時代,經(jīng)歷了照排時代,來到了數(shù)字排版的當(dāng)下,排版的自由度和效率已然成倍提高,然而由于許多原因至今這些排版的工序只在出版社等專業(yè)領(lǐng)域流通。

相對于紙質(zhì)書籍,電子閱讀在易攜帶性、閱讀方便性、多媒體輔助閱讀上有得天獨厚的優(yōu)勢,然而最基礎(chǔ)的閱讀體驗有時候不如紙質(zhì)書籍,我們希望通過我們的努力,電子閱讀在未來,能夠讓讀者獲得全面超過紙質(zhì)書籍的閱讀體驗。

當(dāng)然,文字在移動端的體驗上限遠(yuǎn)不止如此,一些產(chǎn)品僅靠網(wǎng)格系統(tǒng)與字體排印加上優(yōu)秀的字體,已經(jīng)做出了令人驚艷的體驗。

如上圖所示,通過優(yōu)秀的明朝體、網(wǎng)格系統(tǒng),物書堂出品的幾個詞典 APP 的界面讓人驚艷,文字之美還有很多可能,這也是我們的努力方向。我們也知道,當(dāng)前客戶端內(nèi)中英混排、英文排版等方面,依然有進(jìn)步空間,未來也會進(jìn)一步完善。

文章來源:優(yōu)設(shè)

日歷

鏈接

個人資料

存檔