Spacing between upper and lowercase

How does one go about adjusting the kerning on an uppercase letter so that it only applies when placed next to a lowercase. For ex. I have an uppercase P that looks fine next to other caps on the right side but there’s a gap whenever a lowercase letter follows it. I’m thinking kerning groups but I’m not sure how to go about it.

And while on the topic, is there a quick way to refresh the side bearings on all of the characters linked to the side bearings of one character? Another ex: all of my glyphs have side bearings of “o” but I changed side bearings of “o” and want it to apply to all w/o manually refreshing each one. I’ve tried update metrics but nothing seems to happen.

What you usually do is to do the spacing of each letter by looking at it when it is between two symmetric letters. So the uppercase are usually spaced by typing HHHPHHH. And make sure that the same shape has the same side bearing. So the left and right side of the H should be equal. And the left of the P is the same as the H.

That said, some combinations of letters need kerning. And P + lowercase is a typical candidate.

https://glyphsapp.com/tutorials/spacing
https://glyphsapp.com/tutorials/kerning

Update Metrics affects selected glyphs, so to update all, I select all first. Cmd-A then Ctrl-Cmd-M (or add Opt if you have multiple masters in the file). I find I often have to press update a couple of times in a row because I have nested references (e.g. the /d/ might reference the /o/, the /dcroat/ the /d/, etc.).

See the kerning tutorial for your first question.

1 Like

So there isn’t a way to kern a cap letter to all lowercase letters? I’m asking because, aside from the P most of my uppercase letters have odd right spacing with all of the lowercase letters, but when typing a word in all caps the spacing is fine.

Thank you

I usually do it the other way around. I space the uppercase to fit a following lowercase because this is the more frequent and more important case, and only kern where necessary.

For all-cap typesetting, that will likely be too tight. For this, you add a cpsp feature.

1 Like

If wanted to work in the opposite direction and space caps for other caps then add a feature for cap / lowercase spacing, is there something equivalent to a cpsp feature for this and how would I implement it? Although I offer upper and lower case for this particular font, all caps spacing is actually more important to me.

You can do that by adding a custom lookup to the kern feature:
Add a class Lowercase and set it to “Generate Feature automatically”.
Add a class Uppercase (if it is not there yet) and set it to “Generate Feature automatically”.
Then add a new feature and call it kern and add this code:

# Automatic Code End
pos @Uppercase @Lowercase -20;

And replace the -20 with the value you need.

But I never needed that for a design so I suspect you should be able to fix it by spacing. Could you send me a screenshot of some sample text (use a direct message if you can’t show the design in public)?

Can you do all of this Glyphs Mini?

No, you need the full version for that.

One small hack you can try is to move all uppercase to the right a bit. Then the spacing between the uppercase doesn’t change but the gap to the lowercase is smaller.

2 Likes

Hello, I need to adjust the spacing between an uppercase and a lowercase (UC and LC bearings and kernings are ok), I only need kerning when an UP is followed by a LC.
I tried the kern features recommended above, but they don’t work, it looks like Glyphs doesn’t apply them. How can I make it work?
Thank you.

Glyphs does not preview pos feature code inside Font Info > Features.

You can preview them directly inside an Adobe app using the Adobe Fonts folder:
http://www.glyphsapp.com/tutorials/testing-your-fonts-in-adobe-apps

Or in any other app of course. Just make sure you avoid font cache trouble:
http://www.glyphsapp.com/tutorials/eliminating-font-cache-problems

Thank you so much! I readjusted the uppercase spacing and now it looks much better. I might not need kerning after all, but I’ll keep that in mind :+1:t2:

1 Like

That’s the better solution :+1: