FontForge Master Class

Last modified by Justin Morgan on 2019/09/29 18:04

FontForge Master Class with Michael Harmon Pt 1 

FontForge Master Class with Michael Harmon Pt 2

FontForge Master Class with Michael Harmon Pt 3

FontForge Master Class with Michael Harmon Pt 4

See also: FontForge

Part 1 Notes

This video covers the basics of installing and using  the interface for FontForge.

  • Not as powerful as Adobe Illustrator, but SVG files can be imported from vector software. This will be covered in a later video.
  • Pen tool = Bezier curves
  • Main outline of characters should be created clockwise. "Holes" or cutouts in characters should be created counter clockwise.
  • Metrics > New Metrics Window allows you to see what characters look like when typed.
  • The left and right guides on the work area define the metrics.
  • The top and bottom line are defined by the em length. Default is 1000 units.
  • Guides can be added by clicking the guide layer in the layers panel and using the Pen tool. Holding Shift will help keep lines straight.
  • The Back layer is used for importing images to trace, like handwritten characters.

Part 2 Notes

This video covers the creation of characters in vector programs like Inkscape or Adobe Illustrator.

  • Importing SVG files is very simple (File>Import) but setting up the Illustrator/Inkscape document has some extra steps.
  • In Inkscape, set units to pixels and set the document to 1000x1000. This is done under File>Document Properties. This is the default em size in FontForge, it can be changed depending on how you want to set up your characters. Just be sure to use the same dimensions on both Inkscape/Illustrator and FontForge.
  • Baseline and descending line are included in FontForge by default.
  • The 1000 unit height is the space between the baseline and the top line. If the font you are designing has descenders, you'll need to create a guide in Inkscape/Illustrator so you know where that is.
  • The default descender line is at -200, ie 200 units below the baseline.
  • Requirements for exporting files from Inkscape/Illustrator:
    • Each character must be ONE path. If multiple shapes are overlapping, they must be merged into one shape.
    • Disable stroke.
    • Enable fill.
    • If a character is made using a stroke, it will need to be expanded into a shape. In Inkscape this is done by selecting Path>Stroke to Path.
    • Character should be aligned with the baseline how it should when typed
    • Delete un-needed shapes from pasteboard before exporting.
    • Delete guides before exporting.
    • Save file as a plain SVG file.

Part 3 Notes

This video covers kerning and how to use lookups to add features to fonts.

  • Spacing between characters is not great by default. Some customization will need to be made in order for the font to look good when in use.
  • To adjust kerning for a character, select a letter and open the metrics window by selecting Metrics>New Metrics Window. This will open the metric window for the selected character.
  • It's possible to adjust letter spacing by adjusting the vertical guides for each letter, however, this will apply to ALL uses of this character which may not look great.
  • Go to Element>Font Info. This will open a new window. Select Lookups in the menu on the left and select the GPOS tab. Select the Add Lookup button on the right.  In the Type drop-down at the top of the pop-up, select "Pair Position (kerning)" and add a feature by clicking the drop-down in the Feature box and select "kern Horizontal Kerning", then click OK. Next click the Add Subtable button on the right. In the pop-up, click OK. In the Kerning Format window that appears, uncheck the box for Autokern New Entries. Select a letter from the top glyph menu and letter from the bottom glyph menu. These are the letters you will adjust kerning for. Clicking OK will open a new window for the Lookup Subtable. Click the <New> box and enter your first character, then click to the next field with the header Second Glyph Name and enter your second character. Both characters should now be showing at the bottom of the window.
  • Lookups are also used for ligatures.
  • In order to create a ligature, an new glyph will need to be created. Click Encoding>Add Encoding Slot. The pop-up shows a default of 1, this can be left as-is. The glyph space will appear at the end of the rest of your glyphs as a red question mark. Right click the glyph and select Glyph Info. In the Glyph Info window, rename the glyph using the following format: "first_second". First will be substituted with your first character and second will be substituted with your second character. So if your new glyph is for the "fi" ligature you would name it "f_i". Once you change the name, click OK. Again, right click the new ligature glyph and select Glyph Info. In the window that opens, select Ligatures in the menu on the left. Under the Subtable heading, select New Ligature and then select New Lookup Subtable. In the new window select <New> under the Feature heading then select "liga Standard Ligatures". Click OK and then click OK again. Under Subtable heading, select New Ligature and select the newly created ligature lookup. Next, click OK. By naming the glyph as we did, both characters will automatically be inserted into the glyph. To create the glyph we'll go to Element>Build>Composite Glyph. This will populate the glyph with our characters. Initially, these characters are not editable so we'll have to right-click the glyph and select Unlink Reference. Now the glyph is editable.
  • Note: You can combine two shapes by selecting Element>Overlap>Remove Overlap.
  • If creating a ligature with more than 2 characters, it is best to name them as we did above but with an underscore between each character. For example the "ffi" ligature would be named "f_f_i".
  • The same lookup table can be used multiple times so you don't need to create a new one each time you need a new glyph.
  • When a new glyph is created and re-shaped, be sure to adjust the spacing lines.
  • Also be sure to drag your carets out from the left side of the characters whenever you create a new glyph. This is where the cursor will flash in word processors.

Part 4 Notes

This video covers how to put the finishing touches on a font and export it from FontForge.

  • Ctrl+A selects all glyphs
  • To check for errors in the font, select all glyphs, then click Element>Validation>Find Problems. In the pop-up select the Paths tab and check Open Paths, Intersecting Paths, and Check outermost paths clockwise. Leave all other settings as-is and click OK.
  • Intersecting paths are hardest to fix. You can zoom into each point on the character to see if there are multiples, or you can select and drag each point one at a time to see if there is another point there.
  • If multiple problems are found, click next to go to the next glyph with an error.
  • To export your font, click File>Generate fonts. In the pop-up, select the drop-down called PS Type 1 (Binary)