Several horizontal and vertical lines, also known as glyph metrics, will help you with your font design. You can activate them through the Metrics Options dialog.
Note: There are also global font metric settings. To change those font metrics, click Properties on the Font menu and then click the Metrics tab.
Left side-bearing, right side-bearing, advance width, top side-bearing, bottom side-bearing, and advance height
In the Glyph panel there are two vertical lines (normally the glyph outline lies in between these lines) that represent the left and right side-bearings. These are shown by default but you can hide them through the Show Metrics button on the Drawing toolbar. The left and right side-bearings can be changed by dragging them to their desired position. You can also adjust the side-bearings through the Glyph Properties panel. White space should be evenly distributed between the left and right side-bearings of glyphs except when font is specifically designed with ligatures for joining characters in a cursive script font.
Non-spacing combining marks
These marks can be used to construct composite glyphs. Complete composites can help with this. Then they are usually also used in Mark‑to‑Base, Mark‑to‑Ligature, and Mark‑to‑Mark lookups in the OpenType Designer. Such OpenType layout features can be automatically generated.
In general non-spacing combining marks should have a zero advance width. There is one exception as within a monospaced font all visible glyphs must have the same advance width.
Tabular figures
Tabular figures (i.e. the digits 0 - 9) should all have the same advance width.
Expressions
You can provide simple expressions to calculate the glyph metrics. These functions (as well as add, subtract, multiply and divide) are supported:
min( X , Y ) |
Returns the lesser value of the two input arguments X and Y. |
max( X , Y ) |
Returns the greater value of the two input arguments X and Y. |
abs( X ) |
Returns the absolute value of the argument X. |
lsb(glyphname,master) |
Returns the left side-bearing value for the glyph named glyphname. If you don’t provide a glyphname, it assumes the current glyph. |
rsb(glyphname,master) |
Returns the right side-bearing value for the glyph named glyphname. If you don’t provide a glyphname, it assumes the current glyph. |
aw(glyphname,master) |
Returns the advance width value for the glyph named glyphname. If you don’t provide a glyphname, it assumes the current glyph. |
tsb(glyphname,master) |
Returns the top side-bearing value for the glyph named glyphname. If you don’t provide a glyphname, it assumes the current glyph. |
bsb(glyphname,master) |
Returns the bottom side-bearing value for the glyph named glyphname. If you don’t provide a glyphname, it assumes the current glyph. |
ah(glyphname,master) |
Returns the advance height value for the glyph named glyphname. If you don’t provide a glyphname, it assumes the current glyph. |
bl(glyphname,master) |
Returns the bounding box left value for the glyph named glyphname. If you don’t provide a glyphname, it assumes the current glyph. |
br(glyphname,master) |
Returns the bounding box right value for the glyph named glyphname. If you don’t provide a glyphname, it assumes the current glyph. |
bw(glyphname,master) |
Returns the bounding box width value for the glyph named glyphname. If you don’t provide a glyphname, it assumes the current glyph. |
bt(glyphname,master) |
Returns the bounding box top value for the glyph named glyphname. If you don’t provide a glyphname, it assumes the current glyph. |
bb(glyphname,master) |
Returns the bounding box bottom value for the glyph named glyphname. If you don’t provide a glyphname, it assumes the current glyph. |
bh(glyphname,master) |
Returns the bounding box height value for the glyph named glyphname. If you don’t provide a glyphname, it assumes the current glyph. |
base(glyphname,master) |
It will provide a value that syncs the specific metric (side-bearing, aw, or, ah) of the specified glyph. If you don’t provide a glyphname, it assumes the current glyph for empty and simple glyphs, and it assumes the first glyph member for composite glyphs. This is especially useful for composite glyphs that have accents that go out of bounds of the base glyph. The function does not require a glyph name, which makes it even more convenient. |
comp(glyphname,master) |
Works with composite glyphs. It will provide a value that syncs the specific metric (side-bearing, aw, or, ah) of the specified glyph member. The expression requires a glyph name. |
glyphname |
To link glyph metrics, you can use a shorter notation for the side-bearing for the glyph named glyphname. If used within the expression for LSB it will process lsb(glyphname), if used with RSB it will process rsb(glyphname), and if used with AW it will process aw(glyphname). This also works with TSB, BSB, and AH. |
snap(snapname) |
This function can only be used with TSB and BSB. Snapname can be either typoascender, typodescender, xheight, capheight, baseline, or origin. |
Glyph Names
To avoid conflicts, put the glyph name between double quotation marks if it contains ambiguous characters like hyphen, comma, parenleft, or parenright.
Master
This is the name of the master in a variable font. This parameter is optional. If possible avoid it, as it can make things rather complex.
Numbers
You can use numbers (use a decimal point with fractional numbers) and these functions along with the following operators: + - * / and use parentheses to define simple expressions. Here are some examples that illustrate the potential of expressions:
min(18.75*aw(agrave), 800)/36+lsb(tonosmod-grek)
lsb(a)/3 + bw(i) + 25 - (17.3-3)*3
Invalid Expressions
If an expression is invalid, the last known value will be used, and an exclamation icon will be shown on the right of the edit box.
Fixed Value
If you provide a fixed value expression, an equal sign followed by a value, it will keep the value, even when you move or resize glyph contours.
Link Glyph Metrics
Just type "n" in the LSB expression field for m if you want to keep the left side-bearing of glyph "m" and "n" to be the same.
Glyph Name Conflicts
If a glyph name is used in an expression, it could cause issues if it contains specific characters, e.g. a space character, or a character that is also used as an operator. Mainly the hyphen, which is both used to provide a script to the glyph name, but also as an operator to subtract values. In such cases put the glyph name between double quotation marks.
Discarding Expressions
If LSB, RSB, and AW all have an expression, either RSB or AW will be considered invalid and will be discarded. Likewise with expressions for TSB, BSB, and AH, the one for BSB or AH will be discarded.
Auto Attach
With glyphs that have auto attach enabled, the metrics are automatically calculated based on the composite glyph members. Sometimes those metrics are almost perfect, but still need to be adjusted. In such case you can use expressions to add or subtract from the calculated values, by starting the expression with the equal sign followed by either a plus or a minus sign:
+=10 will add an additional 10 units to the calculated value.
-=aw(zero) will subtract the advance width of the glyph named zero.
Cancel Expressions
To stop using an expression, just type the number sign # and it returns to the last known value. Expressions will also be canceled when you enable auto attach, drag a side-bearing line within the Glyph Edit panel, or perform auto metrics or complete composites.
Shortcut for Default Bearings
Within the Glyph Edit panel press key ; to set default bearings.
Recursive Expressions
A recursive expression is one that uses a function which relies on itself. For example this combination:
LSB for glyph A = lsb(B) + 10
LSB for glyph B = lsb(A) + 25
Avoid recursive expressions, as such calculated values might vary unexpectedly.
Note: FontCreator takes the Italic Angle or the slant axis location into account while calculating metrics for horizontal writing. It also adds Caret Offset to the metrics, which if set correctly improves the visual layout of these metrics.
Note: Within a font with TrueType based outlines, composite glyphs may make use of a specific flag, known as the Use this glyph's metrics flag. If set, this forces the position of both left side-bearing and right side-bearing lines to match those from the glyph member. FontCreator will automatically set this flag when appropriate, but this option can be disabled through the Options dialog.
See also: