Compartir a través de


OpenType Specification Change Log (OpenType 1.9)

Version 1.9

Released December 2021

Structure names were revised in chapter2 and fvar chapters; see below for details.

Minor editorial changes (not detailed below) were made in the following chapters: chapter2, cmap, dvaraxisreg, featurelist, features_ae, glyf, gpos, gsub, gvar, hvar, index, kern, languagetags, name, otvarcommonformats, otvaroverview, prep, recom, tt_instructions, ttch01.

Summary of changes:

  • chapter2

    • Changed spellings of field names of ConditionFormat1 table.
  • cmap

    • For platform ID 0, encoding ID 3, removed suggestion of using format 0 subtable.
    • Clarified requirements for UVSes in a format 14 subtable and entries in other 'cmap' Unicode subtables.
    • Corrected description of the entrySelector field (post-release erratum).
  • colr

    • Added version 1 header and related structures.
    • Revised introductory sections and other editorial changes.
    • Added recommendation against using bold or italic simulations.
    • Corrected how angles are measured for PaintSweepGradient and PaintVarSweepGradient (post-release erratum).
  • cpal

    • Added reference to CSS Color Module Level 4.
    • Added section on interpolation of colors.
  • feature_ae

    • Modified 'cvXX' description.
    • Corrected use of non-preferred region / language / script names (post-release erratum).
  • feature_fj

    • Modified 'frac' feature description.
  • features_ko

    • Modified 'lfbd' feature description.
  • features_pt

    • Modified 'rtbd' feature description.
  • fvar

    • Changed record name “Tuple” to “UserTuple”.
  • glyf

    • Added remarks regarding glyph bounding rectangles in variable fonts.
    • Clarified interpretation of X_SHORT_VECTOR and Y_SHORT_VECTOR flags.
    • Clarified interpretation of the ARGS_ARE_XY_VALUES and ROUND_XY_TO_GRID component flags, and other aspects of composite glyph descriptions.
    • Changed FWord and F2Dot14 to FWORD and F2DOT14.
  • gpos

    • Clarified consistency requirement for extension subtables within a given Lookup table.
  • gsub

    • Clarified consistency requirement for extension subtables within a given Lookup table.
    • Corrected use of non-preferred region / language / script name (post-release erratum).
  • gvar

    • Corrected type in sharedTuples array to Tuple.
    • Corrected spelling of GlyphVariationData and TupleVariationHeader.
  • head

    • Clarified meaning of unitsPerEm, xMin, yMin, xMax and yMax values.
    • Added remarks regarding glyph bounding rectangles in variable fonts.
  • hvar

    • Moved description of the DeltaSetIndexMap to the OpenType Font Variations Common Table Formats chapter.
  • languagetags

    • Added information on how to request new language system tags.
    • Added 'MONT', 'TJL '.
    • Added 'INUK' (post-release update).
    • Corrected entries for 'TUL ', 'TUM ' (post-release erratum).
    • Corrected use of non-preferred region / language / script name (post-release erratum).
  • maxp

    • Added CFF2 as requiring version 0.5.
  • meta

    • Clarified that 'slng' value should be superset of 'dlng'.
    • Fixed URL for BCP 47 (post-release erratum).
    • Corrected use of non-preferred region / language / script names (post-release erratum).
  • name

    • Clarified encoding scheme for platform 0 strings.
    • Added note regarding platform 3 and non-conforming legacy CJK fonts.
    • Corrected use of non-preferred region / language / script name (post-release erratum).
  • os2

    • Include details for legacy calculation of xAvgCharWidth in OS/2 versions 0 to 2 that were omitted since version 1.8.3.
    • Corrected use of non-preferred region / language / script name (post-release erratum).
  • otff

    • Added Offset24 type.
    • Added clarifications regarding NULL subtable offsets.
    • Added recommendation against duplicate tables.
  • otvarcommonformats

    • Added COLR as a table using variation data.
    • Moved description of DeltaSetIndexMap from the HVAR chapter to this chapter. Sub-divided the entryFormat field into separate format and entryFormat fields, and added a format 1 DeltaSetIndexMap.
    • Described application of deltas to F2DOT14, Fixed.
    • Revised ItemVariationData subtable adding support for 32-bit deltas. Also changed field name “shortDeltaCount” to “wordDeltaCount”.
  • otvaroverview

    • Clarified that any aspect of appearance can vary in a variable font.
    • Added details regarding integer bit depth in the algorithm for interpolation of instance values.
  • post

    • Changed FWord to FWORD.
  • recom

    • Revised guidance for baseline-to-baseline distance.
  • scripttags

    • Added script tags for new scripts in Unicode 14.0.
    • Added remarks regarding 'jamo' and 'mymr'.
    • Corrected use of non-preferred region / language / script name (post-release erratum).
  • stat

    • Emphasized recommendation to include axis value tables covering all named instances of a variable font.
  • tt_graphics_state

    • Fix incorrect names of instructions and zone pointers.
  • tt_instructing_glyphs

    • Added clarification regarding unused distance type 3.
  • tt_instructions Clarified that FDEF and IDEF may not be invoked in glyph programs.

  • ttch01

    • Clarified when the interpreter stack is cleared.
    • Clarified where functions and instructions can or cannot be defined or redefined, and the persistence of definitions.
    • Clarified when the control value program is run and the relationship between the control value program, Control Value Table, and the 'cvt ' table.
    • Clarified interaction between the control value program and Graphics State variables.
    • Clarified interactions between zone 0 and the control value and glyph programs.
    • Clarified use of the storage area by font, control value and glyph programs.
    • Added section discussing persistence of storage or CVT values set in a glyph program and interaction with glyph caches.
    • Clarified control of the scan converter mode using SCANCTRL.
  • vvar

    • For description of the DeltaSetIndexMap, changed the cross-reference from the HVAR chapter to the OpenType Font Variations Common Table Formats chapter.

Version 1.8.4

Released November 2020

Names of tables, fields or flags in the following chapters were revised to conform to conventions used across this specification:

These name changes are enumerated in detail below.

References to “TrueType”, when this specification is intended, have been removed, changed to “OpenType”, or otherwise clarified in the following chapters: chapter2.htm, dsig.htm, hvar.htm, otff.htm, post.htm, recom.htm, ttch01.htm, vmtx.htm, vorg.htm.

Minor editorial changes (not detailed below) were made in the following chapters: avar.htm, base.htm, baselinetags.htm, cff.htm, cff2charstr.htm, chapter2.htm, cmap.htm, colr.htm, cpal.htm, dsig.htm, dvaraxistag_ital.htm, dvaraxistag_opsz.htm, dvaraxistag_slnt.htm, dvaraxistag_wdth.htm, dvaraxistag_wght.htm, eblc.htm, featurelist.htm, features_ae.htm, features_fj.htm, features_ko.htm, features_pt.htm, features_uz.htm, featuretags.htm, gdef.htm, gpos.htm, gsub.htm, gvar.htm, hdmx.htm, head.htm, hvar.htm, index.htm, languagetags.htm, ltsh.htm, math.htm, meta.htm, otff.htm, otvarcommonformats.htm, post.htm, scripttags.htm, stat.htm, svg.htm, tt_instructing_glyphs.htm, tt_instructions.htm, ttch01.htm, ttochap1.htm, ttoreg.htm, vhea.htm, vmtx.htm, vorg.htm, vvar.htm.

