This dialog allows you to set the name and unicode encoding of a given glyph. If you know the name of the glyph then FontForge can tell you the encoding (if you press Set From Name), similarly if you know the encoding then FontForge can tell you the name.
The name field contains a pull down list with (possibly) several synonyms for the name of this unicode code point.
It is possible to have one glyph assigned to two unicode code points (This
is not recommended, but it is possible). If you wish to do this you may enter
additional unicode values in the "
Alternate Unicode" area (set
the variation selector to 0).
Adobe has proposed an extension to OpenType to support unicode variation
selectors in the 'cmap' table (traditionally they have been done as ligatures
in the 'GSUB' table). If you wish to take advantage of this mechanism you
can also use the "
Alternate Unicode/Variation" section to add
'cmap' data. If you wish the current glyph to be the default variation for
this font (the one that appears in the unicode encoding subtable), then set
Unicode Value field above to the desired code point and
add an entry with the same code point and the appropriate variation selector
(as in the example above).
However if this glyph is not going to be the default glyph for this code
point, then set the
Unicode Value field to -1, while entering
the appropriate code point and variation selector below.
The Glyph class field is for the opentype 'GDEF' table. You can usually leave it set to automatic. FontForge will then figure out the class, and whether it should be output into GDEF. You can see what FontForge does in View->Show ATT.
 Mark for Unlink, Remove Overlap Before Save checkbox
sounds absurdly complicated. Consider the glyphs Aring, Ccedilla, and Oogonek.
In traditional design the accent of each of these glyphs will overlap the
base letter. Unfortunately neither TrueType nor PostScript allows contours
to intersect. You can solve this problem by unlinking the references that
make up the glyph and then running Element->Remove Overlap. But that has
problems of its own... now when you change the base letter (or the accent)
the change will no longer be reflected in the composite glyph. This little
checkbox neatly solves that problem. If the glyph is composed of references
which overlap, and you wish to retain the references, but you wish it to
be output without an overlap, simply check this box. Then when it comes time
to save the font, ff will perform the unlink and then run remove overlap,
save the font, and then restore the glyph to its original
can assign an arbitrary (unicode) comment to the glyph.
Simply type any text into this field. The comment is for your use, it will
not go into any generated fonts. You may also assign a color to a glyph to
make it stand out in the font view.
There are 6 separate sub-dialogs to help you edit the lookups of the GPOS and GSUB tables (some of these data can be converted into various of Apple's AAT tables, particularly 'morx'). Lookups and their subtables are described in some detail here, and may be manipulated and created with the Element->Font Info commmand.
The first of sub-dialogs is the alternate position pane which allows you to associate certain modifications to a glyph's metrics with a feature in the GPOS table.
In the example at right the first lookup subtable (which is associated with the Scientific Inferiors feature) will move the y position of the glyph down by 900 em-units, while the second subtable will move it down by 560 em-units. Positioning subtables can also move glyphs horizontally and can adjust the horizontal and vertical advances of the glyph. You can also add device tables for pixel level corrections to these adjustments. Most subtables will use only a few of the possibilities open to them and FontForge generally hides unused columns -- but if you want to see them just turn off [*] Hide Unused Columns.
A new entry in the list may be created by pressing the <New> button and a popup menu will appear with all possible lookup subtables you could add data to.
The pairwise positioning sub-dialog allows you to
change the positions of two glyphs when they occur next to one another --
better know as kerning. I think the Metrics View
provides a better place to do kerning, but you can do it here if you
A simple substitution replaces one glyph with another. Here the glyph "one" has a series of substitutions to various glyphs depending on what lookup subtable is invoked.
The multiple and alternate substitution sub-dialogs are very similar to this one except that they can take multiple glyph names. In a multiple substitution subtable each glyph is replaced by several other glyphs (sort of the reverse of a ligature), while in the alternate substitution sub-dialog each glyph is to be replaced by exactly one glyph from a list and the user is to be given a choice as to which glyph is to be chosen.
"Hello Rabbit," he said, "is that you?"
"Let's pretend it isn't," said Rabbit, "and see what happens."
A. A. Milne, 1926
The ligature pane allows you to tell FontForge that the current glyph is a ligature composed of several other glyphs. FontForge will sometimes be able to fill this in with the right default value, but not always. The value should be a list of postscript glyph names separated by spaces. If a glyph may be viewed as two different ligatures then they may both be specified in different lines. For example "ffi" may be viewed as a ligature of "f" "f" and "i" or of "ff" and "i".
In complicated Asian glyphs, postscript has a mechanism for controlling the
width of counters between stems. These are called
In Latin, Cyrillic, Greek fonts only glyphs like "m" are allowed to have
counter masks, and only in very controlled conditions. See the description
of counter masks.
Some glyphs (ligatures, accented glyphs, Hangul
syllables, etc.) are built up out of other glyphs (at least according to
unicode). This pane of the dlg shows the components that Unicode says make
up the current glyph, if those components are in the font then you can use
FontForge's Element->Build->Build Accented or
Element->Build->Build Composite commands to create the current
glyph. The information displayed here is informative only, you may not change
this field directly (it changes when you change the unicode value or glyph
name associated with this glyph).
TeX pane allows you to specify glyph specific information
used in TeX tmf files. The height and depth fields are often the same as
the glyph's bounding box (if you don't fill these in that's what fontforge
will use by default), but they should be corrected for optical distortion,
so in glyphs like "o" these fields should be clipped to the x-height and
baseline (ff will attempt to do this when you press
The Italic correction is used by both TeX and the new OpenType MATH table. In the MATH table you may also specify a device table to correct rounding errors at small pixel sizes.
The Top Accent Position is another concept from the MATH table and provides a horizontal position over which to position math accents (vertical positioning is done somewhere else).
For extremely tall glyphs the normal mechanisms for positioning superscripts
are inappropriate and the
 Is Extended Shape checkbox alerts
the typesetter to this fact.
The [Math Kerning] button brings up the Math
Kerning dialog which gives you fine control over the placement of subscripts
and superscripts near the glyph.
There are two panes for variants, one for glyphs that get longer horizontally and one for glyphs that get longer vertically.
In mathmatical typesetting the size of a parenthesis will depend on the vertical size of the formula within that parenthesis. As formulae can be arbetarily complex they may be arbetarily tall, so there needs to be a way of making arbetarily big parentheses. This pane provides two mechanisms.
At the top you may specify a list of prebuilt glyphs each a little bigger than the one before.
Underneath you may specify a way of building really big parentheses by combining
several component glyphs. See the description of this in the
MATH Info dialog for more
This only applies when editing type3 fonts. Even then it is only meaningful if the current glyph is used as a pattern in some other glyph.
When a glyph is used as a pattern, the size of the pattern tile defaults to the bounding box of the glyph used. This means there will be no whitespace around the tile. Sometimes that is desirable (if the tiles are to looks as though they touch), sometimes it is not. This provides control over the whitespace that surrounds the drawn region of the tile.
You can specify that you want a constant margin of white space around all
edges of the tile, or you can specify explicitly the coordinates of the
The Next and Prev buttons allow you to move from one glyph to the next (if, for example, you need to enter encodings for a range of glyphs).
The Cancel button now cancels all changes made with this instance of the