| Type | Name | Description | 
| uint16 | PosFormat | Format identifier | 
| —format = 1 | ||
| Offset | Ž Coverage | Offset to Coverage table | 
| —from beginning of PairPos subtable | ||
| —only the first glyph in each pair | ||
| uint16 | ValueFormat1 | Defines the types of data in ValueRecord1 | 
| —for the first glyph in the pair | ||
| —may be zero (0) | ||
| uint16 | ValueFormat2 | Defines the types of data in ValueRecord2 | 
| —for the second glyph in the pair | ||
| —may be zero (0) | ||
| uint16 | PairSetCount | Number of PairSet tables | 
| ValueRecord | PairSet[PairSetCount] | Array of offsets to PairSet tables | 
| —from beginning of PairPos subtable | ||
| —ordered by Coverage Index | 
| Type | Name | Description | 
| uint16 | PairValueCount | Number of PairValueRecords | 
| struct | PairValueRecord | Array of PairValueRecords | 
| [PairValueCount] | —ordered alphabetically by second glyph | 
| Type | Name | Description | 
| GlyphID | SecondGlyph | GlyphID of second glyph in the pair | 
| —first glyph is listed in the Coverage table | ||
| ValueRecord | Value1 | Positioning data for the first glyph in the pair | 
| ValueRecord | Value2 | Positioning data for the second glyph in the pair | 
| Type | Name | Description | 
| uint16 | PosFormat | Format identifier | 
| —format = 2 | ||
| Offset | Ž Coverage | Offset to Coverage table | 
| —from beginning of PairPos subtable | ||
| —for the first glyph of the pair | ||
| uint16 | ValueFormat1 | ValueRecord definition | 
| —for the first glyph of the pair | ||
| —may be zero (0) | ||
| uint16 | ValueFormat2 | ValueRecord definition | 
| —for the second glyph of the pair | ||
| —may be zero (0) | ||
| Offset | Ž ClassDef1 | Offset to ClassDef table | 
| —from beginning of PairPos subtable | ||
| —for the first glyph of the pair | ||
| Offset | Ž ClassDef2 | Offset to ClassDef table | 
| —from beginning of PairPos subtable | ||
| —for the second glyph of the pair | ||
| uint16 | Class1Count | Number of classes in ClassDef1 table | 
| —includes Class0 | ||
| uint16 | Class2Count | Number of classes in ClassDef2 table | 
| —includes Class0 | ||
| struct | Class1Record | Array of Class1 records | 
| [Class1Count] | —ordered by Class1 | 
| Type | Name | Description | |||||
| struct | Class2Record | Array of Class2 records | |||||
| [Class2Count] | —ordered by Class2 | ||||||
| Type | Name | Description | 
| ValueRecord | Value1 | Positioning for first glyph | 
| —empty if ValueFormat1 = 0 | ||
| ValueRecord | Value2 | Positioning for second glyph | 
| —empty if ValueFormat2 = 0 |