DarkNode

Life, the Universe and Everything

Font­Tools 安装与使用简明指南

本文发表于:
最后修改于:
分类:font
合计信息量:4.85kb

相关说明

Font­Tools 是一套以 ttx 为核心的工具集,用于处理与字体编辑有关的各种问题,程序用 Python 编写完成,代码开源,具有良好的跨平台性。Font­Tools 由以下 4 个程序组成:

Font­Tools 原本是托管在 Source­forge 上的项目,由于原项目长期停滞,Be­hdad 在 Github 上 fork 并继续进行开发。由于 Font­Tools 基于 Python 写成,在安装 Font­Tools 之前需要首先安装 Python。

安装 Python

Linux 与 OSX 用户系统中已预先安装了 Python,可以跳过此步骤。

Win­dows 用户首先需要从 Down­loads 界面下载 Python 2.7 并安装,在 Cus­tomize Python 这一安装步骤中点击最后的 Add python.exe to Path 这一选项,并选择 Will be in­stalled on lo­cal hard drive

安装 Font­Tools

OS X 用户推荐使用 Home­brew 直接完成安装:

$ brew in­stall font­tools

Win­dows、Linux、OS X 用户也可从 Re­leases 页面 下载 Font­Tools 最新版本,解压缩,随后执行命令进行安装:

$ python setup.py in­stall

打包为可独立运行的 exe 文件

此步骤将生成一个可独立运行的 ttx.exe,pyft­merge.exe,pyft­sub­set.exe。

Win­dows 用户需要首先安装 Python 2.7,py2exe,从 Re­leases 页面 下载 Font­Tools,解压缩,随后在 Setup.py 的倒数第二行,**clas­si­fiers 的上方加入:

op­tions = {'py2exe': {'bun­dle_files': 2, 'com­pressed': True}},
con­sole = [{'script':'Tools/ttx'}, {'script':'Tools/pyft­merge'}, {'script':'Tools/pyft­sub­set'}],

随后运行:

$ python setup.py py2exe

即可在 dist 目录下找到生成的文件,其中 ttx.exe,pyft­merge.exe,pyft­sub­set.exe,python27.dll,li­brary.zip 这五个文件需要保留,其他文件可以删除。

字体基本知识

一个字体由数个表(ta­ble)构成,字体的信息储存在表中。一个最基本的字体文件一定会包含以下的表:

使用 True­Type 曲线绘制的字体会包含如下的表:

使用 Post­Script 曲线绘制的字体会包含如下的表:

使用 SVG 曲线绘制的字体会包含如下的表:

使用 Bitmap 图形构成的字体会包含如下的表:

包含高级书法特性的字体会包含如下的表:

包含其他特性的字体会包含如下的表:

对字体的修改基本上是围绕着最上方的基本表进行的,如果要修改字符形态等才需要用到之后的表。

ttx 使用说明

ttx 是 Font­Tools 的核心工具,用于将字体转换为 xml 文件,或者将 xml 文件转换回字体。ttx 所产生的 xml 文件的后缀名是 ttx,可以用各种文档编辑器打开进行编辑。

ttx 的基本用法是这样的:

$ ttx font.ttf
$ ttx font.ttx

前者将字体全部的表转换为 ttx 文件。后者则将 ttx 文件转换回字体文件。

ttx 可以加入一些参数使用,常见的参数包括以下一些:

$ ttx -l font.ttf

-l 参数用于显示字体包含哪些表。

$ ttx -t name font.ttf

-t 参数用于将字体中的 name 表转换为 ttx 文件。

$ ttx -b -m font.ttf font.ttx

-b 参数用于指定合并时不重新计算字框参数而是直接使用原来的参数。 -m 参数用于将只包含部分表的 ttx 文件合并到原有的字体文件中。

pyft­merge 使用说明

目前 pyft­merge 的开发还停留在早期阶段,使用如下命令即可合并字体:

$ pyft­merge font1.otf font2.otf

其配置选项与具体实现皆不明确,使用需谨慎。

pyft­sub­set 使用说明

pyft­sub­set 可提取一个字体的部分字符,产生一个只由它们组成的新字体。通过这一子集化技术,可有效缩小字体文件的体积,便于网络传输。

pyft­sub­set 的基本用法是这样的:

$ pyft­sub­set font.otf --text="汉字"

--text 选项用于指定需要保留的字符

--text-file 选项用于指定一个包含需要保留的字符的 txt 文档

--out­put-file 选项用于指定输出文件的保存位置