AAT Font Quality Specification

Overview
If the font design has to be compromised to abide by the recommendations
listed below, the typographer may choose to override the recommendations,
assuming that this affects the aesthetics and not the functionality of
the font. These guidelines help in producing better digital type, but they
should not inhibit design creativity.
[NOTE] A TrueType font is a computer
program, and, as such, can crash the operating system if it is not designed
and tested correctly.
Summary of Tasks: Outline proofing documents are used for detailed judgment
of the correctness of outlines in their intended context. These documents
are not simply one-of-every-glyph; for instance, one goal is to compare
glyphs intended to be similar.
Because this is done before AAT tables exist, each glyph must be accessed
individually. During outline development, it may be possible to use standard
word processors to create these documents, because the small 'fontlets'
often used at this stage would have glyphs only in the standard encoding
range. When the font grows beyond the standard encoding range, new documents
are likely to be needed. On the assumption that AAT tables and/or Unicode
cmaps will not be available at this point, such documents cannot be produced
in any normal software package.
At this stage of development, it is also good to identify inter-glyph
relations (plain/accented; plain/swash; cap/small cap; components/ligature,
etc.) so that this knowledge is available throughout the font development
process. This allows streamlining and detailed management of many processes.
Examples:
All glyphs.
Swashes next to plain.
Accents next to plain.
Small caps next to caps.
Plain next to Inline.
Technical details:
Aesthetic proofs of outlines requires very high resolution output: a
1200+dpi device, upon which the glyphs must be printed at a large size,
approximately 200ppem (pixels per em, equivalent to points at 72dpi). Because
the typographer is looking at the placement of contour points in the TrueType
font itself, s/he needs guarantees that that information is not misrepresented
(e.g., by instructing (gridfitting) or translation to another format, such
as PostScript).
Use the optimal number of points
The outlines of the font should be designed using the minimum number
of points necessary to describe a contour. Extraneous points add to the
size of the font and slow down the speed of rendering, and can add roughness
to curves. Certain conversion tools tend to add a lot of extra points for
simple curves, or multiple points along a straight line. Extra points which
are necessary for instructing, whether in a contour or as anchor (reference)
points, should not be eliminated simply because they do not contribute
to the description of a contour shape.
 |
[NOTE] Reduce point count before a font is instructed;
in most cases, using existing tools, modifying the point count of an instructed
glyph will corrupt its instructions. Make sure that the outlines are exactly
as the typographer wants them before proceeding to the instructing phase. |
TrueType automatically closes contours. It is unnecessary and inadvisable
to place the last point of a contour on top of (sharing the same coordinates
as) the first point on a contour in order to close it.
Contours of three or more points are valid, and single points (reference
points, technically not contours) are also valid as special cases in TrueType.
Contours consisting of two points are not a valid configuration.
Place points at all extrema
Contours must have points at all extrema. This helps in both editing
and hinting. The lack of extremum points can cause major problems in trying
to control and gridfit a contour. Programs are available that will automatically
optimize the number and positioning of points without distorting the contours,
running in batch mode. These programs run on a font after the typographer
has what s/he feels is the correct glyph look. FontograFixer, available
from Apple, is one application that optimizes point positioning for fonts
produced by Fontographer. In addition to positioning the points optimally,
processing fonts through this application has the added benefit of optimizing
point count as well, helping to reduce the overall size of the font.
 |
