- Apple Advanced Typography
Infobox Software
name = Apple Advanced Typography
developer =Apple Inc
operating_system =Mac OS X
genre = System Utility
license = Proprietary
website = [http://developer.apple.com/textfonts/ developer.apple.com/
textfonts]Apple Advanced Typography (AAT) is
Apple Inc 's computer software for advancedfont rendering, supportinginternationalization and complex features fortypographer s, a successor to Apple's little-usedQuickDraw GX font technology of the mid-1990s. It is a set of extensions to theTrueType outline font standard, with similarsmartfont features to Adobe and Microsoft'sOpenType 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.Features
Significant features of AAT currently include:
* Several degrees of ligature control
*Keshideh justification and joiners
* Cross-streamkerning (required forNasta'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, including Mac OS X and also on several open-source operating systems such as
Linux via IBM's ICU library.Processing of AAT rules
# The
ATSUI text engine examines a sequence of character codes
# It then gets the corresponding glyph for each code from the font
# ATSUI then looks for OpenType rules within the font, if found:
#* It reads and processes the OpenType rules, sending the glyph list to the rule interpreter.
# If there are no OpenType rules, it looks for AAT rules, and if they are found:
#* It reads and processes the AAT rules, sending the glyph list to the rule interpreter.Firstly, there are no classes. The closest equivalent to OpenType's GSUB table is AAT's "morx" table. This table supports the following abilities: Non-contextual one-to-one and many-to-one substitution, contextual one-to-one substitution, contextual rearrangement of glyphs, and contextual insertion of new glyphs. 'Contextual' in this case means that the glyphs that come before or after are important for triggering the action, but may not be affected by it. For example "May 12, 2002" could be changed to "12 May 2002" but "May 12," would not be changed to "12 May" (the year has to be present, but is not altered—this is the context for the rule).
The abilities listed are given in no particular sequence. AAT imposes no ordering requirements on the rule list (unlike OpenType's classes). They can be combined in any sequence to get the desired effect.
AAT also has many features not described here, such as group-based glyph kerning, and the ability to change the shape of a glyph using a process of interpolation 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. There is nothing like this in OpenType.With AAT 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.
AAT for the Arabic script
A good discussion on AAT used in Persian fonts can be found at [http://www.laits.utexas.edu/rfpit/texts/AATOpenTypeFonts.html 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. The feature set of AAT supports both of these.
Rendering Indic fonts: OpenType compared to AAT
On
Pango ,Uniscribe and Qt, the feature set of OpenType only supports substitution (via the GSUB table). Because of this, on Windows theUniscribe (applies to other rendering engines likePango ,Qt toolkit and M17N) text engine handles re-ordering. This is the simplified version of what happens:# The text engine examines a sequence of character codes in a document
# It re-orders character sequences (e.g. "vyanjana1 virama vyanjana2" to "vyanjana1 vyanjana2 virama")
# It then gets the corresponding glyph for each code from the font
# It reads and processes the OpenType rules for the font, sending the glyph list to the rule interpreter.Uniscribe re-orders the sequence of glyphs before sending the glyph list to the OpenType rule interpreter. It has to do this because OpenType rules cannot reorder glyphs.
OpenType's GSUB and GPOS tables are sub-divided into 'classes', for example rules in the GSUB class "haln" deal with
halant s at the ends of words. The classes that make up the GSUB and GPOS tables are processed in a strict order defined by Microsoft, whilst the rules within each class processed in order of appearance.OpenType Indic requirements unsupported by ATSUI
ATSUI processes only a few of the GSUB and GPOS classes, which are crucial for all the Indian language scripts. The GSUB class "liga" (abbreviation of ligature) for example is processed, this swaps f + i for the single character fi, for example. "liga" is a Roman-script (and some others) ligature substitution. The classes within GSUB that are used for Indic language processing, such as "blwf" (below-base forms; vattus), and "psts" (post-base substitution; conjunct swaras) are completely ignored. In summary, some of the GSUB and GPOS classes are supported, but not many, and not the ones used for Indic scripts. Note however that software that implements its own OpenType support is unaffected.
See also
*
Apple typography
*XeTeX
*List of typographic features External links
* [http://developer.apple.com/fonts/TTRefMan/RM06/Chap6AATIntro.html About Apple Advanced Typography Fonts] , Apple's developer documentation
* [http://www.codepoetry.net/archives/2003/10/24/panthers_major_text_services_upgrade.php Demonstration of text services in Mac OS X]
* [http://images.apple.com/pro/pdf/L303878B_Font_TT_v4.pdf Advanced Typography with Mac OS X] (inPDF format)
* [http://web.nickshanks.com/typography/kannada/kedage.mif An example of an AAT table]
* [http://fontforge.sourceforge.net/gposgsub.html Fontforge documentation]
Wikimedia Foundation. 2010.