Apple Advanced Typography

Last updated
Apple Advanced Typography
Filename extension
.ttf, .ttc
Type code 0100, "ttcf"
Developed by Apple
Type of format Font file
Extended from TrueType, PostScript fonts
Website https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6AATIntro.html

Apple Advanced Typography (AAT) is Apple Inc.'s computer technology for advanced font rendering, supporting internationalization and complex features for typographers, a successor to Apple's little-used QuickDraw GX font technology of the mid-1990s. It is a set of extensions to the TrueType outline font standard, with smartfont features similar to the OpenType font format that was developed by Adobe and Microsoft, and to Graphite. It also incorporates concepts from Adobe's "multiple master" font format, allowing for axes of traits to be defined and morphing of a glyph independently along each of these axes. AAT font features do not alter the underlying typed text; they only affect the characters' representation during glyph conversion.

Contents

Features

Example of the extra glyphs and ligatures available in the Zapfino typeface Zapfino.svg
Example of the extra glyphs and ligatures available in the Zapfino typeface

Significant features of AAT currently include:

AAT font features are supported on Mac OS 8.5 and above and all versions of macOS. The cross-platform ICU library provided basic AAT support for left-to-right scripts. [1] HarfBuzz version 2 has added AAT shaping support, an open-source implementation of the technology [2] which Chrome/Chromium as version 72 and LibreOffice as version 6.3 uses it instead of CoreText for rendering macOS AAT fonts in cross-platform way.

As of OS X Yosemite and iOS 8, AAT supports language-specific shaping—that is, changing how glyphs are processed depending on the human language they are being used to represent. This support is available through the use of language tags in Core Text. [3] Provision was added at the same time for the relative positioning of two glyphs via anchor points via the ‘kerx’ and ‘ankr’ tables. [4]

AAT and OpenType in macOS

As of Mac OS X 10.5 Leopard, partial support for OpenType is available. As of 2011, support is limited to Western and Arabic scripts. If a font has AAT tables, they will be used for typography. If the font does not have AAT tables but does have OpenType tables, they will be used to the extent that the system supports them.

This means that many OpenType fonts for Western or Middle Eastern scripts can be used without modification on Mac OS X 10.5, but South Asian scripts such as Thai and Devanagari cannot. These require AAT tables for proper layout.

AAT Layout

AAT first requires the text to be turned entirely into glyphs before text layout occurs. Operations on the text take place entirely within the glyph layer.

The core table used in the AAT layout process is the "morx" table. This table is divided into a series of chains, each further divided into subtables. The chains and subtables are processed in order. When each subtable is encountered, the layout engine compares flags in the subtable against control flags, generally derived from user settings. This determines whether or not the subtable is processed.

The set of available features in the font is made accessible to the user via the "feat" table. This table provides pointers to the localizable strings that can be used to describe a feature to the end user and the appropriate flags to send to the text engine if the feature is selected. Features can be made invisible to the user by the simple expedient of not including entries in the "feat" table for them. Apple uses this approach, for example, to support required ligatures.

Subtables may perform non-contextual glyph substitutions, contextual glyph substitutions, glyph rearrangements, glyph insertions, and ligature formation. [5] Contextual actions are sensitive to the surrounding text. They can be used, for example, to automatically turn an s into a medial s anywhere in a word except at its end.

The "morx" subtables for non-contextual glyph substitutions are simple mapping tables between the glyph substituted and its substitute. The others all involve the use of finite state machines.

For the purposes of processing the finite state machine, glyphs are organized into classes. A class may be small, containing only a single glyph (for something like ligature formation), or it may include dozens glyphs or even more. A special class is automatically defined for any glyph not included in any of the explicit classes. Special classes are also available for the end of the glyph stream and glyphs deleted from the glyph stream.

Beginning with a start-of-text state, the layout engine parses the text, glyph by glyph. Depending on its current state and the class of the glyph it encounters, it will switch to a new state and possibly perform an appropriate action. The process continues until the glyph stream is exhausted.

The use of finite state machines allows "morx" tables to be relatively small and to be processed relatively quickly. They also provide considerable flexibility. Inasmuch, however, as Apple's font tools require the generation of "morx" tables via raw state table information, they can be difficult to produce and debug. The font designer is also responsible for making sure that "morx" subtables are ordered correctly for the desired effect.

