自製偽直排字型

這篇文章主要是介紹如何比較快速地把一個字型轉換成偽直排的字型。

之前已經有很多文章在介紹了,但大都是在討論怎麼利用 fontforge 這套軟體,一個個手動去改字型的轉向。目前這邊收集到的文章有:

但要一個個選字元再來做轉換太累人了。前一陣子看到有人提供了一個 script,可以利用 fontforge 程式中的 python library 直接做轉換。雖然目前還有一點小問題(有些標點符號沒有正常旋轉成功),但是已經可以省下九成以上的時間。只要跑個 script 後,再進 fontforge 手動調整兩三個標點符號就行。如果覺得兩三個標點符號無傷大雅的話,直接拿來用也是可以的。

轉換的 script 在:

裡面有一個 VerticalOrientation.txt 的文件,定義了在旋轉字元時,有哪些字元要旋轉;是要以中間為圓心旋轉,或是要轉完靠右上,左下,等不同的差別。有些中文的標點符號會不大正確,可以在這邊試著去做一些調整。

把上面的 repo 抓下來,改一改 VerticalOrientation.txt 後,在 MacOS 上先裝好 FontForge,然後執行下面的指令:

/Applications/FontForge.app/Contents/MacOS/FFPython main.py ./input.ttf ./output.ttf

應該就可以產生一個轉了 90 度的字體,馬上就可以拿來試試效果,再做細步調整。

如果有些標點符號沒有轉換成功的話,可以再進到 fontforge,依照上面分站的第一篇 偽直排:直書控的救星 裡頭的作法轉換。通常只需要再手動轉兩三個符號,不用兩三分鐘就可以完成。下面有比較常會出錯的字元列表。

from: https://github.com/dpublishing/epub3guide/blob/master/tdpf-epub3guide.md

--

--

Daniel Kao
電子書閱讀器使用心得及技巧分享

2023 年新書出版! Android 開源專案「真」實戰啟航:瀏覽器 App EinkBro 開發者帶你逐步從 UI 設計、UX 提升到多功能實現秘技全解析