Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 字母数字连字_Python_Fontforge - Fatal编程技术网

Python 字母数字连字

Python 字母数字连字,python,fontforge,Python,Fontforge,我正在使用fontforge创建一个带有连字的字体,其中一些使用数字。我可以让纯字母的连字很好地工作,但是,当我使用数字时,它会抛出一个错误 这是我目前掌握的代码: import fontforge font = fontforge.font() font.encoding = 'UnicodeFull' font.version = '1.0' font.weight = 'Regular' font.fontname = 'icon' font.familyname = 'icon' f

我正在使用fontforge创建一个带有连字的字体,其中一些使用数字。我可以让纯字母的连字很好地工作,但是,当我使用数字时,它会抛出一个错误

这是我目前掌握的代码:

import fontforge

font = fontforge.font()

font.encoding = 'UnicodeFull'
font.version = '1.0'
font.weight = 'Regular'
font.fontname = 'icon'
font.familyname = 'icon'
font.fullname = 'icon'
font.em = 1008
font.ascent = 864
font.descent = 144


# Set up ligatures
font.addLookup('liga', 'gsub_ligature', (), (('liga', (('latn', ('dflt')), )), ))
font.addLookupSubtable('liga', 'liga')


def createEmptyChar(font, char):
    glyph = font.createChar(ord(char)).glyphPen()
    glyph.moveTo((0, 0))
    glyph = None


# Empty all characters to remove gibberish...
for code in range(0, 256):
    createEmptyChar(font, chr(code))


# Name of ligature
name = str('commentsmultiple')

icon = font.createChar(-1, name)

icon.addPosSub("liga", tuple(name))

icon.importOutlines('fonts/icon/svg/e601_commentsmultiple128.svg')


font.generate('fonts/icon/icon.woff')
font.close()
但是,当我将字符串“commentsmultiple”更改为“commentsmultiple128”时,它会抛出一个错误:

查找子表包含未使用的标志符号1,使整个子表 无效的

其中“1”是字符串中的第一个数字。调用addPosSub时引发此错误


如何向连字添加数字?

元组需要包含要替换的字形的名称

liga = ('a','one', 'Delta')
icon.addPosSub("liga", liga)
您的glyph应该使用

数字必须是名称:

0 = zero
1 = one
2 = two
3 = three
4 = four
5 = five
6 = six
7 = seven
8 = eight
9 = nine