在 macOS 使用 FontForge

由於新的 macOS 的權限設定較嚴格,造成 FontForge 的執行檔直接執行後,無法直接存取 Documents 資料夾下的檔案。解法是可以直接執行 FontForget app 裡的 fontforge 執行就可以了。

Step 1:下載 FontForge app 後,先移動到 Applications 目錄裡,方便之後執行。

Step 2:在 FontForge app 按右鍵選開啟(Open),這個動需要做2次,第一次只會顯示「取消」和「移到垃圾桶」2個選項,第二次的開啟,才會有 「Open」的選項可以使用。

Step 3:在 FontForge App 按右鍵,選擇「Show Package Contents」後,再去點2下 “Contents” – “MacOS” 目錄下的 FontForge 執行檔,透過這個方式開啟 FontForge 也可以避開權限的檢查,正常執行 FontForge 的所有功能。


進階使用FontForge + Python

如果你想透過 FontForge 的執行檔執行與 python 相關的程式,由於 2020-06-30 後的版本打包的關係,python 3.8 無法使用外部共用的版本,會顯示外部的 modules 不存在,錯誤訊息:

from PIL import Image
ModuleNotFoundError: No module named 'PIL'

解法,請先找出你的系統裡 python package 的路徑,再把 site-packages 複製一份到 FontForge 的目錄下,例如:

cp -r /usr/local/Cellar/[email protected]/3.9.0_2/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/* /Applications/FontForge.app/Contents/Resources/opt/local/lib/python3.9/site-packages

需要手動把你 python site-packages 複製一份的 FontForge app 裡後,就可以解決 ModuleNotFoundError 的問題。

由於每個人的版本可能都不同,可以先使用下面的指令來看電腦裡有那些版本可以使用:

ll /usr/local/Cellar/python*

說明:目前 2020-11月,FontForge 所使用的python 是 3.9版,也許之後會再改版,上面的指令,需要先使用下面指令來看看 FontForge 所使用的Python 版本:

p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000} span.s1 {font-variant-ligatures: no-common-ligatures}
ll /Applications/FontForge.app/Contents/Resources/opt/local/lib/

透過指令開啟 FontForge

使用圖形介面操作字型相關的事情是很方便,但比較慢和花時間,大多數 FontForge 的操作都可以改用指令(或批次檔)的腳本來完成,某些情況下,透過指令來進行字體檔案的操作,會更有彈性和效率。

要在指令行裡執行 fontforge 可以執行:

/Applications/FontForge.app/Contents/Resources/opt/local/bin/fontforge

但是每次都要打這麼長,很麻煩,如果想透過執行 ff 2個單字,就去開啟某一個字體檔,可以先產生 ff 的文字檔,內容如下:

#!/bin/bash
/Applications/FontForge.app/Contents/Resources/opt/local/bin/fontforge "${1}" ${2} ${3} ${4} ${5} ${6} ${7} ${8} ${9}

透過下面指令讓 ff 檔案變成可以執行 (windows 平台可以使用.bat, 即可執行):

 chmod +x ff 

ff 檔案可以執行後,再搬到 path 上,讓所有的路徑下都可以隨時存取:

mv ff /usr/local/bin/

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *