diff options
author | Rasmus Andersson <rasmus@notion.se> | 2018-11-24 02:05:45 +0300 |
---|---|---|
committer | Rasmus Andersson <rasmus@notion.se> | 2018-11-24 02:05:45 +0300 |
commit | 9286128819fc76fccdde68eab7fdd137a41f8f68 (patch) | |
tree | f019d4a2b650a5a270e0388705dda71c08310a29 /misc/rf-scripts | |
parent | 90dfae16d93bf2164fa1d016068cde6e837d0db7 (diff) | |
download | inter-9286128819fc76fccdde68eab7fdd137a41f8f68.tar.xz |
adds Glyphs script for fixing up variant glyphs
Diffstat (limited to 'misc/rf-scripts')
-rw-r--r-- | misc/rf-scripts/fixup-variant.py | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/misc/rf-scripts/fixup-variant.py b/misc/rf-scripts/fixup-variant.py new file mode 100644 index 000000000..c2ac0f652 --- /dev/null +++ b/misc/rf-scripts/fixup-variant.py @@ -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() + |