Skip to content

Type design

The vocabulary of drawing letters.

Use the entry for the relevant application. Draft terms require confirmation before publication.

ascender

Applies to: fontlab, fontographer, transtype. Translatable: yes.

An ascender is the part of a lowercase letter that extends above the x-height, as in b or d. Ascender height describes the intended alignment of these parts and may differ from cap height. Do not confuse this design measurement with similarly named vertical metrics in exported font tables. Line spacing depends on those fields and on the application using them.

Write: The d's ascender extends above the x-height.

Not: The ascender design height always determines an application's line spacing.

See also: descender, cap height, x-height, OS/2 table

baseline

Applies to: fontlab, fontographer, transtype. Translatable: yes.

A baseline is a reference line used to align text. In conventional horizontal Latin font design, the baseline is at y = 0, with ascenders above it and descenders below it. Other scripts and layout systems can use different baseline conventions. Identify the relevant baseline when discussing alignment across scripts or vertical text.

Write: You draw the letter on the baseline, at y equals zero.

Not: Every script uses the same horizontal baseline.

See also: x-height, cap height, ascender, UPM

bowl

Applies to: fontlab, fontographer. Translatable: yes.

A bowl is a rounded stroke that encloses a counter, as in b, d or p. Its shape, thickness and junctions affect the letter's balance. The appropriate number of curve segments depends on the design. Nodes at extrema can help editing and hinting, but a fixed segment count does not guarantee compatible masters or good interpolation.

Write: You place nodes at the extremes of the bowl.

Not: Four curve segments guarantee that the bowl will interpolate correctly.

See also: counter, stem, overshoot, extremum

cap height

Applies to: fontlab, fontographer. Translatable: yes.

Cap height is the distance from the baseline to the top of a flat capital such as H. Rounded or pointed capitals may extend beyond it through overshoot. Record the intended value in Font Info. Cap height describes a design measurement; alignment zones and line-spacing metrics are separate settings, even when their values are related.

Write: You record the cap height in Font Info.

Not: Setting cap height automatically defines all the font's alignment zones.

See also: ascender, baseline, x-height, alignment zone

character

Applies to: fontlab, fontographer. Translatable: yes.

A character is an abstract unit of written text, such as a letter or punctuation mark. A glyph is its visual representation. The relationship is not one to one: several characters can form a ligature, and a character can have several glyph forms. A user-perceived character can also consist of several Unicode codepoints. Keep characters, codepoints and glyphs distinct when discussing encoding or text processing.

Write: You type a character, and FontLab shows the glyph mapped to it.

Not: Each character is exactly one codepoint and one glyph.

See also: glyph, Unicode codepoint, cmap, Private Use Area

contour

Also written: outline, path. Applies to: fontlab, fontographer, vexy-vextra, vexy-lines. Translatable: yes.

A contour is an open or closed sequence of connected line and curve segments. Its nodes and control points describe its geometry. One glyph or vector object can contain several contours. A counter is an area of space, not a synonym for a contour. When explaining fill behaviour, identify the outline format and fill rule before prescribing a contour direction.

Write: The glyph has an outer contour and an inner contour around its counter.

Not: A counter is another name for an inner contour.

See also: node, segment, winding direction, counter

counter

Applies to: fontlab, fontographer. Translatable: yes.

A counter is the enclosed or partly enclosed space within a letterform, such as the enclosed space in an o or the open space in a c. The surrounding strokes define it. A closed counter may have an inner contour as its boundary; an open counter does not require a separate contour. Judge its size and shape together with the surrounding strokes.

Write: You open the counter to lighten the letter at text sizes.

Not: Every counter is enclosed by its own contour.

See also: contour, winding direction, stem, bowl

descender

Applies to: fontlab, fontographer, transtype. Translatable: yes.

A descender is the part of a letter that extends below the baseline, as in p or y. Its design height is usually recorded as a negative coordinate relative to the baseline. Exported descender metrics are separate fields used by applications for layout. Whether a deep glyph clips depends on the relevant metrics, application and text container, not on one design value alone.

Write: You enter the descender as a negative value in Font Info.

Not: Any glyph below the descender value will be clipped in every application.

See also: ascender, baseline, OS/2 table, UPM

extremum

Also written: extreme point, node at extreme. Applies to: fontlab, fontographer, vexy-vextra. Translatable: yes.

An extremum is a point where a curve reaches a local leftmost, rightmost, topmost or bottommost position. The plural is extrema. Placing nodes at extrema can help editing and hinting. If you add nodes to masters intended for interpolation, preserve the correspondence between their contours and points. Different extremum positions alone do not make masters incompatible.

Write: You add nodes at the extremes before you interpolate.

Not: Masters cannot interpolate if their extrema have different coordinates.

See also: node, contour, master compatibility, hinting

glyph

Applies to: fontlab, fontographer, transtype. Translatable: yes.

A glyph is one drawn shape in a font: a letter, a figure, a mark, or a piece of a composite. A character is what a reader types and a glyph is what a renderer draws, and one character can map to several glyphs while several characters can map to one. You edit a glyph in the Glyph window, where its contours, elements, anchors, and metrics all live together. The distinction matters in any sentence about encoding, since a font maps codepoints to glyphs through the cmap table.

Write: You draw the glyph in the Glyph window.

Not: Glyphs are drawn by the user in the glyph window.

See also: character, contour, glyph name, Unicode codepoint

handle

Also written: control point, BCP. Applies to: fontlab, fontographer, vexy-vextra. Translatable: yes.