[NOTE] The extrema are the contour points that have the
minimum and maximum coordinate values (furthest left, right, top and bottom),
not the "optical" extrema. Designers often make the mistake of
placing the extrema points at the visually widest point of a glyph, (a
tilted oval in this example shown in figure 2-1), not necessarily at the
mathematical extrema where they belong. |
Figure 2-1 Optical vs. Mathematical Extrema
True Vertical/Horizontal/Parallel lines where intended
Stems and contour sections that are intended to be absolutely horizontal
or vertical should be. Font editing tools and lower resolution display
devices at times deceive the typographer judging verticality and horizontality,
so care should be taken to confirm point coordinates. The design should
not be sacrificed to achieve this requirement, however.
The same rule should apply for lines which are intended to be parallel
or at certain angles for symmetry, etc. If a line is intended to be near-horizontal
or near- vertical, this is perfectly acceptable, but the designer should
remain aware that subtleties of this nature usually show up well only at
high resolutions and large point sizes, and if they appear at low resolutions/small
sizes, they often look like mistakes.
A font that has subtle flaring and/or cupping (such as Optima) should
probably have the feature suppressed by hinting, until the glyphs reach
a large enough size that the subtlety can be represented as a delicate
design feature and not as a blatant bulge.
Glyphs should rest on the zero baseline
In most Roman fonts, the flat bottoms of glyphs should have a y coordinate
value of 0 (zero), i.e., they should rest exactly on the zero baseline.
Inconsistent baselines will result in bouncing text. If an entire font
is consistently off of the baseline, it will look too high or too low when
used with other fonts. Fonts that have no flat bottoms (such as Dom Casual
or Old English Text), as well as specialty or dingbat fonts, can ignore
this rule.
For a font with cupped serifs, such as Garamond, the typographer will
have to pick a method for positioning glyphs on the baseline consistently;
perhaps all serif cups will be on the baseline, perhaps all serif tips,
or the serif cup may straddle the baseline. In this case, consistency and
tests of how well the font works with other fonts that are on the baseline
will be the main criteria for judging positioning.
Figure 2-2 Zero Baseline Positioning
In figure 2-2, various fonts are shown with their relationships to the
zero baseline. Note that in these cases, the typographers chose to position
the glyphs so that for Garamond Narrow (2), the cup rises above the baseline,
the Old English Text (3) and Dragonwick (4) round bottoms are also on the
baseline, and the Nadianne (6) lower stem descends below the baseline,
yet all of these fonts will work properly when used next to each other.
Smooth curves/smooth transitions
Curves should be smooth and should transition cleanly into line segments,
unless the design calls for abrupt transitions (tangents). An example of
deliberately abrupt transitions is the Chicago font, where the corners
are geometrically radiused. See figure 2-3.
Figure 2-3 Abrupt and Smooth Transitions
Crossing contours
When multiple contours are defined in a glyph or in component glyphs
the contours can (are allowed to) overlap. In some circumstances, however,
fonts with overlapping contours will produce strange results when used
in the "outline" style on a non-AAT QuickDraw system. Avoid crossing
contours whenever possible for backwards compatibility.
Component glyphs
Wherever possible, use component glyphs. Using components will significantly
reduce the size of a font, with little or no sacrifice of speed. Component
glyphs also speed up the instructing and editing process, by reducing redundant
instructing.
Although there are several methods available for creating and positioning
component glyphs, the method of using anchor points is strongly recommended,
as they provide the best means for controlling the positioning of the component
parts, especially at small sizes. However, the use of anchor points does
require planning ahead of time, to include the points in the contour prior
to instructing.
In addition, glyphs that are identical except for position and/or orientation
(such as quotes, brackets, braces, and parentheses in many fonts) can be
copied, flipped, and repositioned using component instructions.
Carefully select which glyphs are built from components, as the components
will be forced, by their nature, to behave identically to their base counterparts.
If a glyph is ever intended to be instructed to react differently than
its similar counterpart, then they should not be tied together as base
and component.
Proper path directions
Multiple paths in a glyph should have proper path directions as winding
effects the rendering. Path direction is determined by seeing in which
direction the point indices values increase or decrease. Path direction
is from the smaller value point index to the larger. The general rule is
that the path direction should be such that "black is on the right";
e.g. the turned-on pixel ("inside" of the contour) is on the
right. Using the glyph "O" as an example, the outer path should
travel clockwise, and the inner path counterclockwise. This rule must be
followed for fonts used in pre-System 7 systems; due to improvements to
the TrueType scaler, it is not necessary for System 7 and up, but it is
recommended for backwards compatibility.
For whatever direction of winding chosen, the inner contours must have
a winding direction opposite to that of the outer contours. See figure
2-4.
Figure 2-4 Proper Winding Direction
Feature consistency
Feature consistency is especially important at low resolutions, where
subtle details must be homogenized to prevent the glyphs from looking distorted
in relation to each other. At low resolutions, stems (horizontal, vertical,
diagonal), bowls, serifs, cups and flares, etc., should be consistent in
design and weight. The heights of the glyphs (cap height, x-height, baselines,
etc.) have to be consistent as well. Radicals in Kanji should be designed
consistently or identically where appropriate. Fonts with joining scripts
need to have the proper connections. Ink traps and resolution points are
both unnecessary and undesirable, when the intended output device is a
laser printer.
Glyph repertoire
Although not directly related to aesthetics, one of the items to be
double-checked during an edit is making sure that all intended glyphs are
present. It is inconvenient to have to go back and add additional glyphs
once instructing has started, and removing glyphs at this stage is usually
not possible. While extra glyphs can be left in the font, and simply not
used, this does add unnecessarily to the size of the font.
Mapping
Another item to check is that all of the glyphs are mapped to their
correct locations. This is especially important for CJK (Chinese/Japanese/Korean)
fonts, because many CJK glyphs closely resemble one another.
If a typeface is an all-caps design, the uppercase characters should
also be mapped to their lowercase counterparts. This will prevent the user
from getting missing characters when typing in lowercase, and also will
save font size and instructing redundancy. This should include all accents
and accented glyphs as well. See also: paragraph 4.F. Standard character
sets.
National standards
In CJK fonts, there are often many correct ways to write the same character,
so the proper design must be selected to comply with the various national
standard(s) for the country/ies that are the intended market for the font.
Figure 2-5 Same character, different standards
Note that these two glyphs in figure 2-5 both have the same meaning,
but are written differently in the two standards. In the JIS standard,
the upper horizontal stroke is shorter, and the three diagonal strokes
are larger and positioned higher. Both can be read easily enough by CJK-literate
readers, but each one is considered correct by one standard, and incorrect
by other.
(AAT) Upgrading existing fonts to AAT
As AAT versions of preexisting (shipping) fonts are developed, the designer
must be aware of what and what not to change in a new version of a font
to avoid backwards compatibility issues. Glyph changes should be treated
as follows: