git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@409 4cde692c-a291-49d1-8350-778aa11640f8
792 lines
45 KiB
Python
792 lines
45 KiB
Python
otData = [
|
|
|
|
#
|
|
# common (generated from chapter2.htm)
|
|
#
|
|
|
|
('ScriptList', [
|
|
('uint16', 'ScriptCount', None, None, 'Number of ScriptRecords'),
|
|
('struct', 'ScriptRecord', 'ScriptCount', 0, 'Array of ScriptRecords -listed alphabetically by ScriptTag'),
|
|
]),
|
|
|
|
('ScriptRecord', [
|
|
('Tag', 'ScriptTag', None, None, '4-byte ScriptTag identifier'),
|
|
('Offset', 'Script', None, None, 'Offset to Script table-from beginning of ScriptList'),
|
|
]),
|
|
|
|
('Script', [
|
|
('Offset', 'DefaultLangSys', None, None, 'Offset to DefaultLangSys table-from beginning of Script table-may be NULL'),
|
|
('uint16', 'LangSysCount', None, None, 'Number of LangSysRecords for this script-excluding the DefaultLangSys'),
|
|
('struct', 'LangSysRecord', 'LangSysCount', 0, 'Array of LangSysRecords-listed alphabetically by LangSysTag'),
|
|
]),
|
|
|
|
('LangSysRecord', [
|
|
('Tag', 'LangSysTag', None, None, '4-byte LangSysTag identifier'),
|
|
('Offset', 'LangSys', None, None, 'Offset to LangSys table-from beginning of Script table'),
|
|
]),
|
|
|
|
('LangSys', [
|
|
('Offset', 'LookupOrder', None, None, '= NULL (reserved for an offset to a reordering table)'),
|
|
('uint16', 'ReqFeatureIndex', None, None, 'Index of a feature required for this language system- if no required features = 0xFFFF'),
|
|
('uint16', 'FeatureCount', None, None, 'Number of FeatureIndex values for this language system-excludes the required feature'),
|
|
('uint16', 'FeatureIndex', 'FeatureCount', 0, 'Array of indices into the FeatureList-in arbitrary order'),
|
|
]),
|
|
|
|
('FeatureList', [
|
|
('uint16', 'FeatureCount', None, None, 'Number of FeatureRecords in this table'),
|
|
('struct', 'FeatureRecord', 'FeatureCount', 0, 'Array of FeatureRecords-zero-based (first feature has FeatureIndex = 0)-listed alphabetically by FeatureTag'),
|
|
]),
|
|
|
|
('FeatureRecord', [
|
|
('Tag', 'FeatureTag', None, None, '4-byte feature identification tag'),
|
|
('Offset', 'Feature', None, None, 'Offset to Feature table-from beginning of FeatureList'),
|
|
]),
|
|
|
|
('Feature', [
|
|
('Offset', 'FeatureParams', None, None, '= NULL (reserved for offset to FeatureParams)'),
|
|
('uint16', 'LookupCount', None, None, 'Number of LookupList indices for this feature'),
|
|
('uint16', 'LookupListIndex', 'LookupCount', 0, 'Array of LookupList indices for this feature -zero-based (first lookup is LookupListIndex = 0)'),
|
|
]),
|
|
|
|
('LookupList', [
|
|
('uint16', 'LookupCount', None, None, 'Number of lookups in this table'),
|
|
('Offset', 'Lookup', 'LookupCount', 0, 'Array of offsets to Lookup tables-from beginning of LookupList -zero based (first lookup is Lookup index = 0)'),
|
|
]),
|
|
|
|
('Lookup', [
|
|
('uint16', 'LookupType', None, None, 'Different enumerations for GSUB and GPOS'),
|
|
('uint16', 'LookupFlag', None, None, 'Lookup qualifiers'),
|
|
('uint16', 'SubTableCount', None, None, 'Number of SubTables for this lookup'),
|
|
('Offset', 'SubTable', 'SubTableCount', 0, 'Array of offsets to SubTables-from beginning of Lookup table'),
|
|
]),
|
|
|
|
('CoverageFormat1', [
|
|
('uint16', 'CoverageFormat', None, None, 'Format identifier-format = 1'),
|
|
('uint16', 'GlyphCount', None, None, 'Number of glyphs in the GlyphArray'),
|
|
('GlyphID', 'GlyphArray', 'GlyphCount', 0, 'Array of GlyphIDs-in numerical order'),
|
|
]),
|
|
|
|
('CoverageFormat2', [
|
|
('uint16', 'CoverageFormat', None, None, 'Format identifier-format = 2'),
|
|
('uint16', 'RangeCount', None, None, 'Number of RangeRecords'),
|
|
('struct', 'RangeRecord', 'RangeCount', 0, 'Array of glyph ranges-ordered by Start GlyphID'),
|
|
]),
|
|
|
|
('RangeRecord', [
|
|
('GlyphID', 'Start', None, None, 'First GlyphID in the range'),
|
|
('GlyphID', 'End', None, None, 'Last GlyphID in the range'),
|
|
('uint16', 'StartCoverageIndex', None, None, 'Coverage Index of first GlyphID in range'),
|
|
]),
|
|
|
|
('ClassDefFormat1', [
|
|
('uint16', 'ClassFormat', None, None, 'Format identifier-format = 1'),
|
|
('GlyphID', 'StartGlyph', None, None, 'First GlyphID of the ClassValueArray'),
|
|
('uint16', 'GlyphCount', None, None, 'Size of the ClassValueArray'),
|
|
('uint16', 'ClassValueArray', 'GlyphCount', 0, 'Array of Class Values-one per GlyphID'),
|
|
]),
|
|
|
|
('ClassDefFormat2', [
|
|
('uint16', 'ClassFormat', None, None, 'Format identifier-format = 2'),
|
|
('uint16', 'ClassRangeCount', None, None, 'Number of ClassRangeRecords'),
|
|
('struct', 'ClassRangeRecord', 'ClassRangeCount', 0, 'Array of ClassRangeRecords-ordered by Start GlyphID'),
|
|
]),
|
|
|
|
('ClassRangeRecord', [
|
|
('GlyphID', 'Start', None, None, 'First GlyphID in the range'),
|
|
('GlyphID', 'End', None, None, 'Last GlyphID in the range'),
|
|
('uint16', 'Class', None, None, 'Applied to all glyphs in the range'),
|
|
]),
|
|
|
|
('Device', [
|
|
('uint16', 'StartSize', None, None, 'Smallest size to correct-in ppem'),
|
|
('uint16', 'EndSize', None, None, 'Largest size to correct-in ppem'),
|
|
('uint16', 'DeltaFormat', None, None, 'Format of DeltaValue array data: 1, 2, or 3'),
|
|
('uint16', 'DeltaValue', '', 0, 'Array of compressed data'),
|
|
]),
|
|
|
|
|
|
#
|
|
# gpos (generated from gpos.htm)
|
|
#
|
|
|
|
('GPOS', [
|
|
('Fixed', 'Version', None, None, 'Version of the GPOS table-initially = 0x00010000'),
|
|
('Offset', 'ScriptList', None, None, 'Offset to ScriptList table-from beginning of GPOS table'),
|
|
('Offset', 'FeatureList', None, None, 'Offset to FeatureList table-from beginning of GPOS table'),
|
|
('Offset', 'LookupList', None, None, 'Offset to LookupList table-from beginning of GPOS table'),
|
|
]),
|
|
|
|
('SinglePosFormat1', [
|
|
('uint16', 'PosFormat', None, None, 'Format identifier-format = 1'),
|
|
('Offset', 'Coverage', None, None, 'Offset to Coverage table-from beginning of SinglePos subtable'),
|
|
('uint16', 'ValueFormat', None, None, 'Defines the types of data in the ValueRecord'),
|
|
('ValueRecord', 'Value', None, None, 'Defines positioning value(s)-applied to all glyphs in the Coverage table'),
|
|
]),
|
|
|
|
('SinglePosFormat2', [
|
|
('uint16', 'PosFormat', None, None, 'Format identifier-format = 2'),
|
|
('Offset', 'Coverage', None, None, 'Offset to Coverage table-from beginning of SinglePos subtable'),
|
|
('uint16', 'ValueFormat', None, None, 'Defines the types of data in the ValueRecord'),
|
|
('uint16', 'ValueCount', None, None, 'Number of ValueRecords'),
|
|
('ValueRecord', 'Value', 'ValueCount', 0, 'Array of ValueRecords-positioning values applied to glyphs'),
|
|
]),
|
|
|
|
('PairPosFormat1', [
|
|
('uint16', 'PosFormat', None, None, 'Format identifier-format = 1'),
|
|
('Offset', 'Coverage', None, None, 'Offset to Coverage table-from beginning of PairPos subtable-only the first glyph in each pair'),
|
|
('uint16', 'ValueFormat1', None, None, 'Defines the types of data in ValueRecord1-for the first glyph in the pair -may be zero (0)'),
|
|
('uint16', 'ValueFormat2', None, None, 'Defines the types of data in ValueRecord2-for the second glyph in the pair -may be zero (0)'),
|
|
('uint16', 'PairSetCount', None, None, 'Number of PairSet tables'),
|
|
('Offset', 'PairSet', 'PairSetCount', 0, 'Array of offsets to PairSet tables-from beginning of PairPos subtable-ordered by Coverage Index'),
|
|
]),
|
|
|
|
('PairSet', [
|
|
('uint16', 'PairValueCount', None, None, 'Number of PairValueRecords'),
|
|
('struct', 'PairValueRecord', 'PairValueCount', 0, 'Array of PairValueRecords-ordered by GlyphID of the second glyph'),
|
|
]),
|
|
|
|
('PairValueRecord', [
|
|
('GlyphID', 'SecondGlyph', None, None, 'GlyphID of second glyph in the pair-first glyph is listed in the Coverage table'),
|
|
('ValueRecord', 'Value1', None, None, 'Positioning data for the first glyph in the pair'),
|
|
('ValueRecord', 'Value2', None, None, 'Positioning data for the second glyph in the pair'),
|
|
]),
|
|
|
|
('PairPosFormat2', [
|
|
('uint16', 'PosFormat', None, None, 'Format identifier-format = 2'),
|
|
('Offset', 'Coverage', None, None, 'Offset to Coverage table-from beginning of PairPos subtable-for the first glyph of the pair'),
|
|
('uint16', 'ValueFormat1', None, None, 'ValueRecord definition-for the first glyph of the pair-may be zero (0)'),
|
|
('uint16', 'ValueFormat2', None, None, 'ValueRecord definition-for the second glyph of the pair-may be zero (0)'),
|
|
('Offset', 'ClassDef1', None, None, 'Offset to ClassDef table-from beginning of PairPos subtable-for the first glyph of the pair'),
|
|
('Offset', 'ClassDef2', None, None, 'Offset to ClassDef table-from beginning of PairPos subtable-for the second glyph of the pair'),
|
|
('uint16', 'Class1Count', None, None, 'Number of classes in ClassDef1 table-includes Class0'),
|
|
('uint16', 'Class2Count', None, None, 'Number of classes in ClassDef2 table-includes Class0'),
|
|
('struct', 'Class1Record', 'Class1Count', 0, 'Array of Class1 records-ordered by Class1'),
|
|
]),
|
|
|
|
('Class1Record', [
|
|
('struct', 'Class2Record', 'Class2Count', 0, 'Array of Class2 records-ordered by Class2'),
|
|
]),
|
|
|
|
('Class2Record', [
|
|
('ValueRecord', 'Value1', None, None, 'Positioning for first glyph-empty if ValueFormat1 = 0'),
|
|
('ValueRecord', 'Value2', None, None, 'Positioning for second glyph-empty if ValueFormat2 = 0'),
|
|
]),
|
|
|
|
('CursivePosFormat1', [
|
|
('uint16', 'PosFormat', None, None, 'Format identifier-format = 1'),
|
|
('Offset', 'Coverage', None, None, 'Offset to Coverage table-from beginning of CursivePos subtable'),
|
|
('uint16', 'EntryExitCount', None, None, 'Number of EntryExit records'),
|
|
('struct', 'EntryExitRecord', 'EntryExitCount', 0, 'Array of EntryExit records-in Coverage Index order'),
|
|
]),
|
|
|
|
('EntryExitRecord', [
|
|
('Offset', 'EntryAnchor', None, None, 'Offset to EntryAnchor table-from beginning of CursivePos subtable-may be NULL'),
|
|
('Offset', 'ExitAnchor', None, None, 'Offset to ExitAnchor table-from beginning of CursivePos subtable-may be NULL'),
|
|
]),
|
|
|
|
('MarkBasePosFormat1', [
|
|
('uint16', 'PosFormat', None, None, 'Format identifier-format = 1'),
|
|
('Offset', 'MarkCoverage', None, None, 'Offset to MarkCoverage table-from beginning of MarkBasePos subtable'),
|
|
('Offset', 'BaseCoverage', None, None, 'Offset to BaseCoverage table-from beginning of MarkBasePos subtable'),
|
|
('uint16', 'ClassCount', None, None, 'Number of classes defined for marks'),
|
|
('Offset', 'MarkArray', None, None, 'Offset to MarkArray table-from beginning of MarkBasePos subtable'),
|
|
('Offset', 'BaseArray', None, None, 'Offset to BaseArray table-from beginning of MarkBasePos subtable'),
|
|
]),
|
|
|
|
('BaseArray', [
|
|
('uint16', 'BaseCount', None, None, 'Number of BaseRecords'),
|
|
('struct', 'BaseRecord', 'BaseCount', 0, 'Array of BaseRecords-in order of BaseCoverage Index'),
|
|
]),
|
|
|
|
('BaseRecord', [
|
|
('Offset', 'BaseAnchor', 'ClassCount', 0, 'Array of offsets (one per class) to Anchor tables-from beginning of BaseArray table-ordered by class-zero-based'),
|
|
]),
|
|
|
|
('MarkLigPosFormat1', [
|
|
('uint16', 'PosFormat', None, None, 'Format identifier-format = 1'),
|
|
('Offset', 'MarkCoverage', None, None, 'Offset to Mark Coverage table-from beginning of MarkLigPos subtable'),
|
|
('Offset', 'LigatureCoverage', None, None, 'Offset to Ligature Coverage table-from beginning of MarkLigPos subtable'),
|
|
('uint16', 'ClassCount', None, None, 'Number of defined mark classes'),
|
|
('Offset', 'MarkArray', None, None, 'Offset to MarkArray table-from beginning of MarkLigPos subtable'),
|
|
('Offset', 'LigatureArray', None, None, 'Offset to LigatureArray table-from beginning of MarkLigPos subtable'),
|
|
]),
|
|
|
|
('LigatureArray', [
|
|
('uint16', 'LigatureCount', None, None, 'Number of LigatureAttach table offsets'),
|
|
('Offset', 'LigatureAttach', 'LigatureCount', 0, 'Array of offsets to LigatureAttach tables-from beginning of LigatureArray table-ordered by LigatureCoverage Index'),
|
|
]),
|
|
|
|
('LigatureAttach', [
|
|
('uint16', 'ComponentCount', None, None, 'Number of ComponentRecords in this ligature'),
|
|
('struct', 'ComponentRecord', 'ComponentCount', 0, 'Array of Component records-ordered in writing direction'),
|
|
]),
|
|
|
|
('ComponentRecord', [
|
|
('Offset', 'LigatureAnchor', 'ClassCount', 0, 'Array of offsets (one per class) to Anchor tables-from beginning of LigatureAttach table-ordered by class-NULL if a component does not have an attachment for a class-zero-based array'),
|
|
]),
|
|
|
|
('MarkMarkPosFormat1', [
|
|
('uint16', 'PosFormat', None, None, 'Format identifier-format = 1'),
|
|
('Offset', 'Mark1Coverage', None, None, 'Offset to Combining Mark Coverage table-from beginning of MarkMarkPos subtable'),
|
|
('Offset', 'Mark2Coverage', None, None, 'Offset to Base Mark Coverage table-from beginning of MarkMarkPos subtable'),
|
|
('uint16', 'ClassCount', None, None, 'Number of Combining Mark classes defined'),
|
|
('Offset', 'Mark1Array', None, None, 'Offset to MarkArray table for Mark1-from beginning of MarkMarkPos subtable'),
|
|
('Offset', 'Mark2Array', None, None, 'Offset to Mark2Array table for Mark2-from beginning of MarkMarkPos subtable'),
|
|
]),
|
|
|
|
('Mark2Array', [
|
|
('uint16', 'Mark2Count', None, None, 'Number of Mark2 records'),
|
|
('struct', 'Mark2Record', 'Mark2Count', 0, 'Array of Mark2 records-in Coverage order'),
|
|
]),
|
|
|
|
('Mark2Record', [
|
|
('Offset', 'Mark2Anchor', 'ClassCount', 0, 'Array of offsets (one per class) to Anchor tables-from beginning of Mark2Array table-zero-based array'),
|
|
]),
|
|
|
|
('PosLookupRecord', [
|
|
('uint16', 'SequenceIndex', None, None, 'Index to input glyph sequence-first glyph = 0'),
|
|
('uint16', 'LookupListIndex', None, None, 'Lookup to apply to that position-zero-based'),
|
|
]),
|
|
|
|
('ContextPosFormat1', [
|
|
('uint16', 'PosFormat', None, None, 'Format identifier-format = 1'),
|
|
('Offset', 'Coverage', None, None, 'Offset to Coverage table-from beginning of ContextPos subtable'),
|
|
('uint16', 'PosRuleSetCount', None, None, 'Number of PosRuleSet tables'),
|
|
('Offset', 'PosRuleSet', 'PosRuleSetCount', 0, 'Array of offsets to PosRuleSet tables-from beginning of ContextPos subtable-ordered by Coverage Index'),
|
|
]),
|
|
|
|
('PosRuleSet', [
|
|
('uint16', 'PosRuleCount', None, None, 'Number of PosRule tables'),
|
|
('Offset', 'PosRule', 'PosRuleCount', 0, 'Array of offsets to PosRule tables-from beginning of PosRuleSet-ordered by preference'),
|
|
]),
|
|
|
|
('PosRule', [
|
|
('uint16', 'GlyphCount', None, None, 'Number of glyphs in the Input glyph sequence'),
|
|
('uint16', 'PosCount', None, None, 'Number of PosLookupRecords'),
|
|
('GlyphID', 'Input', 'GlyphCount', -1, 'Array of input GlyphIDs-starting with the second glyph'),
|
|
('struct', 'PosLookupRecord', 'PosCount', 0, 'Array of positioning lookups-in design order'),
|
|
]),
|
|
|
|
('ContextPosFormat2', [
|
|
('uint16', 'PosFormat', None, None, 'Format identifier-format = 2'),
|
|
('Offset', 'Coverage', None, None, 'Offset to Coverage table-from beginning of ContextPos subtable'),
|
|
('Offset', 'ClassDef', None, None, 'Offset to ClassDef table-from beginning of ContextPos subtable'),
|
|
('uint16', 'PosClassSetCount', None, None, 'Number of PosClassSet tables'),
|
|
('Offset', 'PosClassSet', 'PosClassSetCount', 0, 'Array of offsets to PosClassSet tables-from beginning of ContextPos subtable-ordered by class-may be NULL'),
|
|
]),
|
|
|
|
('PosClassSet', [
|
|
('uint16', 'PosClassRuleCount', None, None, 'Number of PosClassRule tables'),
|
|
('Offset', 'PosClassRule', 'PosClassRuleCount', 0, 'Array of offsets to PosClassRule tables-from beginning of PosClassSet-ordered by preference'),
|
|
]),
|
|
|
|
('PosClassRule', [
|
|
('uint16', 'GlyphCount', None, None, 'Number of glyphs to be matched'),
|
|
('uint16', 'PosCount', None, None, 'Number of PosLookupRecords'),
|
|
('uint16', 'Class', 'GlyphCount', -1, 'Array of classes-beginning with the second class-to be matched to the input glyph sequence'),
|
|
('struct', 'PosLookupRecord', 'PosCount', 0, 'Array of positioning lookups-in design order'),
|
|
]),
|
|
|
|
('ContextPosFormat3', [
|
|
('uint16', 'PosFormat', None, None, 'Format identifier-format = 3'),
|
|
('uint16', 'GlyphCount', None, None, 'Number of glyphs in the input sequence'),
|
|
('uint16', 'PosCount', None, None, 'Number of PosLookupRecords'),
|
|
('Offset', 'Coverage', 'GlyphCount', 0, 'Array of offsets to Coverage tables-from beginning of ContextPos subtable'),
|
|
('struct', 'PosLookupRecord', 'PosCount', 0, 'Array of positioning lookups-in design order'),
|
|
]),
|
|
|
|
('ChainContextPosFormat1', [
|
|
('uint16', 'PosFormat', None, None, 'Format identifier-format = 1'),
|
|
('Offset', 'Coverage', None, None, 'Offset to Coverage table-from beginning of ContextPos subtable'),
|
|
('uint16', 'ChainPosRuleSetCount', None, None, 'Number of ChainPosRuleSet tables'),
|
|
('Offset', 'ChainPosRuleSet', 'ChainPosRuleSetCount', 0, 'Array of offsets to ChainPosRuleSet tables-from beginning of ContextPos subtable-ordered by Coverage Index'),
|
|
]),
|
|
|
|
('ChainPosRuleSet', [
|
|
('uint16', 'ChainPosRuleCount', None, None, 'Number of ChainPosRule tables'),
|
|
('Offset', 'ChainPosRule', 'ChainPosRuleCount', 0, 'Array of offsets to ChainPosRule tables-from beginning of ChainPosRuleSet-ordered by preference'),
|
|
]),
|
|
|
|
('ChainPosRule', [
|
|
('uint16', 'BacktrackGlyphCount', None, None, 'Total number of glyphs in the backtrack sequence (number of glyphs to be matched before the first glyph)'),
|
|
('GlyphID', 'Backtrack', 'BacktrackGlyphCount', 0, "Array of backtracking GlyphID's (to be matched before the input sequence)"),
|
|
('uint16', 'InputGlyphCount', None, None, 'Total number of glyphs in the input sequence (includes the first glyph)'),
|
|
('GlyphID', 'Input', 'InputGlyphCount', -1, 'Array of input GlyphIDs (start with second glyph)'),
|
|
('uint16', 'LookAheadGlyphCount', None, None, 'Total number of glyphs in the look ahead sequence (number of glyphs to be matched after the input sequence)'),
|
|
('GlyphID', 'LookAhead', 'LookAheadGlyphCount', 0, "Array of lookahead GlyphID's (to be matched after the input sequence)"),
|
|
('uint16', 'PosCount', None, None, 'Number of PosLookupRecords'),
|
|
('struct', 'PosLookupRecord', 'PosCount', 0, 'Array of PosLookupRecords (in design order)'),
|
|
]),
|
|
|
|
('ChainContextPosFormat2', [
|
|
('uint16', 'PosFormat', None, None, 'Format identifier-format = 2'),
|
|
('Offset', 'Coverage', None, None, 'Offset to Coverage table-from beginning of ChainContextPos subtable'),
|
|
('Offset', 'BacktrackClassDef', None, None, 'Offset to ClassDef table containing backtrack sequence context-from beginning of ChainContextPos subtable'),
|
|
('Offset', 'InputClassDef', None, None, 'Offset to ClassDef table containing input sequence context-from beginning of ChainContextPos subtable'),
|
|
('Offset', 'LookAheadClassDef', None, None, 'Offset to ClassDef table containing lookahead sequence context-from beginning of ChainContextPos subtable'),
|
|
('uint16', 'ChainPosClassSetCount', None, None, 'Number of ChainPosClassSet tables'),
|
|
('Offset', 'ChainPosClassSet', 'ChainPosClassSetCount', 0, 'Array of offsets to ChainPosClassSet tables-from beginning of ChainContextPos subtable-ordered by input class-may be NULL'),
|
|
]),
|
|
|
|
('ChainPosClassSet', [
|
|
('uint16', 'ChainPosClassRuleCount', None, None, 'Number of ChainPosClassRule tables'),
|
|
('Offset', 'ChainPosClassRule', 'ChainPosClassRuleCount', 0, 'Array of offsets to ChainPosClassRule tables-from beginning of ChainPosClassSet-ordered by preference'),
|
|
]),
|
|
|
|
('ChainPosClassRule', [
|
|
('uint16', 'BacktrackGlyphCount', None, None, 'Total number of glyphs in the backtrack sequence (number of glyphs to be matched before the first glyph)'),
|
|
('uint16', 'Backtrack', 'BacktrackGlyphCount', 0, 'Array of backtracking classes(to be matched before the input sequence)'),
|
|
('uint16', 'InputGlyphCount', None, None, 'Total number of classes in the input sequence (includes the first class)'),
|
|
('uint16', 'Input', 'InputGlyphCount', -1, 'Array of input classes(start with second class; to be matched with the input glyph sequence)'),
|
|
('uint16', 'LookAheadGlyphCount', None, None, 'Total number of classes in the look ahead sequence (number of classes to be matched after the input sequence)'),
|
|
('uint16', 'LookAhead', 'LookAheadGlyphCount', 0, 'Array of lookahead classes(to be matched after the input sequence)'),
|
|
('uint16', 'PosCount', None, None, 'Number of PosLookupRecords'),
|
|
('struct', 'PosLookupRecord', 'ChainPosCount', 0, 'Array of PosLookupRecords (in design order)'),
|
|
]),
|
|
|
|
('ChainContextPosFormat3', [
|
|
('uint16', 'PosFormat', None, None, 'Format identifier-format = 3'),
|
|
('uint16', 'BacktrackGlyphCount', None, None, 'Number of glyphs in the backtracking sequence'),
|
|
('Offset', 'BacktrackCoverage', 'BacktrackGlyphCount', 0, 'Array of offsets to coverage tables in backtracking sequence, in glyph sequence order'),
|
|
('uint16', 'InputGlyphCount', None, None, 'Number of glyphs in input sequence'),
|
|
('Offset', 'InputCoverage', 'InputGlyphCount', 0, 'Array of offsets to coverage tables in input sequence, in glyph sequence order'),
|
|
('uint16', 'LookAheadGlyphCount', None, None, 'Number of glyphs in lookahead sequence'),
|
|
('Offset', 'LookAheadCoverage', 'LookAheadGlyphCount', 0, 'Array of offsets to coverage tables in lookahead sequence, in glyph sequence order'),
|
|
('uint16', 'PosCount', None, None, 'Number of PosLookupRecords'),
|
|
('struct', 'PosLookupRecord', 'PosCount', 0, 'Array of PosLookupRecords,in design order'),
|
|
]),
|
|
|
|
('ExtensionPosFormat1', [
|
|
('USHORT', 'PosFormat', None, None, 'Format identifier. Set to 1.'),
|
|
('USHORT', 'ExtensionLookupType', None, None, 'Lookup type of subtable referenced by ExtensionOffset (i.e. the extension subtable).'),
|
|
('ULONG', 'ExtensionOffset', None, None, 'Offset to the extension subtable, of lookup type ExtensionLookupType, relative to the start of the ExtensionPosFormat1 subtable.'),
|
|
]),
|
|
|
|
('ValueRecord', [
|
|
('int16', 'XPlacement', None, None, 'Horizontal adjustment for placement-in design units'),
|
|
('int16', 'YPlacement', None, None, 'Vertical adjustment for placement-in design units'),
|
|
('int16', 'XAdvance', None, None, 'Horizontal adjustment for advance-in design units (only used for horizontal writing)'),
|
|
('int16', 'YAdvance', None, None, 'Vertical adjustment for advance-in design units (only used for vertical writing)'),
|
|
('Offset', 'XPlaDevice', None, None, 'Offset to Device table for horizontal placement-measured from beginning of PosTable (may be NULL)'),
|
|
('Offset', 'YPlaDevice', None, None, 'Offset to Device table for vertical placement-measured from beginning of PosTable (may be NULL)'),
|
|
('Offset', 'XAdvDevice', None, None, 'Offset to Device table for horizontal advance-measured from beginning of PosTable (may be NULL)'),
|
|
('Offset', 'YAdvDevice', None, None, 'Offset to Device table for vertical advance-measured from beginning of PosTable (may be NULL)'),
|
|
]),
|
|
|
|
('AnchorFormat1', [
|
|
('uint16', 'AnchorFormat', None, None, 'Format identifier-format = 1'),
|
|
('int16', 'XCoordinate', None, None, 'Horizontal value-in design units'),
|
|
('int16', 'YCoordinate', None, None, 'Vertical value-in design units'),
|
|
]),
|
|
|
|
('AnchorFormat2', [
|
|
('uint16', 'AnchorFormat', None, None, 'Format identifier-format = 2'),
|
|
('int16', 'XCoordinate', None, None, 'Horizontal value-in design units'),
|
|
('int16', 'YCoordinate', None, None, 'Vertical value-in design units'),
|
|
('uint16', 'AnchorPoint', None, None, 'Index to glyph contour point'),
|
|
]),
|
|
|
|
('AnchorFormat3', [
|
|
('uint16', 'AnchorFormat', None, None, 'Format identifier-format = 3'),
|
|
('int16', 'XCoordinate', None, None, 'Horizontal value-in design units'),
|
|
('int16', 'YCoordinate', None, None, 'Vertical value-in design units'),
|
|
('Offset', 'XDeviceTable', None, None, 'Offset to Device table for X coordinate- from beginning of Anchor table (may be NULL)'),
|
|
('Offset', 'YDeviceTable', None, None, 'Offset to Device table for Y coordinate- from beginning of Anchor table (may be NULL)'),
|
|
]),
|
|
|
|
('MarkArray', [
|
|
('uint16', 'MarkCount', None, None, 'Number of MarkRecords'),
|
|
('struct', 'MarkRecord', 'MarkCount', 0, 'Array of MarkRecords-in Coverage order'),
|
|
]),
|
|
|
|
('MarkRecord', [
|
|
('uint16', 'Class', None, None, 'Class defined for this mark'),
|
|
('Offset', 'MarkAnchor', None, None, 'Offset to Anchor table-from beginning of MarkArray table'),
|
|
]),
|
|
|
|
|
|
#
|
|
# gsub (generated from gsub.htm)
|
|
#
|
|
|
|
('GSUB', [
|
|
('Fixed', 'Version', None, None, 'Version of the GSUB table-initially set to 0x00010000'),
|
|
('Offset', 'ScriptList', None, None, 'Offset to ScriptList table-from beginning of GSUB table'),
|
|
('Offset', 'FeatureList', None, None, 'Offset to FeatureList table-from beginning of GSUB table'),
|
|
('Offset', 'LookupList', None, None, 'Offset to LookupList table-from beginning of GSUB table'),
|
|
]),
|
|
|
|
('SingleSubstFormat1', [
|
|
('uint16', 'SubstFormat', None, None, 'Format identifier-format = 1'),
|
|
('Offset', 'Coverage', None, None, 'Offset to Coverage table-from beginning of Substitution table'),
|
|
('int16', 'DeltaGlyphID', None, None, 'Add to original GlyphID to get substitute GlyphID'),
|
|
]),
|
|
|
|
('SingleSubstFormat2', [
|
|
('uint16', 'SubstFormat', None, None, 'Format identifier-format = 2'),
|
|
('Offset', 'Coverage', None, None, 'Offset to Coverage table-from beginning of Substitution table'),
|
|
('uint16', 'GlyphCount', None, None, 'Number of GlyphIDs in the Substitute array'),
|
|
('GlyphID', 'Substitute', 'GlyphCount', 0, 'Array of substitute GlyphIDs-ordered by Coverage Index'),
|
|
]),
|
|
|
|
('MultipleSubstFormat1', [
|
|
('uint16', 'SubstFormat', None, None, 'Format identifier-format = 1'),
|
|
('Offset', 'Coverage', None, None, 'Offset to Coverage table-from beginning of Substitution table'),
|
|
('uint16', 'SequenceCount', None, None, 'Number of Sequence table offsets in the Sequence array'),
|
|
('Offset', 'Sequence', 'SequenceCount', 0, 'Array of offsets to Sequence tables-from beginning of Substitution table-ordered by Coverage Index'),
|
|
]),
|
|
|
|
('Sequence', [
|
|
('uint16', 'GlyphCount', None, None, 'Number of GlyphIDs in the Substitute array. This should always be greater than 0.'),
|
|
('GlyphID', 'Substitute', 'GlyphCount', 0, 'String of GlyphIDs to substitute'),
|
|
]),
|
|
|
|
('AlternateSubstFormat1', [
|
|
('uint16', 'SubstFormat', None, None, 'Format identifier-format = 1'),
|
|
('Offset', 'Coverage', None, None, 'Offset to Coverage table-from beginning of Substitution table'),
|
|
('uint16', 'AlternateSetCount', None, None, 'Number of AlternateSet tables'),
|
|
('Offset', 'AlternateSet', 'AlternateSetCount', 0, 'Array of offsets to AlternateSet tables-from beginning of Substitution table-ordered by Coverage Index'),
|
|
]),
|
|
|
|
('AlternateSet', [
|
|
('uint16', 'GlyphCount', None, None, 'Number of GlyphIDs in the Alternate array'),
|
|
('GlyphID', 'Alternate', 'GlyphCount', 0, 'Array of alternate GlyphIDs-in arbitrary order'),
|
|
]),
|
|
|
|
('LigatureSubstFormat1', [
|
|
('uint16', 'SubstFormat', None, None, 'Format identifier-format = 1'),
|
|
('Offset', 'Coverage', None, None, 'Offset to Coverage table-from beginning of Substitution table'),
|
|
('uint16', 'LigSetCount', None, None, 'Number of LigatureSet tables'),
|
|
('Offset', 'LigatureSet', 'LigSetCount', 0, 'Array of offsets to LigatureSet tables-from beginning of Substitution table-ordered by Coverage Index'),
|
|
]),
|
|
|
|
('LigatureSet', [
|
|
('uint16', 'LigatureCount', None, None, 'Number of Ligature tables'),
|
|
('Offset', 'Ligature', 'LigatureCount', 0, 'Array of offsets to Ligature tables-from beginning of LigatureSet table-ordered by preference'),
|
|
]),
|
|
|
|
('Ligature', [
|
|
('GlyphID', 'LigGlyph', None, None, 'GlyphID of ligature to substitute'),
|
|
('uint16', 'CompCount', None, None, 'Number of components in the ligature'),
|
|
('GlyphID', 'Component', 'CompCount', -1, 'Array of component GlyphIDs-start with the second component-ordered in writing direction'),
|
|
]),
|
|
|
|
('SubstLookupRecord', [
|
|
('uint16', 'SequenceIndex', None, None, 'Index into current glyph sequence-first glyph = 0'),
|
|
('uint16', 'LookupListIndex', None, None, 'Lookup to apply to that position-zero-based'),
|
|
]),
|
|
|
|
('ContextSubstFormat1', [
|
|
('uint16', 'SubstFormat', None, None, 'Format identifier-format = 1'),
|
|
('Offset', 'Coverage', None, None, 'Offset to Coverage table-from beginning of Substitution table'),
|
|
('uint16', 'SubRuleSetCount', None, None, 'Number of SubRuleSet tables-must equal GlyphCount in Coverage table'),
|
|
('Offset', 'SubRuleSet', 'SubRuleSetCount', 0, 'Array of offsets to SubRuleSet tables-from beginning of Substitution table-ordered by Coverage Index'),
|
|
]),
|
|
|
|
('SubRuleSet', [
|
|
('uint16', 'SubRuleCount', None, None, 'Number of SubRule tables'),
|
|
('Offset', 'SubRule', 'SubRuleCount', 0, 'Array of offsets to SubRule tables-from beginning of SubRuleSet table-ordered by preference'),
|
|
]),
|
|
|
|
('SubRule', [
|
|
('uint16', 'GlyphCount', None, None, 'Total number of glyphs in input glyph sequence-includes the first glyph'),
|
|
('uint16', 'SubstCount', None, None, 'Number of SubstLookupRecords'),
|
|
('GlyphID', 'Input', 'GlyphCount', -1, 'Array of input GlyphIDs-start with second glyph'),
|
|
('struct', 'SubstLookupRecord', 'SubstCount', 0, 'Array of SubstLookupRecords-in design order'),
|
|
]),
|
|
|
|
('ContextSubstFormat2', [
|
|
('uint16', 'SubstFormat', None, None, 'Format identifier-format = 2'),
|
|
('Offset', 'Coverage', None, None, 'Offset to Coverage table-from beginning of Substitution table'),
|
|
('Offset', 'ClassDef', None, None, 'Offset to glyph ClassDef table-from beginning of Substitution table'),
|
|
('uint16', 'SubClassSetCount', None, None, 'Number of SubClassSet tables'),
|
|
('Offset', 'SubClassSet', 'SubClassSetCount', 0, 'Array of offsets to SubClassSet tables-from beginning of Substitution table-ordered by class-may be NULL'),
|
|
]),
|
|
|
|
('SubClassSet', [
|
|
('uint16', 'SubClassRuleCount', None, None, 'Number of SubClassRule tables'),
|
|
('Offset', 'SubClassRule', 'SubClassRuleCount', 0, 'Array of offsets to SubClassRule tables-from beginning of SubClassSet-ordered by preference'),
|
|
]),
|
|
|
|
('SubClassRule', [
|
|
('uint16', 'GlyphCount', None, None, 'Total number of classes specified for the context in the rule-includes the first class'),
|
|
('uint16', 'SubstCount', None, None, 'Number of SubstLookupRecords'),
|
|
('uint16', 'Class', 'GlyphCount', -1, 'Array of classes-beginning with the second class-to be matched to the input glyph class sequence'),
|
|
('struct', 'SubstLookupRecord', 'SubstCount', 0, 'Array of Substitution lookups-in design order'),
|
|
]),
|
|
|
|
('ContextSubstFormat3', [
|
|
('uint16', 'SubstFormat', None, None, 'Format identifier-format = 3'),
|
|
('uint16', 'GlyphCount', None, None, 'Number of glyphs in the input glyph sequence'),
|
|
('uint16', 'SubstCount', None, None, 'Number of SubstLookupRecords'),
|
|
('Offset', 'Coverage', 'GlyphCount', 0, 'Array of offsets to Coverage table-from beginning of Substitution table-in glyph sequence order'),
|
|
('struct', 'SubstLookupRecord', 'SubstCount', 0, 'Array of SubstLookupRecords-in design order'),
|
|
]),
|
|
|
|
('ChainContextSubstFormat1', [
|
|
('uint16', 'SubstFormat', None, None, 'Format identifier-format = 1'),
|
|
('Offset', 'Coverage', None, None, 'Offset to Coverage table-from beginning of Substitution table'),
|
|
('uint16', 'ChainSubRuleSetCount', None, None, 'Number of ChainSubRuleSet tables-must equal GlyphCount in Coverage table'),
|
|
('Offset', 'ChainSubRuleSet', 'ChainSubRuleSetCount', 0, 'Array of offsets to ChainSubRuleSet tables-from beginning of Substitution table-ordered by Coverage Index'),
|
|
]),
|
|
|
|
('ChainSubRuleSet', [
|
|
('uint16', 'ChainSubRuleCount', None, None, 'Number of ChainSubRule tables'),
|
|
('Offset', 'ChainSubRule', 'ChainSubRuleCount', 0, 'Array of offsets to ChainSubRule tables-from beginning of ChainSubRuleSet table-ordered by preference'),
|
|
]),
|
|
|
|
('ChainSubRule', [
|
|
('uint16', 'BacktrackGlyphCount', None, None, 'Total number of glyphs in the backtrack sequence (number of glyphs to be matched before the first glyph)'),
|
|
('GlyphID', 'Backtrack', 'BacktrackGlyphCount', 0, "Array of backtracking GlyphID's (to be matched before the input sequence)"),
|
|
('uint16', 'InputGlyphCount', None, None, 'Total number of glyphs in the input sequence (includes the first glyph)'),
|
|
('GlyphID', 'Input', 'InputGlyphCount', -1, 'Array of input GlyphIDs (start with second glyph)'),
|
|
('uint16', 'LookAheadGlyphCount', None, None, 'Total number of glyphs in the look ahead sequence (number of glyphs to be matched after the input sequence)'),
|
|
('GlyphID', 'LookAhead', 'LookAheadGlyphCount', 0, "Array of lookahead GlyphID's (to be matched after the input sequence)"),
|
|
('uint16', 'SubstCount', None, None, 'Number of SubstLookupRecords'),
|
|
('struct', 'SubstLookupRecord', 'SubstCount', 0, 'Array of SubstLookupRecords (in design order)'),
|
|
]),
|
|
|
|
('ChainContextSubstFormat2', [
|
|
('uint16', 'SubstFormat', None, None, 'Format identifier-format = 2'),
|
|
('Offset', 'Coverage', None, None, 'Offset to Coverage table-from beginning of Substitution table'),
|
|
('Offset', 'BacktrackClassDef', None, None, 'Offset to glyph ClassDef table containing backtrack sequence data-from beginning of Substitution table'),
|
|
('Offset', 'InputClassDef', None, None, 'Offset to glyph ClassDef table containing input sequence data-from beginning of Substitution table'),
|
|
('Offset', 'LookAheadClassDef', None, None, 'Offset to glyph ClassDef table containing lookahead sequence data-from beginning of Substitution table'),
|
|
('uint16', 'ChainSubClassSetCount', None, None, 'Number of ChainSubClassSet tables'),
|
|
('Offset', 'ChainSubClassSet', 'ChainSubClassSetCount', 0, 'Array of offsets to ChainSubClassSet tables-from beginning of Substitution table-ordered by input class-may be NULL'),
|
|
]),
|
|
|
|
('ChainSubClassSet', [
|
|
('uint16', 'ChainSubClassRuleCount', None, None, 'Number of ChainSubClassRule tables'),
|
|
('Offset', 'ChainSubClassRule', 'ChainSubClassRuleCount', 0, 'Array of offsets to ChainSubClassRule tables-from beginning of ChainSubClassSet-ordered by preference'),
|
|
]),
|
|
|
|
('ChainSubClassRule', [
|
|
('uint16', 'BacktrackGlyphCount', None, None, 'Total number of glyphs in the backtrack sequence (number of glyphs to be matched before the first glyph)'),
|
|
('uint16', 'Backtrack', 'BacktrackGlyphCount', 0, 'Array of backtracking classes(to be matched before the input sequence)'),
|
|
('uint16', 'InputGlyphCount', None, None, 'Total number of classes in the input sequence (includes the first class)'),
|
|
('uint16', 'Input', 'InputGlyphCount', -1, 'Array of input classes(start with second class; to be matched with the input glyph sequence)'),
|
|
('uint16', 'LookAheadGlyphCount', None, None, 'Total number of classes in the look ahead sequence (number of classes to be matched after the input sequence)'),
|
|
('uint16', 'LookAhead', 'LookAheadGlyphCount', 0, 'Array of lookahead classes(to be matched after the input sequence)'),
|
|
('uint16', 'SubstCount', None, None, 'Number of SubstLookupRecords'),
|
|
('struct', 'SubstLookupRecord', 'SubstCount', 0, 'Array of SubstLookupRecords (in design order)'),
|
|
]),
|
|
|
|
('ChainContextSubstFormat3', [
|
|
('uint16', 'SubstFormat', None, None, 'Format identifier-format = 3'),
|
|
('uint16', 'BacktrackGlyphCount', None, None, 'Number of glyphs in the backtracking sequence'),
|
|
('Offset', 'BacktrackCoverage', 'BacktrackGlyphCount', 0, 'Array of offsets to coverage tables in backtracking sequence, in glyph sequence order'),
|
|
('uint16', 'InputGlyphCount', None, None, 'Number of glyphs in input sequence'),
|
|
('Offset', 'InputCoverage', 'InputGlyphCount', 0, 'Array of offsets to coverage tables in input sequence, in glyph sequence order'),
|
|
('uint16', 'LookAheadGlyphCount', None, None, 'Number of glyphs in lookahead sequence'),
|
|
('Offset', 'LookAheadCoverage', 'LookAheadGlyphCount', 0, 'Array of offsets to coverage tables in lookahead sequence, in glyph sequence order'),
|
|
('uint16', 'SubstCount', None, None, 'Number of SubstLookupRecords'),
|
|
('struct', 'SubstLookupRecord', 'SubstCount', 0, 'Array of SubstLookupRecords, in design order'),
|
|
]),
|
|
|
|
('ExtensionSubstFormat1', [
|
|
('USHORT', 'SubstFormat', None, None, 'Format identifier. Set to 1.'),
|
|
('USHORT', 'ExtensionLookupType', None, None, 'Lookup type of subtable referenced by ExtensionOffset (i.e. the extension subtable).'),
|
|
('ULONG', 'ExtensionOffset', None, None, 'Offset to the extension subtable, of lookup type ExtensionLookupType, relative to the start of the ExtensionSubstFormat1 subtable.'),
|
|
]),
|
|
|
|
|
|
#
|
|
# gdef (generated from gdef.htm)
|
|
#
|
|
|
|
('GDEF', [
|
|
('Fixed', 'Version', None, None, 'Version of the GDEF table-initially 0x00010000'),
|
|
('Offset', 'GlyphClassDef', None, None, 'Offset to class definition table for glyph type-from beginning of GDEF header (may be NULL)'),
|
|
('Offset', 'AttachList', None, None, 'Offset to list of glyphs with attachment points-from beginning of GDEF header (may be NULL)'),
|
|
('Offset', 'LigCaretList', None, None, 'Offset to list of positioning points for ligature carets-from beginning of GDEF header (may be NULL)'),
|
|
('Offset', 'MarkAttachClassDef', None, None, 'Offset to class definition table for mark attachment type-from beginning of GDEF header (may be NULL)'),
|
|
]),
|
|
|
|
('AttachList', [
|
|
('Offset', 'Coverage', None, None, 'Offset to Coverage table - from beginning of AttachList table'),
|
|
('uint16', 'GlyphCount', None, None, 'Number of glyphs with attachment points'),
|
|
('Offset', 'AttachPoint', 'GlyphCount', 0, 'Array of offsets to AttachPoint tables-from beginning of AttachList table-in Coverage Index order'),
|
|
]),
|
|
|
|
('AttachPoint', [
|
|
('uint16', 'PointCount', None, None, 'Number of attachment points on this glyph'),
|
|
('uint16', 'PointIndex', 'PointCount', 0, 'Array of contour point indices -in increasing numerical order'),
|
|
]),
|
|
|
|
('LigCaretList', [
|
|
('Offset', 'Coverage', None, None, 'Offset to Coverage table - from beginning of LigCaretList table'),
|
|
('uint16', 'LigGlyphCount', None, None, 'Number of ligature glyphs'),
|
|
('Offset', 'LigGlyph', 'LigGlyphCount', 0, 'Array of offsets to LigGlyph tables-from beginning of LigCaretList table-in Coverage Index order'),
|
|
]),
|
|
|
|
('LigGlyph', [
|
|
('uint16', 'CaretCount', None, None, 'Number of CaretValues for this ligature (components - 1)'),
|
|
('Offset', 'CaretValue', 'CaretCount', 0, 'Array of offsets to CaretValue tables-from beginning of LigGlyph table-in increasing coordinate order'),
|
|
]),
|
|
|
|
('CaretValueFormat1', [
|
|
('uint16', 'CaretValueFormat', None, None, 'Format identifier-format = 1'),
|
|
('int16', 'Coordinate', None, None, 'X or Y value, in design units'),
|
|
]),
|
|
|
|
('CaretValueFormat2', [
|
|
('uint16', 'CaretValueFormat', None, None, 'Format identifier-format = 2'),
|
|
('uint16', 'CaretValuePoint', None, None, 'Contour point index on glyph'),
|
|
]),
|
|
|
|
('CaretValueFormat3', [
|
|
('uint16', 'CaretValueFormat', None, None, 'Format identifier-format = 3'),
|
|
('int16', 'Coordinate', None, None, 'X or Y value, in design units'),
|
|
('Offset', 'DeviceTable', None, None, 'Offset to Device table for X or Y value-from beginning of CaretValue table'),
|
|
]),
|
|
|
|
|
|
#
|
|
# base (generated from base.htm)
|
|
#
|
|
|
|
('BASE', [
|
|
('fixed32', 'Version', None, None, 'Version of the BASE table-initially 0x00010000'),
|
|
('Offset', 'HorizAxis', None, None, 'Offset to horizontal Axis table-from beginning of BASE table-may be NULL'),
|
|
('Offset', 'VertAxis', None, None, 'Offset to vertical Axis table-from beginning of BASE table-may be NULL'),
|
|
]),
|
|
|
|
('Axis', [
|
|
('Offset', 'BaseTagList', None, None, 'Offset to BaseTagList table-from beginning of Axis table-may be NULL'),
|
|
('Offset', 'BaseScriptList', None, None, 'Offset to BaseScriptList table-from beginning of Axis table'),
|
|
]),
|
|
|
|
('BaseTagList', [
|
|
('uint16', 'BaseTagCount', None, None, 'Number of baseline identification tags in this text direction-may be zero (0)'),
|
|
('Tag', 'BaselineTag', 'BaseTagCount', 0, 'Array of 4-byte baseline identification tags-must be in alphabetical order'),
|
|
]),
|
|
|
|
('BaseScriptList', [
|
|
('uint16', 'BaseScriptCount', None, None, 'Number of BaseScriptRecords defined'),
|
|
('struct', 'BaseScriptRecord', 'BaseScriptCount', 0, 'Array of BaseScriptRecords-in alphabetical order by BaseScriptTag'),
|
|
]),
|
|
|
|
('BaseScriptRecord', [
|
|
('Tag', 'BaseScriptTag', None, None, '4-byte script identification tag'),
|
|
('Offset', 'BaseScript', None, None, 'Offset to BaseScript table-from beginning of BaseScriptList'),
|
|
]),
|
|
|
|
('BaseScript', [
|
|
('Offset', 'BaseValues', None, None, 'Offset to BaseValues table-from beginning of BaseScript table-may be NULL'),
|
|
('Offset', 'DefaultMinMax', None, None, 'Offset to MinMax table- from beginning of BaseScript table-may be NULL'),
|
|
('uint16', 'BaseLangSysCount', None, None, 'Number of BaseLangSysRecords defined-may be zero (0)'),
|
|
('struct', 'BaseLangSysRecord', 'BaseLangSysCount', 0, 'Array of BaseLangSysRecords-in alphabetical order by BaseLangSysTag'),
|
|
]),
|
|
|
|
('BaseLangSysRecord', [
|
|
('Tag', 'BaseLangSysTag', None, None, '4-byte language system identification tag'),
|
|
('Offset', 'MinMax', None, None, 'Offset to MinMax table-from beginning of BaseScript table'),
|
|
]),
|
|
|
|
('BaseValues', [
|
|
('uint16', 'DefaultIndex', None, None, 'Index number of default baseline for this script-equals index position of baseline tag in BaselineArray of the BaseTagList'),
|
|
('uint16', 'BaseCoordCount', None, None, 'Number of BaseCoord tables defined-should equal BaseTagCount in the BaseTagList'),
|
|
('Offset', 'BaseCoord', 'BaseCoordCount', 0, 'Array of offsets to BaseCoord-from beginning of BaseValues table-order matches BaselineTag array in the BaseTagList'),
|
|
]),
|
|
|
|
('MinMax', [
|
|
('Offset', 'MinCoord', None, None, 'Offset to BaseCoord table-defines minimum extent value-from the beginning of MinMax table-may be NULL'),
|
|
('Offset', 'MaxCoord', None, None, 'Offset to BaseCoord table-defines maximum extent value-from the beginning of MinMax table-may be NULL'),
|
|
('uint16', 'FeatMinMaxCount', None, None, 'Number of FeatMinMaxRecords-may be zero (0)'),
|
|
('struct', 'FeatMinMaxRecord', 'FeatMinMaxCount', 0, 'Array of FeatMinMaxRecords-in alphabetical order, by FeatureTableTag'),
|
|
]),
|
|
|
|
('FeatMinMaxRecord', [
|
|
('Tag', 'FeatureTableTag', None, None, '4-byte feature identification tag-must match FeatureTag in FeatureList'),
|
|
('Offset', 'MinCoord', None, None, 'Offset to BaseCoord table-defines minimum extent value-from beginning of MinMax table-may be NULL'),
|
|
('Offset', 'MaxCoord', None, None, 'Offset to BaseCoord table-defines maximum extent value-from beginning of MinMax table-may be NULL'),
|
|
]),
|
|
|
|
('BaseCoordFormat1', [
|
|
('uint16', 'BaseCoordFormat', None, None, 'Format identifier-format = 1'),
|
|
('int16', 'Coordinate', None, None, 'X or Y value, in design units'),
|
|
]),
|
|
|
|
('BaseCoordFormat2', [
|
|
('uint16', 'BaseCoordFormat', None, None, 'Format identifier-format = 2'),
|
|
('int16', 'Coordinate', None, None, 'X or Y value, in design units'),
|
|
('GlyphID', 'ReferenceGlyph', None, None, 'GlyphID of control glyph'),
|
|
('uint16', 'BaseCoordPoint', None, None, 'Index of contour point on the ReferenceGlyph'),
|
|
]),
|
|
|
|
('BaseCoordFormat3', [
|
|
('uint16', 'BaseCoordFormat', None, None, 'Format identifier-format = 3'),
|
|
('int16', 'Coordinate', None, None, 'X or Y value, in design units'),
|
|
('Offset', 'DeviceTable', None, None, 'Offset to Device table for X or Y value'),
|
|
]),
|
|
|
|
|
|
#
|
|
# jstf (generated from jstf.htm)
|
|
#
|
|
|
|
('JSTF', [
|
|
('fixed32', 'Version', None, None, 'Version of the JSTF table-initially set to 0x00010000'),
|
|
('uint16', 'JstfScriptCount', None, None, 'Number of JstfScriptRecords in this table'),
|
|
('struct', 'JstfScriptRecord', 'JstfScriptCount', 0, 'Array of JstfScriptRecords-in alphabetical order, by JstfScriptTag'),
|
|
]),
|
|
|
|
('JstfScriptRecord', [
|
|
('Tag', 'JstfScriptTag', None, None, '4-byte JstfScript identification'),
|
|
('Offset', 'JstfScript', None, None, 'Offset to JstfScript table-from beginning of JSTF Header'),
|
|
]),
|
|
|
|
('JstfScript', [
|
|
('Offset', 'ExtenderGlyph', None, None, 'Offset to ExtenderGlyph table-from beginning of JstfScript table-may be NULL'),
|
|
('Offset', 'DefJstfLangSys', None, None, 'Offset to Default JstfLangSys table-from beginning of JstfScript table-may be NULL'),
|
|
('uint16', 'JstfLangSysCount', None, None, 'Number of JstfLangSysRecords in this table- may be zero (0)'),
|
|
('struct', 'JstfLangSysRecord', 'JstfLangSysCount', 0, 'Array of JstfLangSysRecords-in alphabetical order, by JstfLangSysTag'),
|
|
]),
|
|
|
|
('JstfLangSysRecord', [
|
|
('Tag', 'JstfLangSysTag', None, None, '4-byte JstfLangSys identifier'),
|
|
('Offset', 'JstfLangSys', None, None, 'Offset to JstfLangSys table-from beginning of JstfScript table'),
|
|
]),
|
|
|
|
('ExtenderGlyph', [
|
|
('uint16', 'GlyphCount', None, None, 'Number of Extender Glyphs in this script'),
|
|
('GlyphID', 'ExtenderGlyph', 'GlyphCount', 0, 'GlyphIDs-in increasing numerical order'),
|
|
]),
|
|
|
|
('JstfLangSys', [
|
|
('uint16', 'JstfPriorityCount', None, None, 'Number of JstfPriority tables'),
|
|
('Offset', 'JstfPriority', 'JstfPriorityCount', 0, 'Array of offsets to JstfPriority tables-from beginning of JstfLangSys table-in priority order'),
|
|
]),
|
|
|
|
('JstfPriority', [
|
|
('Offset', 'ShrinkageEnableGSUB', None, None, 'Offset to Shrinkage Enable JstfGSUBModList table-from beginning of JstfPriority table-may be NULL'),
|
|
('Offset', 'ShrinkageDisableGSUB', None, None, 'Offset to Shrinkage Disable JstfGSUBModList table-from beginning of JstfPriority table-may be NULL'),
|
|
('Offset', 'ShrinkageEnableGPOS', None, None, 'Offset to Shrinkage Enable JstfGPOSModList table-from beginning of JstfPriority table-may be NULL'),
|
|
('Offset', 'ShrinkageDisableGPOS', None, None, 'Offset to Shrinkage Disable JstfGPOSModList table-from beginning of JstfPriority table-may be NULL'),
|
|
('Offset', 'ShrinkageJstfMax', None, None, 'Offset to Shrinkage JstfMax table-from beginning of JstfPriority table -may be NULL'),
|
|
('Offset', 'ExtensionEnableGSUB', None, None, 'Offset to Extension Enable JstfGSUBModList table-may be NULL'),
|
|
('Offset', 'ExtensionDisableGSUB', None, None, 'Offset to Extension Disable JstfGSUBModList table-from beginning of JstfPriority table-may be NULL'),
|
|
('Offset', 'ExtensionEnableGPOS', None, None, 'Offset to Extension Enable JstfGSUBModList table-may be NULL'),
|
|
('Offset', 'ExtensionDisableGPOS', None, None, 'Offset to Extension Disable JstfGSUBModList table-from beginning of JstfPriority table-may be NULL'),
|
|
('Offset', 'ExtensionJstfMax', None, None, 'Offset to Extension JstfMax table-from beginning of JstfPriority table -may be NULL'),
|
|
]),
|
|
|
|
('JstfGSUBModList', [
|
|
('uint16', 'LookupCount', None, None, 'Number of lookups for this modification'),
|
|
('uint16', 'GSUBLookupIndex', 'LookupCount', 0, 'Array of LookupIndex identifiers in GSUB-in increasing numerical order'),
|
|
]),
|
|
|
|
('JstfGPOSModList', [
|
|
('uint16', 'LookupCount', None, None, 'Number of lookups for this modification'),
|
|
('uint16', 'GPOSLookupIndex', 'LookupCount', 0, 'Array of LookupIndex identifiers in GPOS-in increasing numerical order'),
|
|
]),
|
|
|
|
('JstfMax', [
|
|
('uint16', 'LookupCount', None, None, 'Number of lookup Indices for this modification'),
|
|
('Offset', 'Lookup', 'LookupCount', 0, 'Array of offsets to GPOS-type lookup tables-from beginning of JstfMax table-in design order'),
|
|
]),
|
|
|
|
]
|
|
|