'Fontforge Scripting how to add ligatures for a glyph
I'm making a font with scripting on Fontforge. Everything goes well, but I have this problem I don't know how to specify for a selected glyph that if two other glyphs came simultaneously show the selected glyph. I have already made the Lookuptable and the subtable for that but I don't know the function that would define some ligatures for a specified glyph. Here is the code for making table and subtable for adding ligatures to a glyph.
AddLookup("Ligatures","GSUB_ligature",9,[["rlig",[["arab",["dflt"]]]]])
AddLookupSubtable("Ligatures","Ligatureshi")
Solution 1:[1]
You need to specify the Ligature substitution using a tuple of existing Glyph names.
A contrived example:
#!/usr/bin/env python3
import fontforge
# load your font, etc…
ligature_name = 'f_l'
ligature_tuple = ('f', 'l')
font.addLookup('ligatures','gsub_ligature', (),[['rlig',[['arab',['dflt']]]]])
font.addLookupSubtable('ligatures', 'ligatureshi')
glyph = font.createChar(-1, ligature_name)
glyph.addPosSub('ligatureshi', ligature_tuple)
Solution 2:[2]
After you've added the lookup & subtable, do this:
Select("?")
AddPosSub("LigatureSubtableName", "f l")
The above FontForge script will add a fl ligature.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Fredrick Brennan |
| Solution 2 | Arthaey |
