Kerning not updating in Hebrew font

I have two glyphs Ayin + Tav that I’m trying to change the kerning but it’s not updating in InDesign. Can someone help me with this please.

  • Font is exporting directly into InDesign font folder
  • Font updates when I change the shape of the font
  • The kerning set lock is unlocked
  • I’ve set the kerning to an extreme -254 which shows that it’s not updating.

You need to set the writing direction to LTR in the edit view before you start kerning. There are some scripts (e.g. in the mekkablue repo) that can convert existing kerning from the LTR list to RTL.

Hi Georg - thanks for the quick reply. How do I set the writing direction to RTL?

Screen Shot 2021-06-24 at 14.36.34

oh I found it?

In the bottom right of the window is a control (just next to the zoom buttons).

1 Like

Hi Georg - do you know which Mekkablue script is the correct one? I was successful in installing the Mekkablue scripts.

Can you explain how I can convert my LTR to RTL Kerning? I tried the Convert RTL Kerning from Glyphs 2 to 3 but it’s not doing anything - I don’t think that’s the correct script…

Thank you

That is the correct one. If it is not working, you should see output in Window > Macro Panel.

Hi @mekkablue- this is what it output in the Macro Panel:

Traceback (most recent call last):
File “runMacroFile”, line 1
ModuleNotFoundError: No module named ‘objc’
Traceback (most recent call last):
File “NULL”, line 1
NameError: name ‘os’ is not defined
Traceback (most recent call last):
File “Convert RTL Kerning from Glyphs 2 to 3.py”, line 7
from GlyphsApp import objcObject, RTL
File “GlyphsApp/GlyphsApp/init.py”, line 5
ModuleNotFoundError: No module named ‘objc’

Can you:

  • uninstall and reinstall all modules in Window > Plugin Manager > Modules
  • restart your Mac
  • uninstall and reinstall the mekkablue scripts in Window > Plugin Manager > Scripts
  • hold down the Option key and choose Script > Reload Scripts

Then try again.

Hi - I did all of these things and here is what it outputted:

Traceback (most recent call last):
File “runMacroFile”, line 1
ModuleNotFoundError: No module named ‘objc’
Traceback (most recent call last):
File “NULL”, line 1
NameError: name ‘os’ is not defined
Traceback (most recent call last):
File “Convert RTL Kerning from Glyphs 2 to 3.py”, line 7
from GlyphsApp import objcObject, RTL
File “GlyphsApp/GlyphsApp/init.py”, line 5
ModuleNotFoundError: No module named ‘objc’

The python version you have selected in Preferences > Addons misses the pyobjc module. Either install it with pip or switch to the python installed by the plugin manager.

Thanks - something is working now… but not sure if it did anything…

this is the output in the bottom half of the Macro Window. Am I supposed to do something with this? Thanks.

:one: Convert RTL kerning from Glyphs 2 → 3:

:capital_abcd: Master: Light

:capital_abcd: Master: Black