Summary of changes:

  • avar.htm

  • base.htm

    • Changed field names:
      • BaseValues table: “baseCoords” to “baseCoordOffsets”
      • MinMax and FeatMinMax tables: “minCoord” to “minCoordOffset”
      • MinMax and FeatMinMax tables: “maxCoord” to “maxCoordOffset”
      • BaseCoordFormat3: “deviceTable” to “deviceOffset”
  • cbdt.htm

    • Added descriptions of fields for BigGlyphMetrics, SmallGlyphMetrics.
    • Changed characterization of BitmapSize from table to record.
  • cblc.htm

    • Changed characterization of BitmapSize from table to record.
    • Revised description of CBLC header to incorporate BitmapSize records array.
  • cff2.htm

    • Added note to description of FDSelect Format 3 regarding the maximum glyph ID of 65534.
  • cffspec.htm

    • Page removed. (The page only provided an external link, already in cff.htm.)
  • chapter2.htm

    • Changed table name: “ConditionTableFormat1” to “ConditionFormat1” (table).
    • Changed field names:
      • Script table: “defaultLangSys” to “defaultLangSysOffset”
      • LangSys table: “lookupOrder” to “lookupOrderOffset”
      • Feature table: “featureParams” to “featureParamsOffset”
      • LookupList table: “lookups” to “lookupOffsets”
      • ConditionSet Table: “conditions” to “conditionOffsets”
      • FeatureTableSubstitutionRecord: “alternateFeatureTable” to “alternateFeatureOffset”
    • Changed LookupFlag names:
      • “rightToLeft” to “RIGHT_TO_LEFT”
      • “ignoreBaseGlyphs” to “IGNORE_BASE_GLYPHS”
      • “ignoreLigatures” to “IGNORE_LIGATURES”
      • “ignoreMarks” to “IGNORE_MARKS”
      • “useMarkFilteringSet” to “USE_MARK_FILTERING_SET”
      • “markAttachmentType” to “MARK_ATTACHMENT_TYPE_MASK”
    • Added common formats for use in the GSUB and GPOS tables, replacing formats in GSUB and GPOS chapters that were identical but with different names:
      • SequenceContextFormat1, SequenceContextFormat2, SequenceContextFormat3, and associated subtables (replacing ContextSubstFormat1/ContextPosFormat1, etc.)
      • ChainedSequenceContextFormat1, ChainedSequenceContextFormat2, ChainedSequenceContextFormat3, and associated subtables (replacing ChainContextSubstFormat1/ChainContextPosFormat1, etc.)
      • SequenceLookupRecord (replacing SubstLookupRecord/PosLookupRecord)
    • Replaced Figure 2b with a clearer illustration of language system differences.
    • Clarified optionality of features not referenced by the requiredFeatureIndex field of the LangSys table.
    • Added note regarding GSUB features being processed by applications in stages.
    • Added clarification regarding FeatureParams tables.
    • Added clarification regarding general lookup processing, and regarding filtering lookup flags in relation to the first glyph in input sequences.
    • In relation to contextual lookup types, added clarification regarding lookup flags in the main lookup table and in nested lookup tables.
    • Corrected reference to GPOS type 8 lookups (post-release erratum).
    • Corrected errors in data for Example 3.
  • charstr2.htm

    • Page removed. (The page only provided an external link, already in cff.htm.)
  • cmap.htm

    • Changed field names:
      • EncodingRecord: “offset” to “subtableOffset”
      • Format 2 subtable: “glyphIndexArray” to “glyphIdArray”
      • Format 4 subtable: “idRangeOffset” to “idRangeOffsets”
      • Format 10 subtable: “glyphs” to “glyphIdArray”
    • Added clarification regarding use of different formats.
    • Added clarification regarding subtables being used exclusively.
    • Changed guidance regarding the Macinthosh platform.
    • Added details regarding the Unicode and ISO platforms (moved from the 'name' chapter).
    • Revised description of encodings for the Windows platform.
    • Revised description of the “Custom” platform (ID 4).
    • Revised descriptions for formats 0, 2, 4, 6, 8, 10, 12, 14.
    • In description of format 4, provided details regarding purpose of searchRange, entrySelector and rangeShift fields as well as recommendations for fonts and parsing. Also corrected glyph mapping example.
    • Corrected description of the entrySelector field (post-release erratum, correction back-ported from version 1.9).
  • colr.htm

    • In BaseGlyphRecord and LayerRecord, changed field names “gID” to “glyphId”.
    • Changed general requirement regarding glyph ID 1 to a compatibility note.
  • cpal.htm

    • Changed field names:
      • “offsetFirstColorRecord” to “colorRecordsArrayOffset”
      • “offsetPaletteTypeArray” to “paletteTypesArrayOffset”
      • “offsetPaletteLabelArray” to “paletteLabelsArrayOffset”
      • “offsetPaletteEntryLabelArray” to “paletteEntryLabelsArrayOffset”
    • Clarified use of sRGB.
    • Clarified meaning of alpha values.
    • In the section on SVG and CPAL, replaced “context-fill” and “context-fill-opacity” with “currentColor”.
  • dsig.htm

    • In SignatureRecord, changed field name “offset” to “signatureBlockOffset”.
    • Corrected references for PKCS #7, PKCS #9.
    • Corrected the steps for creating a DSIG table, and clarified steps for creating a DSIG table for a TTC.
    • Removed erroneous reference to DSIG checksum field.
  • dvaraxistag_opsz.htm

    • Revised description for the Optical size axis.
  • ebdt.htm

    • Added descriptions of fields for BigGlyphMetrics, SmallGlyphMetrics.
    • Changed characterization of BitmapSize from table to record.
  • eblc.htm

    • Changed field names:
      • IndexSubtable1 and IndexSubtable3: “offsetArray” to “sbitOffsets”
      • GlyphIDOffsetPair record: “offset” to “sbitOffset”
    • Changed characterization of BitmapSize from table to record.
    • Revised description of EBLC header to incorporate BitmapSize records array.
    • Added descriptions of fields for BigGlyphMetrics, SmallGlyphMetrics.
  • ebsc.htm

    • Changed characterization of BitmapSize from table to record.
  • euro.htm

    • Removed file. (Content not part of the font format specification, available elsewhere.)
  • featurelist.htm

    • Added features 'chws', 'vchw'.
  • features_ae.htm

    • Added 'chws' feature description.
    • Modified feature descriptions: 'aalt', 'abvf', 'abvm', 'abvs', 'afrc', 'akhn', 'blwf', 'blwm', 'blws', 'calt', 'case', 'ccmp', 'cfar', 'cjct', 'clig', 'cpct', 'cpsp', 'cswh', 'curs', 'cv01' – 'cv99', 'c2pc', 'c2sc', 'dist', 'dlig', 'dnom', 'dtls', 'expt'.
  • features_fj.htm

    • Modified feature descriptions: 'falt', 'fin2', 'fin3', 'fina', 'flac', 'frac', 'fwid', 'half', 'haln', 'halt', 'hist', 'hkna', 'hlig', 'hngl', 'hoji', 'hwid', 'init', 'isol', 'ital', 'jalt', 'jp78', 'jp83', 'jp90', 'jp04'.
  • features_ko.htm

    • Deprecated 'opbd' feature.
    • Modified feature descriptions: 'kern', 'lfbd', 'liga', 'ljmo', 'lnum', 'locl', 'ltra', 'ltrm', 'mark', 'med2', 'medi', 'mgrk', 'mkmk', 'mset', 'nalt', 'nlck', 'nukt', 'numr', 'onum', 'opbd', 'ordn', 'ornm'.
  • features_pt.htm

    • Modified feature descriptions: 'palt', 'pcap', 'pkna', 'pnum', 'pref', 'pres', 'pstf', 'psts', 'pwid', 'qwid', 'rand', 'rclt', 'rkrf', 'rlig', 'rphf', 'rtbd', 'rtla', 'rtlm', 'ruby', 'rvrn', 'salt', 'sinf', 'smcp', 'smpl', 'ss01' – 'ss20', 'ssty', 'stch', 'subs', 'sups', 'swsh', 'titl', 'tjmo', 'tnam', 'tnum', 'trad', 'twid'
  • features_uz.htm

    • Added 'vchw' feature description.
    • Modified feature descriptions: 'unic', 'valt', 'vatu', 'vert', 'vhal', 'vjmo', 'vkna', 'vkrn', 'vpal', 'vrt2', 'vrtr', 'zero'.
  • fvar.htm

    • Moved recommendation regarding postScriptNameID to Recommendations.
  • gasp.htm

    • Clarified version 0 versus version 1.
  • gdef.htm

    • Changed table name: “MarkGlyphSetsTable” to “MarkGlyphSets” (table).
    • Changed field name in MarkGlyphSets table: “markGlyphSetsTableFormat” to “format”.
  • glyf.htm

    • Added clarification regarding the number of points in a simple glyph description.
    • Clarified descriptions of xMin, yMin, xMax, yMax.
  • gpos.htm

    • In BaseRecord, changed field name “baseAnchorOffset” to “baseAnchorOffsets”.
    • Removed GPOS-specific formats that were identical to formats in GSUB but with different names, replaced by common formats shared between GSUB and GPOS, described in chapter2.htm:
      • ContextPosFormat1, ContextPosFormat2, ContextPosFormat3, and associated subtables (replaced by SequenceContextFormat1, etc.)
      • ChainContextPosFormat1, ChainContextPosFormat2, ChainContextPosFormat3, and associated subtables (replaced by ChainedSequenceContextFormat1, etc.)
      • PosLookupRecord (replaced by SequenceLookupRecord)
    • In section on position lookup records, added note regarding lookup flags in a main lookup table and in nested lookup tables.
  • gsub.htm

    • Removed GSUB-specific formats that were identical to formats in GPOS but with different names, replaced by common formats shared between GSUB and GPOS, described in chapter2.htm:
      • ContextSubstFormat1, ContextSubstFormat2, ContextSubstFormat3, and associated subtables (replaced by SequenceContextFormat1, etc.)
      • ChainContextSubstFormat1, ChainContextSubstFormat2, ChainContextSubstFormat3, and associated subtables (replaced by ChainedSequenceContextFormat1, etc.)
      • SubstLookupRecord (replaced by SequenceLookupRecord)
  • hdmx.htm

    • Changed data types for numRecords, sizeDeviceRecord to unsigned types.
  • head.htm

    • Changed field name: “checkSumAdjustment” to “checksumAdjustment”.
    • Added recommendation regarding flags bit 3 in hinted fonts.
    • Clarified descriptions for xMin, yMin, xMax, yMax.
  • hhea.htm

    • Clarified descriptions for minLeftSideBearing, minRightSideBearing.
    • Revised note regarding the ascender, descender and linegap fields.
  • hmtx.htm

    • Clarified wording regarding the hMetrics and leftSideBearings arrays.
    • Clarified the left side bearing value that should be specified for empty glyphs.
  • index.htm

    • Updated version number and reference to ISO/IEC 14496-22.
    • Removed reference to the WGL4.0 character set.
    • Incorporated links to ttch01.htm, tt_instructing_glyphs.htm, tt_instructions.htm, tt_graphics_state.htm.
    • Changed links for Adobe Technical Notes #5176, #5177 to be direct, external links, not to cffspec, charstr2 pages.
  • jstf.htm

    • Changed field names in JstfPriority table:
      • “shrinkageEnableGSUB” to “gsubShrinkageEnableOffset”
      • “shrinkageDisableGSUB” to “gsubShrinkageDisableOffset”
      • “shrinkageEnableGPOS” to “gposShrinkageEnableOffset”
      • “shrinkageDisableGPOS” to “gposShrinkageDisableOffset”
      • “shrinkageJstfMax” to “shrinkageJstfMaxOffset”
      • “extensionEnableGSUB” to “gsubExtensionEnableOffset”
      • “extensionDisableGSUB” to “gsubExtensionDisableOffset”
      • “extensionEnableGPOS” to “gposExtensionEnableOffset”
      • “extensionDisableGPOS” to “gposExtensionDisableOffset”
      • “extensionJstfMax” to “extensionJstfMaxOffset”
  • kern.htm

    • In Format 2, changed field names:
      • “leftClassTable” to “leftClassOffset”
      • “rightClassTable” to “rightClassOffset”
      • “array” to “kerningArrayOffset”
  • languagetags.htm

    • Added note clarifying ISO 639 identifiers that may be listed for a given language system tag.
    • Added note about permanent reservation of 'dflt', 'DFLT'.
    • Revised details regarding ISO 639 mappings for language system tags 'AKA ', 'ATH ', 'BAD0', 'BER ', 'BML ', 'CPP ', 'FNE ', 'HAL ', 'IJO ', 'KOH ', 'KRN ', 'MYN ', 'NAH ', 'QIN ', 'SLA ', 'SRB ', 'TMH ', 'TNE ', 'TWI ', 'YCR '.
    • Corrections to show full tags 'HO ', 'WA '.
    • Revised descriptions for 'DGO ', 'DGR ', 'ZHH ', 'ZHTM'.
    • Added: 'AKB ', 'BTD ', 'BTK ', 'BTM ', 'BTX ', 'BTZ ', ZHTM.
    • Added 'DAG ' (post-release update).
    • Added 'AVN ', 'KAW ', 'LEF ', 'WCI ' (post-release update).
    • Added 'CTT ', 'HAI0', 'HEI ', 'HMD ', 'HMZ ', 'IRU ', 'KWK ', 'LPO ', 'RHG ', 'SFM ', 'TLI ', 'XUB ', 'XUJ ', 'YGP ', 'YNA ', 'YWQ ' (post-release update).
    • Revised ISO 639 mapping details for 'SXT ' (post-release update.)
  • loca.htm

    • Revised recommended for local offsets to be word aligned.
  • math.htm

    • Changed field name in MathValueRecord: “deviceTableOffset” to “deviceOffset”.
    • Changed flag name “fExtender” to “EXTENDER_FLAG”.
    • For fields that are values in design grid units, changed data types from int16 to FWORD, and from uint16 to UFWORD.
    • Clarified meaning of “shift” in MathConstants fields.
    • Clarified default rule thickness.
    • Added clarification of suggested value for spaceAfterScript.
    • Added suggested value for radicalKernAfterDegree.
  • maxp.htm

    • Changed type for the version field from Fixed to Version16Dot16.
  • meta.htm

    • Corrected description of example Hant-HK.
  • name.htm

    • Changed field names:
      • Header: “format” to “version”
      • Version 0 and version 1 headers: “stringOffset” to “storageOffset”
      • LangTagRecord: “offset” to “langTagOffset”
      • NameRecord: “offset” to “stringOffset”
    • Re-organized content to move tables of platform, encoding and language IDs to the end of the chapter. Also removed details relevant only to the 'cmap' table.
    • Updated language and region strings for Windows language ID 042F.
    • Changed the language name for Windows language ID 081D to “Swedish”.
  • os2.htm

    • Corrected details for Unicode range fields regarding bit 92 and versions 3, 4.
  • otff.htm

    • Changed field names:
      • In TableRecord: “checkSum” to “checksum”.
      • In TTC Header version 1.0 and version 2.0: “offsetTable” to “tableDirectoryOffsets”.
    • Clarified that LONGDATETIME values are in UTC time.
    • Defined a Version16Dot16 type (replacing Fixed used for table version).
    • Clarified use of “record” and “table” in describing defined structures.
    • Clarifed statement regarding file extensions.
    • Removed historic reference to Multiple Master support being discontinued. (Details are retained in the change log.)
    • Revised terminology, removing use of “offset table” and making consistent use of “table directory”.
    • Re-organized description of TableDirectory and TableRecord array, adding tableRecords[] as a member in TableDirectory.
    • Provided details regarding purpose of searchRange, entrySelector and rangeShift fields as well as recommendations for fonts and parsing.
    • Moved statement of the requirement for four-byte table offsets to follow description of table records.
    • Clarified checksum calculation for tables with length not a multiple of four.
    • Clarified calculation of the 'head' table checksum and checksumAdjustment, and checksums in collection files.
    • Clarified location of DSIG table within a TTC file.
    • Added clarifications regarding custom, vendor-defined tags.
  • otvarcommonformats.htm

    • Changed field name in DeltaSet record: “DeltaData” to “deltaData”.
    • Added text defining special meaning of delta-set outer- and inner-level indices 0xFFFF/0xFFFF as an indication of no variation data.
    • Added constraint on VariationRegionList.regionCount to be less than 32,768 (high bit reserved).
    • Added note regarding NULL offsets in the itemVariationDataOffsets array.
    • In DeltaSet record, revised description of deltaSet array to indicate number of elements in array, not byte length.
  • otvaroverview.htm

    • Moved description of normalization process and example from avar.htm into this chapter.
  • overview.htm

    • Complete re-write of the overview content.
  • pclt.htm

    • Revised member names to use camel case.
    • Clarified note on discouraged usage.
  • post.htm

    • Changed type for the version field from Fixed to Version16Dot16.
    • Clarified the description of version 2.0; this includes changing the type and field name for the string data.
    • Clarified encoding of name strings and moved requirements from Recommendations to here.
  • recom.htm

    • Removed byte ordering and 'OS/2' sections.
    • Revised the table alignment section.
    • Revised the 'cmap' recommendations.
    • Added 'fvar' section with recommendation regarding postScriptNameID.
    • 'name' section: Revised guidance regarding names for the Macintosh platform.
    • 'post' section: Moved name string requirements to 'post' table chapter. Removed redundant and obsolete recommendations.
  • sbix.htm

    • Revised descriptions of originOffsetX, originOffsetY, and provided clarification regarding positioning of the bitmap graphic.
  • scripttags.htm

    • Added script tags for new scripts in Unicode 12 and Unicode 13.
    • Corrected script tag for Yi. (Post-release erratum.)
  • stat.htm

    • Relaxed constraint on name IDs used for AxisRecord.axisNameID.
    • Revised constraints and recommendations regarding separate axis value tables having the same information.
    • For AxisValueFormat2, clarified details regarding touching and overlapping ranges.
    • For AxisValueFormat4, clarified precedence when two tables are partial matches, and clarified the axis ordering to be assumed .
    • Adopted consistent spelling for flag names: OLDER_SIBLING_FONT_ATTRIBUTE and ELIDABLE_AXIS_VALUE_NAME.
    • Revised chapter for greater clarity.
  • svg.htm

    • Changed field name “offsetToSVGDocumentList” to “svgDocumentListOffset”.
    • Clarified note regarding glyph advances not changing due to animations.
  • tt_graphics_state.htm

    • Corrected the list of instructions affected by single_width_cut_in and single_width_value, and clarified the units for single_width_value.
  • tt_instructing_glyphs.htm

    • Removed incorrect statement regarding single_width_cut_in applying to indirect instructions.
  • tt_instructions.htm

    • Corrected figures illustrating stack operations for JROF.
    • Correction in details for SDPVTL.
    • Corrected figures for SFVFS, SZP1, SMD, ALIGNRP, GC.
    • Clarified ISECT and corrected figure.
    • Clarified units for SSW.
  • ttinst.htm

    • Removed file: links to child pages incorporated into index.htm; introductory paragraph incorporated into ttch01.htm.
  • ttochap1.htm

    • Replaced Figure 1h with a clearer illustration of language system differences.
    • Consolidated “TrueType versus OpenType Layout” section into the “OpenType Layout at a glance” section.
  • vdmx.htm

    • In VDMX header, changed field name “offset” to “vdmxGroupOffsets”.
  • vhea.htm

    • Clarified scope of usage for the table.
    • Changed type for the version field from Fixed to Version16Dot16.
    • Revised descriptions of vertTypoAscender, vertTypoDescender.
  • wgl4.htm, wgl4b.htm, wgl4c.htm, wgl4d.htm, wgl4e.htm

    • Removed files. (Content was not part of the font format specification; it remains available elsewhere.)

