用户文档和开发人员文档可在阅读文档中获取。
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埃斯法博德,贝纳姆·埃斯法博德,汉内斯·法米拉,萨姆·菲什曼,马特·方丹,藤隆明,罗伯·哈格曼斯,雅尼斯·哈拉兰波斯,格雷格·希区柯克,杰里米·霍纳斯,哈立德·霍斯尼,约翰·赫德森,丹尼斯·莫约戈·雅奎,杰克·詹森,汤姆·卡文斯基,延斯·库提莱克,安托万·莱卡,沃纳·莱姆伯格,塔尔莱明、彼得·洛夫廷、科西莫·卢波、奥利·梅尔、中村雅也, 戴夫·奥普斯塔德, 劳伦斯·潘尼, 鲁兹贝·普尔纳德, 加勒特·里格, 里德·罗伯茨, 科林·罗弗斯, 吉多·范罗森, Just van Rossum, 安德烈亚斯·赛德尔, 格奥尔格·塞弗特, 克里斯·辛普金斯, 米格尔·苏萨, Adam Twardoch, 阿德里安·泰塔, 维塔利·沃尔科夫,保罗·怀斯.
版权所有 (c) 2000 BeOpen.com。版权所有。
版权所有 (c) 1995-2001 Corporation for National Research Initiatives。版权所有。
版权所有 (c) 1991-1995 Stichting 数学中心,阿姆斯特丹。版权所有。
玩得开心!