Spacing

  • by Rainer Erich Scheichelbauer
  • Tutorial
  • – Modified on

Starting out

When doing the spacing of a Latin alphabet, it is a good idea to start out with n and o. Once those two letters have proper side-bearings, the rest is relatively easy. So, I recommend you type something like noononno and fiddle around with those side-bearings until you’re satisfied. You can check on the side-bearings and the width of any glyph by taking a look at the grey info panel (View > Show Info, Cmd-Shift-I):

You can access the same values through the glyph info area in the bottom left of the Font tab. Or the LSB and RSB columns in list mode. You may need to activate the columns first via the context menu of the list header. You can rearrange the column order by dragging the column headers.

Whichever way you prefer, to change a side-bearing, just click into the number and type a new value. By the way, the bottom left info area even allows editing a selection of multiple glyphs at once.

Unless you did something really crazy, o needs equal left and right side-bearings. A good starting point is a third of the counter width. A little more if it’s for small sizes, a little less for display sizes, whatever you intend your font for. A little more if the bowls are rather flat (and thus leaving less whitespace on the sides, which needs to be compensated), a little less if the bowls are very round. Hint: loose spacing is easier than tight spacing.

Glyphs employs a set of intuitive shortcuts for changing the side-bearings of the current glyph. So, place your cursor in front of the o, hold down Ctrl for the left side-bearing or Cmd for the right side-bearing and then press the left and right arrow keys for decreasing or increasing the respective value. If you additionally hold down Shift, you get increments of 10.

Shortcut conflict

Careful: by default, Ctrl-arrows is reserved for switching between Spaces in OS X. Thus, you need to switch the Spaces shortcut to something else, so you can use it for Glyphs. To do that in Mountain Lion and above, go into your System Preferences, choose Keyboard, click on the Shortcuts tab, pick Mission Control from the list on the right and double click Move left a space and Move right a space and enter new shortcuts. Personally, I like setting them to Ctrl-Opt-Cmd-arrows, but of course you can pick anything you like, just make sure it doesn’t interfere with other shortcuts you need:

Then, the n. Since the n usually has much less whitespace in its corners, we need to compensate that by enlarging its side-bearings. A good starting point is approximately 1.5 times the side-bearings of the o, not counting serifs. Serifs stretch into the whitespace, and thus effectively reduce the LSB and RSB values.

Also, the n is not symmetrical. The top right corner is a bowl, leaving more whitespace on the right than on the left. We need to compensate for that somehow. Now, here’s a cracker: If you combine Ctrl and Cmd keys, you simultaneously change both left and right side-bearings, effectively moving the letter inside its width:

This way, you can knock the n a little bit to the right a few times until the n looks centered between the o. You’re finished with n and o if the distances between all letters in noononno appear to be of the same size.

Placeholders

Now, we go on to the other letters. Something I like to do is to add a second line and type the letter I want to work on next, e.g. the h. But you want to see that letter between the o’s just like the n before. You can do that in Glyphs: just go through the string and replace all occurrences of n with a placeholder. You can ‘type’ a placeholder with the Edit > Add Placeholder command (Cmd-Opt-Shift-P).

A placeholder always displays the current glyph, i.e. the glyph right after the cursor. Watch out, the placeholder can act weird if the cursor is all the way at the end of the test text you entered. If that happens, just move the cursor back in front of another letter.

Side-bearing arithmetics

But wait a minute, h should be easy if we already have the n. In most cases, it can have the same side-bearings as n, because, except for the ascender, h and n look pretty much the same. So, for instance, we could go check on the n and copy the side-bearings into the grey info area (Cmd-Shift-I) of h. But that’s suboptimal, because what happens if we later change the side-bearing of the n again? Do we really want to keep track of all the side-bearings manually? Hell no.

What we do is this: instead of entering a number value indicating the side-bearing distance, we enter the name of another glyph! Glyphs will then reduplicate the other letter’s side-bearing in the current letter. It even works for Widths: setting the RSB and Width will recalculate the LSB, setting the LSB and Width will yield a calculated RSB. So, we enter n in both the LSB and the RSB of n, and h will dynamically take over the side-bearings of n:

