'acnt'
tableThe 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:
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] |
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. |
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. |
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. |
Type |
Name |
Description |
---|---|---|
uint16 | secondaryGlyphIndex | Secondary glyph index. A maximum of 255 entries are allowed. |
uint8 | secondaryGlyphAttachmentNumber | Secondary glyph attachment index number. |
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.