2012-06-05 48 views
7

Estoy creando una fuente con scripts en Fontforge. Todo va bien, pero tengo este problema. No sé cómo especificar para un glifo seleccionado que si aparecen otros dos glifos simultáneamente, se muestre el glifo seleccionado. Ya hice el Lookuptable y la subtabla para eso, pero no conozco la función que definiría algunas ligaduras para un glifo específico. Aquí está el código para hacer tabla y subtabla para agregar ligaduras a un glifo.Fontforge Scripting cómo agregar ligaduras para un glifo

AddLookup("Ligatures","GSUB_ligature",9,[["rlig",[["arab",["dflt"]]]]]) 
AddLookupSubtable("Ligatures","Ligatureshi") 
+0

La pregunta se refiere a cómo agregar ligadas a una fuente utilizando un script, pero también es posible hacerlo en la interfaz GUI FontForge. No sé cómo hacer esto lo suficientemente bien como para agregar una respuesta completa, pero vaya a ** Elemento> Información de fuente> Búsquedas> GSUB **. Vea [esta respuesta] (http://stackoverflow.com/a/43315958/3681880) para saber cómo quitar las ligaduras. – Suragch

Respuesta

0

Después de agregar la subtabla de búsqueda &, hacer esto:

Select("fl") 
AddPosSub("LigatureSubtableName", "f l") 

Lo anterior FontForge script añadirá una ligadura fl.

+0

Hola @Arthaey, Esta línea de código que escribiste va a declarar algunas sustituciones en la tabla de sustitución que parece no mostrar "fl" cuando estoy escribiendo "f" y "l", así que supongo que necesito algo que pueda agregue información para "fl" en la tabla de ligaduras para convertir "f" y "l" en "fl" cuando aparezcan juntas. ¿Tiene alguna idea? o al menos has hecho esto antes? – Ehsan

4

Debe especificar la sustitución de ligadura utilizando una tupla de nombres de glifos existentes. Un ejemplo artificioso:

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)