:two: Switching kern classes of RTL glyphs:
↔ alef-hb :arrow_backward: alefhebrew :arrow_forward: alefhebrew
↔ alefpatah-hb :arrow_backward: None :arrow_forward: None
↔ alefqamats-hb :arrow_backward: None :arrow_forward: None
↔ alefdagesh-hb :arrow_backward: None :arrow_forward: None
↔ bet-hb :arrow_backward: bet-hb :arrow_forward: bet-hb
↔ betdagesh-hb :arrow_backward: bet-hb :arrow_forward: bet-hb
↔ gimel-hb :arrow_backward: gimel-hb :arrow_forward: gimel-hb
↔ gimeldagesh-hb :arrow_backward: gimel-hb :arrow_forward: gimel-hb
↔ dalet-hb :arrow_backward: dalet-hb :arrow_forward: dalet-hb
↔ daletdagesh-hb :arrow_backward: dalet-hb :arrow_forward: dalet-hb
↔ he-hb :arrow_backward: vav-hb :arrow_forward: het-hb
↔ hedagesh-hb :arrow_backward: vav-hb :arrow_forward: het-hb
↔ vav-hb :arrow_backward: vav-hb :arrow_forward: vav-hb
↔ vavdagesh-hb :arrow_backward: None :arrow_forward: vav-hb
↔ vavholam-hb :arrow_backward: None :arrow_forward: None
↔ zayin-hb :arrow_backward: zayin-hb :arrow_forward: zayin-hb
↔ zayindagesh-hb :arrow_backward: zayin-hb :arrow_forward: zayin-hb
↔ het-hb :arrow_backward: vav-hb :arrow_forward: None
↔ tet-hb :arrow_backward: tet-hb :arrow_forward: tet-hb
↔ tetdagesh-hb :arrow_backward: tet-hb :arrow_forward: tet-hb
↔ yod-hb :arrow_backward: yod-hb :arrow_forward: yod-hb
↔ yoddagesh-hb :arrow_backward: yod-hb :arrow_forward: yod-hb
↔ finalkaf-hb :arrow_backward: dalet-hb :arrow_forward: dalet-hb
↔ finalkafdagesh-hb :arrow_backward: dalet-hb :arrow_forward: dalet-hb
↔ kaf-hb :arrow_backward: kaf-hb :arrow_forward: kaf-hb
↔ kafdagesh-hb :arrow_backward: kaf-hb :arrow_forward: kaf-hb
↔ lamed-hb :arrow_backward: lamed-hb :arrow_forward: lamed-hb
↔ lameddagesh-hb :arrow_backward: lamed-hb :arrow_forward: lamed-hb
↔ finalmem-hb :arrow_backward: vav-hb :arrow_forward: het-hb
↔ mem-hb :arrow_backward: mem-hb :arrow_forward: het-hb
↔ memdagesh-hb :arrow_backward: mem-hb :arrow_forward: het-hb
↔ finalnun-hb :arrow_backward: vav-hb :arrow_forward: vav-hb
↔ nun-hb :arrow_backward: nun-hb :arrow_forward: het-hb
↔ nundagesh-hb :arrow_backward: nun-hb :arrow_forward: het-hb
↔ samekh-hb :arrow_backward: tet-hb :arrow_forward: tet-hb
↔ samekhdagesh-hb :arrow_backward: tet-hb :arrow_forward: tet-hb
↔ ayin-hb :arrow_backward: None :arrow_forward: None
↔ finalpe-hb :arrow_backward: None :arrow_forward: het-hb
↔ finalpedagesh-hb :arrow_backward: None :arrow_forward: None
↔ pe-hb :arrow_backward: pe-hb :arrow_forward: tet-hb
↔ pedagesh-hb :arrow_backward: pe-hb :arrow_forward: tet-hb
↔ finaltsadi-hb :arrow_backward: None :arrow_forward: None
↔ tsadi-hb :arrow_backward: tsadi-hb :arrow_forward: tsadi-hb
↔ tsadidagesh-hb :arrow_backward: tsadi-hb :arrow_forward: tsadi-hb
↔ qof-hb :arrow_backward: vav-hb :arrow_forward: lamed-hb
↔ qofdagesh-hb :arrow_backward: vav-hb :arrow_forward: lamed-hb
↔ resh-hb :arrow_backward: None :arrow_forward: het-hb
↔ reshdagesh-hb :arrow_backward: None :arrow_forward: None
↔ shin-hb :arrow_backward: shin-hb :arrow_forward: lamed-hb
↔ shinshindot-hb :arrow_backward: shin-hb :arrow_forward: lamed-hb
↔ shinsindot-hb :arrow_backward: shin-hb :arrow_forward: lamed-hb
↔ shindageshshindot-hb :arrow_backward: shin-hb :arrow_forward: lamed-hb
↔ shindageshsindot-hb :arrow_backward: shin-hb :arrow_forward: lamed-hb
↔ shindagesh-hb :arrow_backward: shin-hb :arrow_forward: lamed-hb
↔ tav-hb :arrow_backward: tav-hb :arrow_forward: het-hb
↔ tavdagesh-hb :arrow_backward: tav-hb :arrow_forward: het-hb
↔ yodyod-hb :arrow_backward: None :arrow_forward: None
↔ geresh-hb :arrow_backward: None :arrow_forward: None
↔ gershayim-hb :arrow_backward: None :arrow_forward: None
↔ maqaf-hb :arrow_backward: None :arrow_forward: None
↔ shindot-hb :arrow_backward: None :arrow_forward: None
↔ sheva-hb :arrow_backward: None :arrow_forward: None
↔ hatafsegol-hb :arrow_backward: None :arrow_forward: None
↔ hatafpatah-hb :arrow_backward: None :arrow_forward: None
↔ hatafqamats-hb :arrow_backward: None :arrow_forward: None
↔ hiriq-hb :arrow_backward: None :arrow_forward: None
↔ tsere-hb :arrow_backward: None :arrow_forward: None
↔ segol-hb :arrow_backward: None :arrow_forward: None
↔ patah-hb :arrow_backward: None :arrow_forward: None
↔ qamats-hb :arrow_backward: None :arrow_forward: None
↔ holam-hb :arrow_backward: None :arrow_forward: None
↔ holamhaser-hb :arrow_backward: None :arrow_forward: None
↔ qubuts-hb :arrow_backward: None :arrow_forward: None
↔ dagesh-hb :arrow_backward: None :arrow_forward: None
↔ sindot-hb :arrow_backward: None :arrow_forward: None

This is a report by the script. Just means everything is fine. It worked this time.