Apple Advanced Typography
   HOME

TheInfoList



OR:

Apple Advanced Typography (AAT) is
Apple Inc Apple Inc. is an American multinational technology company headquartered in Cupertino, California, United States. Apple is the largest technology company by revenue (totaling in 2021) and, as of June 2022, is the world's biggest company ...
.'s computer technology for advanced font rendering, supporting
internationalization In economics, internationalization or internationalisation is the process of increasing involvement of enterprises in international markets, although there is no agreed definition of internationalization. Internationalization is a crucial strateg ...
and complex features for
typographer Typography is the art and technique of arranging type to make written language legible, readable and appealing when displayed. The arrangement of type involves selecting typefaces, point sizes, line lengths, line-spacing ( leading), an ...
s, a successor to Apple's little-used
QuickDraw GX 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 resolution-independent object oriented retained mode system, making it much easier for ...
font technology of the mid-1990s. It is a set of extensions to the
TrueType 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 ...
outline font standard, with smartfont features similar to the
OpenType OpenType is a format for scalable computer fonts. It was built on its predecessor TrueType, retaining TrueType's basic structure and adding many intricate data structures for prescribing typographic behavior. OpenType is a registered trademark ...
font format that was developed by Adobe and Microsoft, and to
Graphite Graphite () is a crystalline form of the element carbon. It consists of stacked layers of graphene. Graphite occurs naturally and is the most stable form of carbon under standard conditions. Synthetic and natural graphite are consumed on lar ...
. 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.


Features

Significant features of AAT currently include: * Several degrees of
ligature Ligature may refer to: * Ligature (medicine), a piece of suture used to shut off a blood vessel or other anatomical structure ** Ligature (orthodontic), used in dentistry * Ligature (music), an element of musical notation used especially in the me ...
control *
Kashida Kashida or Kasheeda ( fa, کشیده; "extended", "stretched", "lengthened") is a type of justification in the Arabic language and in some descendant cursive scripts. In contrast to white-space justification, which increases the length of a li ...
justification and joiners * Cross-stream
kerning 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-spac ...
(required for Nasta'liq
Urdu Urdu (;"Urdu"
'' Old style figures ** Small caps and drop caps **
Swash Swash, or forewash in geography, is a turbulence, turbulent layer of water that washes up on the beach after an incoming ocean surface wave, wave has broken. The swash action can move beach materials up and down the beach, which results in the ...
variants ** Alternative glyphs: *** Individual alternatives on a per-glyph basis *** Wholesale alternatives, such as engraved text ** Anything else the font designer wants to add * Glyph variation axes 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.
HarfBuzz HarfBuzz (loose transliteration of Persian calque ''harf-bāz'', literally "open type") is a software development library for text shaping, which is the process of converting Unicode text to glyph indices and positions. The newer version, ''N ...
version 2 has added AAT shaping support, an open-source implementation of the technology which Chrome/ Chromium as version 72 and
LibreOffice LibreOffice () is a free and open-source office productivity software suite, a project of The Document Foundation (TDF). It was forked in 2010 from OpenOffice.org, an open-sourced version of the earlier StarOffice. The LibreOffice suite co ...
as version 6.3 uses it instead of CoreText for rendering macOS AAT fonts in cross-platform way. As of
OS X Yosemite OS X Yosemite ( ; version 10.10) is the eleventh major release of macOS, Apple Inc.'s desktop and server operating system for Macintosh computers. OS X Yosemite was announced and released to developers on June 2, 2014, at WWDC 2014 and rel ...
and
iOS 8 iOS 8 is the eighth major release of the iOS mobile operating system developed by Apple Inc., being the successor to iOS 7. It was announced at the company's Worldwide Developers Conference on June 2, 2014, and was released on September 17, ...
, 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 Core Text is a Core Foundation style API in macOS, first introduced in Mac OS X 10.4 Tiger, made public in Mac OS X 10.5 Leopard, and introduced for the iPad with iPhone SDK 3.2. Exposing a C API, it replaces the text rendering abilities of t ...
. Provision was added at the same time for the relative positioning of two glyphs via anchor points via the ‘kerx’ and ‘ankr’ tables.


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 Devanagari ( ; , , Sanskrit pronunciation: ), also called Nagari (),Kathleen Kuiper (2010), The Culture of India, New York: The Rosen Publishing Group, , page 83 is a left-to-right abugida (a type of segmental writing system), based on the ...
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. 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 machine A finite-state machine (FSM) or finite-state automaton (FSA, plural: ''automata''), finite automaton, or simply a state machine, is a mathematical model of computation. It is an abstract machine that can be in exactly one of a finite number o ...
s. 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, 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. 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; 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 Hoefler Text is an old-style serif font by Jonathan Hoefler and released by Apple Computer Inc. (now Apple Inc.) in 1991 to showcase advanced type technologies. Intended as a versatile font that is suitable for body text, it takes cues from a r ...
, 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 Devanagari ( ; , , Sanskrit pronunciation: ), also called Nagari (),Kathleen Kuiper (2010), The Culture of India, New York: The Rosen Publishing Group, , page 83 is a left-to-right abugida (a type of segmental writing system), based on the ...
,
Gurmukhi Gurmukhī ( pa, ਗੁਰਮੁਖੀ, , Shahmukhi: ) is an abugida developed from the Laṇḍā scripts, standardized and used by the second Sikh guru, Guru Angad (1504–1552). It is used by Punjabi Sikhs to write the language, commonly ...
,
Gujarati Gujarati may refer to: * something of, from, or related to Gujarat, a state of India * Gujarati people, the major ethnic group of Gujarat * Gujarati language, the Indo-Aryan language spoken by them * Gujarati languages, the Western Indo-Aryan sub ...
, Thai, Tibetan, and
Tamil Tamil may refer to: * Tamils, an ethnic group native to India and some other parts of Asia **Sri Lankan Tamils, Tamil people native to Sri Lanka also called ilankai tamils **Tamil Malaysians, Tamil people native to Malaysia * Tamil language, nativ ...
. Fonts for other Indic scripts were included in later versions of macOS and iOS, as well as being available from third parties.


See also

*
Apple typography Apple Inc. uses a large variety of typefaces in its marketing, operating systems, and industrial design with each product cycle. These change throughout the years with Apple's change of style in their products. This is evident in the design a ...
*
Graphite (SIL) 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. Capabil ...
technology on MS Windows and Linux * List of typographic features *
XeTeX XeTeX ( or ; see also Pronouncing and writing "TeX") 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 Ke ...


References


External links


About Apple Advanced Typography Fonts
Apple's developer documentation * - a set of command-line tools to work with fonts * (in PDF format)
An example of an AAT table




{{OS X Text rendering libraries Font formats MacOS APIs