diff --git a/Lib/fontTools/varLib/__init__.py b/Lib/fontTools/varLib/__init__.py index d4a098ec6..a5503d0db 100644 --- a/Lib/fontTools/varLib/__init__.py +++ b/Lib/fontTools/varLib/__init__.py @@ -31,6 +31,7 @@ from fontTools.ttLib.tables.TupleVariation import TupleVariation from fontTools.ttLib.tables import otTables as ot from fontTools.varLib import builder, designspace, models from fontTools.varLib.merger import VariationMerger, _all_equal +from fontTools.varLib.mvar import MVAR_entries from fontTools.varLib.iup import iup_delta_optimize from collections import OrderedDict import os.path @@ -426,48 +427,6 @@ def _add_HVAR(font, model, master_ttfs, axisTags): hvar.AdvWidthMap = advanceMapping hvar.LsbMap = hvar.RsbMap = None -_MVAR_entries = { - 'hasc': ('OS/2', 'sTypoAscender'), # horizontal ascender - 'hdsc': ('OS/2', 'sTypoDescender'), # horizontal descender - 'hlgp': ('OS/2', 'sTypoLineGap'), # horizontal line gap - 'hcla': ('OS/2', 'usWinAscent'), # horizontal clipping ascent - 'hcld': ('OS/2', 'usWinDescent'), # horizontal clipping descent - 'vasc': ('vhea', 'ascent'), # vertical ascender - 'vdsc': ('vhea', 'descent'), # vertical descender - 'vlgp': ('vhea', 'lineGap'), # vertical line gap - 'hcrs': ('hhea', 'caretSlopeRise'), # horizontal caret rise - 'hcrn': ('hhea', 'caretSlopeRun'), # horizontal caret run - 'hcof': ('hhea', 'caretOffset'), # horizontal caret offset - 'vcrs': ('vhea', 'caretSlopeRise'), # vertical caret rise - 'vcrn': ('vhea', 'caretSlopeRun'), # vertical caret run - 'vcof': ('vhea', 'caretOffset'), # vertical caret offset - 'xhgt': ('OS/2', 'sxHeight'), # x height - 'cpht': ('OS/2', 'sCapHeight'), # cap height - 'sbxs': ('OS/2', 'ySubscriptXSize'), # subscript em x size - 'sbys': ('OS/2', 'ySubscriptYSize'), # subscript em y size - 'sbxo': ('OS/2', 'ySubscriptXOffset'), # subscript em x offset - 'sbyo': ('OS/2', 'ySubscriptYOffset'), # subscript em y offset - 'spxs': ('OS/2', 'ySuperscriptXSize'), # superscript em x size - 'spys': ('OS/2', 'ySuperscriptYSize'), # superscript em y size - 'spxo': ('OS/2', 'ySuperscriptXOffset'), # superscript em x offset - 'spyo': ('OS/2', 'ySuperscriptYOffset'), # superscript em y offset - 'strs': ('OS/2', 'yStrikeoutSize'), # strikeout size - 'stro': ('OS/2', 'yStrikeoutPosition'), # strikeout offset - 'unds': ('post', 'underlineThickness'), # underline size - 'undo': ('post', 'underlinePosition'), # underline offset - #'gsp0': ('gasp', 'gaspRange[0].rangeMaxPPEM'), # gaspRange[0] - #'gsp1': ('gasp', 'gaspRange[1].rangeMaxPPEM'), # gaspRange[1] - #'gsp2': ('gasp', 'gaspRange[2].rangeMaxPPEM'), # gaspRange[2] - #'gsp3': ('gasp', 'gaspRange[3].rangeMaxPPEM'), # gaspRange[3] - #'gsp4': ('gasp', 'gaspRange[4].rangeMaxPPEM'), # gaspRange[4] - #'gsp5': ('gasp', 'gaspRange[5].rangeMaxPPEM'), # gaspRange[5] - #'gsp6': ('gasp', 'gaspRange[6].rangeMaxPPEM'), # gaspRange[6] - #'gsp7': ('gasp', 'gaspRange[7].rangeMaxPPEM'), # gaspRange[7] - #'gsp8': ('gasp', 'gaspRange[8].rangeMaxPPEM'), # gaspRange[8] - #'gsp9': ('gasp', 'gaspRange[9].rangeMaxPPEM'), # gaspRange[9] -} - - def _add_MVAR(font, model, master_ttfs, axisTags): log.info("Generating MVAR") @@ -479,7 +438,7 @@ def _add_MVAR(font, model, master_ttfs, axisTags): lastTableTag = None fontTable = None tables = None - for tag, (tableTag, itemName) in sorted(_MVAR_entries.items(), key=lambda kv: kv[1]): + for tag, (tableTag, itemName) in sorted(MVAR_entries.items(), key=lambda kv: kv[1]): if tableTag != lastTableTag: tables = fontTable = None if tableTag in font: diff --git a/Lib/fontTools/varLib/mvar.py b/Lib/fontTools/varLib/mvar.py new file mode 100644 index 000000000..d4c996f12 --- /dev/null +++ b/Lib/fontTools/varLib/mvar.py @@ -0,0 +1,44 @@ +from __future__ import print_function, division, absolute_import +from __future__ import unicode_literals +from fontTools.misc.py23 import * + +MVAR_entries = { + 'hasc': ('OS/2', 'sTypoAscender'), # horizontal ascender + 'hdsc': ('OS/2', 'sTypoDescender'), # horizontal descender + 'hlgp': ('OS/2', 'sTypoLineGap'), # horizontal line gap + 'hcla': ('OS/2', 'usWinAscent'), # horizontal clipping ascent + 'hcld': ('OS/2', 'usWinDescent'), # horizontal clipping descent + 'vasc': ('vhea', 'ascent'), # vertical ascender + 'vdsc': ('vhea', 'descent'), # vertical descender + 'vlgp': ('vhea', 'lineGap'), # vertical line gap + 'hcrs': ('hhea', 'caretSlopeRise'), # horizontal caret rise + 'hcrn': ('hhea', 'caretSlopeRun'), # horizontal caret run + 'hcof': ('hhea', 'caretOffset'), # horizontal caret offset + 'vcrs': ('vhea', 'caretSlopeRise'), # vertical caret rise + 'vcrn': ('vhea', 'caretSlopeRun'), # vertical caret run + 'vcof': ('vhea', 'caretOffset'), # vertical caret offset + 'xhgt': ('OS/2', 'sxHeight'), # x height + 'cpht': ('OS/2', 'sCapHeight'), # cap height + 'sbxs': ('OS/2', 'ySubscriptXSize'), # subscript em x size + 'sbys': ('OS/2', 'ySubscriptYSize'), # subscript em y size + 'sbxo': ('OS/2', 'ySubscriptXOffset'), # subscript em x offset + 'sbyo': ('OS/2', 'ySubscriptYOffset'), # subscript em y offset + 'spxs': ('OS/2', 'ySuperscriptXSize'), # superscript em x size + 'spys': ('OS/2', 'ySuperscriptYSize'), # superscript em y size + 'spxo': ('OS/2', 'ySuperscriptXOffset'), # superscript em x offset + 'spyo': ('OS/2', 'ySuperscriptYOffset'), # superscript em y offset + 'strs': ('OS/2', 'yStrikeoutSize'), # strikeout size + 'stro': ('OS/2', 'yStrikeoutPosition'), # strikeout offset + 'unds': ('post', 'underlineThickness'), # underline size + 'undo': ('post', 'underlinePosition'), # underline offset + #'gsp0': ('gasp', 'gaspRange[0].rangeMaxPPEM'), # gaspRange[0] + #'gsp1': ('gasp', 'gaspRange[1].rangeMaxPPEM'), # gaspRange[1] + #'gsp2': ('gasp', 'gaspRange[2].rangeMaxPPEM'), # gaspRange[2] + #'gsp3': ('gasp', 'gaspRange[3].rangeMaxPPEM'), # gaspRange[3] + #'gsp4': ('gasp', 'gaspRange[4].rangeMaxPPEM'), # gaspRange[4] + #'gsp5': ('gasp', 'gaspRange[5].rangeMaxPPEM'), # gaspRange[5] + #'gsp6': ('gasp', 'gaspRange[6].rangeMaxPPEM'), # gaspRange[6] + #'gsp7': ('gasp', 'gaspRange[7].rangeMaxPPEM'), # gaspRange[7] + #'gsp8': ('gasp', 'gaspRange[8].rangeMaxPPEM'), # gaspRange[8] + #'gsp9': ('gasp', 'gaspRange[9].rangeMaxPPEM'), # gaspRange[9] +}