Unlimited Downloads 15% off Marketplace Purchases Exclusive Software Access Unlimited Downloads
15% off Marketplace Purchases
Exclusive Software Access
Go Unlimited Maybe Later
Creating a Font from Scratch

Creating a Font from Scratch

There are tons of ways out there to create a font – you could plug a scan of your handwriting into one of several creation websites and get an immediate font, but it won’t necessarily be as clean or sharp as you’d like it to be. (And forget about kerning!) Or you could spend hundreds of dollars on a top-of-the-line software suite and spend months perfecting your font.

Font101 - creating a font from scratch

I’m happy to tell you, however, there is a happy medium! You can create sharp, clean, well-spaced fonts on any computer, using a wide variety of software. And some of those software options are FREE! Today I’m going to create a font from scratch, using free open-source software. This post is meant to be a general high-level overview of the steps involved; I could go into another dozen posts’ worth of detail about every one of these steps. Ready? Onward!

What you’ll need:

* Paper and pen/pencil (if you want to rock it old-school)

* A scanner / digital camera / cell phone camera (if you’re still rocking it old-school)

* GIMP (GNU Image Manipulation Program) – image editing program

* Inkscape – vector illustration program

* FontForge – font creation software.

GIMP, Inkscape, and FontForge are all free open-source programs. As such, they may have a steeper learning curve than paid programs. Of course, if you already have a copy of Photoshop, you can use that instead of GIMP. And if you own Illustrator, then you don’t need Inkscape.

Font 101 - vertical guidelines

Guidelines for your font

When drawing up the letters for your font, there are five guidelines to keep in mind. The baseline is the line on which all of your letters should rest. The x-height is the height of the lowercase X, as well as many other lowercase letters. The cap height is the height of your capital letters. Some letters, like the lowercase G or P, have a tail called a descender – these can go down to (but not beyond) the descent line. Likewise, lowercase B and D have a stem called an ascender. Most ascenders go to the cap height, but you have that additional ascent line at the very top in case you want to do something really tall and flourishy. Just remember to keep all of your letters between the ascent and descent lines, or else they may get cut off. (In most font creation programs, you can adjust the location of both of those lines.)

(Note: what is it about cats that they have to be part of what you’re doing? See tail at the top of that image.)

Font101 - testing out your letters

Figure out your font style

It’s always handy to try out some different things on paper. I like to start with the lowercase A, and monkey around with it to see what floats my boat. I think I ended up using 6 different pens, from a fancy brush pen to a Sharpie to a plain old Crayola marker on these tests.

Font101 - a page full of handwritten letters

Write out your alphabet

For this demonstration font, I decided to do a quick alphabet with the Crayola marker. (The cat helped.) I did a full set of uppercase and lowercase letters, the numbers 0-9, and some punctuation. (Not sure what punctuation to do? Look at your keyboard. If you’re typing in English, you probably don’t use much more punctuation than what’s printed on the keys.)

Of course, non-English languages use letters with accent marks and additional punctuation. But since this is a general overview, that’s detail we can get into in another post.

(If you’re more comfortable drawing your font in GIMP or Inkscape or Photshop or Illustrator or whatever computer-based drawing program you like, go for it! That just means you can skip this next scanning step.)

Font101 - scanning letters into GIMP

Scan or photograph your alphabet

Here’s where you’ll fire up GIMP (or Photoshop, if you have it) – scan in the page with your alphabet on it and clean it up a bit. Adjust the brightness and contrast and levels so that the paper is nice and white, and the letters are as dark as possible. (And use the paintbrush to cover up any stray cat hairs that just might have made their way between the paper and the scanner glass.)

You can also do this step with a camera – just be sure to take your pictures in good lighting, and from directly above the letters so that they aren’t at an angle. I’d say take several pictures of different chunks of the alphabet. Then do the same as above – adjust the brightness/contrast/levels.

Font101 - trace to vector in Inkscape

Trace the letters into vector format

Here’s where you’ll fire up Inkscape (or Adobe Illustrator, or any other vector illustration program). With most of these programs, you can copy from GIMP/Photoshop and paste directly into the vector program. What we’re going to do here is convert these letters into vector, then save them as an SVG file. FontForge allows direct import of SVGs, which saves a ton of time. It does also have the option of bringing in a BMP or JPG image so that you can trace over it using the Bezier pen tool, but we’re going to keep it simpler for now.

