The 'acnt' table

Introduction

The accent attachment table (tag name: 'acnt') provides a space-efficient method of combining component glyphs into compound glyphs to form accents. Accented glyphs are a very restricted subclass of compound glyphs. Their characteristics are described as follows:

The accent attachment table requires the following storage space:

Accent Attachment Table Formats

An accent attachment table consists of a header, description data, extension data, and secondary data. The overall structure of the accent attachment table is shown in the following figure:

The accent attachment table format is as follows:

Type

Name

Description

fixed32 version Version number of the accent attachment table (0x00010000 for the current version).
uint16 firstAccentGlyphIndex The first accented glyph index.
uint16 lastAccentGlyphIndex The last accented glyph index.
uint32 descriptionOffset Offset in bytes to the description data.
uint32 extensionOffset Offset in bytes to the extension data.
uint32 secondaryOffset Offset in bytes to the secondary data.
variable glyphs[numberOfAccentedGlyphs]
variable ext[numberOfGlyphsWithMoreThan2Components]
variable accents[numberOfSecondaryGlyphs]

Format 0 description

Type

Name

Description

uint1 description Value = 0 indicates that there are only two components.
uint15 primaryGlyphIndex Number of columns of data.
uint8 primaryAttachmentPoint Primary attachment control point number.
uint8 secondaryInfoIndex Secondary attachment control point number.

Format 1 description

Type

Name

Description

uint1 description Value = 1 indicates that there are more than two components
uint15 primaryGlyphIndex Primary glyph index number.
uint16 extensionOffset Byte offset to the beginning of the extensions subtable.

Extension format

Type

Name

Description

uint1 components Value = 0 indicates that there are more components. Value = 1 indicates that this is the last component.
uint7 secondaryInfoIndex[numberComponents] Secondary information index for the first component.
uint8 primaryAttachmentPoint[numberComponents] Primary attachment control point for the first component.

Secondary data format

Type

Name

Description

uint16 secondaryGlyphIndex Secondary glyph index. A maximum of 255 entries are allowed.
uint8 secondaryGlyphAttachmentNumber Secondary glyph attachment index number.

General comments

Each accented glyph is described by one description entry in the glyphs array of this table. If the glyph consists of only a baseform and a single accent, then format 0 is used for the description. It specifies the index of the primary glyph in the 'glyf' table, the point index of the attachment point in the primary glyph, and the index into the secondary data table for the accent. The indexed entry in the secondary data table specifies the index of the accent glyph in the 'glyf' table and the point index of the attachment point in the accent glyph.

If the accented glyph has a baseform and two or more accents, it is described by a format 1 description. This description specifies the index of the primary glyph in the 'glyf' table and a byte offset into the extension subtable (the offset is from the beginning of the extension data). The entry in the extension table specifies any number of accents to be attached to the primary form. Each subentry specified the index into the secondary data for the accent, the point index of the attachment point in the primary glyph, and a flag for whether there are more entries. Accents are added to the primary glyph until a flag value of 1 is encountered, which means this is the last component.


Change Log

30 September 1996
Switched to use the <TABLE> tag.
30 April 1995
Initial conversion to HTML format.
applefonts@apple.com

[Table of Contents]