ayaka14732 / FanWunMing

A Simplified-Chinese-to-Traditional-Chinese font based on GenYoMin, which can handle the one-to-many problem | 繁媛明朝是基於源樣明體開發的簡轉繁字型,能處理一簡對多繁
SIL Open Font License 1.1
225 stars 12 forks source link

Feature request: 添加偽直排字體並替換標點 #15

Closed AlienKevin closed 3 years ago

AlienKevin commented 3 years ago

最近在Kindle上用繁媛明朝看簡體書,感覺效果很好。唯一遺憾的是Kindle和Kobo等E reader不支持轉換橫直排,現在只能load到calibre上手動修改CSS。還有就是雙引號、單引號,看繁體書的時候還是習慣用「」『』。 看到一個文章介紹了一種偽直排字體,通過把所有字型逆時針轉 90 度,用戶再把Kindle順時針轉 90 度,就變成跟直排一樣了。It will be great if繁媛明朝可以提供這樣一個直排版字體,同時用「」『』代替簡體的單雙引號,省去用opencc轉換再Calibre手動修改的繁瑣過程。

ayaka14732 commented 3 years ago

感謝建議!我先解決引號的問題,而將字型逆時針轉 90 度我還不會實現,留待以後解決

ayaka14732 commented 3 years ago

引號在 v1.006 版本已經解決

AlienKevin commented 3 years ago

我發現那個文章作者開發了幾個支援簡繁轉換的偽直排字體,他改作的是源流明體、花明蘭黑體和懷源黑體。我剛下載了源流明體的版本試了試,除了在Kindle paperwhite上要倒置來看,其他體驗還可以,不過不知道他用的是opencc還是其他轉換工具做GSUB。他有reference一篇旋轉字體的tutorial,我研究一下看看怎麼旋轉繁媛明朝。

AlienKevin commented 3 years ago

我用fontforge逆時針90度旋轉了所有CJK Unified Ideographs(4E00–9FFF),然後手動逆時針90度旋轉了「,」「:」「;」「?」「!」能湊合著用,但是有幾個明顯的問題:

  1. 「。」「,」「:」「;」位置散亂
  2. 在Kindle上「:」和「「」重疊
  3. 漢字「一」偏右

我把旋轉後的ttf字體文件傳到了GitHub上。

對於標點位置,我刻意對照了偽直排的源流明體,確保full-width和half-width的標點都調整到了相同的位置:

half-width標點對比(左:繁媛,右:源流) ascii_punctuations

full-width標點對比(左:繁媛,右:源流) full_width_punctuations

讓我百思不得其解的是,在macOS的TextEdit上測試發現標點根本不旋轉:

textedit

對比源流在TextEdit上的樣子: 截圖 2021-04-19 下午12 53 39

而在kindle上標點位置不在中心:

       

ayaka14732 commented 3 years ago

標點沒有旋轉,我想有可能是因為標點在不同 context 對應不同的字圖,同一個標點對應多個字圖,其中每個字圖都需要旋轉。標點的位置問題我也不知道怎樣解決。

AlienKevin commented 3 years ago

我後來仔細想了想,覺得偽直排在Kindle上有一些其他不可避免的問題,保留原來的橫排還是最合適的。像翻頁動作變成了點擊屏幕的上下,還有筆記和字典都是倒轉90的橫排,必須得把Kindle轉來轉去查閱,頗有不便。 不過這次嘗試讓我進一步見識了字體科技的強大,覺得可能有一天,所有人都可以無阻礙的理解對方的文字。用繁體的人可以照樣寫繁體字,用簡體的人可以通過字體轉化成簡體閱讀;用簡體的人可以照樣寫簡體字,用繁體的人可以通過像繁媛這樣的字體轉化成繁體閱讀。除了閱讀古文我認為仍然繁體更合適外,就不需要推廣什麼「識繁書簡」、「統合漢字」、「廢除繁/簡體」了。不過感覺opentype現有的GSUB功能局限比較多,最好可以支持結巴斷句,給不同年代設定不同的語料庫,甚至連接運轉機器學習的伺服器來轉換文本,保持字體不變,但語料庫可以實時更新。