Version 1.8.3

Released August 2018

Minor editorial changes were made in the following chapters: base.htm, baselinetags.htm, cbdt.htm, cblc.htm, cff.htm, cff2.htm, cff2charstr.htm, changes.htm, chapter2.htm, cmap.htm, colr.htm, cpal.htm, cvar.htm, dsig.htm, dvaraxisreg.htm, dvaraxistag_ital.htm, dvaraxistag_opsz.htm, dvaraxistag_slnt.htm, dvaraxistag_wdth.htm, dvaraxistag_wght.htm, ebdt.htm, eblc.htm, ebsc.htm, featurelist.htm, features_ae.htm, features_fj.htm, features_ko.htm, features_pt.htm, features_uz.htm, featuretags.htm, fvar.htm, gasp.htm, gdef.htm, glyf.htm, gpos.htm, gsub.htm, gvar.htm, hdmx.htm, head.htm, hhea.htm, hmtx.htm, hvar.htm, index.htm, jstf.htm, kern.htm, languagetags.htm, ltsh.htm, math.htm, merg.htm, meta.htm, mvar.htm, name.htm, namesmp.htm, os2.htm, otff.htm, otvarcommonformats.htm, otvaroverview.htm, pclt.htm, post.htm, recom.htm, sbix.htm, scripttags.htm, stat.htm, svg.htm, ttch01.htm, ttochap1.htm, ttoreg.htm, vdmx.htm, vhea.htm, vmtx.htm, vorg.htm, vvar.htm.

The editorial changes include applying a convention for tag values: single, straight quotation marks are used for lowercase tags; they are not used for uppercase tags except when extra clarification is required, such as when a tag has trailing spaces; and marks are not when a tag is used like an object name, as in “head.macStyle”, or when used like a function name, as in “cmap(j)”.

In the summary of changes below, details given above are not repeated.

Summary of Changes:

  • base.htm
    • Corrected figure 5c.
  • cmap.htm
    • Corrected field names for format 4.
    • Eliminated outdated references to “UCS-2” and “UCS-4”.
    • Added comments regarding use of formats 8, 10.
    • Corrected typo in glyphId index value equation from “startCount” to “startCode”.
  • cff2.htm
    • Revised name of operand for blend operator.
    • Corrected max number of glyphs supported by FDSelect Format 3 from 65536 to 65536. (Post-release erratum.)
  • changes.htm
    • Re-organized how systemic and minor editorial changes are recorded for Version 1.8.1.
    • Removed reference to proposals.htm (this legacy page was a companion to this specification but not part of it).
    • Replaced references to default.htm (no longer used) with index.htm.
    • Added missing change to ttinst1.doc in OpenType 1.5. (Post-release erratum.)
  • chapter2.htm
    • Corrected the number of GSUB lookup types (eight).
    • Clarifed description of Coverage Indexes for Coverage Format 2.
  • dsig.htm
    • Revised statments regarding anticipated use of signatures.
  • ebdt.htm
    • Corrected text typo from “EDBT” to “EBDT” in the Header.
  • eblc.htm
    • Corrected text typo from “EDBT” to “EBDT” in the first paragraph.
    • Corrected text from “16-bit alignment” to “32-bit alignment”.
  • ebsc.htm
    • Corrected text typo from “EBLC” to “EBSC” in “EBSC Header”.
  • features_ko.htm
    • Corrected description for 'med2'.
  • features_pt.htm
    • Corrected example for 'ssty'. (Post-release erratum.)
    • Corrected Tag: 'ssty'. (Post-release erratum.)
  • featuretags.htm
    • Revised comments on implementation of 'init' feature for Arabic text for consistency with description of the 'init' feature.
  • gdef.htm
    • Revised field names in MarkGlyphSetsTable format to conform to conventions.
  • glyf.htm
    • Clarified the description of simple glyph flags.
    • Added the OVERLAP_SIMPLE flag.
    • Corrected statement regarding numberOfContours for simple glyph descriptions. (Post-release erratum.)
  • gpos.htm
    • Corrected description of the offset to Device / VariationIndex tables within ValueRecord.
    • Clarified placement and advance effects of lookup types 1 – 6.
  • grstate.doc
  • gsub.htm
    • For Single Substitition Format 1, indicated that addition is modulo 65536.
    • Corrected error in example 7: DashAndSpaceSubRuleSet is at offset SubRuleSet[1].
  • hhea.htm
    • Removed references to historic platforms.
  • index.htm
    • Updated version number and reference to ISO/IEC 14496-22.
    • Removed mention of Microsoft Word documents.
  • instgly.doc
  • jstf.htm
    • Revised field name, jsftLangSysOffset, to follow conventions.
  • kern.htm
    • Removed references to historic platforms.
  • languagetags.htm
    • Added 'KJZ ', 'MFA ', 'TSJ ', 'XKF '.
    • Added additional ISO 639 mappings.
  • math.htm
    • Revised descriptions for better clarity.
    • Re-ordered content in section on MathKernInfo table for better clarity.
    • In description of formats for MathItalicsCorrectionInfo, MathTopAccentAttachment, MathKernInfo and MathVariants, clarified that the count fields must be the same as the number of glyph IDs referenced in the Coverage tables.
    • Revised structure and field names to follow conventions.
  • maxp.htm
    • Clarified maxStackElements.
  • name.htm
    • Replaced obsolete recommendation to have Macintosh strings for legacy version-control implementations with advisory that apps might display incorrect strings.
    • Added link to BCP 47.
    • Eliminated outdated references to “UCS-2” and “UCS-4”.
    • Corrected Macintosh platform language ID for Inuktitut; corrected typos (Quechua, Tagalog).
    • In the table for the Platform ID enumeration, corrected the description for language IDs for Platform ID 0 (error introduced in version 1.5).
    • Revised descriptions for name IDs 1 and 2.
  • os2.htm
    • Incorporated relevant information regarding OS/2 versions 0 to 4. (Separate pages removed.)
    • Added note regarding truncated version 0 definition in Apple’s TrueType Reference Manual.
    • Corrected units for xAvgCharWidth.
    • fsType: Clarified “embedding”; revised presentation of flags; noted that bit 0 is permanently reserved.
    • yStrikeoutSize, yStrikeoutPosition: Removed legacy statements intended for bitmap fonts; added reference to post.underlineThickness.
    • panose: Clarified the contingent meaning of bytes other than the first byte.
    • ulUnicodeRange: Eliminated outdated references to “UCS-2” and “UCS-4”; added note that available bits are exhausted, and reference to 'dlng' and 'slng' tags in the 'meta' table; clarified some issues for early OS/2 versions.
    • achVendID: Revised description.
    • sTypoAscender, sTypoDescender, sTypoLineGap: Revised descriptions; clarified the non-requirement that sTypoAscender - sTypoDescender equal unitsPerEm.
    • usWinAscent, usWinDescent: Revised description; clarified clipping behavior in Windows GDI, and added note regarding interaction with VDMX.
    • Added more information about setting default line metric values in variable fonts, and varying line metric values in variable fonts.
    • Added more information about setting usLowerOpticalPointSize and usUpperOpticalPointSize values in variable fonts.
  • os2ver0.htm, os2ver1.htm, os2ver2.htm, os2ver3.htm, os2ver4.htm
    • Pages removed; relevant content integrated into os2.htm.
  • otff.htm
    • Added .TTC and .OTC to cited filename extensions, and removed recommendation details, which are already provided in the Recommendations chapter.
    • Added table and design-variation axis to items identified using Tag.
    • Moved the specification for valid Tag values from the Table Record description into the data types section.
    • Made clarifications regarding representations of version numbers
    • Changed the data type for the first member of the Table Record to Tag, and changed the member name and description.
    • For underlineThickness, added reference to OS/2.strikeoutSize.
  • otvaroverview.htm
    • Corrected the arithmetic details in the last part of the example in the Interpolation Example section.
    • Corrected typo “wiht” to “with” in “Coordinate Scales and Normalization”.
  • recom.htm
    • Added filename recommendation related to CFF and revised wording related to font collections.
    • Eliminated outdated references to “UCS-2”, “UCS-4” and legacy products in 'cmap' section.
    • Removed obsolete guidance for use of 'vrt2' feature in CJK fonts.
  • stat.htm
    • Revised the introduction to Axis Value Tables for better clarity.
    • Corrected typo changing “appliations” to “applications”.
  • svg.htm
    • Revised organization and descriptive text for better clarity.
    • Revised structure names to follow conventions.
    • Prohibited use of “HTML dialect” SVG documents.
    • Restricted usage of XML namespace declarations.
    • Limited capabilities to SVG 1.1. Deprecated use of context-* properties from SVG2 (support was required in earlier versions).
    • Added section detailing SVG 1.1 capability requirements and restrictions. (Several capabilities not clearly discussed in earlier versions are now discouraged or not supported.)
    • Clarified use of CSS custom properties and integration of CPAL, including interpretation of CPAL alpha values.
    • Added use of currentColor (supersedes use of context-fill, context-stroke).
    • Clarified relationship of coordinate system and viewport to glyph design grid, and also viewport clip behavior.
    • Removed references to “user agent style sheets”.
    • Removed section on security considerations and glyph rendering restrictions (superseded by the added section on SVG 1.1 capability requirements and restrictions).
    • Added Example 1.
    • Revised Example 5, replacing context-fill with currentColor.
  • ttinst.htm
    • Revised links to refer to content ported from Microsoft Word files to Web pages. (Post-release update, August 2018.)
  • ttinst1.doc
  • ttinst2.doc
  • tt_instructions.htm
    • Corrected MIRP Code range to 0xE0 - 0xFF.
    • Corrected errors introducted when porting from Word documents (some changes from earlier versions were not retained). (Post-release erratum.)
    • Changed “NPUSHB” to “NPUSHW” in GETVARIATION. (Post-release erratum.)
    • Corrected error in “FLIPRGOFF” regarding on-curve versus off-curve points. (Post-release erratum.)
    • Removed extra, incorrect uses from “IUP”. (Post-release erratum.)
    • Corrected text in GETVARIATION[] normalized coordinates. (Post-release erratum.)
    • Corrected error in code range of MIRP inadvertently introduced when porting from Word documents. (Post-release erratum.)
    • Corrected error in description of “logical OR” inadvertently added when porting from Word documents. (Post-release erratum.)
    • Removed incorrect text inadvertently added to description of Round to Half Grid (RTHG) when porting from Word documents. (Post-release erratum.)
  • ttochap1.htm
    • Fixed typo in image (fig1i.gif).
  • vhea.htm
    • Made corrections to the description for vertTypoDescender.

