Copying kerning from uppercase to lowercase

I have created an uppercase only font.
In order to have the uppercase letter coming out when typing in lowercase, I have linked them to the uppercase usng this techinque:

  1. Go to the Font tab.
  2. Select a-z.
  3. Delete them by hitting Cmd-Delete. Confirm the dialog.
  4. Choose: Font > Add Glyphs (Cmd-Shift-G)
  5. In the appearing dialog paste this:
    A=a B=b C=c D=d E=e F=f G=g H=h I=i J=j K=k L=l M=m N=n O=o P=p Q=q R=r S=s T=t U=u V=v W=w X=x Y=y Z=z
  6. Confirm by clicking OK.

It works great, BUT it does not copy the kerning from the uppercase.

Is there a way to copy the kerning from the uppercase set to the lowercase?

Yes it does. Make sure you have your kerning groups set. What you describe in Step 5 should also copy the kerning groups. In case you havenā€™t set your groups yet, simply run the Set kerning groups script from https://github.com/schriftgestalt/Glyphs-Scripts and compress kerning via the gear menu in Window > Kerning.

Thanks! I had a few kerning groups set (and locked) and those were not copied over.

Not sure what to try next.

Basically I want to avoid having the font change in when typing characters (in Photoshop, Illustratorā€¦) that are not in the font set. If there is a way to block typing character that are not in the set, or make it default to uppercase then Iā€™d love to hear suggestions.

This is not something you can do in the font.

You can call all app developers and ask them to change the behaviour of the text input in their apps. But you would have to give them a pretty good reason why they should. My guess is that ā€˜because I want itā€™ will not do in most cases. :slight_smile:

Well, then I need to find a way to copy the kerning which is not working.

Iā€™ll keep trying.

Do all the letters need to have a kerning group assigned?

I just uploaded a script that makes a unicase font

1 Like
You do not need to copy kerning. Just make sure /A and /a are both in the same kerning group.

Do you understand what group kerning is? Have you read this: http://www.glyphsapp.com/tutorials/kerning

Yes. Just select them all and run Set Kerning Groups.

Or experiment with the Unicase script, which creates all the glyph copies for you.

The script worked well and set the kerning groups.

Creating the glyphs using this A=a B=b C=c D=d E=e F=f G=g H=h I=i J=j K=k L=l M=m N=n O=o P=p Q=q R=r S=s T=t U=u V=v W=w X=x Y=y Z=z didnā€™t copy the kerning groups along.

So since I was running out of time, I had to find an alternate solution. I created empty lowercase and copied the uppercase manually, and assigned the kerning group manually.

That did the trick!

You do A=a B=b etc., and THEN you run the Set Kerning Groups script.

and after you run the Set Kerning Groups script, you need to run the compress kerning command in the kerning window.

Okā€¦ I think I got the order mixed up. Iā€™ll give it another try!

Thanks for your help!

Hello,
I ran the script to copy the kerning (after A=a etc.) but got this error. Is there something wrong on my end?

*** Start Update Key Glyphs ***

B > H B
R > H R
I > H H
M > M M
space > space space
N > H H
A > A A
R > H R
R > H R
O > O O
w > V V
Traceback (most recent call last):
File ā€œā€, line 985, in
File ā€œā€, line 971, in main
File ā€œā€, line 887, in updateKeyGlyphsForSelected
AttributeError: ā€˜objc.native_selectorā€™ object has no attribute ā€˜nameā€™

there is a small problem with the script. Please run it from the font view for now, then it should be find.

Thanks @GeorgSeifert, that did the trick.