今天,讓我們來處理另一個麻煩的問題——豎排(直排)。
歐美各國所使用的書寫系統皆是橫排為主,因此在顯示終端剛出現、對字型顯示需求剛誕生的時候,都只有考慮到橫排的狀況。但在東亞,扣除在近代廢除豎排的簡體中文,繁體中文與日文、韓文一直都有豎排的文化。
對於「僅」使用漢字、日文假名、韓文來排版而言,無論是橫排還是豎排,每個「方塊字」都可以像積木一樣的疊得好好的。但如果今天必須和標點符號、數字、歐文等文字混排,那麼豎排時要考慮的項目就會變成相當複雜。
通常來說,我們會讓半形的數字與歐文跟著旋轉 90 度,而全形的數字和歐文則不旋轉——好消息是,目前多數的文書軟體都有辦法做到這件事情;不過,標點符號就必須個別設定,例如全形句點 ,
不旋轉,而全形引號 「
和 」
則必須另外設計一個旋轉九十度的樣子。
大多數 CJK 的字型都會特別設計豎排的符號——這就是我們的工作了。
在文字從橫排改成豎排時,會先把所有的文字都旋轉 90 度,接著分辨哪些是需要轉正的(例如漢字、假名、全形字符),再將其旋轉回來。最後,透過 vert 表,將表內給定的標點符號替換成 vert 版。
做為 vert 的改版,vrt2 會先把全部的文字都旋轉 90 度,並再次將所有的文字旋轉回來(其實就是都排成正的),並透過 vrt2 將指定的字符「再轉回去」。
兩種轉換方式的差別在於,vert 在分辨哪些是不需要轉正的字符時,其實是相當模糊的。你或許會問,不就是把全形的字符轉回來嗎?拉丁文字確實是有將半形和全形的字符分開編碼,但像希臘文字與西里爾文字都僅有一個碼位,並無特別區分全形與半形。
這些字符要做成全形的尺寸(和漢字一樣寬)、還是做成半形的尺寸,都是各家字型廠商所決定的,所以有機會判斷錯誤。與之相比,vrt2 預設所有的字符都是正的,誰要旋轉則由 vrt2 控制,這相當於列了一個白名單,把旋轉與不旋轉一事交還給字型決定。
瀏覽器預設的 vert 和 vrt2 為關閉,不過在開啟之後,若該字符同時有 vert 和 vrt2 時,會優先使用 vrt2。
.class {
-moz-font-feature-settings: "vert";
-webkit-font-feature-settings: "vert";
font-feature-settings: "vert";
}