A handle is an off-curve control point used to shape a curve segment. A cubic Bézier segment has two control points; a quadratic segment has one. Moving a handle changes the curve without moving its endpoints. In tools that display handle arms, the arm connects a control point to an endpoint. Name the curve type when the number or behaviour of handles matters.

Write: You drag the handle to deepen the curve.

Not: Every curve segment has two handles.

See also: node, segment, Tunni line, G2 continuity

node

Also written: point. Applies to: fontlab, fontographer, vexy-vextra. Translatable: yes.

A node is a point on a contour where segments meet, and its type decides how they meet. A sharp node lets two segments arrive at any angle. A smooth node keeps the handles collinear so the curve passes through without a kink. A tangent node joins a line to a curve smoothly. A G2 node matches curvature as well as direction. You select a node and drag it, or nudge it, and the segments on both sides follow. Put nodes at the extremes so hinting and interpolation have something to hold.

Write: You drag the node and the segments follow.

Not: Nodes can be dragged for the adjusting of segments.

See also: handle, segment, contour, extremum

overshoot

Applies to: fontlab, fontographer. Translatable: yes.

Overshoot is the extension of a rounded or pointed shape beyond an alignment line so that it appears as tall as a flat shape. For example, an o may extend above the x-height and below the baseline. Its amount depends on the design and intended size. PostScript alignment zones can describe these overshoot regions for hinting; there is no universal percentage to apply.

Write: You give the o an overshoot so it matches the x in height.

Not: Set overshoot to two percent of UPM in every typeface.

See also: alignment zone, x-height, baseline, bowl

segment

Also written: curve segment. Applies to: fontlab, fontographer, vexy-vextra. Translatable: yes.

A segment is the portion of a contour between two on-curve endpoints. It may be a straight line or a curve. A quadratic Bézier segment has one off-curve control point; a cubic segment has two. Describe the segment type and the relevant editing command rather than assuming that every curve has two handles or that changing a node type performs every conversion.

Write: You convert the line segment into a curve segment.

Not: Quadratic and cubic segments have the same number of control points.

See also: node, handle, contour, extremum

serif

Applies to: fontlab, fontographer. Translatable: yes.

A serif is the finishing stroke at the end of a stem or arm. Its shape sorts a face into the familiar classes: oldstyle, transitional, Didone, slab. You draw a serif once and reuse it as a component or an element, which keeps a family consistent and makes a late change cheap. Serifs are small, so they take the most damage at low resolution, which is where hinting and careful alignment zones earn their place.

Write: You reuse one serif element across the family.

Not: Serifs can be reused so that consistency is maintained.

See also: terminal, element, component, hinting

stem

Applies to: fontlab, fontographer, vexy-vextra. Translatable: yes.

A stem is a main stroke of a letter, usually the vertical one: the two uprights of an H, the single upright of an l. Stem width sets the weight of a face, and stems that disagree across a family break its rhythm. You measure a stem with the Measurement tool and record the standard widths in Font Info, where hinting and the stem links read them. Vextra reuses the word for the paired edges it detects in general artwork, not only in letters.

Write: You measure the stem before you set the standard stem width.

Not: Stem widths are usually being set in the font info.

See also: counter, stem link, hinting, alignment zone

terminal

Applies to: fontlab, fontographer. Translatable: yes.

A terminal is the end of a stroke without a serif, such as the ending of a c or f. Its shape may be rounded, angled or cut off, depending on the design. Compare related terminals across a typeface at the intended reading size. The anatomical term does not prescribe how to construct or store the shape in an editor.

Write: You match the terminal of the a to the terminal of the c.

Not: A terminal must always be drawn as part of the main contour.

See also: serif, stem, contour, overshoot

UPM

Also written: units per em, unitsPerEm. Applies to: fontlab, fontographer, transtype. Translatable: no.

UPM, units per em, specifies how many font units make up one em. It sets the scale for outline coordinates and metrics when a renderer converts them to a text size. Values such as 1000 and 2048 are common; TrueType outlines do not require a power of two. When changing UPM, distinguish changing the scale value from rescaling the outlines and metrics.

Write: You set the UPM to 1000 before you draw.

Not: The UPM can be changed later without any problems.

See also: baseline, advance width, hinting, OTF

winding direction

Also written: contour direction, CW, CCW. Applies to: fontlab, fontographer. Translatable: yes.

Winding direction is the order in which a contour runs, clockwise or counter-clockwise, and it decides which areas the renderer fills. FontLab follows the PostScript convention: outer contours wind counter-clockwise and counters wind clockwise. The letter O is two contours, one each way. You check direction before you export, and reverse a contour when a counter fills solid or an outer shape turns hollow. A renderer applies the rule at draw time, so the error shows in the proof rather than in the editor.

Write: You reverse the contour so the counter opens.

Not: Contour directions are automatically corrected on export.

See also: contour, counter, Remove Overlap, OTF

x-height

Applies to: fontlab, fontographer. Translatable: yes.

The x-height is the height of a lowercase x above the baseline, and it stands for the height of the lowercase in general. It does more for apparent size than the point size does: two faces at the same size look different when their x-heights differ. You record it in Font Info so hinting and alignment zones can use it, and you draw round letters slightly above it to allow for overshoot. Write it lowercase with a hyphen, even at the start of a sentence recast to avoid one.

Write: You set the x-height in Font Info before you draw the lowercase.

Not: The X-Height is set in font info.

See also: baseline, cap height, overshoot, alignment zone