用于操作OpenType字体功能的Python库
fontFeatures的Python项目详细描述
#fontFeatures:Python库,用于操作OpenType字体功能
OpenType字体是使用特性“编程”的,这些特性通常是用Adobe的[feature file format](http://adobe-type-tools.github.io/afdko/OpenTypeFeatureFileSpecification.html)编写的。这就像一个计算机程序的源代码:它是一种用户友好,但对计算机不友好的方式来表示特性。在
在字体内部,这些特性是以高效的[内部格式](https://simoncozens.github.io/fonts-and-layout/features.html#how-features-are-stored)编译的。这就像计算机程序的二进制:计算机可以使用它,但它们不能用它做任何其他事情,人们也不能读它。在
这个库的目的是为以机器可操作的格式表示特性提供一个中间地带,类似于计算机程序员的抽象语法树。这样做是为了:
- 特性可以用结构化的人类可读的和机器可读的方式表示,类似于[Unified Font Object](http://unifiedfontobject.org/)格式的XML文件。在
- 特性可以更直接地由程序(例如字体编辑器)编写,而不是必须输出AFDKO特性文件格式。在
- 功能可以很容易地被程序操作-例如,来自两个文件的功能合并在一起,或者查找在语言之间移动。在
这与fontTool的feaLib有何不同?很高兴你问我。feaLib在Adobe特性文件格式和抽象语法树之间转换,抽象语法树表示特性文件的元素-不代表功能数据。AST仍然是“源等效的”。例如,当您以功能文件格式编写aalt功能时,您可能会包含类似于featuresalt的代码来包含来自其他功能的查找。但实际上的意思是一组查找。fontFeatures允许您操作含义,而不是描述。在
##组件
fontFeatures由以下组件组成:
- fontFeatures本身是字体内部不同布局操作的抽象表示。在
- <引用>字体特征.feaLib(作为mixin包含)在Adobe功能语法和fontFeatures表示之间进行转换。在
- <引用>字体特征.ttLib,它在OpenType二进制字体和fontFeatures表示之间进行转换。(目前仅部分实现了OTF->;fontFeatures;还没有fontFeatures->;OTF编译器。)
- <引用>字体特征.feeLib它解析一种新的可扩展格式,称为字体工程费。在
- <引用>字体特征.fontDameLib将FontDame文本文件转换为fontFeatures对象。在
以及以下实用程序:
- fee2fea:将费用文件转换为Adobe功能语法。在
- otf2fea:将OTF文件转换为adobefeatures语法。在
- txt2fea:将FontDame txt文件转换为adobefeatures语法。在
- mergeFee:获取现有字体,向其添加费用规则,然后再次将其写出。在
- 项目
标签: