使用者文件和開發人員文件可在閱讀文件中取得。
FontTools 需要 Python 3.8 或更高版本。我們嘗試遵循與 NumPy 相同的最低 Python 版本支援時間表(請參閱 NEP 29)。
該套件列在 Python 套件索引 (PyPI) 中,因此您可以使用 pip 安裝它:
pip install fonttools
如果您想為其開發做出貢獻,可以從 GitHub 複製儲存庫,以「可編輯」模式安裝套件並就地修改原始程式碼。我們建議使用 virtualenv 或 Python 3 venv 模組來建立虛擬環境。
# download the source code to 'fonttools' folder
git clone https://github.com/fonttools/fonttools.git
cd fonttools
# create new virtual environment called e.g. 'fonttools-venv', or anything you like
python -m virtualenv fonttools-venv
# source the `activate` shell script to enter the environment (Unix-like); to exit, just type `deactivate`
. fonttools-venv/bin/activate
# to activate the virtual environment in Windows `cmd.exe`, do
fonttools-venv S cripts a ctivate.bat
# install in 'editable' mode
pip install -e .
除了 Python 標準庫中包含的模組之外, fontTools
套件目前沒有(必需的)外部依賴項。然而,它的一些模組需要一些額外的依賴項,這是解鎖可選功能所必需的。 fonttools
PyPI 發行版還支援所謂的“extras”,即描述一組附加相依性的一組關鍵字,可以在透過 pip 安裝或指定需求時使用。例如:
pip install fonttools[ufo,lxml,woff,unicode]
此命令將安裝 fonttools,以及解鎖名為「ufo」的額外功能等所需的可選依賴項。
Lib/fontTools/misc/etree.py
此模組會匯出類似 ElementTree 的 API 用於讀取/寫入 XML 文件,並允許使用內建xml.etree
模組或 lxml 作為後端。無論何時存在,後者都是首選,因為它通常更快、更安全。
額外: lxml
Lib/fontTools/ufoLib
用於讀寫UFO原始檔的包;它需要:
pyfilesystem2
)檔案系統抽象層。enum
模組的向後移植(僅在 Python < 3.4 上需要)。額外: ufo
Lib/fontTools/ttLib/woff2.py
壓縮/解壓縮 WOFF 2.0 網頁字體的模組;它需要:
補充: woff
Lib/fontTools/ttLib/sfnt.py
為了更好地壓縮 WOFF 1.0 網頁字體,可以使用以下模組取代內建zlib
庫:
補充: woff
Lib/fontTools/unicode.py
為了在使用ttx
轉儲cmap
表時顯示 Unicode 字元名稱,我們使用標準庫中的unicodedata
模組。其中包含的版本因不同的 Python 版本而異。要使用最新的可用數據,您可以安裝:
unicodedata
向後移植更新到最新的 Unicode 版本 15.0。額外: unicode
Lib/fontTools/varLib/interpolatable.py
用於尋找不同主控之間錯誤輪廓/組件順序的模組。它需要以下套件之一才能解決所謂的“二分圖中的最小權重完美匹配問題”,或分配問題:
要將結果繪製為 PDF 或 HTML 格式,您還需要安裝:
額外: interpolatable
Lib/fontTools/varLib/plot.py
用於視覺化 DesignSpaceDocument 和產生的 VariationModel 的模組。
補充: plot
Lib/fontTools/misc/symfont.py
符號字體統計分析高階模組;它需要:
附加: symfont
Lib/fontTools/t1Lib.py
要在 Python 3 上取得 Macintosh PostScript Type 1 字型的檔案建立者和類型,您需要安裝以下模組,因為舊的MacOS
模組不再包含在 Mac Python 中:
額外: type1
Lib/fontTools/ttLib/removeOverlaps.py
透過合併重疊的輪廓和組件來簡化 TrueType 字形。
額外: pathops
Lib/fontTools/pens/cocoaPen.py
和Lib/fontTools/pens/quartzPen.py
使用 Cocoa NSBezierPath
或CGPath
繪製字形的筆需要:
Lib/fontTools/pens/qtPen.py
使用 Qt 的QPainterPath
繪製字形的筆需要:
Lib/fontTools/pens/reportLabPen.py
用筆將字形繪製為 PNG 影像,需要:
Lib/fontTools/pens/freetypePen.py
使用 FreeType 作為光柵影像繪製字形的筆,需要:
Lib/fontTools/ttLib/tables/otBase.py
使用Harfbuzz庫使用hb_repack
方法序列化GPOS/GSUB,需要:
額外: repacker
NEWS.rst
。為每個 PR 編寫一個變更日誌條目,用一兩個簡短的句子對其進行總結,以及 PR 和 PR 解決的相關問題的連結。不要輸入新標題,下一個命令將為您完成。pip install -r dev-requirements.txt
,然後從main
分支的提示執行python setup.py release
指令。預設情況下,這只會碰撞第三個或「補丁」數字,除非您傳遞--major
或--minor
分別碰撞第一個或第二個數字。這會改變套件版本字串,從NEWS.rst
中提取自最新版本以來的更改,並使用該文字建立帶註釋的 git 標籤(或簽署的 git 標籤,如果您傳遞--sign
選項並且您的git 和Github 帳戶是配置為使用 GPG 金鑰對提交進行簽署)。它還提交了一個額外的版本提升,為後續的開發週期開啟了主分支git push --follow-tags
將標籤推送到上游儲存庫。注意:它也可能會推送其他本地標籤,請小心。按字母順序排列:
阿施米茨、奧利維爾·貝爾滕、薩米亞克·布塔、埃里克·範·布洛克蘭、彼得·範·布洛克蘭、耶勒·博斯馬、薩沙·布勞爾、湯姆·拜勒、安東尼奧·卡維多尼、弗雷德里克·科菲爾、文森特·康納爾、大衛·科貝特、西蒙·科森斯、戴夫·克羅斯蘭、西蒙·丹尼爾斯、彼得·戴克斯、Behdad埃斯法博德,貝納姆·埃斯法博德,漢內斯·法米拉,薩姆·菲什曼,馬特·方丹,藤貴明,羅伯·哈格曼斯,雅尼斯·哈拉蘭波斯,格雷格·希區考克,傑里米·霍努斯,哈立德·霍斯尼,約翰·哈德森,丹尼斯·莫約戈·雅奎,傑克·詹森,湯姆·卡文斯基,延斯·庫蒂萊克,安托萬·萊卡維爾納·萊姆伯格、塔爾·萊明、彼得·洛夫廷、科西莫·盧波、奧利·梅爾、中村雅也、戴夫·奧普斯塔德、勞倫斯·彭尼、魯茲貝·普爾納德、加勒特·里格、里德·羅伯茨、科林·羅弗斯、吉多·範·羅蘇姆、賈斯特·範·羅森、安德烈亞斯·塞德爾、格奧爾格·塞弗特、克里斯·辛普金斯、米格爾·索薩、亞當·特瓦多克、阿德里安·泰塔、維塔利·沃爾科夫、保羅·懷斯。
版權所有 (c) 2000 BeOpen.com。版權所有。
版權所有 (c) 1995-2001 Corporation for National Research Initiatives。版權所有。
版權所有 (c) 1991-1995 Stichting 數學中心,阿姆斯特丹。版權所有。
玩得開心!