Version 1.8.2

Released July 2017.

Many editorial changes have been made, including revision of structure and field names in several chapters to conform to conventions used across this specification. Such changes were made in the following chapters:

A significant editorial change pertains to documentation of design-variation axes and axis tags: previously, these were documented within the 'fvar' table chapter. The axis tags are also used in other tables, however, and may be relevant for non-variable fonts. Also, the set of registered axes may grow over time. Hence, documentation of axes and axis tags has been moved to a separate section, OpenType Design-Variation Axis Tag Registry.

Minor editorial changes were made in the following chapters: avar.htm, base.htm, cbdt.htm, cblc.htm, cff.htm, cff2.htm, cff2charstr.htm, chapter2.htm, cmap.htm, colr.htm, cpal.htm, cvar.htm, dsig.htm, ebdt.htm, eblc.htm, ebsc.htm, features_fj.htm, fvar.htm, gasp.htm, gdef.htm, glyf.htm, gpos.htm, gsub.htm, gvar.htm, hdmx.htm, head.htm, hhea.htm, hmtx.htm, hvar.htm, jstf.htm, math.htm, maxp.htm, merg.htm, mvar.htm, os2.htm, otff.htm, otvarcommonformats.htm, otvaroverview.htm, post.htm, sbix.htm, scripttags.htm, stat.htm, vvar.htm, wgl4b.htm.

In the summary of changes below, details given above are not repeated.

Summary of Changes:

  • avar.htm
    • Clarified requirements on AxisValueMap records within a SegmentMap.
  • cff.htm
    • Added note about Name INDEX entry, name ID 6 and collections.
  • cff2.htm
    • In Top DICT (section 7), indicated that FontMatrix operator is required only if head.unitsPerEm does not equal 1000, and limited the FontMatrix operand array values. Also deprecated use of FontMatrix operator in Font DICTs (section 10 and Appendix C).
    • Corrected description of blend and vsindex operators (section 8).
    • Corrected description of operands for the Private operator (section 10).
    • Corrected error in numeric range of reserved two-byte DICT operators (Appendix C).
    • Removed the maxstack operator.
  • cff2charstr.htm
    • In 3.2, CharString Number Encoding, corrected the described range of values represented for byte values 251 to 254.
    • Revised argument stack limit in Appendix B to 513, and removed reference to maxstack operator.
  • chapter2.htm
    • Relaxed constraint on DFLT script table and LangSysCount.
  • cmap.htm
    • Clarified description for defaultUVSOffset and nonDefaultUVSOffset.
    • Re-organized introductory paragraphs and details on platform/encoding IDs.
  • dvaraxisreg.htm
    • Created new page.
  • dvaraxistag_ital.htm
    • Created new page.
  • dvaraxistag_opsz.htm
    • Created new page.
  • dvaraxistag_slnt.htm
    • Created new page.
  • dvaraxistag_wdth.htm
    • Created new page.
  • dvaraxistag_wght.htm
    • Created new page.
  • features_ae.htm
    • Revised 'ccmp' feature description.
  • features_ko.htm
    • Corrected the friendly name for the 'med2' feature.
  • fvar.htm
    • Added a new flag definition for VariationAxisRecord.
    • Removed Variation Axis Tags section and made reference instead to OpenType Design-Variation Axis Tag Registry page.
  • gasp.htm
    • Revised documentation of behavior flags, and indicated that reserved bits must be set to zero.
  • glyf.htm
    • Added clarifying information about table organization, side bearings, point numbers, scale for coordinate values, packed representation of flags and coordinates in simple glyph descriptions, and the SCALED_COMPONENT_OFFSET and UNSCALED_COMPONENT_OFFSET composite glyph flags.
    • Clarified use of negative numberOfContours values to indicate composite glyphs, and the recommendation that -1 be used.
    • Revised documentation of flags, and indicated that reserved bits must be set to zero.
  • grstate.doc
  • gvar.htm
    • Amend the algorithm for inferring deltas of un-referenced points to avoid division by zero and to completely cover possible cases.
  • hmtx.htm
    • Revise errors in the informative description.
  • index.htm
    • Version update.
    • Added link to OpenType Design-Variation Axis Tag Registry page.
    • Removed mention of Microsoft Word documents. (Post-release update, August 2018.)
  • instgly.doc
  • languagetags.htm
    • Added CCHN.
  • meta.htm
    • Corrected the format of the table version (post-release erratum).
  • mvar.htm
    • Changed reference for variation axis tags from 'fvar' chapter to OpenType Design-Variation Axis Tag Registry page.
  • name.htm
    • Clarified that the string data referenced by 3/1 or 3/0 name records must be encoded in UTF-16BE.
    • Revised descriptions for name IDs 1, 2 and 4, and also the paragraph describing key names for Microsoft platforms.
  • os2.htm
    • Changed reference for variation axis tags from 'fvar' chapter to OpenType Design-Variation Axis Tag Registry page.
    • Corrected link to PANOSE specification (post-release erratum).
  • os2ver0.htm
    • Corrected link to PANOSE specification (post-release erratum).
  • os2ver1.htm
    • Corrected link to PANOSE specification (post-release erratum).
  • os2ver2.htm
    • Corrected link to PANOSE specification (post-release erratum).
  • os2ver3.htm
    • Corrected link to PANOSE specification (post-release erratum).
  • os2ver4.htm
    • Corrected link to PANOSE specification (post-release erratum).
  • otff.htm
    • Clarify that table lengths measure a contiguous byte range encompassing the data for the table.
  • pclt.htm
    • Corrected the data type of the MajorVersion field (post-release erratum).
    • Corrected the description for SerifStyle (post-release erratum).
  • post.htm
    • Changed reference for variation axis tags from 'fvar' chapter to OpenType Design-Variation Axis Tag Registry page.
    • Corrected link to Adobe glyph naming guide (post-release erratum).
  • recom.htm
    • Clarified that the string data referenced by 3/0 name records must be encoded in UTF-16BE.
    • For optical size variants, clarified representation within a STAT axis value table for an upper text size of effective infinity.
    • Corrected link to Adobe glyph naming guide (post-release erratum).
    • Corrected link to PANOSE specification (post-release erratum).
  • scripttags.htm
    • Removed details on processing of script tags, and replaced with link to details in the OpenType Layout Common Table Formats (post-release erratum).
    • Added tags for additional scripts in Unicode 10, Unicode 11 (post-release update).
  • stat.htm
    • Added axis value table format 4.
    • Revised Introduction to clarify purpose and use of the table as a whole; and revised introduction in the Axis Value Tables section to clarify purpose and use of axis value tables.
    • Added clarifications regarding axes, mapping to legacy font-family models, and serialized representation of document text-formatting properties.
    • Clarified representation of effective infinity and negative infinity in range min/max fields of format 2 axis value tables.
    • Added note regarding use of OlderSiblingFontAttribute.
    • Changed reference for tag requirements from 'fvar' table to the Opentype Design Variation Tag Registry.
    • Revised the axis ordering in example 3 to reflect recommendation given in Axis Value Tables section.
  • ttinst.htm
    • Revised links to refer to content ported from Microsoft Word files to Web pages. (Post-release update, August 2018.)
  • ttinst1.doc
  • ttinst2.doc
  • ttochap1.htm
    • Added hyperlink to OpenType Mirroring Pairs List file (ompl.txt).
  • tt_instructions.htm
    • Corrected errors introduced when porting from Word documents (some changes from earlier versions were not retained). (Post-release erratum.)
    • Corrected error in description of “logical OR” inadvertently added when porting from Word documents. (Post-release erratum.)
    • Removed incorrect text inadvertently added to description of Round to Half Grid (RTHG) when porting from Word documents. (Post-release erratum.)
    • Corrected error in code range of MIRP inadvertently introduced when porting from Word documents. (Post-release erratum.)
  • vhea.htm
    • Corrected the calculation given in the description of yMaxExtent (post-release erratum).
  • wgl4.htm
    • Corrected link to Adobe glyph naming guide (post-release erratum).
  • wgl4b.htm
    • Corrected link to Adobe glyph naming guide (post-release erratum).
  • wgl4c.htm
    • Corrected link to Adobe glyph naming guide (post-release erratum).
  • wgl4d.htm
    • Corrected link to Adobe glyph naming guide (post-release erratum).
  • wgl4e.htm
    • Corrected link to Adobe glyph naming guide (post-release erratum).

Version 1.8.1

Released January 2017.

Many editorial changes have been made, including global changes to the names of data types used. Some technical corrections were made that do not affect structure definitions. One structure change was introduced: a field was added in the STAT table.

Changes to names of data types were made in various chapters, as follows:

Minor editorial changes were made in the following chapters: base.htm, cbdt.htm, cblc.htm, cff2.htm, cff2charstr.htm, chapter2.htm, colr.htm, cvar.htm, ebdt.htm, eblc.htm, ebsc.htm, fvar.htm, gpos.htm, gsub.htm, gvar.htm, hdmx.htm, hmtx.htm, hvar.htm, index.htm, jstf.htm, languagetags.htm, loca.htm, math.htm, otff.htm, otvarcommonformats.htm, otvaroverview.htm, post.htm, stat.htm, vdmx.htm.

In the summary of changes below, details given above are not repeated.

