Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Version 1.9.1
Released May 2024
Structure or field names were revised in base, chapter2, cff2, cmap, eblc, gdef, gpos, hmtx, and jstf chapters; see below for details.
Minor editorial changes (not detailed below) were made in the following chapters: avar, base, baselinetags, cbdt, cblc, cff, chapter2, cmap, colr, cpal, cvt, dsig, dvaraxisreg, ebdt, eblc, ebsc, featurelist, features_ae, features_fj, features_ko, features_pt, features_uz, featuretags, fpgm, fvar, gasp, gdef, glyf, gpos, gsub, gvar, hdmx, head, hhea, hvar, ibmfc, jstf, kern, languagetags, loca, ltsh, math, merg, meta, mvar, name, os2, otff, otvarcommonformats, otvaroverview, overview, pclt, post, prep, recom, sbix, scripttags, stat, svg, tt_instructing_glyphs, tt_instructions, ttch01, ttochap1, ttoreg, vdmx, vmtx, vorg, vvar.
Summary of changes:
-
- Changed structure names:
- “FeatMinMaxRecord” to “FeatMinMax”
- “BaseLangSysRecord” to “BaseLangSys”
- Changed field names:
- FeatMinMax record: “featureTableTag” to “featureTag”
- BaseCoord tables: “baseCoordFormat” to “format”
- Changed structure names:
-
- Changed field names:
- BitmapSize record: “indexSubTableArrayOffset” to “indexSubtableListOffset”
- BitmapSize record: “indexTablesSize” to “indexSubtableListSize”
- BitmapSize record: “numberOfIndexSubTables” to “numberOfIndexSubtables”
- Changed field names:
-
- This chapter underwent significant editorial revision.
- Changed structure, field and operator names:
- “FDArray” to “FontDICTINDEX”
- “FDSelect” to “FontDICTSelect”
- “Variation Store” to “VariationStore”
- “Top DICT” to “TopDICT”
- “TopDictLength” to “TopDICTLength”
- “Font DICT” to “FontDICT”
- “Private DICT” to “PrivateDICT”
- “Global Subr INDEX” to “GlobalSubrINDEX”
- “CharString INDEX” to “CharStringINDEX”
- “delta” to “deltaArray”
- “vstore” to “VariationStoreOffset”
- INDEX “offSize” to “offsetSize”
- INDEX “offset” array to “offsets”
- FontDICTSelect: “fds” to “fontDictIDs”
- FontDICTSelect format 3: “range3” array to “ranges”
- FontDICTSelect formats 3, 4: “nRanges” to “numRanges”
- FontDICTSelect format 4: “range4” array to “ranges”
- Range3, Range4: “fd” to “fontDictID”
- Changed type of INDEX offsetSize field to uint8.
- Changed the types used for INDEX offsets to Offset8, Offset16, etc.
- Changed stack notation conventions.
- Added PrivateDICT hinting operator descriptions (based on Adobe Type 1 Font Format).
- Added section describing dependencies on other font tables.
- Differences between CFF and CFF2 moved to a new appendix (glyphformatcomparison).
- Incorporated the content of CFF2 Charstrings chapter into this chapter.
- Clarified interaction between blending and stem or edge hint encoding using hstemhm and similar operators; and between blending and stem width values specified using StdHW and similar operators.
- Corrected the note describing blending of StemSnapH and StemSnapV operands, and also the description of blended stem and edge hints and the relationsip between the encoded order of stems and cntrmask and hintmask bitflags (post-release erratum).
cff2charstr
- Content of this chapter was incorporated into the CFF chapter, and this appendex was deleted.
-
- Changed structure and field names:
- ClassDefFormat1: “classValueArray” to “classValues”
- “ClassRangeRecord” to “ClassRange”
- “SequenceLookupRecord” to “SequenceLookup”
- Coverage tables: “coverageFormat” to “format”
- ClassDef tables: “classFormat” to “format”
- Changed lookup flag name “MARK_ATTACHMENT_TYPE_MASK” to “MARK_ATTACHMENT_CLASS_FILTER”.
- Clarified processing of a Lookup table with multiple subtables.
- SequenceRuleSet table: corrected reference to field for the size of the seqRuleOffsets[] array (post-release erratum).
- Changed structure and field names:
-
- Clarify the modulo arithmetic for idDelta in Format 2 and Format 4.
- For Format 4, correct the description of the entrySelector field.
- For Format 4, revert array name to idRangeOffset.
- For Format 4, correct the entrySelector value in the second example.
-
- Removed obsoleted references to ColorIndex and VarColorIndex records (proposed in preliminary design but not used in final design).
- Clarified handling of alpha with palette entries that reference text foreground color.
- Added clarifications regarding color stop ordering, and provided possible implementation workaround for platforms that limit the range of color stop offsets.
- Clarified behavior for different extend modes when all stops have the same offset.
- Clarified radial gradient behavior when variation deltas result in a circle with negative radius, and provided possible implementation workaround for platforms that require non-negative radii.
- Revised description of sweep gradients and the interpretation of their data representation.
- Added clarifications about applying variation deltas to F2DOT14 or Fixed values.
- Replaced the generic description of offset reference for subtable offsets with specific details in description of each structure containing subtable offsets.
-
- Use title case for axis names.
-
- Use title case for axis names.
-
- Changed structure and field names:
- BitmapSize record: “indexSubTableArrayOffset” to “indexSubtableListOffset”
- BitmapSize record: “indexTablesSize” to “indexSubtableListSize”
- BitmapSize record: “numberOfIndexSubTables” to “numberOfIndexSubtables”
- “IndexSubTableArray” to “IndexSubtableList”
- “IndexSubTable1” to “IndexSubtableFormat1”
- “IndexSubTable2” to “IndexSubtableFormat2”
- “IndexSubTable3” to “IndexSubtableFormat3”
- “IndexSubTable4” to “IndexSubtableFormat4”
- “IndexSubTable5” to “IndexSubtableFormat5”
- Provided a formal description for the IndexSubtableList (renamed from IndexSubtableArray).
- Clarified ordering requirements for indexSubtableRecords array.
- Changed structure and field names:
-
- Description of the formats is revised to be consistent with other parts of the spec (array of fixed-size structures without offsets described as records).
-
- Added feature 'apkn'.
- Revised the descriptions for the 'aalt', 'chws', 'clig', 'cswh', 'cv01' – 'cv99', 'dlig' and 'expt' features.
-
- Corrected name for 'flac' feature.
- Revised the descriptions for the 'falt', 'fina', 'flac', 'fwid', 'halt', 'hkna', 'hngl', 'hwid', 'init', 'isol', 'jalt', 'jp78', 'jp83' and 'jp90' features.
-
- Revised the descriptions for the 'kern', 'liga', 'ljmo', 'lnum', 'locl', 'medi', 'mgrk', 'mset', 'numr' and 'ordn' features.
-
- Revised the descriptions for the 'palt', 'pcap', 'pkna', 'pwid', 'qwid', 'rclt', 'rvrn', 'size', 'smpl', 'ss01' – 'ss20', 'ssty', 'subs', 'sups', 'tjmo', 'tnam', 'trad' and 'twid' features.
- Clarified that stylistic set features may be used in the GPOS table, and may be used in combination with one another.
-
- Added feature 'vapk'.
- Revised the descriptions for the 'unic', 'valt', 'vchw', 'vert', 'vhal', 'vjmo', 'vkna', 'vkrn', 'vpal', 'vrt2', 'vrtr' and 'zero' features.
-
- Revised recommendation for instance record name IDs for the default instance.
- In the example 'fvar' table, corrected the axisSize field name.
-
- Change field names:
- In CaretValue tables: “caretValueFormat” to “format”
- Change field names:
-
- Clarified that a simple glyph with zero contours can have instructions but need not have any glyph data.
- Revised description of OVERLAP_SIMPLE to cover a broader range of implementations.
- A missing bracket was added in the pseudo code for processing component glyph records.
- Added details for the WE_HAVE_INSTRUCTIONS component flag.
-
- Added page.
-
- Changed structure and field names:
- “PairValueRecord” to “PairValue”
- “Class1Record” to “Class1”
- “Class2Record” to “Class2”
- “EntryExitRecord” to “EntryExit”
- “Mark2Record” to “Mark2”
- “ExtensionPosFormat1” to “PosExtensionFormat1”
- multiple structures: “posFormat” to “format”
- CursivePosFormat1: “entryExitRecord” to “entryExitRecords”
- Anchor tables: “anchorFormat” to “format”
- For Type 3, format 1, clarified that no adjustment is made if either entry or exit Anchor offset is NULL.
- Changed structure and field names:
-
- Changed structure and field names:
- “ExtensionSubstFormat1” to “SubstExtensionFormat1”
- multiple structures: “substFormat” to “format”
- Clarified the modulo arithmetic for deltaGlyphID in SingleSubstFormat1.
- Changed structure and field names:
-
- Corrected example for processing composite glyphs.
-
- Added clarification regarding flags bit 1.
-
- Change data types for font unit values to FWORD, UFWORD.
- Corrected casing of record name to LongHorMetrics.
-
- Consolidated JstfGSUBModList and JstfGPOSModList table formats into a common JstfModList table.
- Corrected field name in JstfModList table: “gsubLookupIndices” to “lookupIndices” (post-release erratum)
-
- Removed obsolete platform-specific details.
-
- Added 'AAQ ', 'ACY ', 'ATS ', 'BDC ', 'CAY ', 'CBG ', 'CMI ', 'COO ', 'CTO ', 'EMP ', 'HUR ', 'JDT ', 'KBC ', 'KJJ ', 'LIV ', 'MEV ', 'ONE ', 'ONO ', 'PLG0', 'SEE ', 'SJA ', 'STR ', 'TAQ ', 'TDC ', 'THP ', 'THV ', 'THZ ', 'TLY ', 'TTQ ', 'TUS ', 'UDI ', 'UPPH', 'WBL ', 'WDT ', 'WYN ', 'YUF '.
- Revised descriptions for 'BEL ', 'IRT ', 'SGA ', 'TMH '.
- Added BCP 47 info for APPH, IPPH, UPPH (post-release update).
- Updated BCP 47 info for CPP (post-release update).
- Added 'KGF ', 'KMG ', 'KSU ', 'KVQ ', 'LUT ', 'NOP ', 'NUK ', 'SJE ' , 'SJU ', 'TBV ' (post-release update).
-
- Removed recommendation that offsets be two-byte aligned.
-
- Changed structure and field names:
- MathGlyphConstruction: “mathGlyphVariantRecord” to “mathGlyphVariantRecords”.
- “GlyphPartRecord” to “GlyphPart”.
- Corrected description of spaceAfterScript.
- Corrected description of radicalDegreeBottomRaisePercent.
- Changed structure and field names:
-
- Added clarifications regarding intended use of 'dlng' and 'slng'.
- Relaxed ScriptLangTag syntax to allow (but strongly discourage) a language subtag without a script subtag.
-
- Added clarifications regarding name ID 2 and interaction with OS/2.fsSelection style bits.
- Revised description of name ID 13.
- Corrected details regarding non-Unicode encoding IDs for platform 3.
- Replaced list of Macintosh language IDs with reference to Apple documentation.
- Replaced list of Windows language IDs with reference to external Microsoft documentation on language IDs.
-
- Change data types for font unit values to FWORD, UFWORD.
- Added note regarding some CJK fonts having unexpected xAvgCharWidth values.
- Added details related to use of int16 for ySubscriptXSize, ySubscriptYSize, ySuperscriptXSize, ySuperscriptYSize, yStrikeoutSize.
- Added clarifications for fsSelection bits, including relation between bit 8 and the STAT table.
-
- Corrected casing of TableRecord in TableDirectory.
- Added Offset8 in table of data types.
-
- Added clarification regarding rounding of calculated values.
- Clarified that supplemental deltas for corners of a design space are optional.
-
- Corrected calculation of size for delta-set index mapping entries.
- Clarify when variations of F2DOT14 values may need to be clamped.
-
- Clarified description of underlinePosition and its difference from the PostScript UnderlinePosition FontInfo key.
-
- Corrected details regarding when the CV program is executed.
-
- Clarified requirements related to graphicType = 'dupe' (“must”, not “should”).
-
- Added script tags for new scripts in Unicode 15.0 and Unicode 16.0.
- Clarified usage of the 'math' script tag.
- Added script tags for new scripts in Unicode 17.0 (post-release update).
-
- Corrected description of INSTCTRL.
-
- Added clarification on x-axis placement of design grid in relation to pen position.
-
- Change data type for advanceHeightMax to unsigned.
- Change data types for font unit values to FWORD, UFWORD.
-
- Clarified that VORG may be used with CFF2.
-
- Change data types for font unit values to FWORD, UFWORD.
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:
-
- Changed spellings of field names of ConditionFormat1 table.
-
- 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).
-
- Added version 1 header and related structures.
- Revised introductory sections and other editorial changes.
- Added recommendation against using bold or italic simulations.
-
- Added reference to CSS Color Module Level 4.
- Added section on interpolation of colors.
-
- Modified 'cvXX' description.
- Corrected use of non-preferred region / language / script name (post-release erratum).
-
- Modified 'frac' feature description.
-
- Modified 'lfbd' feature description.
-
- Modified 'rtbd' feature description.
-
- Changed record name “Tuple” to “UserTuple”.
-
- 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.
-
- Clarified consistency requirement for extension subtables within a given Lookup table.
-
- Clarified consistency requirement for extension subtables within a given Lookup table.
- Corrected use of non-preferred region / language / script name (post-release erratum).
-
- Corrected type in sharedTuples array to Tuple.
- Corrected spelling of GlyphVariationData and TupleVariationHeader.
-
- Clarified meaning of unitsPerEm, xMin, yMin, xMax and yMax values.
- Added remarks regarding glyph bounding rectangles in variable fonts.
-
- Moved description of the DeltaSetIndexMap to the OpenType Font Variations Common Table Formats chapter.
-
- 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).
-
- Added CFF2 as requiring version 0.5.
-
- 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 name (post-release erratum).
-
- 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).
-
- 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).
-
- Added Offset24 type.
- Added clarifications regarding NULL subtable offsets.
- Added recommendation against duplicate tables.
-
- 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”.
-
- 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.
-
- Changed FWord to FWORD.
-
- Revised guidance for baseline-to-baseline distance.
-
- 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).
-
- Emphasized recommendation to include axis value tables covering all named instances of a variable font.
-
- Fix incorrect names of instructions and zone pointers.
-
- Added clarification regarding unused distance type 3.
tt_instructions Clarified that FDEF and IDEF must not be invoked in glyph programs.
-
- 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.
-
- 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:
- base.htm, chapter2.htm, cmap.htm, colr.htm, cpal.htm, dsig.htm, eblc.htm, gdef.htm, gpos.htm, gsub.htm, head.htm, jstf.htm, kern.htm, math.htm, name.htm, otff.htm, otvarcommonformats.htm, svg.htm, vdmx.htm.
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:
-
- Moved description of normalization process and example into otvaroverview.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”
- Changed field names:
-
- Added descriptions of fields for BigGlyphMetrics, SmallGlyphMetrics.
- Changed characterization of BitmapSize from table to record.
-
- Changed characterization of BitmapSize from table to record.
- Revised description of CBLC header to incorporate BitmapSize records array.
-
- 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.)
-
- 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.)
-
- 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).
- Changed field names:
-
- In BaseGlyphRecord and LayerRecord, changed field names “gID” to “glyphId”.
- Changed general requirement regarding glyph ID 1 to a compatibility note.
-
- 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”.
- Changed field names:
-
- 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.
-
- Revised description for the Optical size axis.
-
- Added descriptions of fields for BigGlyphMetrics, SmallGlyphMetrics.
- Changed characterization of BitmapSize from table to record.
-
- 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.
- Changed field names:
-
- Changed characterization of BitmapSize from table to record.
euro.htm
- Removed file. (Content not part of the font format specification, available elsewhere.)
-
- Added features 'chws', 'vchw'.
-
- 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'.
-
- 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'.
-
- 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'.
-
- 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'
-
- Added 'vchw' feature description.
- Modified feature descriptions: 'unic', 'valt', 'vatu', 'vert', 'vhal', 'vjmo', 'vkna', 'vkrn', 'vpal', 'vrt2', 'vrtr', 'zero'.
-
- Moved recommendation regarding postScriptNameID to Recommendations.
-
- Clarified version 0 versus version 1.
-
- Changed table name: “MarkGlyphSetsTable” to “MarkGlyphSets” (table).
- Changed field name in MarkGlyphSets table: “markGlyphSetsTableFormat” to “format”.
-
- Added clarification regarding the number of points in a simple glyph description.
- Clarified descriptions of xMin, yMin, xMax, yMax.
-
- 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.
-
- 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)
- 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:
-
- Changed data types for numRecords, sizeDeviceRecord to unsigned types.
-
- Changed field name: “checkSumAdjustment” to “checksumAdjustment”.
- Added recommendation regarding flags bit 3 in hinted fonts.
- Clarified descriptions for xMin, yMin, xMax, yMax.
-
- Clarified descriptions for minLeftSideBearing, minRightSideBearing.
- Revised note regarding the ascender, descender and linegap fields.
-
- Clarified wording regarding the hMetrics and leftSideBearings arrays.
- Clarified the left side bearing value that should be specified for empty glyphs.
-
- 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.
-
- 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”
- Changed field names in JstfPriority table:
-
- In Format 2, changed field names:
- “leftClassTable” to “leftClassOffset”
- “rightClassTable” to “rightClassOffset”
- “array” to “kerningArrayOffset”
- In Format 2, changed field names:
-
- 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.)
-
- Revised recommended for local offsets to be word aligned.
-
- 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.
-
- Changed type for the version field from Fixed to Version16Dot16.
-
- Corrected description of example Hant-HK.
-
- 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”.
- Changed field names:
-
- Corrected details for Unicode range fields regarding bit 92 and versions 3, 4.
-
- 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.
- Changed field names:
-
- 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.
-
- Moved description of normalization process and example from avar.htm into this chapter.
-
- Complete re-write of the overview content.
-
- Revised member names to use camel case.
- Clarified note on discouraged usage.
-
- 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.
-
- 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.
-
- Revised descriptions of originOffsetX, originOffsetY, and provided clarification regarding positioning of the bitmap graphic.
-
- Added script tags for new scripts in Unicode 12 and Unicode 13.
- Corrected script tag for Yi. (Post-release erratum.)
-
- 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.
-
- Changed field name “offsetToSVGDocumentList” to “svgDocumentListOffset”.
- Clarified note regarding glyph advances not changing due to animations.
-
- Corrected the list of instructions affected by single_width_cut_in and single_width_value, and clarified the units for single_width_value.
-
- Removed incorrect statement regarding single_width_cut_in applying to indirect instructions.
-
- 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.
-
- 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.
-
- In VDMX header, changed field name “offset” to “vdmxGroupOffsets”.
-
- 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
- Content ported into Web page: tt_graphics_state.htm.
- 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
- Content ported into Web page: tt_instructing_glyphs.htm.
- 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
- Content ported into Web page: tt_instructions.htm. (Post-release update, August 2018.)
- ttinst2.doc
- Content ported into Web page: tt_instructions.htm. (Post-release update, August 2018.)
- 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:
- Revision of structure or field names: base.htm, cff2.htm, chapter2.htm, colr.htm, cvar.htm, ebdt.htm, eblc.htm, ebsc.htm, fvar.htm, gasp.htm, gdef.htm, gpos.htm, gsub.htm, gvar.htm, hvar.htm, jstf.htm, merg.htm, mvar.htm, otvarcommonformats.htm, sbix.htm, stat.htm, svg.htm, vvar.htm.
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