macOS 10.12-14 華文黑體滅絕腳本正式問(wèn)世

目前可以說(shuō)我已經(jīng)找出了在所有版本的 macOS Sierra / High Sierra / Mojave 當(dāng)中「徹底讓華文黑體消失、且杜絕其被『Font Book.app』自動(dòng)安裝」的方法。自然,這清理過(guò)程是借由在開(kāi)機(jī)恢復(fù)模式下跑終端腳本來(lái)完成的。該腳本針對(duì)所有版本的 macOS 10.12-10.14 通用,無(wú)論單個(gè)字型檔案的 Asset 編號(hào)會(huì)怎樣隨著這兩個(gè)大版本的 macOS 各自的小版本更新而改變。

我只保證這個(gè)腳本對(duì)任何版本的 macOS Sierra / High Sierra / Mojave 系統(tǒng)無(wú)害:所有將該腳本放在其它 macOS 大版本當(dāng)中運(yùn)行導(dǎo)致的各種災(zāi)難作死結(jié)果都與我無(wú)關(guān)。

【免責(zé)聲明】macOS 10.13 有個(gè) Bug(可能 macOS 10.12 也有)會(huì)在某種程度上影響該腳本的有效性(目前證實(shí)該 Bug 沒(méi)能在 macOS 10.14 系統(tǒng)下重現(xiàn)):當(dāng) Font Book 停用某款A(yù)sset 字型之后、該 Asset 字型仍舊可以在某些非 Apple 的應(yīng)用當(dāng)中被讀取調(diào)用。典型的例子就是:在 FontBook 當(dāng)中停用了華文黑體的 Asset 字型分支之后、Chrome 和 FireFox 仍舊會(huì)在網(wǎng)頁(yè)請(qǐng)求「STHeiti」字型時(shí)讀取并顯示華文黑體。因此,我只保證這個(gè)腳本對(duì) macOS 10.14 的有效性。

步驟


首先,請(qǐng)?jiān)诋?dāng)前系統(tǒng)內(nèi)開(kāi)啟一個(gè)全新的終端機(jī)視窗、一次性順序執(zhí)行下述命令:

sudo su
nano /STHeitiButcher.sh

你會(huì)看到當(dāng)前終端機(jī)視窗變成了 NANO 編輯器,直接將下文復(fù)制到剪貼簿、摁 CMD+V 貼入 NANO 編輯器即可(想砍掉儷黑 Pro 等其它字型的話,文末有附加的腳本內(nèi)容供參考):

#!/bin/bash

cd "System"

# Remove "Heiti SC / TC" collection files (shipped since Snow Leopard) and their derivative definitions.
find . -name "STHeiti*" -type f -delete

# Remove STHeiti antiquities shipped with macOS Leopard.
find . -name "華文*黑*" -type f -delete
find . -name "STXihei*" -type f -delete

這時(shí)你需要摁 Ctrl+O 再摁回車(chē)鍵將內(nèi)容存檔,然后摁 Ctrl+X 離開(kāi) NANO 編輯器。

重新開(kāi)機(jī),聽(tīng)到開(kāi)機(jī)聲響之后、爭(zhēng)取在 Apple 圖示出現(xiàn)之前摁 CMD+R 進(jìn)入恢復(fù)模式。在恢復(fù)模式內(nèi)的終端機(jī)內(nèi)執(zhí)行「cd "/Volumes/Macintosh HD"」來(lái)將當(dāng)前目錄切換到你的系統(tǒng)卷宗根目錄。注意上文內(nèi)的「Macintosh HD」應(yīng)該改成你系統(tǒng)卷宗的實(shí)際名稱(chēng)(有中文的話、請(qǐng)自覺(jué)改成英文,我記得 macOS 恢復(fù)模式下的終端機(jī)對(duì)東亞語(yǔ)種的輸入輸出是個(gè)問(wèn)題)。

之后請(qǐng)執(zhí)行「ls」命令列舉當(dāng)前目錄下的資料。如果你看到「STHeitiButcher.sh」的話,恭喜你成功將當(dāng)前目錄切換到了系統(tǒng)卷宗根目錄下。請(qǐng)緊接著執(zhí)行「bash STHeitiButcher.sh」并在執(zhí)行完畢之后重新開(kāi)機(jī),世界終于清靜了。

