Search: in
Apple Advanced Typography
Apple Advanced Typography Encyclopedia
  Tutorials     Encyclopedia     Dictionary     Directory  
Apple_Advanced_Typography Email this to a friend      Apple_Advanced_Typography


Apple Advanced Typography

Apple Advanced Typography (AAT) is Apple Inc's computer software 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 similar smartfont features to Adobe and Microsoft's OpenType font format, and the open source 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
Example of the extra glyphs and ligatures available in the Zapfino typeface
Significant features of AAT currently include:

  • Several degrees of ligature control
  • Keshideh justification and joiners
  • Cross-stream kerning (required for Nasta'liq Urdu, for example)
  • Indic vowel rearrangement
  • Independently controllable substitution of:
    • Old style figures
    • Small caps and drop caps
    • Swash 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, including Mac OS X and also on several open-source operating systems such as Linux via IBM's ICU library.

AAT and OpenType in Mac OS X

As of Mac OS X 10.5 Leopard, partial support for OpenType is available. The support is currently limited to Western scripts and Arabic. 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. They require AAT tables for proper layout.

It should be noted that AAT does not support script-specific shaping. For a single font to cover two languages with different shaping requirements but a common scripts, it will be necessary for two sets of shaping tables to be included in the font, with the user (or some other high-level mechanism) switching between the two. There is also no provision in AAT for the relative positioning of two glyphs via anchor points.

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. The 'morx' table is divided into a series of chains, and each chain is 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. The 'feat' table provides pointers to the localizable strings which 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 do 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 machines.

For purposes of processing the finite stage machine, glyphs are organized into classes. The classes may be small, with 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 to make sure that 'morx' subtables are ordered correctly for the desired effect.

It should be noted that, 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 Mac OS X. 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, ligature-splitting. AAT also supports variation fonts, where a font's shape can vary depending on scaled value supplied by the user. Variation fonts are similar to Adobe's defunct Multiple master fonts, where the end-points are defined and any medial value is valid. With this, the user can then drag a slider in the user interface to make glyphs taller or shorter, drag another one to make them fatter or thinner, another one to increase the size of the serifs, etc. all independently of one another. Glyphs may even have their fundamental shapes radically altered. There is nothing like this in OpenType.

Other AAT tables the user can also have point-size dependent effects, for example at 12 pt the horizontal and vertical strokes can be of similar width, but at 300 pt, 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 shipping with Mac OS X which illustrate many of AAT's capabilities.

AAT for the Arabic script

A good discussion on AAT used in Persian fonts can be found at the University of Texas Persian Department.

AAT for Indic scripts

For Indic scripts, the only features that are necessary are glyph re-ordering 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 Mac OS X. Note, however, that this applies only to software dependent upon the system support of OpenType. Programs which 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 ships with fonts for Devanagari, Gurmukhi, Gujarati, Thai, Tibetan, and Tamil. Fonts for other Indic scripts are available from third parties.

See also

External links

de:Apple Advanced Typography pt:Apple Advanced Typography





Source: Wikipedia | The above article is available under the GNU FDL. | Edit this article


Search for Apple Advanced Typography in Tutorials
Search for Apple Advanced Typography in Encyclopedia
Search for Apple Advanced Typography in Dictionary
Search for Apple Advanced Typography in Open Directory
Search for Apple Advanced Typography in Store
Search for Apple Advanced Typography in PriceGig


Help build the largest human-edited directory on the web.
Submit a Site - Open Directory Project - Become an Editor

Advertisement

Advertisement



Apple Advanced Typography
Apple_Advanced_Typography top Apple_Advanced_Typography

Home - Add TutorGig to Your Site - Disclaimer

©2008-2009 TutorGig.com. All Rights Reserved. Privacy Statement