Advanced Search
Apple Developer Connection
Member Login Log In | Not a Member? Contact ADC

 

AAT Font Quality Specification

a desert line goes here

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:

 

    • If the glyph is currently encoded:
      • If the glyph is pointed to by any 'cmap' (including any that will ship before the revised font does), then the overriding goal is to not cause any existing document to reflow. You can even radically change the design (as long as its still the same character).
    • If the encoded glyph's metrics do not change:
      • Add the new design as a new glyph.
      • Make the 'cmap' point to the new glyph.
      • If someone might reasonably want to access the old design, provide a feature which points from the new glyph to the old glyph.
    • If the encoded glyph's metrics do change:
      • Add the new design as a new glyph.
      • Leave the 'cmap' pointing to the old glyph.
      • Provide a feature to point from the old glyph to the new glyph, but leave the feature off by default.






Arleigh Movitz
The Apple Fonts Group