飞碟和Fonttools之间的桥梁。

ufo2ft的Python项目详细描述


Travis CI StatusAppveyor CI statusPyPI VersionCodecovJoin the chat at https://gitter.im/fonttools-dev/ufo2ft

ufo2ft

ufo2ft(“ufo到fonttools”)是 ufo2fdk目标是 从UFO生成OpenType字体二进制文件,而不依赖于FDK。

库提供两个函数,compileOTFcompileTTF, 其工作方式完全相同:

fromdefconimportFontfromufo2ftimportcompileOTFufo=Font('MyFont-Regular.ufo')otf=compileOTF(ufo)otf.save('MyFont-Regular.otf')

在大多数情况下,ufo2ft的行为应该与ufo2fdk的行为相匹配, 其文件保存在下面(希望仍然是准确的)。

命名数据

与任何opentype编译器一样,必须将字体命名数据设置为 正确设置命名的特殊标准。在ufo2fdk,你 可以在字体信息中设置two命名属性 简单字体对象:

  • 家庭名:你家庭的名字。例如,“我的加洛蒙”。
  • style name:此特定字体的样式名。例如, “显示灯斜体”

ufo2fdk将基于thse 2创建所有其他命名数据 领域。如果要使用全自动命名系统,则 字体中的其他名称属性应设置为None。然而, 如果要在任何级别覆盖自动化系统,可以 指定特定的命名属性,ufo2fdk将遵守 设置。您不必设置all的属性,只需设置 你不想被自动化。例如,在“我的加洛蒙”一家 你有八个体重。将斜体映射到 罗马人的体重。要做到这一点,在罗马人中 斜体,需要设置样式映射数据。这是通过 styleMapFamilyNamestyleMapStyleName属性。在每个 在您的罗马和斜体对中,您可以这样做:

my garamond light.ufo

  • familyname=“my garamond”
  • stylename=“light”
  • styleMapFamilyName=“我的Garamond显示灯”
  • stylemapstylename=“regular”

my garamond light italic.ufo

  • familyname=“my garamond”
  • stylename=“display light italic”
  • styleMapFamilyName=“我的Garamond显示灯”
  • stylemapstylename=“italic”

my garamond book.ufo

  • familyname=“my garamond”
  • stylename=“book”
  • styleMapFamilyName=“我的Garamond显示本”
  • stylemapstylename=“regular”

my garamond book italic.ufo

  • familyname=“my garamond”
  • stylename=“display book italic”
  • styleMapFamilyName=“我的Garamond显示本”
  • stylemapstylename=“italic”

等。

另外,如果您定义了任何命名数据,或者为其定义了任何数据 重要的是,在字体功能中的表定义中,数据将 感到荣幸。

特征生成

如果字体的功能不包含紧排/标记/mkmk功能, ufo2ft将根据字体的字距/定位数据创建它们。

除了 Adobe OpenType feature files, UFO2FT也支持 MTI/Monotype format。 例如,这种格式的gpos表将存储在 data/com.github.googlei18n.ufo2ft.mtiFeatures/GPOS.mti

回退

大多数回退都有静态值。看看这些是什么, 看看源代码中的fontInfoData.py

在某些情况下,回退值是从其他 信息对象中的数据。这些是通过函数内部处理的。

合并ttx

如果ufo数据目录有一个带ttx的com.github.fonttools.ttx文件夹 以.ttx结尾的文件,将在生成的字体中合并。 不需要索引ttx(使用ttx -s时生成)。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JAVAutil。整数java的扫描器键盘输入   java通知运行后立即崩溃   java如何在一个只能由类修改而不能由其实例修改的类中生成静态变量?   数据库Java字段猜测   返回值周围的java括号为什么?   java Android更新通讯录中的联系人   一个消费者正在读取数据   java是否可以通过编程方式为蓝牙配对设置pin?   java Spring引导和buildResponseEntity()   java为什么序列化可以在没有实现可序列化的情况下工作   Java同步无助于相互排斥   twitter Java Twitter4J未在推文下显示源标签   为什么Javasocket不支持中断处理?