fbpx
Wikipedia

Apple Advanced Typography

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.

Apple Advanced Typography
Filename extension
.ttf, .ttc
Type code0100, "ttcf"
Developed byApple
Type of formatFont file
Extended fromTrueType, PostScript fonts
Websitehttps://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6AATIntro.html

Features

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

Significant features of AAT currently include:

  • Several degrees of ligature control
  • Kashida 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 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

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. ^ a b . Apple Inc. Archived from the original on 4 June 2014.
  7. ^ . Apple Inc. Archived from the original on 4 June 2014.

External links

  • About Apple Advanced Typography Fonts, Apple's developer documentation
  • . Archived from the original on 14 January 2010. - a set of command-line tools to work with fonts
  • (PDF). Archived from the original (PDF) on 4 October 2005. (in PDF format)
  • Fontforge documentation

apple, advanced, typography, this, article, includes, list, general, references, lacks, sufficient, corresponding, inline, citations, please, help, improve, this, article, introducing, more, precise, citations, november, 2009, learn, when, remove, this, templa. This article includes a list of general references but it lacks sufficient corresponding inline citations Please help to improve this article by introducing more precise citations November 2009 Learn how and when to remove this template message 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 Apple Advanced TypographyFilename extension ttf ttcType code0100 ttcf Developed byAppleType of formatFont fileExtended fromTrueType PostScript fontsWebsitehttps developer apple com fonts TrueType Reference Manual RM06 Chap6AATIntro html Contents 1 Features 2 AAT and OpenType in macOS 3 AAT Layout 4 AAT for Indic scripts 5 See also 6 References 7 External linksFeatures Edit Example of the extra glyphs and ligatures available in the Zapfino typeface Significant features of AAT currently include Several degrees of ligature control Kashida 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 axesAAT 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 EditAs 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 EditThis section does not cite any sources Please help improve this section by adding citations to reliable sources Unsourced material may be challenged and removed November 2009 Learn how and when to remove this template message 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 EditFor 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 EditApple typography Graphite SIL technology on MS Windows and Linux List of typographic features XeTeXReferences Edit Layout Engine ICU User Guide HarfBuzz 2 0 Released for Advancing Open Source Text Shaping Phoronix 19 October 2018 Language Tag Table Apple Inc Anchor Point Table Apple Inc About Apple Advanced Typography Fonts Apple Inc a b TrueType Reference Manual The fvar table Apple Inc Archived from the original on 4 June 2014 TrueType Reference Manual The gvar table Apple Inc Archived from the original on 4 June 2014 External links EditAbout Apple Advanced Typography Fonts Apple s developer documentation Font tools Archived from the original on 14 January 2010 a set of command line tools to work with fonts Advanced Typography with Mac OS X PDF Archived from the original PDF on 4 October 2005 in PDF format An example of an AAT table Fontforge documentation Discussion on AAT used in Persian fonts Retrieved from https en wikipedia org w index php title Apple Advanced Typography amp oldid 1047566090, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.