Summary of Changes:

  • avar.htm
    • Corrected header definition, adding missing reserved field (post-release erratum).
    • Corrected SegmentMaps record definition, showing axisValueMaps as an array (post-release erratum).
  • cff2.htm
    • Revised Table 1, CFF Data Layout.
    • Revised description of operands in section 4, DICT Data, including removal of the boolean operand type from Table 6.
    • Revised description of Top DICT data (section 7).
    • Deleted section 8, Glyph Organization
    • Revised description of CharString INDEX (now section 8).
    • Revised description of local and global subr indices (now section 9).
    • Revised description of Font DICT INDEX, Font DICTs and FDSelect (now section 10).
    • Revised description of Private DICT Data (now section 11).
    • Revised description of extensions for Font Variations (now section 12).
    • Added example CFF2 table in Appendix A.
    • Revised description of differences from CFF 1 (sections D1 to D4 of Appendix D).
    • Deleted sections D5 and D6 from Appendix D.
  • cff2charstr.htm
    • Revised description of subroutines (section 2.3).
    • Revised description of CFF2 CharString organization (section 3.1), and CharString number encoding (section 3.2).
    • Correction in Table 1, “CFF2 CharString Encoding Values” for byte values 251 – 254.
    • Revised description of CharString operators (section 4).
    • Revised description of path construction operators (section 4.1). Note that changes to the individual operator descriptions are editorial only.
    • Revised description of finishing a CharString outline definition (section 4.2).
    • Revised description of subroutine operators (section 4.4).
    • Revised description of variation data operators (section 4.5).
    • Revised summaries of one- and two-byte operators in Appendix A.
    • In Appendix B, revised description of argument stack limits, and removed TransientArray elements from the list of limits.
    • Deleted Appendix C, “Compatibility and Deprecated Operators”.
  • chapter2.htm
    • Correction of type of MarkFilteringSet index in Lookup table from “unit16” (sic) to uint16.
    • Removed erroneous reference to ConditionSet version.
    • Renamed FeatureVariationRecordsCount in FeatureVariations table to FeatureVariationRecordCount
    • Renamed AlternateFeatureTableOffset field in FeatureTableSubstitutionRecord to AlternateFeatureTable.
  • cmap.htm
    • Revised presentation of formats to give names to records and to integrate record arrays into the presentation of the format for the parent structure containing the array.
  • dsig.htm
    • Changed field names away from Hungarian notation (“ulVersion” to “version”, etc.).
  • features_pt.htm
    • Added note for the 'size' feature regarding the STAT table.
  • fvar.htm
    • Changed the countSizePairs field to permanently reserved, and removed note about this field.
    • Clarified usage of the axisSize and instanceSize fields.
    • Clarified expected behavior if axisCount is zero or if instanceCount is zero.
  • glyf.htm
    • Clarified types for items with variable types depending on flags.
  • grstate.doc
  • gvar.htm
    • Corrected definition of flags field (post-release erratum).
  • hmtx.htm
    • Re-ordered columns in table for the hmtx format to match the convention in other chapters. Also presented the format of the longHorMetric record using the same table conventions.
    • Added explanatory text for better clarity.
  • index.htm
    • Updated version number.
    • Removed mention of Microsoft Word documents. (Post-release update, September 2018.)
  • instgly.doc
  • languagetags.htm
    • Added tags: 'CJA ', 'CJM '
  • mvar.htm
    • Changed the axisCount field to reserved/not used. (The item variation store already contains the axis count.)
    • Renamed offsetToItemVariationStore field to itemVariationStore.
    • Clarified usage of valueRecordSize field.
    • Added validation details for header fields.
  • os2.htm
    • Added a comment regarding PANOSE values in variable fonts.
    • Added comments for usLowerOpticalPointSize and usUpperOpticalPointSize regarding the STAT table.
  • os2ver0.htm
    • Renamed ulCharRange array to ulUnicodeRange, and revised description.
  • otff.htm
    • Added type Offset32.
    • Removed FUNIT, GlyphID as types.
    • Revised description of version numbers, including clarification of requirement for unrecognized major version changes.
    • Minor revisions to TTC header field names.
    • In the “Font Tables” section, changed the recommendation that tables be 4-byte aligned to be a requirement — this is stated as a requirement earlier in the discussion of checksum calculation.
    • Clarified that 'cvt ', 'fpgm' and 'prep' tables are all optional.
  • otvarcommonformats.htm
    • Renamed regionCount and regionIndices field names in ItemVariationData subtable to regionIndexCount and regionIndexes.
  • recom.htm
    • In 'kern' table section, added a comment about kerning in variable fonts.
    • In 'maxp' table section, revised comment about CFF to include CFF2.
    • In OS/2 table section, added a comment regarding PANOSE values in variable fonts.
    • Removed “Device Resolutions” section.
    • Added section on families with optical size variants, and related comment in OS/2 section.
    • Corrected link to PANOSE specification. (Post-release update, September 2018.)
  • stat.htm
    • Added elidableFallbackNameID.
    • Clarified usage of designAxisSize field.
    • Added validation details for header fields.
    • Clarified usage of axisOrdering values.
    • Clarified behaviour of AxisValueFormat2 tables if two tables have overlapping ranges on the same axis.
  • ttinst.htm
    • Revised links to refer to content ported from Microsoft Word files to Web pages. (Post-release update, August 2018.)
  • ttinst1.doc
  • ttinst2.doc
    • Changed “NPUSHB” to “NPUSHW” in GETVARIATION example.
    • Content ported into Web page: tt_instructions.htm. (Post-release update, August 2018.)
  • ttochap1.htm
    • Clarified expected behavior for OpenType Layout processing when glyph runs are formatted with different variation instances of a variable font.
  • tt_instructions.htm
    • Corrected errors introducted when porting from Word documents (some changes from earlier versions were not retained). (Post-release erratum.)
    • Corrected error in description of “logical OR” inadvertently added when porting from Word documents. (Post-release erratum.)
    • Removed incorrect text inadvertently added to description of Round to Half Grid (RTHG) when porting from Word documents. (Post-release erratum.)
    • Corrected error in code range of MIRP inadvertently introduced when porting from Word documents. (Post-release erratum.)
  • vdmx.htm
    • Revised names of member structures.
    • Removed VDMX groups from the header format description — these are subtables referenced via offsets.

Version 1.8

Released September 2016.

Summary of Changes:

  • avar.htm
    • Axis variations table added.
  • base.htm
    • Changed single Fixed version field to USHORT major/minor versions.
    • Changed int16/uint16 to SHORT/USHORT.
    • Added version 1.1 header.
    • Added section on OpenType Font Variations.
    • Revised description of BaseCoord Format 3 to accommodate Font Variations.
    • Added section for the Item Variation Store table.
  • cff2.htm
    • Compact Font Format 2 table added.
  • cff2charstr.htm
    • CFF 2 CharString Format added.
  • chapter2.htm
    • Changed int16/uint16 to SHORT/USHORT.
    • Added section on OpenType Font Variations.
    • Added VariationIndex table.
    • Added FeatureVariations table and constituent formats.
  • cvar.htm
    • CVT variations table added.
  • featurelist.htm
    • Added Required Variation Alternates feature.
    • Added Vertical Alternates for Rotation feature.
  • features_fj.htm
    • Revised feature descriptions for 'fina', 'halt', 'init', 'isol' (similar to ISO/IEC 14496-22:2015 Draft Amendment 2).
    • Marked the 'hngl' feature as deprecated (following ISO/IEC 14496-22:2015 Draft Amendment 2).
  • features_ko.htm
    • Revised feature descriptions for 'medi' (similar to ISO/IEC 14496-22:2015 Draft Amendment 2).
  • features_pt.htm
    • Added Required Variation Alternates feature.
  • features_uz.htm
    • Revised feature description for 'vert' (similar to ISO/IEC 14496-22:2015 Amendment 1).
    • Added Vertical Alternates for Rotation feature (similar to ISO/IEC 14496-22:2015 Amendment 1).
    • Revised feature description for 'vhal' (similar to ISO/IEC 14496-22:2015 Draft Amendement 2).
  • fvar.htm
    • Font variations table added.
  • gasp.htm
    • Added section on OpenType Font Variations.
  • gdef.htm
    • Added missing sections describing Mark Attachment Class and Mark Glyph Sets tables.
    • Added sections for the Item Variation Store table.
    • Changed single Fixed version field to USHORT major/minor versions.
    • Changed int16/uint16 to SHORT/USHORT.
    • Added version 1.2 header.
    • Revised description of CaretValue Format 3 to accommodate Font Variations.
  • glyf.htm
    • Revised description of WE_HAVE_A_TWO_BY_TWO flag (following ISO/IEC 14496-22:2015 Amendment 1).
    • In table of composite flags, revised descriptions for OVERLAP_COMPOUND, SCALED_COMPONENT_OFFSET and UNSCALED_COMPONENT_OFFSET (similar to changes in ISO/IEC 14496-22:2015 Amendment 1).
  • gpos.htm
    • Changed single Fixed version field to USHORT major/minor versions.
    • Changed int16/uint16 to SHORT/USHORT.
    • Added section on OpenType Font Variations.
    • Added version 1.1 header and FeatureVariations table.
    • Revised descriptions of ValueRecord and ValueFormat to allow for VariationIndex table.
    • Revised reserved mask for ValueFormat to 0xFF00.
    • Revised description of Anchor format 3 to allow for VariationIndex table.
  • grstate.doc
  • gsub.htm
    • Changed single Fixed version field to USHORT major/minor versions.
    • Changed int16/uint16 to SHORT/USHORT.
    • Added section on OpenType Font Variations.
    • Added version 1.1 header and FeatureVariations table.
  • gvar.htm
    • Glyph variations table added.
  • head.htm
    • Changed single Fixed version field to USHORT major/minor versions.
    • Changed description of checkSumAdjustment (following ISO/IEC 14496-22:2015 Amendment 1).
    • Revised description of flags bits 1, 5 and 6 – 10.
    • Added note about variable fonts.
  • hhea.htm
    • Changed single Fixed version field to USHORT major/minor versions.
    • Added section on OpenType Font Variations.
  • hvar.htm
    • Horizontal metrics variations table added.
  • index.htm
    • Added chapters: OpenType Font Variations Overview, OpenType Font Variations Common Table Formats, The CFF 2 CharString Format, Adobe Technical Note #5209.
    • Reordered entries between “Specification” and “Appendices” sections.
    • Removed mention of Microsoft Word documents. (Post-release update, September 2018.)
  • instgly.doc
  • jstf.htm
    • Changed single Fixed version field to USHORT major/minor versions.
    • Changed int16/uint16 to SHORT/USHORT.
    • Added section and other remarks on OpenType Font Variations.
  • languagetags.htm
    • Revised introductory text regarding tag syntax.
    • Revised ISO 639 values for 'QIN ', 'SYR '.
    • Added tags: SYRE, SYRJ, SYRN.
  • merg.htm
    • Merge table added.
  • meta.htm
    • Added meta table.
  • mvar.htm
    • Metrics variations table added.
  • name.htm
    • Changed description of name ID 6 (following ISO/IEC 14496-22:2015 Amendment 1).
    • Added new name ID 25.
  • os2.htm
    • Added comment for usWeightClass regarding variable fonts and 'wght' style axis.
    • Added comment for usWidthClass regarding variable fonts and 'wdth' style axis.
    • Corrected misspelling of field name (following ISO/IEC 14496-22:2015 Amendment 1).
    • Added section on OpenType Font Variations.
    • Added note regarding fsSelection bit 15.
  • os2ver0.htm
    • Corrected misspelling of field name (following ISO/IEC 14496-22:2015 Amendment 1).
    • Added footer.
  • os2ver1.htm
    • Corrected misspelling of field name (following ISO/IEC 14496-22:2015 Amendment 1).
    • Added footer.
  • os2ver2.htm
    • Corrected misspelling of field name (following ISO/IEC 14496-22:2015 Amendment 1).
  • os2ver3.htm
    • Corrected misspelling of field name (following ISO/IEC 14496-22:2015 Amendment 1).
  • os2ver4.htm
    • Corrected misspelling of field name.
  • otff.htm
    • Changed sfntVersion to ULONG, and clarified discussion of version numbers.
    • Revised description of font collections (similar to changes in ISO/IEC 14496-22:2015 Amendment 1).
    • Added new tables (CFF2, 'avar', 'cvar', 'gvar', 'gvar', HVAR, MVAR, VVAR, STAT) and notes on OpenType Font Variations.
    • Removed obsolete reference to ATM.
  • otvarcommonformats.htm
    • Added OpenType Font Variations Common Table Formats chapter.
  • otvaroverview.htm
    • Added OpenType Font Variations Overview chapter.
  • post.htm
    • Revised descriptions of Versions 1.0, 2.0 and 3.0 to allow for use in fonts with CFF 2 outlines.
    • Added section on OpenType Font Variations.
  • recom.htm
    • Added note in Filenames recommendations about naming of files for variable fonts.
    • Removed section on first four glyphs (following ISO/IEC 14496-22:2015 Amendment 1).
    • Revised title and content of section on .notdef (similar to ISO/IEC 14496-22:2015 Amendment 1).
    • Added notes in 'name' table recommendations about naming of variable fonts.
    • Revised 'name' table recommendation for name ID 6 (increased length limit from 63 to 127).
    • Revised OS/2 table recommendation regarding PANOSE value (following ISO/IEC 14496-22:2015 Amendment 1), and fixed external link.
    • Revised symbol-font recommendations regarding PANOSE value (following ISO/IEC 14496-22:2015 Amendment 1).
    • Added section on stroke reduction in variable fonts.
    • Corrected link to PANOSE specification. (Post-release update, September 2018.)
  • sbix.htm
    • Standard bitmap graphics table added.
  • stat.htm
    • Style attributes table added.
  • svg.htm
    • Added requirement that SVG documents must be encoded in UTF-8 (following ISO/IEC 14496-22:2015 Draft Amendment 2).
    • Added clarification for rendering multiple glyphs from a shared SVG document.
    • Removed context-* properties from default stylesheet applied to SVG documents.
    • Revised language for handling different SVG versions (following ISO/IEC 14496-22:2015 Draft Amendment 2).
    • Added SVG Glyph Examples section (following ISO/IEC 14496-22:2015 Draft Amendment 2).
    • Minor typo corrections and clarifications.
  • ttinst.htm
    • Revised links to refer to content ported from Microsoft Word files to Web pages. (Post-release update, September 2018.)
  • ttinst1.doc
  • ttinst2.doc
    • Clarified description of the GET INFO instruction.
    • Added GET VARIATION instruction.
    • Content ported into Web page: tt_instructions.htm. (Post-release update, September 2018.)
  • ttochap1.htm
    • Added section on OpenType Font Variations.
  • tt_instructions.htm
    • Corrected error in description of “logical OR” inadvertently added when porting from Word documents. (Post-release erratum.)
    • Removed incorrect text inadvertently added to description of Round to Half Grid (RTHG) when porting from Word documents. (Post-release erratum.)
    • Corrected error in code range of MIRP inadvertently introduced when porting from Word documents. (Post-release erratum.)
  • vhea.htm
    • Added section on OpenType Font Variations.
  • vvar.htm
    • Vertical metrics variations table added.