I’d advise selecting a few letters at a time in GIMP, pasting them into Inkscape, then tracing them using the “Trace Bitmap” function. Save each set in a separate SVG file.

The temptation is there to just copy the whole alphabet over and do one gigantic SVG file with all of the letters in there. Be warned! I tried it, and when I imported that SVG into FontForge, FontForge looked at it, looked at me, shook its head and said “Nuh-uh,” then went out for a long coffee break.

Font101 - drop your SVG into FontForge

Import the letters into FontForge

Here we are, in FontForge! When you first create a new project, all it will give you is the grid on the right – all the characters you could possibly want, with blank boxes below them all. Double-click on the capital A, and it’ll open the editing window on the left. Go to File > Import, and select your SVG file that contains the capital A (and whatever other letters are hanging out with it).

There you have it, your first few letters! Now you can select each one individually, copy it, and then paste it into its own box in the grid. Repeat until you have all of your letters and punctuation imported.

(I’ll point out here that FontForge has a really good instruction manual, which also teaches a lot about fontography basics. Since we’re doing such a general overview here, it’d be a good thing to read to get the finer details.)

Font101 - alternate option: drawing letters in FontForge

Alternate method: draw your letters directly into FontForge

Want to skip almost every previous step and just dig directly into FontForge? You can totally do that! It has a decent set of drawing tools available. Just start up a new font, double-click on the first letter you want to draw, then select the Freehand tool (see the blue arrow – the icon looks like a scuba tank to me, but I think it’s supposed to be a marker drawing a line). Pick your pen options (width, end style, etc.) and draw away! (If you’ve drawn overlapping lines here, as I have, you’ll want to select everything, then go to Element > Overlap > Remove overlap. That will make the letter one contiguous shape.)

Font101 - editing characters

Edit your characters

Once you have all of your characters imported (or drawn), you may want to clean them up or adjust their shapes. All of the solid dots and squares and triangles around the outside of each shape are points that can be clicked and moved. The pink circles with crosshairs in them are midpoints of curves, and can also be clicked and moved. Play around with these! The FontForge guide has instructions on which shapes are what kinds of points. If there’s a point you want to remove, you can just select the point and hit CTRL-M (which I believe is Command-M on a Mac).

Here I’ve taken the curved apostrophe I drew, copied it, then deleted some points and moved others around to create the straight up-and-down apostrophe, which I could then copy and paste into its proper place in the character grid.

Font101 - directionality of your lines

A side note on directionality

I’m going to zoom in on these two apostrophes to point out a couple of very specific points. One point on every line will have an itty-bitty arrow next to it, which indicates the direction of that line. Both of these have an arrow indicating that the line travels around in a counterclockwise direction. For characters like these, where they’re a solid object, that doesn’t really matter as much*. But take a character like the uppercase A – there are two lines involved: one that goes around the outside, and one that forms the cutout on the inside. The key here is that if you have a letter with a cutout, the direction of the cutout needs to be in the opposite direction of the outer shape it’s subtracting from.

* If you’re making a connecting script font, it does matter that all of the letters’ outer lines are in the same direction. Otherwise, when they overlap, it’ll turn invisible where the clockwise shape overlaps the counterclockwise shape.

Font101 - adjusting side bearings

Set your side bearings

At the very beginning of this post, we went over the boundary lines at the top and bottom of the letters. Side bearings are the boundary lines at the left and right. They’re the constant cushion on either side of each letter. In FontForge, you can either select the side bearing lines and drag them (they turn green when you select them, as in the picture) or you can go to the Metrics window and select either Set LBearing or Set Rbearing to set the left and right bearings.

If you’re just starting out, I’d recommend making these pretty constant: this sample font has a left bearing of 0 and a right bearing of 70 on each letter. (Again, this is just to make things simple. As your fontmaking gets more detailed, you’ll want to customize this depending on what kind of letter shape it is. And again, the FontForge guide has some great information about that.)

We’ll also be adjusting how letters sit next to each other with kerning, which we’ll cover next.

Font101 - kerning by letter pairs