Not 100 percent dynamic though. Every once in a while, it’s a good idea to force the selected glyphs to update their side-bearings by choosing Layer > Update Metrics (Ctrl-Cmd-M). You can even update the metrics for all masters at once by pressing Crtl-Opt-Cmd-M.

But it doesn’t stop there. You can even do simple arithmetics. In that case, you start the LSB, RSB or width entry with an equals sign (=) and hang your calculation in there. So, if you use =a+20 as the LSB value for a glyph, Glyphs will take the LSB value of a and add 20 units to it. If you use =|a+20 instead, i.e. you put a pipe character (|) in front of the glyph name, then Glyphs will take the opposite side-bearing of a as the basis for the calculation. You cannot just add, you can also subtract: =b-10. And multiply: =c*1.1. And divide: =d/2. In our experience, simply adding and subtracting fixed values works best for most situations.
If you don’t want your light n to have the same side-bearings or width as your bold n, then simply add a second equal sign, for example ==n+15, and it will only affect one master.

Again, don’t forget to regularly run the Layer > Update Metrics command (Ctrl-Cmd-M), or Ctrl-Opt-Cmd-M for all masters. So, look for similarities in letter shapes, try to establish connections between letters and try to turn that into side-bearing arithmetic like this:

  • LSB =o: c, d, e, g, q
  • RSB =o: b, p
  • LSB =n: b, h, i, k, l, m, p, r
  • RSB =n: a, h, m

Etcetera etcetera etcetera. Your mileage may vary greatly though, because eventually, it will depend on the way you design your glyphs.

Uppercase spacing

For uppercase spacing, the base characters are usually H and O. It’s basically the same story as with the small letters above: get those two right and you’re good to go. But this time, you also need to make them fit to the lowercase letters. If you take care of this, you can easily transfer side-bearing values to other letters:

  • LSB =H: B, D, E, F, I, K, L, M, N, P, R
  • RSB =H: I, M, N
  • LSB =O: C, G, Q
  • RSB =O: D, Q

Etcetera etcetera etcetera.

Automatic alignment

Component-based letters inherit their spacing from the base component. For example, you want an ‘ä’ in your font. So you build an adieresis with an a component and a dieresiscomb component. Actually, Glyphs does that automatically for you if both a and dieresiscomb already exist in your font when you generate adieresis. Now, go into the adieresis glyph and click on one of the two components. It appears to be locked, or as we say, automatically aligned. In most cases, that’s probably exactly what you want. Trust me, there’s nothing more tedious than trying to synchronize the spacing of all diacritics manually.

Sometimes, however, that’s not what you want. For instance, when you create the ldot, chances are you do not want the components to align automatically. In cases like this, you open the context menu on the component(s) you want to reposition, and choose ‘Disable Automatic Alignment’. If you change your mind, you can ‘Enable Automatic Alignment’ via the same menu.

Non-letter glyphs like punctuation, figures and symbols do not align in the first place. This way, you can quickly and easily make proportional and tabular figures in one go.

One more thing for the geeks: If you do want to make use of automatic alignment in a compound, but you need the right side-bearing adjusted, well, here’s the double underscore trick. Let’s take the ldot, for example. Instead of simply adding a periodcentered, which would result in an ldot with the width of an l, you add a glyph with two underscore at the beginning of its name, e.g., __periodcentered. Now, the width of the double underscore is added to the RSB of the compound glyph. So, all you need to do, is to add the double underscore component to your ldot, and adjust its spacing until the ldot looks cool . Voilà! Note the increased width of the ldot in this screenshot:

Batch Processing Metrics

Want to change the Metrics of many glyphs at one? If you go to Filter > Transformations > Metrics, you can also set your LSB and RSB values for the selected glyphs. If you click on the Relative checkbox, it adds to your previous values. Use negative values for reducing values.

No kerning yet

Try to get as far as possible without kerning. At one point, you will find that you cannot improve your spacing anymore by tweaking the sidebearings. Then you can start kerning, but no sooner, really. That’s because you’d have to start with the kerning all over again once you find a better way of spacing your letters.

Update 2015-07-30: Added 'Batch Processing Metrics' and updated for Glyphs 2.