首页 > 解决方案 > Fontforge python:添加字距调整类

问题描述

我已经尝试了太多时间来使用 fontforge 脚本做这样的事情:*kern,值为 400(正)除“空格”后跟“s”之外的任何字形。

我怎么做?

这是通过界面完成的方式:

gif 示例

标签: pythonfontsscriptingfontforge

解决方案


我最终手动将每个字形定位到下一个字形:

这是我的最终代码,它并没有完全按照我在问题中的要求做,但它可能对人们遇到这个问题有所帮助。

def add_kerning(font):
    s_index = svg_map.index("s")

    offsets = [0] * len(svg_map) ** 2
    for index in range(len(svg_map)):
        offsets[index + len(svg_map) * index] = 400

    for index in range(len(svg_map)):
        offsets[index * len(svg_map) + s_index] = 400

    offsets_tuple = tuple(offsets)

    font.addLookup("kern", "gpos_pair", None, [["kern", [["latn", ["dflt"]]]]])
    font.addKerningClass("kern", "kern-1", tuple(svg_map), tuple(svg_map), tuple(offsets_tuple))

推荐阅读