Since AAT operates entirely with glyphs and never with characters, all the layout information necessary for producing the proper display resides within the font itself. This allows fonts to be added for new scripts without requiring any specific support from the OS. Third parties can produce fonts for scripts not officially supported by Apple, and they will work with macOS. On the other hand, this also means that every font for a given script requires its own copy of the script's shaping information in its own "morx" tables.

Other AAT tables (or AAT-specific extensions to standard TrueType tables) allow for context-sensitive kerning, justification, and ligature splitting. AAT also supports variation fonts, [6] in which a font's shape can vary depending on a scaled value supplied by the user. Variation fonts are similar to Adobe's defunct Multiple master fonts, where the endpoints are defined and any medial value is valid. With this, the user can then drag sliders in the user interface to make glyphs taller or shorter, to make them fatter or thinner, to increase or decrease the size of the serifs, and the like, all independently of one another. Glyphs may even have their fundamental shapes radically altered. [7] Before OpenType introduced Font Variation in September 2016, there is nothing like this in OpenType.

Other AAT tables can also have point-size dependent effects; [6] for example, at 12 points, the horizontal and vertical strokes can be of similar width, but at 300 points, the stroke width variation could be quite great.

In practice, few AAT fonts use any features of the technology other than those available through the "morx" table. Zapfino, Hoefler Text, and Skia are fonts that ship with macOS that illustrate a variety of AAT's capabilities.

AAT for Indic scripts

For Indic scripts, the only features that are necessary are glyph reordering and substitution; AAT supports both of these. As noted above, OpenType fonts for Indic scripts require AAT tables to be added before they will function properly on macOS. However, this applies only to software dependent on the system support of OpenType. Programs that provide their own implementation of OpenType will render Indic properly with OpenType fonts. (They may, however, not render Indic fonts with AAT tables correctly.)

Mac OS X 10.5 shipped with fonts for Devanagari, Gurmukhi, Gujarati, Thai, Tibetan, and Tamil. Fonts for other Indic scripts were included in later versions of macOS and iOS, as well as being available from third parties.

See also

Related Research Articles

TrueType is an outline font standard developed by Apple in the late 1980s as a competitor to Adobe's Type 1 fonts used in PostScript. It has become the most common format for fonts on the classic Mac OS, macOS, and Microsoft Windows operating systems.

<span class="mw-page-title-main">QuarkXPress</span> Desktop publishing software

QuarkXPress is a desktop publishing software for creating and editing complex page layouts in a WYSIWYG environment. It runs on macOS and Windows. It was first released by Quark, Inc. in 1987 and is still owned and published by them.

OpenType is a format for scalable computer fonts. Derived from TrueType, it retains TrueType's basic structure but adds many intricate data structures for describing typographic behavior. OpenType is a registered trademark of Microsoft Corporation.

<span class="mw-page-title-main">Pango</span> Library for text rendering

Pango is a text layout engine library which works with the HarfBuzz shaping engine for displaying multi-language text.

<span class="mw-page-title-main">Kerning</span> Adjustment of the space between the characters of a typeface

In typography, kerning is the process of adjusting the spacing between characters in a proportional font, usually to achieve a visually pleasing result. Kerning adjusts the space between individual letterforms, while tracking (letter-spacing) adjusts spacing uniformly over a range of characters. In a well-kerned font, the two-dimensional blank spaces between each pair of characters all have a visually similar area. The term "keming" is sometimes used informally to refer to poor kerning.

<span class="mw-page-title-main">Ligature (writing)</span> Glyph combining two or more letterforms in a single typeset or handwritten character

In writing and typography, a ligature occurs where two or more graphemes or letters are joined to form a single glyph. Examples are the characters æ and œ used in English and French, in which the letters 'a' and 'e' are joined for the first ligature and the letters 'o' and 'e' are joined for the second ligature. For stylistic and legibility reasons, 'f' and 'i' are often merged to create 'fi' ; the same is true of 's' and 't' to create 'st'. The common ampersand (&) developed from a ligature in which the handwritten Latin letters 'E' and 't' were combined.

In digital typography, the TrueType font Arial Unicode MS is an extended version of the font Arial. Compared to Arial, it includes higher line height, omits kerning pairs and adds enough glyphs to cover a large subset of Unicode 2.1—thus supporting most Microsoft code pages, but also requiring much more storage space. It also adds Ideographic layout tables, but unlike Arial, it mandates no smoothing in the 14–18 point range, and contains Roman (upright) glyphs only; there is no oblique (italic) version. Arial Unicode MS was previously distributed with Microsoft Office, but this ended in 2016 version. It is bundled with Mac OS X v10.5 and later. It may also be purchased separately from Ascender Corporation, who licenses the font from Microsoft.

