UFO和FontTools之间的桥梁。
项目描述
ufo2ft
ufo2ft(“UFO到FontTools”)是ufo2fdk的分支,其目标是生成从UFOs到OpenType字体的二进制文件,而不依赖于FDK。
该库提供两个函数,compileOTF 和 compileTTF,它们的工作方式完全相同
from defcon import Font
from ufo2ft import compileOTF
ufo = Font('MyFont-Regular.ufo')
otf = compileOTF(ufo)
otf.save('MyFont-Regular.otf')
在大多数情况下,ufo2ft的行为应与ufo2fdk相同,其文档保留在下面(并希望仍然准确)。
命名数据
与任何OpenType编译器一样,您必须将字体命名数据设置为一个特定的标准,以便正确设置命名。在ufo2fdk中,对于简单字体,您可以在font.info对象中设置两个命名属性。
familyName: 您字族的名字。例如,“我的加拉蒙德”。
styleName: 此特定字体的风格名称。例如,“显示轻粗斜体”
ufo2fdk将根据这两个字段创建所有其他命名数据。如果您想使用完全自动化的命名系统,应将您的字体中的所有其他名称属性都设置为None。但是,如果您想在任何级别上覆盖自动化系统,您可以指定特定的命名属性,ufo2fdk将尊重您的设置。您不需要设置所有属性,只需设置您不想自动化的属性即可。例如,在“我的加拉蒙德”这个字族中,您有八个重量。将斜体映射到每个重量的罗马体将会很棒。为此,在单个罗马体和斜体中,您需要设置样式映射数据。这是通过styleMapFamilyName和styleMapStyleName属性完成的。在您的每个罗马体和斜体对中,您将这样做
My Garamond-Light.ufo
familyName = “我的加拉蒙德”
styleName = “Light”
styleMapFamilyName = “我的加拉蒙德显示轻”
styleMapStyleName = “regular”
My Garamond-Light Italic.ufo
familyName = “我的加拉蒙德”
styleName = “Display Light Italic”
styleMapFamilyName = “我的加拉蒙德显示轻”
styleMapStyleName = “italic”
My Garamond-Book.ufo
familyName = “我的加拉蒙德”
styleName = “Book”
styleMapFamilyName = “我的加拉蒙德显示书”
styleMapStyleName = “regular”
My Garamond-Book Italic.ufo
familyName = “我的加拉蒙德”
styleName = “Display Book Italic”
styleMapFamilyName = “我的加拉蒙德显示书”
styleMapStyleName = “italic”
等等。
此外,如果您在字体特征的表格定义中定义了任何命名数据或任何数据,这些数据将被尊重。
特征生成
如果您的字体特征不包含kerning/mark/mkmk特征,ufo2ft将根据您的字体kerning/anchor数据创建它们。
除了Adobe OpenType特征文件之外,ufo2ft还支持MTI/Monotype格式。例如,此格式中的GPOS表将存储在UFO中的data/com.github.googlei18n.ufo2ft.mtiFeatures/GPOS.mti。
后备
大多数后备选项具有静态值。要查看这些值的设置,请查看源代码中的fontInfoData.py。
在某些情况下,后备值是从info对象中的其他数据动态生成的。这些通过函数内部处理。
Merging TTX
如果UFO数据目录中有一个包含TTX文件的com.github.fonttools.ttx文件夹,这些文件以.ttx结尾,这些文件将在生成的字体中合并。索引TTX(使用ttx -s生成)是不必要的。
彩色字体
ufo2ft支持构建COLR和CPAL表。
如果字体库中有com.github.googlei18n.ufo2ft.colorPalettes键,以及在字体或任何字形库中有com.github.googlei18n.ufo2ft.colorLayerMapping键,那么ufo2ft将从颜色调色板构建CPAL表,并从颜色层构建COLR表。
colorPalettes是一个调色板数组,每个调色板是一个颜色数组,每个颜色是一个表示RGBA颜色的浮点数数组。例如
<key>com.github.googlei18n.ufo2ft.colorPalettes</key>
<array>
<array>
<array>
<real>0.26</real>
<real>0.0</real>
<real>0.23</real>
<real>1.0</real>
</array>
<array>
<real>0.86</real>
<real>0.73</real>
<real>0.28</real>
<real>1.0</real>
</array>
</array>
</array>
colorLayerMapping是一个颜色层数组,每个颜色层是一个层名和调色板颜色索引数组。它是一个按字形键,但如果在字体库中存在,则将用于所有缺少它的字形。例如
<key>com.github.googlei18n.ufo2ft.colorLayerMapping</key>
<array>
<array>
<string>color.1</string>
<integer>1</integer>
</array>
<array>
<string>color.2</string>
<integer>0</integer>
</array>
</array>
如果存在此密钥,ufo2ft 将将颜色图层复制到单独的符号中,并设置 COLR 表。
或者,如果颜色图层已经是单独的 UFO 符号,可以使用 com.github.googlei18n.ufo2ft.colorLayers 字体库密钥。它使用基于基符号的表,值是一个颜色图层数组,每个颜色图层是一个包含符号名称和调色板颜色索引的数组。例如
<key>com.github.googlei18n.ufo2ft.colorLayers</key>
<dict>
<key>alef-ar</key>
<array>
<array>
<string>alef-ar.color0</string>
<integer>2</integer>
</array>
</array>
<key>alefHamzaabove-ar</key>
<array>
<array>
<string>alefHamzaabove-ar.color0</string>
<integer>1</integer>
</array>
<array>
<string>alefHamzaabove-ar.color1</string>
<integer>2</integer>
</array>
</array>
<dict>
设置说明
如果您是从源安装 ufo2ft,请注意,requirements.txt 中的严格依赖版本是用于测试的,有关更宽松的依赖要求,请参阅 setup.py 的 install_requires 和 extras_requires。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
构建分布
ufo2ft-3.3.0.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 970e662dc570d4d153d5cfc039c332a366bc6863b2c451be64053a1a09ecb24a |
|
MD5 | 28ed6d2c328cf5ed8dee8b0032bf93b1 |
|
BLAKE2b-256 | aa50cedac80c57d3e334377aa6a3ba0e5a8cf94e2c3cdca14807192bbfd3cded |
ufo2ft-3.3.0-py2.py3-none-any.whl的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | a2574ace489f5f5f237f7a215cedc89dffb9fa2e8c517f9f5877552e87f03cad |
|
MD5 | 2406701c4b36069a46662a91eeb321aa |
|
BLAKE2b-256 | 30e002f98a46e7662410f5c15427aec7bde8e3929816ddf6a050c28d0d355bd9 |