Version 1.7

Released March 2015.

Summary of Changes:

  • cbdt.htm
    • Created new page
  • cblc.htm
    • Created new page
  • cmap.htm
    • Minor text change in format 4
  • colr.htm
    • Created new page
  • cpal.htm
    • Created new page
  • featurelist.htm
    • Added Dotless Forms, Flattened accent forms, Math script style alternates, Required Contextual Alternates and Stretching Glyph Decomposition
  • features_ae.htm
    • Updated 'cvXX'
    • Added Dotless forms
  • features_fj.htm
    • Added Flattened ascent forms
    • Updated UI suggestion for 'halt'
  • features_pt.htm
    • Updated Stylistic sets and Optical size
    • Added Math script style alternates, Required Contextual Alternates and Stretching Glyph Decomposition
  • features_uz.htm
    • Updated UI suggestion for 'vhal'
  • gasp.htm
    • Added bit flag
  • grstate.doc
  • gsub.htm
    • Fixed typo in ligature substitution
  • head.htm
    • Clarified date description
    • Update description of bit 11
  • hmtx.htm
    • Updated text beneath table
  • index.htm
    • Updated version number
    • Removed mention of Microsoft Word documents. (Post-release update, September 2018.)
  • instgly.doc
  • jstf.htm
    • Fixed typo in Jstf priority table
  • languagetags.htm
    • Added new tags
  • math.htm
    • Added new table
  • maxp.htm
    • Updated maxFunctionDefs description
  • name.htm
    • Changed name IDs 16 and 17 from Preferred name to Typographic name and updated descriptions
    • Added name IDs 23 and 24
    • Updated description for name ID 6
    • Updated description for name ID 20
  • os2.htm
    • Updated version to 5.0
    • Updated formats
    • Added usLowerOpticalPointSize and usUpperOpticalPointSize
  • os2ver4.htm
    • Added page to archive version 4.0
  • otff.htm
    • Changed Mantissa to Integer
    • Changed Truetype collection to Font Collection
    • Added new tables (CBDT, CBLC, COLR, CPAL and MATH)
    • Moved 'gasp' table to TT Outline table
    • Marked VORG table as optional in relation to Postscript outlines
  • post.htm
    • Updated reference to glyph list
    • Updated reference to index numbers
  • recom.htm
    • Added info on .OTC
    • Added post table note
    • Corrected link to PANOSE specification. (Post-release update, September 2018.)
  • scripttags.htm
    • Added new tags
  • svg.htm
    • Created new page
  • ttinst.htm
    • Revised links to refer to content ported from Microsoft Word files to Web pages. (Post-release update, September 2018.)
  • ttinst1.doc
  • ttinst2.doc
  • vorg.htm
    • Indicated table is optional

Version 1.6

Released April 2009; updated July 2010.

Summary of Changes:

  • Updated HTML to be compliant with W3C standards
  • cff.htm
    • Appended description(July 2010)
  • chapter2.htm
    • Added information regarding GDEF table requirements
    • Updated page to show correct number of LookupTypes for GSUB and GPOS
    • Added MarkFilteringSet to Lookup table
  • cmap.htm
    • Updated outdated terminology
    • Added note to 'cmap' header explaining where to find definitions of ID values
    • Changed platform name from Microsoft to Windows
    • Added Format 13 (updated July 2010)
    • Updated note on the language field in 'cmap' subtables (July 2010)
  • featurelist.htm
    • Updated feature list
  • features_ae.htm
    • Added Character Variants feature
    • Clarified script/language sensitivity for 'c2sc' feature
  • features_ko.htm
    • Added Left-to-right alternates
    • Added Left-to-right mirrored forms
    • Updated 'lnum' and 'onum' (July 2010)
  • features_pt.htm
    • Added to recommended implementation for Stylistic Sets
    • Updated Right-to-left alternates
    • Added Right-to-left mirrored forms
    • Fixed link to 'name' table
    • Clarified script/language sensitivity for 'smcp' feature
    • Clarified script/language sensitivity for 'size' feature
  • gdef.htm
    • Updated information relating to GSUB and GPOS tables
    • Added MarkGlyphSetsDef to GDEF header
    • Updated version number
    • Change version number from fixed to ULONG
    • Updated GDEF header description (July 2010)
  • gpos.htm
    • Updated text in Pair Positioning Adjustment: Format 2
  • grstate.doc
  • head.htm
    • Deprecated fontDirectionHint
    • Updated description for bit 14 (July 2010)
  • index.htm
    • Updated version number
    • Added appendix for OMPL
    • Removed mention of Microsoft Word documents. (Post-release update, August 2018.)
  • instgly.doc
  • kern.htm
    • Updated definition (July 2010)
  • languagetags.htm
    • Removed the word “standard” from French and German tags
    • Added IPPH and AMPH tags
    • Added additional expanatory text
    • Added column for ISO 639
  • loca.htm
    • Added information about zero length glyphs at the end of the table
  • name.htm
    • Changed platform name from Microsoft to Windows
    • Updated outdated terminology
    • Added Format 1 Naming table
    • Removed “set to zero” from name ID 15
    • Updated Unicode Platform Specific encoding ID table (July 2010)
    • Updated description for Name ID 4 (July 2010)
  • ompl.txt
    • Added OpenType Mirrored Pairs List
  • os2.htm
    • Fixed typo in Telugu range
    • Updated bit 61 (July 2010)
    • Corrected comments under fsSelection bit table (July 2010)
  • otff.htm
    • Changed ULONG to FIXED for TTC Header version numbers
    • Changed “Table Directory” to “Table Record” since it is refering to a single entry in the directory
  • prep.htm
    • Fixed typo (changed CVT to CV)
    • Added reference to table’s previous name
  • recom.htm
    • Updated recommendations for 'glyf' table, 'kern' table, 'name' table and non-standard (symbol) fonts (July 2010)
    • Corrected link to PANOSE specification. (Post-release update, September 2018.)
  • ttchap1.htm
    • Added text processing information for ltr and rtl text
  • ttinst.htm
    • Revised links to refer to content ported from Microsoft Word files to Web pages. (Post-release update, August 2018.)
  • ttinst1.doc
  • ttinst2.doc

Version 1.5

Released May 2008.

Summary of Changes:

  • changes.htm
    • Reversed order so newest changes are at the top
  • cmap.htm
    • Added Format 14: Unicode Variation Sequences
  • featurelist.htm
    • Added new features to list
  • features_ae.htm
    • Added Centered CJK Punctuation, Conjunct Forms and Conjunct Form after Ro
    • Updated Akhand and Below-base Forms
  • features_fj.htm
    • Updated Half Forms
  • features_ko.htm
    • Explained 'kern'/'palt' interaction
    • Added date to JIS reference in NLC Kanji Forms
    • Updated Nukta Forms
  • features_pt.htm
    • Explained 'kern'/'palt' interaction
    • Added Proportional Kana
    • Updated Pre-base, Post-base and Reph Forms
    • Added Rakar Forms
  • features_uz.htm
    • Explained 'vpal'/'vkrn' interaction
    • Updated Vattu Variants
  • gasp.htm
    • Changed version number to 1 in 'gasp' table
    • Added flags for symmetric gridfit and symmetric smoothing
  • gdef.htm
    • Fixed typo regarding the number of tables within the Glyph Definition table
    • Fixed spelling error under CaretValue Format 1
  • grstate.doc
  • gsub.htm
    • Corrected title for ContextSubstFormat3 subtable
  • glyf.htm
    • Fixed typo in simple glyph description
  • head.htm
    • Updated description for bit 13
  • ibmfc.htm
    • Removed examples that were inaccurate
    • Updated references to ISO standard
    • Adjusted wording for subclasses not specifically refected in ISO standard
  • index.htm
    • Updated version number
    • Added ISO information
    • Removed mention of Microsoft Word documents. (Post-release update, August 2018.)
  • instgly.doc
  • languagetags.htm
    • Updated list of tags
  • loca.htm
    • Removed incorrect example
    • Changed “should” to “must”
  • maxp.htm
    • Removed redundant sentence
  • name.htm
    • Added platform 0 encoding ID 5 for Unicode variation sequences
    • Added Name IDs 21 and 22
    • Updated Microsoft language IDs
  • os2.htm
    • Updated text describing ulUnicodeRange1 – ulUnicodeRange4
    • Added bits 7, 8 and 9 to fsSelection table
    • Updated version number
    • Updated ulUnicodeRange with latest range bits and added block ranges
    • Added recommendation to usDefaultChar and usBreakChar description
    • Corrected link to PANOSE specification. (Post-release update, September 2018.)
  • os2ver0.htm
    • Corrected link to PANOSE specification. (Post-release update, September 2018.)
  • os2ver1.htm
    • Corrected link to PANOSE specification. (Post-release update, September 2018.)
  • os2ver2.htm
    • Corrected link to PANOSE specification. (Post-release update, September 2018.)
  • os2ver3.htm
    • Created new page to archive previous version of OS/2 table
    • Corrected link to PANOSE specification. (Post-release update, September 2018.)
  • otff.htm
    • Added new data type (UINT24) to handle Unicode variation sequences
    • Added recommendation regarding VORG table
  • recom.htm
    • Added additional cross-platform recommendations
    • Added additional BASE table recommendations
    • Added recommendation regarding VORG table
    • Corrected link to PANOSE specification. (Post-release update, September 2018.)
  • scripttags.htm
    • Added script tags for scripts recently added to Unicode
    • Changed 'dflt' script to DFLT script in the description at the bottom of the page
  • ttinst.htm
    • Revised links to refer to content ported from Microsoft Word files to Web pages. (Post-release update, August 2018.)
  • ttinst1.doc
    • INSTCTRL: Correct value stated for selector flag 3.
    • Content ported into Web page: tt_instructions.htm. (Post-release update, August 2018.)
  • ttinst2.doc
    • Updated GETINFO with ClearType information
    • Content ported into Web page: tt_instructions.htm. (Post-release update, August 2018.)
  • ttochap1.htm
    • Removed outdated information about behavior on Windows 95
  • wgl4d.htm
    • Added four Macedonian characters

Version 1.4

Released 11 October 2002.