另外,根據(jù)本人測(cè)試,在正式版 macOS 10.13 / 10.14 系統(tǒng)下,這招確實(shí)可以徹底撲殺「黑體-簡(jiǎn)/繁」(PostScript 名稱(chēng)為「STHeiti-SC/STHeiti-TC」),但系統(tǒng)卻會(huì)在每次訪問(wèn)新浪微博等讀取到「STHeiti」這個(gè) PostScript 名稱(chēng)時(shí)仍舊自動(dòng)安裝以該 PostScript 名稱(chēng)命名的「華文黑體」、導(dǎo)致相關(guān)網(wǎng)站訪問(wèn)時(shí)破相(詳情已經(jīng)在本文開(kāi)頭的免責(zé)聲明當(dāng)中提及了,至少這個(gè)問(wèn)題沒(méi)影響到 macOS 10.14 Mojave)。我在 FontBook.app 屢次手動(dòng)刪除之后、發(fā)現(xiàn)每次都會(huì)在之后不久就復(fù)發(fā)。目前的備選善后方案就是在這種情況下在 FontBook.app 內(nèi)將「華文黑體」停用(而非刪除)。這招對(duì) macOS 10.14 是有效的(但對(duì) macOS 10.13 無(wú)效)。

其它附加選項(xiàng)


本部分是對(duì)上文腳本正文內(nèi)容的增補(bǔ),請(qǐng)大家視自身需求來(lái)選用。
// 刪除 URW SIL 黑體:

find . -name "Hei.ttf*" -type f -delete
find . -name "SIL-Hei-Med-Jian.fontinfo" -type f -delete

【註】URW SIL 黑體是 macOS 9.x 當(dāng)中隨贈(zèng)的中文黑體、在 macOS Sierra 內(nèi)復(fù)活了,會(huì)讓超過(guò)九成的 Discuz! 論壇的討論串標(biāo)題顯示效果瞬間拖回城鄉(xiāng)結(jié)合部的水準(zhǔn)。

// 刪除儷黑 Pro 的方法(畢竟有些人嫌醜,且竊以為不如??方整潔):

find . -name "儷黑 Pro.ttf*" -type f -delete
find . -name "LiHeiPro.fontinfo" -type f -delete

// macOS 內(nèi)贈(zèng)的標(biāo)楷體是不包含簡(jiǎn)化字的,且在交換 MS Office 檔案時(shí)會(huì)出現(xiàn)相容性問(wèn)題:

find . -name "BiauKai.ttf*" -type f -delete
find . -name "DFKaiShu-SB-Estd-BF.fontinfo" -type f -delete

這樣就可以自己換上 Windows 版本的全字庫(kù)標(biāo)楷體了(或者第三方修正的版本)。

後話


這種事情是斷然不能指望 Apple 在華分社的相關(guān)本地化人士們的廉恥了。自己不親自動(dòng)手的話、永遠(yuǎn)都會(huì)被他們當(dāng)孫子。所以,這篇文章最終還是問(wèn)世了。

關(guān)于華文黑體被清理之后的系統(tǒng)相容性,macOS Sierra 開(kāi)始的 CoreText 擁有「字型馬甲」機(jī)制,可以在系統(tǒng)尚未安裝某個(gè)字型的情況下、使用其 metrics 參數(shù)配合當(dāng)前系統(tǒng)預(yù)設(shè)字型來(lái)顯示。這樣顯示出來(lái)的效果還不會(huì)走版(至少在 Safari 內(nèi)是如此),但不見(jiàn)得能應(yīng)對(duì)「不支持該機(jī)制的應(yīng)用」和「非 Apple 官方製作的字型馬甲定義檔案」的情形(macOS 10.14 Mojave 系統(tǒng)下暫時(shí)沒(méi)發(fā)現(xiàn)這個(gè)問(wèn)題)。我對(duì)此的備選方案就是「將蘋(píng)方 TTF 化之后、套上華文黑體各個(gè)檔案分別獨(dú)有的 metrics 參數(shù) + 字型名稱(chēng)表」。

額外好康


// 解決日文 macOS 介面語(yǔ)系下的當(dāng)前安裝的 iTunes 的介面字型與系統(tǒng)字型不統(tǒng)一的問(wèn)題:
(直接在當(dāng)前系統(tǒng)內(nèi)的終端機(jī)當(dāng)中執(zhí)行,無(wú)需進(jìn)入恢復(fù)模式)

sudo cp "/Applications/iTunes.app/Contents/Resources/English.lproj/TextStyles.plist" "/Applications/iTunes.app/Contents/Resources/Japanese.lproj/TextStyles.plist"

$ EOF.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容