# Tutorial #5

- Font Creation
- Creating a character (tracing outlines)
- Navigating to other characters
- On to the next character (consistent directions)
- Consistent serifs and stem widths
- Building accented characters
- Building a ligature
- Examining metrics
  - Vertical metrics
- Kerning
- Character variants
- Anchoring marks
- Checking your font
- Generating it
- Font Families
- Final Summary
- Notes on various scripts

## Examining and controlling metrics

After you have created the shapes of your characters you must next figure out the spacing between characters. The space between any two character has two components, the space after the first character, and the space before the second character. In a left to right world these two are called the right side bearing and the left side bearing respectively.

The left side bearing may be changed by the simple expedient of `Edit->Select All` (in the outline view) and then dragging the selected objects to the appropriate place. The right side bearing may be changed by selecting the advance width line and adjusting it appropriately.

However it is generally better not to set the metrics of a single character in isolation, you should see the character in the context of other characters and set it from that perspective. Use the `File->Open Metrics Window` command.
Any characters selected in the fontview (when you invoke the metrics view) will be displayed in the metrics view. You may change which characters are displayed by either typing new ones in to the text field at the top of the view, or by dragging a character from the fontview.

From here you may adjust any character's metrics by typing into the textfields below it, or you may select a character (by clicking on its image) and drag it around (to adjust the left side bearing), or drag its width line (to adjust its right side bearing).

If you want to generate a "typewriter" style font (where all characters have the same width) execute an `Edit->Select All` from the fontview and then `Metrics->Set Width`. This will set the widths of all characters to the same value. After doing that you might also want to execute `Metrics->Center in Width` to set the even out the left and right spacing on each character.

If all this manual operation seems too complicated, try `Metrics->Auto Width`. This will automagically assign widths to characters. These widths are not up to professional standards, but they are generally reasonable approximations.

### Vertical Metrics

FontForge provides some support for the vertical metrics needed for CJK fonts. First you must tell FontForge that this font should contain vertical metrics, do this with `Element->Font Info->General->Has Vertical Metrics`. Then in each outline character enable VMetrics in the Layers palette.

You should now see a vertical advance line somewhere underneath your character. You may drag this line just as you would the horizontal advance (width) line.

## Kerning

If you are careful in setting the left and right side-bearings you can design your font so that the spacing looks nice in almost all cases. But there are always some cases which confound simple solutions.

Consider "To" or "Av" here the standard choices are inappropriate. The "o" will look better if it can slide more to the left and snuggle under the top bar of the "T". This is called kerning, and it is used to control inter-character spacing on a pair-by-pair basis.

Kerning

In the above example the left image shows the unkerned text, the right shows the kerned text. To create a kerned pair, simply click on the right character of the pair, the line (normally the horizontal advance) between the two should go green (and becomes the kerned advance). Drag this line around until the spacing looks nice.

(Some character combinations are better treated by creating a ligature than by kerning the letters)

### Kerning classes

If you have many characters which have similar kerning features you might instead wish to create a set of kerning classes (which might say that A, À, Á, Â, Â, Ã and Ä all kern alike).

### Vertical Kerning

FontForge has rather limited support for vertical kerning. It can read and write vertical kerning information from and to truetype, opentype and svg fonts. It allows you to create vertical kerning classes. Finally it has a command which will copy horizontal kerning information to the vertically rotated characters (That is, if the combination "A" "V" is horizontally kerned by -200, then "A.vert" "V.vert" should be vertically kerned by -200.

But there is no vertical metrics view.

(Vertical kerning is only available if the font has vertical metrics)

-- Prev -- TOC -- Next --