Today, we’re going to continue looking at the immense pile of work that goes into the simpler-looking fonts. Last time, I talked about the precision involved in creating the letters, and how while a script font can have some little differences here and there that add to the charm, a good serif or sans-serif font needs some serious rules to make things look right.
Now, with the characters all created, we’re going to dig into spacing and kerning. Kerning is both one of my favorite things in the world, because well-done kerning makes things so easy on the eyes; and it’s also one of my least favorite things in the world, because it can be a total tedious grind.
But first, let’s talk about our guidelines. Last week when creating the letters, we worked with a set of eight horizontal guidelines that dictated where our letters would sit. This time, it’s all about the three big vertical guidelines: the black line, the pink line, and the green line. (These colors will vary depending on your font creation software.)
Black: Vertical Baseline: the point at which your rulers hit zero.
Pink: Left Side Bearing: the left edge of the invisible box around your letter.
Green: Right Side Bearing: the right edge of the invisible box around your letter.
In this example image, the three lines are separate. But when I’m building a font, I usually leave the pink (left side bearing) line sitting right on top of that black line. While you can move it around, I find it’s easier to just leave the pink at zero on the ruler, and then move the letter itself and the green (right side bearing) line around. We’re going to use the ruler quite a bit here, and I find it’s just a lot easier to not have to calculate to get the negative numbers on the other side of that black line, if I can help it.
So, by adjusting how far the letter sits from those pink and green lines, we dictate how far the letter sits from its neighbors in a word. And we’re going to do a TON more adjustments than we would in a script font. Remember, in a script font, here’s where the left and right side bearings sit:
Because of the way the letters in a script font connect, it’s actually really easy to set your side bearings (and thus, your spacing). The tail of each letter crosses that green line in the same spot, and either an entry stroke or the backbone of the letter itself touches that pink line, so that when the letters are written out in a word, the tails of each letter meet the next letter in line.
A serif or sans-serif font, however, doesn’t have easy connectors; you have to adjust the spacing manually, using both the rulers and your eye to make sure that the letters all have the right amount of space between them.
Now in really, really olden times, the perfect amount of space between letters was the same amount of space that fell inside the letters. So let’s say you had an imaginary glass of water in your hand, and there were imaginary barriers around all of these letters, so you could fill the white space inside a letter, or the space between letters, with water. By those old standards, each different color here would take the exact same amount of water to fill.
Remember, the earliest typesetters were working with letters carved out of metal, stacked next to each other. So if there was a problem with the spacing between letters, the typesetter would need to insert bits of metal between the letters and make close spacing even wider; they had no way to decrease the spacing between letters. So for a very long time, wider-spaced type was common because it had to be.
Nowadays, with computers and font software being used for most typesetting, spacing between letters is far more narrow. And when adjustments need to be made between two letters that don’t quite sit right next to each other, instead of adding metal between the other letters, we can use kerning to adjust weird spaces.
So let’s get to the best starting point for adjusting letter spacing: the uppercase H.
I’m going to start out with letter spacing that’s a bit wide; we can always narrow it as we go. For this letter H, I’ve measured the distance between the vertical strokes (the long middle arrow), divided that number in two, and then used that to set my left and right side bearings. Feels like it’s going to be a bit too wide, though.
And sure enough, here’s a test of that H, and the spacing is HUGE. Those yellow rectangles are both the same width, since the left and right side bearings are each ½ of the width of the white space inside the letter.
Let’s whittle that spacing down a little bit. And we’ll make the measurements simple, so that the math is easier.
In my software, this little window not only gives you the measurements, but also a handy little diagram that shows what all of those numbers mean. So here I’ve put 100 units of space on the left side, and 100 units of space on the right side. The entire width between the pink line and the green line (the Advance Width according to the info window) is 820 units, so if I subtract out those two 100-unit buffers, I know that my letter H is 620 units wide.
(Now, you may be wondering, why the heck am I calling these measurements “units” instead of “pixels” or “inches” or some other concrete unit of measurement? It’s because fonts are built using a variable measurement system called “em units.” And it would take a whole other post to explain the concept of em units, so trust me when I say that it’s just a weird type-specific way of measuring stuff in a font.)
Now that we’ve set the left and right boundaries on our uppercase H at 100 units each, let’s apply those same boundaries to the other most-important letter for setting spacing: the uppercase O. (H is important because it’s a symmetrical letter that has two straight, flat sides; likewise, O is important because it’s a symmetrical letter with two curved sides.)
And as you can see here, the O is a little bit wider than the H (720 units wide, as opposed to the 620 units of the H).
Now that we have our left and right bearings set, let’s see how it looks when you put the letters together:
Here’s where we are one again going to enter the realms of optical illusions. In the previous post, I talked about how the letters with curved tops and bottoms (like this O) are actually built a little bit taller than letters with flat tops and bottoms (like the H). Speaking in measurements, the O is, overall, 30 em-units taller than the H: 15 units above the caps height, and 15 units below the baseline. Because so little of the O touches those top and bottom boundaries, they need to push a little bit outward in order to look like they’re taking up the same amount of space.
So just as we had to make those wee adjustments in vertical spacing, we’re going to need to adjust our O for horizontal spacing as well. It’s subtle, but if you look at the amount of space between those first two Hs, then look at everything else, all of the other spacing looks wider. It isn’t – there are 200 em-units of space between each letter there (100 on the left and 100 on the right of each letter). But because of the curves on the sides of the O, our eyes are tricked into thinking there’s more space between the letters.
So let’s adjust!
(Side note: I’m writing this post on Christmas day, so the constant use of “ho ho ho” is cracking me up.)
Here I’ve narrowed the left and right side bearings of the O to 80 units each. And looking at the test line up at the top of the image, the eye is tricked into thinking things are much more evenly spaced.
Now I can take the spacing I’ve figured out for the H and the O, and apply it to almost all of the rest of the capital letters. Because I know that a letter’s flat side takes 100 units of space, and a curved side takes 80 units, I can apply that knowledge to other letters. So D will have 100 on the left, and 80 on the right. C will be 80 on both sides. M will be 100 on both sides. And so on, and so forth.
We’re still left with some weird letters, however, that we’ll want to adjust by hand. Letters with slanted lines, like A, V, W, X, and Y all need some hands-on attention; likewise, the right side of K is an oddball; it almost forms an inward curve, which needs special adjustment to meet an outward curve like on an O. There’s also the S, which falls somewhere between a flat and curved letter.
So how to do these adjustments? By using long strings of letters, placing each capital letter between a couple of Hs. I like to chop these strings up into manageable sections, as I have above, but the full string is:
If you're going to chop this up into shorter sections to work with, it’s always handy to start with two Hs in a row, so you have that perfect spacing for visual reference.
Then you just adjust bit by bit, making sure that everything looks balanced and the white spaces between letters looks even. (I’m not quite there yet in this example, but it’s getting close.) I also, because I'm weird that way, like to round my spacing up or down to the nearest 5. So if I nudge a letter over until it looks right, and I see that my side bearing is 91, I'll bump it down to 90. It's setting up Future Me for success, should I need to do any calculations to adjust those numbers.
When you have your uppercase all adjusted, then it’s time to move on to the lowercase. We’ll still use the letter o as our curved model, and since there’s no lowercase letter with two truly flat-all-the-way-up sides, we’ll use the n as the closest thing.
(But, you may say, what about a lowercase l? In a sans-serif font like this, it could just be a straight bar. Or even the lowercase i? It’s because for spacing exercises like this, you want a letter with some white space within it as well; it helps to build that balance between letters.)
Do the exact same thing as with the uppercase: apply your flat-side measurement to flat sides, apply your curved-side measurement to curved sides, then lay out the big long letter strings:
(I could write out the whole things, but I think you get the point.)
When you get everything spaced as well as possible, and all you have left are the weird variants that can’t be addressed with spacing alone (with pairs like AV or WA), then it’s finally time to move on to kerning. Yay!
(As you can see, I ended up spacing this font pretty tight. That’s how I roll; first off, I'm not working in carved or cast metal. Secondly, I feel that if I can get the spacing really nice when the letters are tight, they can be spaced out by using tracking [uniform spacing between all letters of a word] and they'll still be well-spaced.)
In kerning, we’ll take those misfit pairs and give them all small adjustments so they fit in with everyone else. These things can’t be addressed with spacing alone, because a pair like AH is spaced very differently from AV, due to the angled lines of the A and the V. So we space for the most standard meetups (in this case, AH) and then kern for the weird ones.
Here’s an example of spaced but un-kerned combinations. You can see in the preview words up above, the uppercase A sits a little too far away from the next letter in every word (and a lot too far away from that lowercase v at the end). The nice thing is, since my lowercase letters a, c, d, e, g, and q are all based on the o, those seven letters all have the exact same curve on their left side. So once I figure out how many em-units I need to move one of those letters over, I can apply that same adjustment to all of the rest in that list.
(Some font-making software allows you to group letters together in a “class,” like this example’s left-side-curve. Then you can apply class-based kerning to that whole group of letters. Whether you kern by class or individually is up to you, depending on your own personal preferences for speed, accuracy, or desire for hands-on fiddling.)
Most creation software will have at least one pre-installed list of kerning pairs. Those are the pairs that will almost always need adjustment, no matter what kind of fonts you’re making: AV, VA, KO, Te, Ke, Ye, Ve, Xe, and anywhere else that a slanted line meets a curved line (like Ve), a letter overhangs another (like Ta/Te/To) or a letter has some downright weird lines on one side (I’m looking at you, K.)
Once you've kerned the obvious pairs, you’ll want to run a bunch of sample text to look for gaps in letter pairs that might not immediately come to mind. For example, a common list of kerning pairs I’ve found knocking around the internet doesn’t include the pairs bj and dj. I'd say that both are common pairs (or should I say, I'd adjust an objection to their exclusion), and the way that j curves down and around to cradle the letter before it may need some tickling to look just right.
It also helps to get some punctuation in there, so you’re looking at how those characters interact with the letters.
My software allows me to use whatever TXT files I want for this kind of large-paragraph testing, so I’ve made a few files with various big blocks of movie and TV quotes. I also use the software’s pre-installed blocks of words, because those are primarily designed to get words with unusual letter pairings in there. And don’t forget about the spacing for accented characters, too!
Another thing to not forget: numbers! Here’s another big block of test strings: this file gets every single number next to every single other number at least once, so you can really spot the places where the spacing is too wide or too narrow. (Just looking at this, I can tell that I need to reduce the right side bearing on the 7, since every other number that comes after it is a little bit too far away. Once I get the spacing set so that most of them look OK, I can go in with kerning and make the small adjustments on the outliers.)
Bear in mind, this is an easy font to space and kern. If this were a serif font, there’d be an additional heap of work in keeping the serifs just the right distance from each other without accidentally overlapping. So while I have a ton more stuff to do here than I would in a script font, at least it isn’t two tons, right?
Last but not least, let’s talk about what happens when you make an italic version of your font, because that’s a popular alternate option for a simple sans-serif like this.
Here I’ve taken the well-spaced and well-kerned letters, and done nothing besides skewing them all 10 degrees. But look at what a ghastly mess it’s all turned into! The solution, much as I hate to say it, is to clear out all of the kerning, and start over from the beginning with letter spacing. Run the same HHOHOOH exercises to figure out your flat-side and curved-side bearings, apply those to the rest of the letters, manually adjust, test with the long letter strings, then finally do all of the kerning pairs over again fresh.
And don’t forget, your spacing of the italic version needs to work in tandem with the spacing of the upright version, since they’ll frequently appear right next to each other, when italics are used for emphasis next to words in the regular font. Which kicks the whole thing up another level of difficulty!
Here’s a sample of the work-in-progress combining the regular and italic versions. And I don’t know about you, but I totally read italics as sarcastic or snarky in my head.
(So if you’ve ever seen a cool simple serif or sans-serif font and wondered, “Why don’t they make this in an italic, too?” – now you know why. Because it’s a brain-scrambler.)
Lots more to do here -- as I played around with at the end of the previous post, I have a lot of alternate ideas in store for these letters.