The International Alphabet of Sanskrit Transliteration (IAST) is a transliteration scheme that allows the lossless romanisation of Indic scripts as employed by Sanskrit and related Indic languages. It is based on a scheme that emerged during the nineteenth century from suggestions by Charles Trevelyan, William Jones, Monier Monier-Williams and other scholars, and formalised by the Transliteration Committee of the Geneva Oriental Congress, in September 1894. IAST makes it possible for the reader to read the Indic text unambiguously, exactly as if it were in the original Indic script. It is this faithfulness to the original scripts that accounts for its continuing popularity amongst scholars.

QuickDraw GX was a replacement for the QuickDraw (QD) 2D graphics engine and Printing Manager inside the classic Mac OS. Its underlying drawing platform was a object oriented resolution-independent retained mode system, making it much easier for programmers to perform common tasks. Additionally, GX added various curve-drawing commands that had been lacking from QD, as well as introducing TrueType as its basic font system.

Uniscribe is the Microsoft Windows set of services for rendering Unicode-encoded text, supporting complex text layout. It is implemented in the dynamic link library USP10.DLL. Uniscribe was released with Windows 2000 and Internet Explorer 5.0. In addition, the Windows CE platform has supported Uniscribe since version 5.0.

<span class="mw-page-title-main">XeTeX</span> TeX typesetting engine

XeTeX is a TeX typesetting engine using Unicode and supporting modern font technologies such as OpenType, Graphite and Apple Advanced Typography (AAT). It was originally written by Jonathan Kew and is distributed under the X11 free software license.

<span class="mw-page-title-main">Complex text layout</span> Neighbour-dependent grapheme positioning

Complex text layout (CTL) or complex text rendering is the typesetting of writing systems in which the shape or positioning of a grapheme depends on its relation to other graphemes. The term is used in the field of software internationalization, where each grapheme is a character.

<span class="mw-page-title-main">Zapfino</span> Typeface

Zapfino is a calligraphic typeface designed for Linotype by typeface designer Hermann Zapf in 1998. It is based on an alphabet Zapf originally penned in 1944. As a font, it makes extensive use of ligatures and character variations.

Graphite is a programmable Unicode-compliant smart font technology and rendering system developed by SIL International as free software, distributed under the terms of the GNU Lesser General Public License and the Common Public License.

A Unicode font is a computer font that maps glyphs to code points defined in the Unicode Standard. The vast majority of modern computer fonts use Unicode mappings, even those fonts which only include glyphs for a single writing system, or even only support the basic Latin alphabet. Fonts which support a wide range of Unicode scripts and Unicode symbols are sometimes referred to as "pan-Unicode fonts", although as the maximum number of glyphs that can be defined in a TrueType font is restricted to 65,535, it is not possible for a single font to provide individual glyphs for all defined Unicode characters. This article lists some widely used Unicode fonts that support a comparatively large number and broad range of Unicode characters.

Apple's Macintosh computer supports a wide variety of fonts. This support was one of the features that initially distinguished it from other systems.

Microtypography is a range of methods for improving the readability and appearance of text, especially justified text. The methods reduce the appearance of large interword spaces and create edges to the text that appear more even. Microtypography methods can also increase reading comprehension of text, reducing the cognitive load of reading.

<span class="mw-page-title-main">Panorama (typesetting software)</span>

Panorama is a line layout and text composition engine to render text in various worldwide languages made by Bitstream Inc. Panorama uses Font Fusion as the base to support rendering of the text. The engine allows the user to manage different text formatting aspects like spacing, alignment, style effects.

HarfBuzz is a software development library for text shaping, which is the process of converting Unicode text to glyph indices and positions. The newer version, New HarfBuzz (2012–), targets various font technologies while the first version, Old HarfBuzz (2006–2012), targeted only OpenType fonts.

References

  1. "Layout Engine - ICU User Guide".
  2. "HarfBuzz 2.0 Released for Advancing Open-Source Text Shaping". Phoronix. 19 October 2018.
  3. "Language Tag Table". Apple Inc.
  4. "Anchor Point Table". Apple Inc.
  5. "About Apple Advanced Typography Fonts". Apple Inc.
  6. 1 2 "TrueType Reference Manual - The 'fvar' table". Apple Inc. Archived from the original on 4 June 2014.
  7. "TrueType Reference Manual - The 'gvar' table". Apple Inc. Archived from the original on 4 June 2014.