蘋方移植
請注意,修改字體是侵犯版權的行爲。
解開 TTC 檔
使用 Adobe Font Development Kit for OpenType (AFDKO
) 的 Python 腳本 otc2otf.py
(你也可以僅下載這個腳本,需要事先安裝 Python 2)將 PingFang.ttc
(位於 macOS 的 /System/Library/Fonts/
內,需要 OS X 10.11 El Capitan 或更高版本的系統。請先將其拷貝至使用者目錄)這個 OpenType Collection 解開成一個個單字重的 OpenType 字型檔。
python otc2otf.py -w PingFang.ttc
這個過程也會一併將 PingFang.ttc
內包含的 18 個「用戶無法單獨使用」、「專門由系統拿來用以顯示介面文字用的」(註).PingFang
字型其中的一個解出來。解出來的 .PingFang
字型檔名是 PSNameUndefined.otf
。因爲派不上用場,所以直接把 PSNameUndefined.otf
刪掉即可。
刪掉之後,得到 18 個 OpenType 字型檔,分別爲「蘋方-簡/繁/港」的六個字重。
修改 CMap
表
如果你是 Linux 用家,你會發現:由上一步解出來的 18 個 OpenType 字型檔是得以被裝進系統裏面的。然而若是在 Windows 或是 Android 上使用,便會被系統認定爲「無效的字型檔」。
這是由於蘋方的 CMap
表僅有兩個 platformID="0"
的子表(Unicode 平台的 CMap
),卻缺少 platformID="3"
的子表(Windows 平台的 CMap
)而造成的。因而無法被 Windows 與 Android 識別。
不過由於「這兩組對應的編碼方式與順序完全相同」,所以有一個偷懶的辦法。我將其寫成腳本,僅需要在剛解開的 18 個字型檔的目錄下執行即可。
sh PingFang-CMap.sh
以下即是腳本。適用於 Linux/macOS,Windows 用家請直接複製腳本內容來執行(需事先安裝 FontTools,參閱詳情):
本文不詳細介紹腳本的工作流程。若有興趣瞭解,請參閱。
這個過程會產生 18 個 ttx
檔(已完成此過程,可以刪掉)和 18 個檔名帶有「#1」的新生成的蘋方字型檔。
腳本並不會改動原先的檔案,因此衹有檔名帶有「#1」的蘋方字型檔,才是與 Windows 和 Android 相容的字型檔。