As promised, let’s talk kerning! Kerning is where you take specific pairs of letters and adjust the spacing between them. For example, the capital T above has a huge overhang. If we just let the T’s right side bearing rest against the lowercase letters’ left side bearings, it’d be like the “Te” above. By adjusting the kerning, we’re telling the font file, “every time a capital T sits next to a lowercase O, nudge the O over a certain amount so it nestles under the T.” Then do the same for every letter that might appear to the right of an uppercase T: lowercase A, E, I, O, R, U, W, and Y.(Maybe even S, if you're talking about the Tsetse fly. Oh, and C, for Tchaikovsky!)

I’m going to warn you right now: setting up kerning in FontForge can be ugly. However, a very kind person who got frustrated with it put together this handy guide, which walks you through all of the totally weird and counter-intuitive menus that FontForge throws at you.

(Remember: free.) (Other font programs, should you choose to buy one, have much more intuitive kerning interfaces. Still, once you get the weirdness set up, it goes pretty easy in FontForge.)

Font101 - kerning by full words

One thing that is great about FontForge’s kerning, once you get past the nightmare series of menu options (and once again, thank you to that poor frustrated user for creating that wonderful guide) is the ability to kern whole words at a time. Sometimes when you’re just working with two letters, it’s hard to know how those will then interact with the letters that follow. But with FontForge, you can type whole sentences into the Metrics window, and drag the letters around until those sentences look perfectly spaced. (You probably guessed, correctly, that the word “hardly” above has NOT yet been kerned.)

Note: you could easily take ten times as long in the kerning stage as in any other stage of this process. There’s something almost hypnotic about writing out test words and then nudging the letters around. You’ll probably get some good vocab exercise, though. (Zephyr! Apogee! Qoph! Zyzzyx!)

Font101 - naming and metadata

Your font's name and metadata

On the technical side, select Element > Font Info. Here in the “PS Names” tab you can plug in your name. (Some of the fields like “Family Name” and “Name for Humans” don’t allow spaces, so you’ll have to use dashes if it’s a multi-word name.) Yes, there are a thousand other tabs in the “Font Info” window, but in the spirit of keeping it simple, this page is really all the metadata you need. Name, version, and down in the giant “Copyright” box, you can put in “Copyright 2016 YOUR NAME” or whatever rocks your socks.

Now – how do you figure out what to name it? That’s a mystery that only you can answer. As for me, I like to look at the font and see how it makes me feel. Then I pick a word. Then I Google that word and the word “font,” and then I do some light cursing when I see that someone else has already made a font with that name. Then I go to the online thesaurus and try to find a suitable alternate. But, you know – you do you.

(For this one, since one of my cats insisted on draping her paws or tail across the paper and/or keyboard for most of the creation, I’m going to call it “Intruding Cat.”)

Font101 - testing your font

Give your font a test drive

Some font creation programs have built-in full-font testing, where you can plug in paragraphs of text. If FontForge has that feature, I haven’t yet discovered it. But you can easily export the font to TTF or OTF (File > Generate Fonts) and then apply it to paragraphs in Word or any other program. You could use generic filler text for testing, but I use a bunch of text from a site called “Riker Ipsum” – filler text created entirely from Star Trek: The Next Generation dialog. It makes my geek heart smile.

A note about generating a font out of FontForge: when you go to generate, it’ll have a box checked which says “Validate Before Saving.” Validation in FontForge calls out every tiny issue with every character (overlapping parts, lines that don’t go in the right direction, etc.) and wants you to fix them. If this font is just for you, I wouldn’t worry too much about it. You can still create your font with the validation errors in it, and the font will still work. It just might have tiny little weird things here and there. (Many for-pay programs will do these little fixes for you automatically. But again, it isn’t going to break the world if you create your font with a few little errors.)

Get the Intruding Cat font FREE, exclusively here at FondBundles!

Font101 - our result: the Intruding Cat font

And there you have it – a hand-crafted font that’s cleaned up, kerned, and ready to use, created for free! There are so many more things to discover from here: accented characters, connections, ligatures, alternates, swashes, ornaments … there are so many more things to learn!






Find out more about Missy Meyer / Get her premium fonts today:





You may also be interested in ...

Ask a Font Creator: Stitch Text Effect in Inkscape and Illustrator

Ask a Font Creator: Stitch Text Effect in Inkscape and Illustrator

Here’s a look that popped up recently, with someone asking where...
Let's Judge Books by Their Covers!

Let's Judge Books by Their Covers!

I have my artist/designer hat on again this week, to talk about book...
Ask a Font Creator: DIY Swashes in Inkscape

Ask a Font Creator: DIY Swashes in Inkscape

Adding swashes and flourishes to the beginning and end of words can...
Help Center
ol image