Sitemap
汚音屋 × UJAM

汚穢不堪。

Press enter or click to view image in full size

蘋方移植

4 min readMay 29, 2017

--

請注意,修改字體是侵犯版權的行爲。

解開 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

Press enter or click to view image in full size

這個過程也會一併將 PingFang.ttc 內包含的 18 個「用戶無法單獨使用」、「專門由系統拿來用以顯示介面文字用的」(.PingFang 字型其中的一個解出來。解出來的 .PingFang 字型檔名是 PSNameUndefined.otf。因爲派不上用場,所以直接把 PSNameUndefined.otf 刪掉即可。

Press enter or click to view image in full size

刪掉之後,得到 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,參閱詳情):

Press enter or click to view image in full size

本文不詳細介紹腳本的工作流程。若有興趣瞭解,請參閱

這個過程會產生 18 個 ttx 檔(已完成此過程,可以刪掉)和 18 個檔名帶有「#1」的新生成的蘋方字型檔。

腳本並不會改動原先的檔案,因此衹有檔名帶有「#1」的蘋方字型檔,才是與 Windows 和 Android 相容的字型檔。

原始檔案與 Windows 不相容
Press enter or click to view image in full size
處理過的檔名帶「#1」的字型檔得以在 Windows 上使用

--

--

Responses (2)