Summary of Changes:

  • baselinetags.htm
    • Corrected typographic error.
    • Changed hanging baseline references from Hindi to Tibetan.
  • chapter2.htm
    • Corrected link to GDEF table.
    • Add documentation on new script tag DFLT.
  • cmap.htm
    • Add Name column to tabular data to make consistent with other parts of spec.
    • Correct description of Encoding Record.
  • cvt.htm
    • Indicate that length must be integral value of FWORD units.
  • dsig.htm
    • Provide information for ulVersion to be 0x00000001.
    • Update to show usFlag bits that are assigned.
    • Add section on signatures for TrueType Collections.
  • ebdt.htm
    • Change wording to indicate EBDT is superset of 'bdat'. These are not the same.
  • featurelist.htm
    • Added new features: 'abvf', 'c2pc', 'ljmo', 'nlck', 'pcap', 'pref', 'rtla', 'tjmo', 'unic', and 'vjmo'.
    • Change friendly name of 'calt' from Connection Forms to Contextual Alternates.
  • fpgm.htm
    • Add comment that array size n is the number of bytes in the table.
  • gdef.htm
    • Example 6, typos in the comments column for increasing 15 and 16ppem corrected.
  • gpos.htm
    • Clarify origin of Cartesian coordinate system at baseline of the left side.
    • Specify all values are done in font unit measurements.
    • Update images for better presentation.
    • PairPosFormat1 subtable ValueRecord changed to Offset, PairSetOffset[PairSetCount].
    • Update wording on MarkToMark attachment.
  • grstate.doc
  • gsub.htm
    • Add Lookup Type 8, Reverse Chaining contextual single substitution.
  • hdmx.htm
    • Remove references to EGA.
    • Add statement that bit 2 of head.flag must be set to 1.
    • Add Name columns to tabular data for consistency with spec.
  • head.htm
    • Updated macStyle bit descriptions for bits 2 to 15.
    • unitsPerEm annotated that it should be a power of 2.
  • hhea.htm
    • Change FWord to FWORD for correct data type spelling.
  • ibmfc.htm
    • Fix formatting to indent subclasses for better readability.
  • index.htm
    • Update the version number to 1.4.
    • Removed mention of Microsoft Word documents. (Post-release update, August 2018.)
  • instgly.doc
  • name.htm
    • Add Name column to tabular data for consistency with spec.
    • Correct descriptions in Naming Table for count and nameRecord[count].
    • Clarified description of encoding ID 0/3. Added encoding ID 0/4. Changed description of encoding ID 3/10 to UTF-32.
    • Added description and example, for use of name ID 4 in CFF fonts.
    • Clarified working for use of name ID 5 (Version string).
    • Changed wording for name ID 16 (Preferred Family) and name ID 17 (Preferred Subfamily).
    • Suggest that style strings (name ID 2 or 17) match with OS/2.usWeightClass and OS/2.usWidthClass.
  • os2.htm
    • Updated version number to 0x0003
    • Updated Unicode sub-range bits to be aligned with Unicode 3.2.
    • Remove weighted calculation of xAvgCharWidth.
    • Make fsType bits 0-3 to be mutually exclusive. In other words, only one of those bits may be set to “1” at a time. This is to avoid problems of ambiguity in what the font designer intends.
    • Change link to PANOSE specification.
    • Updated description of usFirstCharIndex, usLastCharIndex, usDefaultChar, usBreakChar; in context of fonts that provide surrogate character support.
    • Corrected link to PANOSE specification. (Post-release update, September 2018.)
  • os2ver0.htm
    • Corrected link to PANOSE specification. (Post-release update, September 2018.)
  • os2ver1.htm
    • Corrected link to PANOSE specification. (Post-release update, September 2018.)
  • os2ver2.htm
    • Corrected link to PANOSE specification. (Post-release update, September 2018.)
  • otff.htm
    • Update filename information for TrueType outline fonts.
    • Add data types for FWORD and UFWORD.
    • Corrected content and description of TTC header v1 and v2.
    • Moved VORG table to PostScript Outlines group.
  • pclt.htm
    • Change to discourage use of this table.
  • recom.htm
    • Added recommendation for first four glyphs in font.
    • Added recommendation for shape of .notdef glyph.
    • Corrected link to PANOSE specification. (Post-release update, September 2018.)
  • scripttags.htm
    • Add script tags for Byzantine Music and Default.
  • ttinst.htm
    • Revised links to refer to content ported from Microsoft Word files to Web pages. (Post-release update, August 2018.)
  • ttinst1.doc
  • ttinst2.doc
    • Corrected description in Logical_Functions.Greater_Than.
    • Content ported into Web page: tt_instructions.htm. (Post-release update, August 2018.)
  • ttoreg.htm
    • Reworded and reorganized for better readability.
  • vdmx.htm
    • Change ratio record and vTable record to tabular format.
    • Recommend use of version 1 VDMX.
  • wgl4e.htm
    • Optional glyphs identified and marked. Added a footnote.

Version 1.3

Released April, 2001.

Summary of Changes:

  • Multiple Master support in OpenType, discontinued. The following tables pertaining to it have been removed from this version of the OpenType specification: 'fvar', MMSD, MMFX.
  • base.htm
    • BaseTagList Table
      Added a sentence with a link to the baseline tags in the tags registry.
    • BaseCoord Format 4
      Removed.
  • cff.htm
    • Removed references to MM fonts in the CFF and Type 2 CharString Format specifications. See the change log in each specification for additional changes made.
  • chapter2.htm
    • Table Organisation
      In paragraph 3, changed the number of types of GSUB and GPOS lookups. Phrase added to Paragraph 4 to exclude the Extension lookup.
    • LookupFlag bit enumeration
      Name of the first bit reverted back to RightToLeft. Provided newer description of its use.
    • Coverage Table
      Phrase added to exclude the Extension lookup.
  • cmap.htm
    • Merged paragraph 3 and 4 in the introduction section.
    • Added notes that fonts for Windows that support UCS-4 characters (surrogates), need to use an encoding ID 10 and format 12.
    • The version field has been renamed as “language”, to align it with Apple’s TT spec. Added a note to clarify the use of this field.
    • Added information that platform ID 3, encoding ID 7,8 and 9 are reserved.
    • Added platform ID 3, encoding ID 10.
    • Swapped the description of encoding ID 3 and 4. They were incorrectly mapped to Big5 and PRC respectively, in earlier versions of the specification.
    • Added a note on OTF Windows compatibility mapping.
    • Formats 2, 4, 6.
      Made the description of the length field in these formats consistent with the rest of the formats.
    • Format 2
      Removed the duplicate entry for subHeaders[ ].
    • Format 4
      Corrected endCode and startCode values in the example for this format.
    • Supporting 4-byte character codes (Formats 8, 10, 12)
      Added these new formats.
  • ebdt.htm
    • Minor typo in the name of ebdtComponent corrected.
  • feattags.htm
    • Added features 'ccmp', 'fin2', 'fin3', 'med2' and 'rlig'.
    • Clarified the Feature Interaction sections for 'kern', 'vkrn'.
    • Updated GSUB lookup type to be used, in the Recommended implementation section of 'ordn'.
  • fvar.htm
    • This table removed.
  • gdef.htm
    • Introduction
      Added information on the MarkAttachClassDef field.
    • Overview
      Updated image to contain MarkAttachClassDef.
    • GDEF Header
      Added missing information on the MarkAttachClassDef field.
    • GDEF Header Table
      Added the note that offsets might be null for the GlyphClassDef, AttachList, LigCaretList, MarkAttachClassDef
    • GlyphClassDef Enumeration List
      An explanatory note added for definition of ligatures and component glyphs.
    • Mark Attachment Class Definition Table
      An explanatory section and example 7 added.
    • CaretValue: Format 4
      This format used by MM fonts removed.
  • gpos.htm
    • Corrected the link “Common Table Formats” to read “OpenType Common Table Formats” throughout table.
    • Table Organization
      Updated the image. Added links for all lookup types. Added Extension positioning as LookupType 9, types 10+ are now Reserved.
    • PairPosFormat1 subtable
      PairSet field corrected to specify it as an array of Offsets.
    • Lookup Type 6
      Sentence added to clarify input context for MarkToBase, MarkToLigature and MarkToMark positioning tables.
    • LookupType 9: Extension Positioning
      This new lookup type added.
    • ValueRecord table
      Removed XIdPlacement, YIdPlacement, XIdAdvance, YIdAdvance and the sentence following the table.
    • ValueFormat bit enumeration
      Removed XIdPlacement, YIdPlacement, XIdAdvance, YIdAdvance and the sentence following the table.
    • Anchor Table: Format 4
      Removed.
  • gsub.htm
    • Corrected the link “Common Table Formats” to read “OpenType Common Table Formats” throughout table.
    • Substituting Glyphs with OpenTypeTM
      Types of lookups corrected to six. Added an explanation to the ligature substitution section, to clarify the location occupied by a ligature glyph when it replaces a sequence of glyphs. Missing paragraph on Chaining contextual substitution added.
    • Table Organization
      Updated image.
    • LookupType Enumeration table for glyph substitution
      Added links for all lookup types. Added Extension Substitution as the 7th lookup type. This hence classifies types 8+ as Reserved.
    • LookupType 2:
      Prohibited the deletion of an input glyph, and added that GlyphCount should always be greater than 0.
    • Chaining Context Substitution Format 1: Simple Chaining Context Glyph Substitution
      Added that the match for the string backtrack sequence + input sequence + lookahead sequence takes place in the simplest of cases; and that lookup flag values affect backtrack/lookahead sequences. Since the input sequence includes the covered glyph, removed “covered glyph” from the above string.
    • LookupType 7: Extension Substitution
      This new lookup type added.
  • head.htm
    • table
      Clarified description for bit 1, 5-10.
      Added specification for bit 13.
  • hhea.htm
    • table
      Added a footnote for the fields Ascender, Descender and LineGap.
  • hmtx.htm
    • Added a note that the advanceWidth for each glyph in CFF OpenType fonts must match its x width in the CFF table.
  • loca.htm
    • Corrected minor typo.
  • maxp.htm
    • Added a note to indicate the difference in representing the fractional part of a version number when it is non-zero.
  • mmfx.htm
    • This table removed.
  • mmsd.htm
    • This table removed.
  • name.htm
    • Minor rewording of text done in the introduction section related to fonts for the Macintosh.
    • Platform ID, specific encoding ID and languageId information combined into one table.
    • Unicode platform-specific encoding IDs (platform ID = 0)
      This new table added.
    • Microsoft platform-specific encoding IDs
      This table replaced with a more comprehensive table from the cmap.htm.
    • Mac platform-specific encoding IDs:
      Clarified IDs 2 and 25. Corrected typo in ID 32.
    • Mac language IDs:
      Newer IDs added 23-150.
    • ISO specific encodings (platform ID=2)
      Marked as deprecated. Minor typo in the sentence below the table corrected.
    • Custom platform-specific encoding IDs (platform ID = 4)
      Newer platform ID added.
    • Name IDs
      Added newer description for nameID 5. Added nameID 19 and 20.
    • Examples
      Added example for nameID 19.
    • LCID-CP list
      Updated this list.
  • os2.htm
    • xAvgCharWidth.description
      Comments for this field updated.
    • fsType.table
      Added Bit Mask and description details for the case when no bit is set; added Bit Mask value 0x0001.
    • fsType.comments
      Information on setting Bit Masks consolidated into the description column of the table. Removed the redundant section below the table.
    • yStrikeoutPosition.description
      Added that this is the distance of the top of the strikeout stroke.
    • panose.description
      Removed dead URL for the PANOSE evaluation document, added that the “greybook” reference could be used instead.
    • ulUnicodeRange.table
      Updated the Unicode standard version number to 3.0 in the description for these fields. Added bits 70- 127. Added a footnote for setting bit 57 (Surrogates).
    • usFirstCharIndex.description
      Minor correction: added the word platform specific.
    • sTypoAscender and sTypodescender
      Minor corrections done; “design space” now referred to as “ideo em box” in the descriptions; added a links to recom.htm for these fields.
    • usWinAscent
      Explanatory note added to explain the circumstances in which clipping will take place.
    • usWinDescent
      Explanatory note added to explain the circumstances in which clipping will take place.
    • sxHeight
      Added a note that this metric can be used in font substitution.
    • usDefaultChar
      Added that for a given font, missing glyphs will be displayed using the content of glyph 0 in the selected font.
  • otff.htm
    • Version Numbers
      Added explanation that representation of a non-zero fractional part in version numbers, differs from the representation of the matissa.
    • Tables Related to PostScript Outlines
      Removed links and description details for the fvar, MMSD and MMFX tables.
    • Advanced Typographic Tables
      Added a link to OpenType Layout Common Table Formats.
    • Other OpenType Tables
      Added the VORG table name to the list.
  • otover.htm
    • Related documentation
      Removed sections in the description related to MM fonts.
  • post.htm
    • table.version.description
      Added versions 2.5 and 3.0
    • table.underlinePosition.description
      PostScript information added.
    • version2.0
      Updated name and description details in the table contents
    • version2.5
      Updated table contents, added that this version has been deprecated.
  • recom.htm
    • BASE Table
      This section added.
    • 'cmap' table
      Added details on requirements that need to be satisfied by surrogate fonts on Windows.
    • 'head' Table
      Added details regarding usage of the fontRevision value.
    • 'hhea' Table
      Removed sentence which incorrectly stated that OpenType fonts that include CFF data must set numberOfHMetrics equal to the number of glyphs in the font.
    • 'post' Table
      Updated content related to glyph names in the post table.
    • OS/2 Table
      Added section on sTypoAscender, sTypoDescender, sTypoLineGap.
    • General Recommendations
      Updated the table ordering list for OpenType fonts containing CFF data by adding the 'maxp' table; and, removing the 'fvar' and MMSD tables.
    • Baseline to Baseline Distances
      Added a paragraph on the recommended use of sTypoAscender, sTypoDescender, and sTypoLineGap.
    • OpenType CJK Font Guidelines
      This new section added.
  • ttochap1.htm
    • Introduction
      Removed MMSD reference.
      Expanded the brief description of the content of Registered OpenType Layout Tags to reflect all OpenType tags: scripts, languages, baselines, features.
    • How Multiple Master OpenType Fonts Use OpenType Layout Tables
      This section removed.
  • ttoreg.htm
    • Added links in the introduction section, to help jump to the script, language, baseline and feature tag sections.
    • Script tags
      Corrected script tag length description.
      Added newer script tags.
    • Language system tags
      Added newer language tags.
    • Baseline tags
      Added newer baseline tags: 'icfb', 'icft' and 'idtp'. Expanded the description of existing tags into two categories: “Baseline for HorizAxis” and “Baseline for VertAxis”.
    • Ideographic Em-Box
      This new section added.
    • Ideographic Character Face
      This new section added.
  • vhea.htm
    • Introduction
      Added a link each for the vmtx table and the CJK guidelines section.
    • table.version.description
      Version number increased to 1.1. Added a note to indicate the difference in representing the fractional part of a version number when it is non-zero.
    • table.ascent
      Replaced by vertTypoAscender.
    • table.descent
      Replaced by vertTypoDescender.
    • table.lineGap
      Replaced by vertTypoLineGap.
    • Vertical Header Table Example
      Changed version value to 1.1. Corrected the name for vertTypoLineGap
  • vmtx.htm
    • Introduction
      Added a link for accessing the CJK guidelines section.
    • Vertical Origin and Advance Height
      This new section added.
    • Vertical Metrics Table Format
      Added note on the calculating the top side bearing.
  • vorg.htm
    • This new table added. This is needed by CFF OpenType fonts to locate the origin of vertical glyphs.
  • wgl4d.htm
    • Added a missing asterisk for PostScriptName.macron
    • Added U+02DC (tilde) — was missing from the list.

