mirror of
https://github.com/rsms/inter.git
synced 2024-11-23 11:43:47 +03:00
adds Glyphs script for fixing up variant glyphs
This commit is contained in:
parent
90dfae16d9
commit
9286128819
55
misc/rf-scripts/fixup-variant.py
Normal file
55
misc/rf-scripts/fixup-variant.py
Normal file
@ -0,0 +1,55 @@
|
||||
# Helper for making variants of a glyph.
|
||||
#
|
||||
# e.g. we have 10 glyphs based on "I" and we now want to
|
||||
# create an alternate "I" called "I.1".
|
||||
#
|
||||
# 1. We first make our I.1 manually
|
||||
# 2. Next we generate all other glyphs:
|
||||
# Idieresisacute=Idieresisacute.1
|
||||
# Istroke=Istroke.1
|
||||
# Itildebelow=Itildebelow.1
|
||||
# Igrave=Igrave.1
|
||||
# Iacute=Iacute.1
|
||||
# Icircumflex=Icircumflex.1
|
||||
# Itilde=Itilde.1
|
||||
# Imacron=Imacron.1
|
||||
# Ibreve=Ibreve.1
|
||||
# Iogonek=Iogonek.1
|
||||
# Which we paset into the "create glyphs" window
|
||||
# 3. We now have 10 new glyphs.
|
||||
# 4. Select all those new glyphs
|
||||
# 5. Open the macro window
|
||||
# 6. Paste this script and modify `prevcn` and `newcn`
|
||||
# 7. Run it
|
||||
#
|
||||
prevcn = "I" # component to find and replace
|
||||
newcn = "I.1" # replacement component
|
||||
|
||||
font = Glyphs.font
|
||||
font.disableUpdateInterface()
|
||||
try:
|
||||
for layer in font.selectedLayers:
|
||||
g = None
|
||||
if isinstance(layer, GSGlyph):
|
||||
g = layer
|
||||
else:
|
||||
g = layer.parent
|
||||
print(g)
|
||||
g.beginUndo()
|
||||
try:
|
||||
for master in font.masters:
|
||||
layer = g.layers[master.id]
|
||||
print(layer)
|
||||
if len(layer.components) != 1:
|
||||
print("not a single component %s" % layer)
|
||||
continue
|
||||
layer.components[0].decompose()
|
||||
for c in layer.components:
|
||||
if c.name == prevcn:
|
||||
print("replace %s with %s" % (prevcn, newcn))
|
||||
c.name = newcn
|
||||
finally:
|
||||
g.endUndo()
|
||||
finally:
|
||||
font.enableUpdateInterface()
|
||||
|
Loading…
Reference in New Issue
Block a user