Version 1.25

Released July, 2000.

Summary of Changes:

  • feattags.htm (Feature Tags) -
    • Features added:
      'abvm' (Above-base Mark Positioning); 'abvs' (Above-base Substitutions); 'akhn' (Akhand); 'blwf' (Below-base Forms); 'blws' (Below-base Substitutions); 'clig' (Contextual Ligatures); 'cswh' (Contextual Swash); 'curs' (Cursive Positioning); 'dist' (Distances); 'falt' (Final Glyph on Line Alternates); 'half' (Half Forms); 'haln' (Halant Forms); 'hkna' (Horizontal Kana Alternates); 'isol' (Isolated Forms); 'jalt' (Justification Alternates); 'locl' (Localized Forms) (replaces 'jajp', 'kokr', 'vivn', 'zhch', and 'zhtw'); 'mkmk' (Mark to Mark Positioning); 'nukt' (Nukta Forms); 'pres' (Pre-base substitutions); 'pstf' (Post-base Forms); 'psts' (Post-base Substitutions); 'rphf' (Reph Forms); 'ruby' (Ruby Notation Forms); 'size' (Optical Size); 'vatu' (Vattu Variants); 'vhal' (Alternate Vertical Half Metrics); 'vkna' (Vertical Kana Alternates); 'vkrn' (Vertical Kerning) 'vpal' (Proportional Alternate Vertical Metrics).
    • Features removed:
      'crcy' (Currency), 'dpng' (Diphthongs), 'jajp' (Japanese Forms), 'kokr' (Korean Forms), 'vivn' (Vietnamese Forms), 'zhcn' (Simplified Chinese Forms), 'zhtw' (Traditional Chinese Forms).
    • Features modified:
      'aalt': Added ordering suggestion, reworked user interface suggestions, clarified implementation recommendation, feature interaction and function.
      'altv': changed tag to 'valt'.
      'c2sc', 'dlig': Clarified function, example and feature interaction.
      'calt', 'case', 'dnom', 'expt', 'halt', 'hist', 'hwid', 'jp78', 'jp83', 'jp90', 'kern', 'lfbd', 'liga', 'lnum', 'numr', 'onum', 'pwid', 'qwid', 'rtbd', 'smpl', 'sups', 'titl', 'twid', 'valt': Clarified feature interaction.
      'fina', 'init', 'medi', 'rand', 'salt', 'swsh': Clarified user interface suggestion and feature interaction.
      'frac': Added 'numr' and 'dnom' extensions, clarified feature interaction.
      'fwid', 'palt': Clarified feature interaction and function.
      'hngl': Clarified feature interaction and implementation recommendation.
      'ital': Clarified function and feature interaction.
      'mark': Added example, application interface, user interface suggestion, script sensitivity, feature interaction. Modified recommended implementation.
      'mset': Added example.
      'nalt': Clarified user interface suggestion, implementation recommendation and feature interaction.
      'opbd': Added 'lfbd' and 'rtbd' extensions; clarified user interface suggestion and feature interaction.
      'ordn': Clarified script sensitivity, corrected lookup type, clarified implementation recommendation and feature interaction. 'ornm': Clarified user interface suggestion, implementation recommendation, feature interaction and function description.
      'smcp': Added note about dotlessi; clarified function and feature interaction.
      'trad': corrected terminology (hanzi, not hanja), clarified user interface suggestion and implementation recommendation.
      'vert': Clarified feature interaction and added ordering recommendation; extended application interface notes.
      'vrt2': Changed “friendly” name, clarified feature interaction and added ordering recommendation; added ATM/OTF driver information and descriptions of how to construct the rotated glyphs in the Function section.
      'zero': Clarified user interface suggestion.
    • Features relocated:
      'mark' and 'mset' have been moved from the Metric Behaviors category, to the Other Substitutions category for consistency in classification.
  • chapter2.htm - modified description of FeatureParams field for a non-null offset (the 'size' feature uses it).

Version 1.2

Released November, 1998.

Summary of Changes:

  • Data type notation and spelling corrected throughout
  • base.htm - added BaseCoord Table Format 4
  • chapter2.htm - corrected example 3; refined description of next glyph; reserved RightToLeft lookup flag; corrected descriptions of LookupFlag bits
  • cmap.htm - removed legacy encodings
  • dsig.htm - updated field names and format of signature record; added step to creation of content digest
  • feattags.htm - registered new features 'crcy', 'dnom', 'jajp', 'kokr', 'lfbd', 'numr', 'rtbd', 'vivn', 'vrt2', 'zhcn', 'zhtw'; removed features 'trak', 'vrot'; edited and clarified descriptions of features 'afrc', 'altv', 'c2sc', 'calt', 'case', 'cpsp', 'dlig', 'dpng', 'expt', 'fina', 'frac', 'fwid', 'halt', 'hlig', 'lngl', 'hwid', 'init', 'ital', 'jp78', 'jp90', 'kern', 'lnum', 'medi', 'mgrk', 'onum', 'opbd', 'ordn', 'ornm', 'palt', 'pnum', 'pwid', 'qwid', 'smcp', 'smpl', 'sups', 'tnam', 'tnum', 'trad', 'twid', 'vert'
  • gdef.htm - added MarkAttachClassDef to header, and MarkAttachmentType bit setting to LookupFlag bits; added CaretValue Table Format 4
  • glyf.htm - added table detailing component record structure
  • gsub.htm - added format 6, for chaining contextual substitution; general editing
  • gpos.htm - added format 8, for chaining contextual positioning; clarified pair positioning operations; corrected Example 10; clarified coordinate system description; refined description of when a lookup is finished; added AnchorTable Format 4; general editing
  • head.htm - added note about fontRevision field; clarified description of compression flag
  • hhea.htm - corrected description of numberOfHMetrics
  • mmfx.htm - corrections throughout; added MMFXIdZero
  • name.htm - general editing
  • os2.htm - renamed usMaxLookup to usMaxContext; edited descriptions of defaultChar and breakChar; updated registered vendors
  • otff.htm - general editing; added ulDsigTag and related fields to TTC header; added datatypes LONGDATETIME; clarified checksum calculations; added tag name restrictions; clarified use of version numbers
  • post.htm - renamed FormatType to Version
  • vhea.htm - replaced mention of centerline with vertical baseline; corrected description of numOfLongVerMetrics
  • CFF.pdf and Type2.pdf updated (December 1998)
  • Several PostScript glyph names corrected in the WGL tables (18 December 1998)
  • name.htm - Descriptions of name ID 13 and 14 corrected (29 January 1999)
  • mmsd.htm - Attribute flags corrected (29 January 1999)
  • head.htm - Data type of xMin corrected (29 January 1999)

Version 1.1

Released April, 1998.

Summary of Changes:

  • CFF and Type2 specs updated
  • chapter2.htm - corrected typo in figure 2d (fig2d.gif)
  • dsig.htm - added info about location of DSIG table; added list of sfnt structural requirements
  • feattags.htm - created more comprehensive list and description of layout feature tags
  • gpos.htm - corrected illustration 4f (fig4f.gif)
  • head.htm - added bit 12 (converted) to flags field
  • hhea.htm - removed CFF restriction listed in numberOfHMetrics field; added caretOffset field.
  • maxp.htm - added version 0.5 table (numGlyphs field); general editing
  • name.htm - added name IDs 16, 17, and 18; corrected name ID example
  • os2.htm - added new version (2), adding new fields sxHeight, sCapHeight, usDefaultChar, usBreakChar, usMaxLookup; clarified sTypoAscender and sTypoDescender fields; changed some Unicode range values to reflect Unicode 2; updated registered vendors
  • otff.htm - general editing; added description of two types of TTC headers, and DSIG table location
  • recom.htm - general editing

Version 1.01

Released October, 1997.

Summary of Changes:

  • mmfx.htm, fvar.htm, mmsd.htm, otover.htm, recom.htm - edits throughout
  • loca.htm - changed long-aligned to word-aligned for local offsets
  • wgl4.htm - added reference to Euro symbol
  • dsig.htm - added note about system use of DSIG table to distinguish OT from TT fonts
  • ttoreg.htm - added 'VIT ', 'TRK ', and 'ROM ' lang sys tags
  • otff.htm - rearranged table list
  • base.htm - change to basecoordformat3 data type
  • gpos.htm - pairposformat1 subtable valuerecord becomes offset
  • kern.htm - GPOS clarification
  • name.htm - added name IDs 13 and 14
  • ltsh.htm - clarified option for fixed-pitch fonts
  • vdmx.htm - version 1 added to VDMX table
  • os2.htm - added codepage range 8 for Vietnamese; added new vendor IDs, including UNKN

Version 1.0

Released April, 1997.