[varLib] Allow using CFF2 table as source
Nothing clever, if the source font has a CFF2 table use it as if it were a CFF table (i.e. non-variable, not sure what would happen in the source CFF2 was variable already).
This commit is contained in:
parent
014991d710
commit
38981b6dae
@ -683,9 +683,11 @@ _DesignSpaceData = namedtuple(
|
|||||||
|
|
||||||
|
|
||||||
def _add_CFF2(varFont, model, master_fonts):
|
def _add_CFF2(varFont, model, master_fonts):
|
||||||
from .cff import (convertCFFtoCFF2, merge_region_fonts)
|
from .cff import merge_region_fonts
|
||||||
glyphOrder = varFont.getGlyphOrder()
|
glyphOrder = varFont.getGlyphOrder()
|
||||||
convertCFFtoCFF2(varFont)
|
if "CFF2" not in varFont:
|
||||||
|
from .cff import convertCFFtoCFF2
|
||||||
|
convertCFFtoCFF2(varFont)
|
||||||
ordered_fonts_list = model.reorderMasters(master_fonts, model.reverseMapping)
|
ordered_fonts_list = model.reorderMasters(master_fonts, model.reverseMapping)
|
||||||
# re-ordering the master list simplifies building the CFF2 data item lists.
|
# re-ordering the master list simplifies building the CFF2 data item lists.
|
||||||
merge_region_fonts(varFont, model, ordered_fonts_list, glyphOrder)
|
merge_region_fonts(varFont, model, ordered_fonts_list, glyphOrder)
|
||||||
@ -884,7 +886,7 @@ def build(designspace, master_finder=lambda s:s, exclude=[], optimize=True):
|
|||||||
_merge_TTHinting(vf, model, master_fonts)
|
_merge_TTHinting(vf, model, master_fonts)
|
||||||
if 'GSUB' not in exclude and ds.rules:
|
if 'GSUB' not in exclude and ds.rules:
|
||||||
_add_GSUB_feature_variations(vf, ds.axes, ds.internal_axis_supports, ds.rules, ds.rulesProcessingLast)
|
_add_GSUB_feature_variations(vf, ds.axes, ds.internal_axis_supports, ds.rules, ds.rulesProcessingLast)
|
||||||
if 'CFF2' not in exclude and 'CFF ' in vf:
|
if 'CFF2' not in exclude and ('CFF ' in vf or 'CFF2' in vf):
|
||||||
_add_CFF2(vf, model, master_fonts)
|
_add_CFF2(vf, model, master_fonts)
|
||||||
if "post" in vf:
|
if "post" in vf:
|
||||||
# set 'post' to format 2 to keep the glyph names dropped from CFF2
|
# set 'post' to format 2 to keep the glyph names dropped from CFF2
|
||||||
|
@ -266,6 +266,12 @@ def merge_PrivateDicts(top_dicts, vsindex_dict, var_model, fd_map):
|
|||||||
private_dict.rawDict[key] = dataList
|
private_dict.rawDict[key] = dataList
|
||||||
|
|
||||||
|
|
||||||
|
def _cff_or_cff2(font):
|
||||||
|
if "CFF " in font:
|
||||||
|
return font["CFF "]
|
||||||
|
return font["CFF2"]
|
||||||
|
|
||||||
|
|
||||||
def getfd_map(varFont, fonts_list):
|
def getfd_map(varFont, fonts_list):
|
||||||
""" Since a subset source font may have fewer FontDicts in their
|
""" Since a subset source font may have fewer FontDicts in their
|
||||||
FDArray than the default font, we have to match up the FontDicts in
|
FDArray than the default font, we have to match up the FontDicts in
|
||||||
@ -278,7 +284,7 @@ def getfd_map(varFont, fonts_list):
|
|||||||
default_font = fonts_list[0]
|
default_font = fonts_list[0]
|
||||||
region_fonts = fonts_list[1:]
|
region_fonts = fonts_list[1:]
|
||||||
num_regions = len(region_fonts)
|
num_regions = len(region_fonts)
|
||||||
topDict = default_font['CFF '].cff.topDictIndex[0]
|
topDict = _cff_or_cff2(default_font).cff.topDictIndex[0]
|
||||||
if not hasattr(topDict, 'FDSelect'):
|
if not hasattr(topDict, 'FDSelect'):
|
||||||
# All glyphs reference only one FontDict.
|
# All glyphs reference only one FontDict.
|
||||||
# Map the FD index for regions to index 0.
|
# Map the FD index for regions to index 0.
|
||||||
@ -294,7 +300,7 @@ def getfd_map(varFont, fonts_list):
|
|||||||
fd_map[fdIndex] = {}
|
fd_map[fdIndex] = {}
|
||||||
for ri, region_font in enumerate(region_fonts):
|
for ri, region_font in enumerate(region_fonts):
|
||||||
region_glyphOrder = region_font.getGlyphOrder()
|
region_glyphOrder = region_font.getGlyphOrder()
|
||||||
region_topDict = region_font['CFF '].cff.topDictIndex[0]
|
region_topDict = _cff_or_cff2(region_font).cff.topDictIndex[0]
|
||||||
if not hasattr(region_topDict, 'FDSelect'):
|
if not hasattr(region_topDict, 'FDSelect'):
|
||||||
# All the glyphs share the same FontDict. Pick any glyph.
|
# All the glyphs share the same FontDict. Pick any glyph.
|
||||||
default_fdIndex = gname_mapping[region_glyphOrder[0]]
|
default_fdIndex = gname_mapping[region_glyphOrder[0]]
|
||||||
@ -313,7 +319,7 @@ CVarData = namedtuple('CVarData', 'varDataList masterSupports vsindex_dict')
|
|||||||
def merge_region_fonts(varFont, model, ordered_fonts_list, glyphOrder):
|
def merge_region_fonts(varFont, model, ordered_fonts_list, glyphOrder):
|
||||||
topDict = varFont['CFF2'].cff.topDictIndex[0]
|
topDict = varFont['CFF2'].cff.topDictIndex[0]
|
||||||
top_dicts = [topDict] + [
|
top_dicts = [topDict] + [
|
||||||
ttFont['CFF '].cff.topDictIndex[0]
|
_cff_or_cff2(ttFont).cff.topDictIndex[0]
|
||||||
for ttFont in ordered_fonts_list[1:]
|
for ttFont in ordered_fonts_list[1:]
|
||||||
]
|
]
|
||||||
num_masters = len(model.mapping)
|
num_masters = len(model.mapping)
|
||||||
|
93
Tests/varLib/data/TestCFF2Input.designspace
Normal file
93
Tests/varLib/data/TestCFF2Input.designspace
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<designspace format="3">
|
||||||
|
<axes>
|
||||||
|
<axis default="400.0" maximum="900.0" minimum="200.0" name="weight" tag="wght">
|
||||||
|
<map input="200" output="0" /> <!-- ExtraLight -->
|
||||||
|
<map input="300" output="100" /> <!-- Light -->
|
||||||
|
<map input="400" output="368" /> <!-- Regular -->
|
||||||
|
<map input="500" output="486" /> <!-- Medium -->
|
||||||
|
<map input="600" output="600" /> <!-- Semibold -->
|
||||||
|
<map input="700" output="824" /> <!-- Bold -->
|
||||||
|
<map input="900" output="1000" /><!-- Black -->
|
||||||
|
</axis>
|
||||||
|
</axes>
|
||||||
|
<rules>
|
||||||
|
<rule name="named.rule.1">
|
||||||
|
<conditionset>
|
||||||
|
<condition maximum="600" minimum="0" name="weight" />
|
||||||
|
</conditionset>
|
||||||
|
<sub name="dollar" with="dollar.a" />
|
||||||
|
</rule>
|
||||||
|
</rules>
|
||||||
|
<sources>
|
||||||
|
<source filename="master_cff2_input/TestCFF2_ExtraLight.ufo" name="master_0">
|
||||||
|
<lib copy="1" />
|
||||||
|
<location>
|
||||||
|
<dimension name="weight" xvalue="0" />
|
||||||
|
</location>
|
||||||
|
</source>
|
||||||
|
<source filename="master_cff2_input/TestCFF2_Regular.ufo" name="master_1">
|
||||||
|
<glyph mute="1" name="T" />
|
||||||
|
<info copy="1" />
|
||||||
|
<location>
|
||||||
|
<dimension name="weight" xvalue="368" />
|
||||||
|
</location>
|
||||||
|
</source>
|
||||||
|
<source filename="master_cff2_input/TestCFF2_Black.ufo" name="master_2">
|
||||||
|
<location>
|
||||||
|
<dimension name="weight" xvalue="1000" />
|
||||||
|
</location>
|
||||||
|
</source>
|
||||||
|
</sources>
|
||||||
|
<instances>
|
||||||
|
<instance familyname="Test CFF2 Roman" postscriptfontname="TestCFF2Roman-ExtraLight" stylename="ExtraLight">
|
||||||
|
<location>
|
||||||
|
<dimension name="weight" xvalue="0" />
|
||||||
|
</location>
|
||||||
|
<kerning />
|
||||||
|
<info />
|
||||||
|
</instance>
|
||||||
|
<instance familyname="Test CFF2 Roman" postscriptfontname="TestCFF2Roman-Light" stylename="Light">
|
||||||
|
<location>
|
||||||
|
<dimension name="weight" xvalue="100" />
|
||||||
|
</location>
|
||||||
|
<kerning />
|
||||||
|
<info />
|
||||||
|
</instance>
|
||||||
|
<instance familyname="Test CFF2 Roman" postscriptfontname="TestCFF2Roman-Regular" stylename="Regular">
|
||||||
|
<location>
|
||||||
|
<dimension name="weight" xvalue="368" />
|
||||||
|
</location>
|
||||||
|
<kerning />
|
||||||
|
<info />
|
||||||
|
</instance>
|
||||||
|
<instance familyname="Test CFF2 Roman" postscriptfontname="TestCFF2Roman-Medium" stylename="Medium">
|
||||||
|
<location>
|
||||||
|
<dimension name="weight" xvalue="486" />
|
||||||
|
</location>
|
||||||
|
<kerning />
|
||||||
|
<info />
|
||||||
|
</instance>
|
||||||
|
<instance familyname="Test CFF2 Roman" postscriptfontname="TestCFF2Roman-Semibold" stylename="Semibold">
|
||||||
|
<location>
|
||||||
|
<dimension name="weight" xvalue="600" />
|
||||||
|
</location>
|
||||||
|
<kerning />
|
||||||
|
<info />
|
||||||
|
</instance>
|
||||||
|
<instance familyname="Test CFF2 Roman" postscriptfontname="TestCFF2Roman-Bold" stylename="Bold">
|
||||||
|
<location>
|
||||||
|
<dimension name="weight" xvalue="824" />
|
||||||
|
</location>
|
||||||
|
<kerning />
|
||||||
|
<info />
|
||||||
|
</instance>
|
||||||
|
<instance familyname="Test CFF2 Roman" postscriptfontname="TestCFF2Roman-Black" stylename="Black">
|
||||||
|
<location>
|
||||||
|
<dimension name="weight" xvalue="1000" />
|
||||||
|
</location>
|
||||||
|
<kerning />
|
||||||
|
<info />
|
||||||
|
</instance>
|
||||||
|
</instances>
|
||||||
|
</designspace>
|
510
Tests/varLib/data/master_cff2_input/TestCFF2_Black.ttx
Normal file
510
Tests/varLib/data/master_cff2_input/TestCFF2_Black.ttx
Normal file
@ -0,0 +1,510 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ttFont sfntVersion="OTTO" ttLibVersion="4.2">
|
||||||
|
|
||||||
|
<GlyphOrder>
|
||||||
|
<!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
|
||||||
|
<GlyphID id="0" name=".notdef"/>
|
||||||
|
<GlyphID id="1" name="A"/>
|
||||||
|
<GlyphID id="2" name="T"/>
|
||||||
|
<GlyphID id="3" name="dollar.a"/>
|
||||||
|
<GlyphID id="4" name="dollar"/>
|
||||||
|
</GlyphOrder>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<!-- Most of this table will be recalculated by the compiler -->
|
||||||
|
<tableVersion value="1.0"/>
|
||||||
|
<fontRevision value="1.01"/>
|
||||||
|
<checkSumAdjustment value="0x26378952"/>
|
||||||
|
<magicNumber value="0x5f0f3cf5"/>
|
||||||
|
<flags value="00000000 00000011"/>
|
||||||
|
<unitsPerEm value="1000"/>
|
||||||
|
<created value="Thu Nov 29 14:52:09 2018"/>
|
||||||
|
<modified value="Thu Nov 29 14:52:09 2018"/>
|
||||||
|
<xMin value="0"/>
|
||||||
|
<yMin value="-116"/>
|
||||||
|
<xMax value="600"/>
|
||||||
|
<yMax value="750"/>
|
||||||
|
<macStyle value="00000000 00000000"/>
|
||||||
|
<lowestRecPPEM value="3"/>
|
||||||
|
<fontDirectionHint value="2"/>
|
||||||
|
<indexToLocFormat value="0"/>
|
||||||
|
<glyphDataFormat value="0"/>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<hhea>
|
||||||
|
<tableVersion value="0x00010000"/>
|
||||||
|
<ascent value="984"/>
|
||||||
|
<descent value="-273"/>
|
||||||
|
<lineGap value="0"/>
|
||||||
|
<advanceWidthMax value="600"/>
|
||||||
|
<minLeftSideBearing value="0"/>
|
||||||
|
<minRightSideBearing value="0"/>
|
||||||
|
<xMaxExtent value="600"/>
|
||||||
|
<caretSlopeRise value="1"/>
|
||||||
|
<caretSlopeRun value="0"/>
|
||||||
|
<caretOffset value="0"/>
|
||||||
|
<reserved0 value="0"/>
|
||||||
|
<reserved1 value="0"/>
|
||||||
|
<reserved2 value="0"/>
|
||||||
|
<reserved3 value="0"/>
|
||||||
|
<metricDataFormat value="0"/>
|
||||||
|
<numberOfHMetrics value="5"/>
|
||||||
|
</hhea>
|
||||||
|
|
||||||
|
<maxp>
|
||||||
|
<tableVersion value="0x5000"/>
|
||||||
|
<numGlyphs value="5"/>
|
||||||
|
</maxp>
|
||||||
|
|
||||||
|
<OS_2>
|
||||||
|
<!-- The fields 'usFirstCharIndex' and 'usLastCharIndex'
|
||||||
|
will be recalculated by the compiler -->
|
||||||
|
<version value="3"/>
|
||||||
|
<xAvgCharWidth value="592"/>
|
||||||
|
<usWeightClass value="900"/>
|
||||||
|
<usWidthClass value="5"/>
|
||||||
|
<fsType value="00000000 00000000"/>
|
||||||
|
<ySubscriptXSize value="650"/>
|
||||||
|
<ySubscriptYSize value="600"/>
|
||||||
|
<ySubscriptXOffset value="0"/>
|
||||||
|
<ySubscriptYOffset value="75"/>
|
||||||
|
<ySuperscriptXSize value="650"/>
|
||||||
|
<ySuperscriptYSize value="600"/>
|
||||||
|
<ySuperscriptXOffset value="0"/>
|
||||||
|
<ySuperscriptYOffset value="350"/>
|
||||||
|
<yStrikeoutSize value="50"/>
|
||||||
|
<yStrikeoutPosition value="300"/>
|
||||||
|
<sFamilyClass value="0"/>
|
||||||
|
<panose>
|
||||||
|
<bFamilyType value="2"/>
|
||||||
|
<bSerifStyle value="11"/>
|
||||||
|
<bWeight value="8"/>
|
||||||
|
<bProportion value="9"/>
|
||||||
|
<bContrast value="3"/>
|
||||||
|
<bStrokeVariation value="4"/>
|
||||||
|
<bArmStyle value="3"/>
|
||||||
|
<bLetterForm value="2"/>
|
||||||
|
<bMidline value="2"/>
|
||||||
|
<bXHeight value="4"/>
|
||||||
|
</panose>
|
||||||
|
<ulUnicodeRange1 value="00000000 00000000 00000000 00000000"/>
|
||||||
|
<ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/>
|
||||||
|
<ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/>
|
||||||
|
<ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/>
|
||||||
|
<achVendID value="ADBO"/>
|
||||||
|
<fsSelection value="00000000 00000000"/>
|
||||||
|
<usFirstCharIndex value="36"/>
|
||||||
|
<usLastCharIndex value="84"/>
|
||||||
|
<sTypoAscender value="750"/>
|
||||||
|
<sTypoDescender value="-250"/>
|
||||||
|
<sTypoLineGap value="0"/>
|
||||||
|
<usWinAscent value="984"/>
|
||||||
|
<usWinDescent value="273"/>
|
||||||
|
<ulCodePageRange1 value="00000000 00000000 00000000 00000001"/>
|
||||||
|
<ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
|
||||||
|
<sxHeight value="500"/>
|
||||||
|
<sCapHeight value="660"/>
|
||||||
|
<usDefaultChar value="0"/>
|
||||||
|
<usBreakChar value="32"/>
|
||||||
|
<usMaxContext value="1"/>
|
||||||
|
</OS_2>
|
||||||
|
|
||||||
|
<name>
|
||||||
|
<namerecord nameID="1" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
|
Source Code Variable
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="2" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
|
Regular
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="3" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
|
1.010;ADBO;SourceCode_Black
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="4" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
|
Source Code Variable
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="5" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
|
Version 1.010;hotconv 1.0.109;makeotfexe 2.5.65596
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="6" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
|
SourceCode_Black
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="17" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
|
Roman Master 2
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
|
||||||
|
Source Code Variable
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
|
||||||
|
Regular
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
|
||||||
|
1.010;ADBO;SourceCode_Black
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
|
||||||
|
Source Code Variable
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="5" platformID="3" platEncID="1" langID="0x409">
|
||||||
|
Version 1.010;hotconv 1.0.109;makeotfexe 2.5.65596
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
|
||||||
|
SourceCode_Black
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="17" platformID="3" platEncID="1" langID="0x409">
|
||||||
|
Roman Master 2
|
||||||
|
</namerecord>
|
||||||
|
</name>
|
||||||
|
|
||||||
|
<cmap>
|
||||||
|
<tableVersion version="0"/>
|
||||||
|
<cmap_format_4 platformID="0" platEncID="3" language="0">
|
||||||
|
<map code="0x24" name="dollar"/><!-- DOLLAR SIGN -->
|
||||||
|
<map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
|
||||||
|
<map code="0x54" name="T"/><!-- LATIN CAPITAL LETTER T -->
|
||||||
|
</cmap_format_4>
|
||||||
|
<cmap_format_6 platformID="1" platEncID="0" language="0">
|
||||||
|
<map code="0x24" name="dollar"/>
|
||||||
|
<map code="0x41" name="A"/>
|
||||||
|
<map code="0x54" name="T"/>
|
||||||
|
</cmap_format_6>
|
||||||
|
<cmap_format_4 platformID="3" platEncID="1" language="0">
|
||||||
|
<map code="0x24" name="dollar"/><!-- DOLLAR SIGN -->
|
||||||
|
<map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
|
||||||
|
<map code="0x54" name="T"/><!-- LATIN CAPITAL LETTER T -->
|
||||||
|
</cmap_format_4>
|
||||||
|
</cmap>
|
||||||
|
|
||||||
|
<post>
|
||||||
|
<formatType value="2.0"/>
|
||||||
|
<italicAngle value="0.0"/>
|
||||||
|
<underlinePosition value="-75"/>
|
||||||
|
<underlineThickness value="50"/>
|
||||||
|
<isFixedPitch value="1"/>
|
||||||
|
<minMemType42 value="0"/>
|
||||||
|
<maxMemType42 value="0"/>
|
||||||
|
<minMemType1 value="0"/>
|
||||||
|
<maxMemType1 value="0"/>
|
||||||
|
<psNames>
|
||||||
|
<!-- This file uses unique glyph names based on the information
|
||||||
|
found in the 'post' table. Since these names might not be unique,
|
||||||
|
we have to invent artificial names in case of clashes. In order to
|
||||||
|
be able to retain the original information, we need a name to
|
||||||
|
ps name mapping for those cases where they differ. That's what
|
||||||
|
you see below.
|
||||||
|
-->
|
||||||
|
</psNames>
|
||||||
|
<extraNames>
|
||||||
|
<!-- following are the name that are not taken from the standard Mac glyph order -->
|
||||||
|
<psName name="dollar.a"/>
|
||||||
|
</extraNames>
|
||||||
|
</post>
|
||||||
|
|
||||||
|
<CFF2>
|
||||||
|
<major value="2"/>
|
||||||
|
<minor value="0"/>
|
||||||
|
<CFFFont name="CFF2Font">
|
||||||
|
<FontMatrix value="0.001 0 0 0.001 0 0"/>
|
||||||
|
<FDArray>
|
||||||
|
<FontDict index="0">
|
||||||
|
<Private>
|
||||||
|
<BlueValues value="-12 0 500 512 580 592 634 646 650 662 696 708"/>
|
||||||
|
<OtherBlues value="-188 -176"/>
|
||||||
|
<FamilyBlues value="-12 0 486 498 574 586 638 650 656 668 712 724"/>
|
||||||
|
<FamilyOtherBlues value="-217 -205"/>
|
||||||
|
<BlueScale value="0.0625"/>
|
||||||
|
<BlueShift value="7"/>
|
||||||
|
<BlueFuzz value="0"/>
|
||||||
|
<StdHW value="134"/>
|
||||||
|
<StdVW value="172"/>
|
||||||
|
</Private>
|
||||||
|
</FontDict>
|
||||||
|
</FDArray>
|
||||||
|
<CharStrings>
|
||||||
|
<CharString name=".notdef">
|
||||||
|
24 0 rmoveto
|
||||||
|
552 0 rlineto
|
||||||
|
0 660 rlineto
|
||||||
|
-552 0 rlineto
|
||||||
|
0 -660 rlineto
|
||||||
|
212 104 rmoveto
|
||||||
|
26 56 rlineto
|
||||||
|
36 96 rlineto
|
||||||
|
4 0 rlineto
|
||||||
|
36 -96 rlineto
|
||||||
|
26 -56 rlineto
|
||||||
|
-128 0 rlineto
|
||||||
|
-100 68 rmoveto
|
||||||
|
0 336 rlineto
|
||||||
|
82 -168 rlineto
|
||||||
|
-82 -168 rlineto
|
||||||
|
162 252 rmoveto
|
||||||
|
-40 96 rlineto
|
||||||
|
-18 36 rlineto
|
||||||
|
120 0 rlineto
|
||||||
|
-18 -36 rlineto
|
||||||
|
-40 -96 rlineto
|
||||||
|
-4 0 rlineto
|
||||||
|
84 -84 rmoveto
|
||||||
|
82 168 rlineto
|
||||||
|
0 -336 rlineto
|
||||||
|
-82 168 rlineto
|
||||||
|
</CharString>
|
||||||
|
<CharString name="A">
|
||||||
|
0 0 rmoveto
|
||||||
|
176 0 rlineto
|
||||||
|
73 316 rlineto
|
||||||
|
14 62 17 78 14 66 rrcurveto
|
||||||
|
4 0 rlineto
|
||||||
|
14 -66 19 -78 14 -62 rrcurveto
|
||||||
|
73 -316 rlineto
|
||||||
|
182 0 rlineto
|
||||||
|
-196 650 rlineto
|
||||||
|
-208 0 rlineto
|
||||||
|
-196 -650 rlineto
|
||||||
|
141 138 rmoveto
|
||||||
|
316 0 rlineto
|
||||||
|
0 133 rlineto
|
||||||
|
-316 0 rlineto
|
||||||
|
0 -133 rlineto
|
||||||
|
</CharString>
|
||||||
|
<CharString name="T">
|
||||||
|
214 0 rmoveto
|
||||||
|
172 0 rlineto
|
||||||
|
0 506 rlineto
|
||||||
|
187 0 rlineto
|
||||||
|
0 144 rlineto
|
||||||
|
-546 0 rlineto
|
||||||
|
0 -144 rlineto
|
||||||
|
187 0 rlineto
|
||||||
|
0 -506 rlineto
|
||||||
|
</CharString>
|
||||||
|
<CharString name="dollar">
|
||||||
|
-107 260 39 rmoveto
|
||||||
|
-65 0 -28 11 -49 24 rrcurveto
|
||||||
|
89 -53 rlineto
|
||||||
|
-15 89 rlineto
|
||||||
|
-9 52 -22 18 -43 0 rrcurveto
|
||||||
|
-26 0 -27 -14 -14 -38 rrcurveto
|
||||||
|
0 -90 71 -54 139 0 rrcurveto
|
||||||
|
163 0 99 84 0 117 rrcurveto
|
||||||
|
0 98 -58 68 -142 45 rrcurveto
|
||||||
|
-33 10 rlineto
|
||||||
|
-72 22 -24 24 0 49 rrcurveto
|
||||||
|
0 61 47 23 67 0 rrcurveto
|
||||||
|
42 0 27 -4 52 -24 rrcurveto
|
||||||
|
-85 47 rlineto
|
||||||
|
10 -67 rlineto
|
||||||
|
11 -75 37 -14 39 0 rrcurveto
|
||||||
|
26 0 29 15 5 41 rrcurveto
|
||||||
|
-8 88 -76 48 -121 0 rrcurveto
|
||||||
|
-158 0 -85 -80 0 -115 rrcurveto
|
||||||
|
0 -93 66 -69 121 -39 rrcurveto
|
||||||
|
32 -11 rlineto
|
||||||
|
80 -28 23 -19 0 -53 rrcurveto
|
||||||
|
0 -55 -43 -39 -72 0 rrcurveto
|
||||||
|
64 275 rmoveto
|
||||||
|
0 417 rlineto
|
||||||
|
-71 0 rlineto
|
||||||
|
0 -417 rlineto
|
||||||
|
71 0 rlineto
|
||||||
|
-79 -429 rmoveto
|
||||||
|
71 0 rlineto
|
||||||
|
0 429 rlineto
|
||||||
|
-71 0 rlineto
|
||||||
|
0 -429 rlineto
|
||||||
|
</CharString>
|
||||||
|
<CharString name="dollar.a">
|
||||||
|
292 34 rmoveto
|
||||||
|
163 0 83 80 0 100 rrcurveto
|
||||||
|
0 182 -302 -4 0 56 rrcurveto
|
||||||
|
0 21 18 11 36 0 rrcurveto
|
||||||
|
55 0 39 -16 52 -32 rrcurveto
|
||||||
|
84 98 rlineto
|
||||||
|
-53 52 -69 36 -97 0 rrcurveto
|
||||||
|
-141 0 -88 -68 0 -104 rrcurveto
|
||||||
|
0 -188 302 12 0 -68 rrcurveto
|
||||||
|
0 -20 -19 -10 -37 0 rrcurveto
|
||||||
|
-61 0 -55 20 -72 40 rrcurveto
|
||||||
|
-74 -116 rlineto
|
||||||
|
65 -54 101 -28 70 0 rrcurveto
|
||||||
|
-19 -150 rmoveto
|
||||||
|
160 854 rlineto
|
||||||
|
-100 12 rlineto
|
||||||
|
-160 -854 rlineto
|
||||||
|
100 -12 rlineto
|
||||||
|
</CharString>
|
||||||
|
</CharStrings>
|
||||||
|
</CFFFont>
|
||||||
|
|
||||||
|
<GlobalSubrs>
|
||||||
|
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
|
||||||
|
</GlobalSubrs>
|
||||||
|
</CFF2>
|
||||||
|
|
||||||
|
<BASE>
|
||||||
|
<Version value="0x00010000"/>
|
||||||
|
<HorizAxis>
|
||||||
|
<BaseTagList>
|
||||||
|
<!-- BaseTagCount=2 -->
|
||||||
|
<BaselineTag index="0" value="ideo"/>
|
||||||
|
<BaselineTag index="1" value="romn"/>
|
||||||
|
</BaseTagList>
|
||||||
|
<BaseScriptList>
|
||||||
|
<!-- BaseScriptCount=4 -->
|
||||||
|
<BaseScriptRecord index="0">
|
||||||
|
<BaseScriptTag value="DFLT"/>
|
||||||
|
<BaseScript>
|
||||||
|
<BaseValues>
|
||||||
|
<DefaultIndex value="1"/>
|
||||||
|
<!-- BaseCoordCount=2 -->
|
||||||
|
<BaseCoord index="0" Format="1">
|
||||||
|
<Coordinate value="-170"/>
|
||||||
|
</BaseCoord>
|
||||||
|
<BaseCoord index="1" Format="1">
|
||||||
|
<Coordinate value="0"/>
|
||||||
|
</BaseCoord>
|
||||||
|
</BaseValues>
|
||||||
|
<!-- BaseLangSysCount=0 -->
|
||||||
|
</BaseScript>
|
||||||
|
</BaseScriptRecord>
|
||||||
|
<BaseScriptRecord index="1">
|
||||||
|
<BaseScriptTag value="cyrl"/>
|
||||||
|
<BaseScript>
|
||||||
|
<BaseValues>
|
||||||
|
<DefaultIndex value="1"/>
|
||||||
|
<!-- BaseCoordCount=2 -->
|
||||||
|
<BaseCoord index="0" Format="1">
|
||||||
|
<Coordinate value="-170"/>
|
||||||
|
</BaseCoord>
|
||||||
|
<BaseCoord index="1" Format="1">
|
||||||
|
<Coordinate value="0"/>
|
||||||
|
</BaseCoord>
|
||||||
|
</BaseValues>
|
||||||
|
<!-- BaseLangSysCount=0 -->
|
||||||
|
</BaseScript>
|
||||||
|
</BaseScriptRecord>
|
||||||
|
<BaseScriptRecord index="2">
|
||||||
|
<BaseScriptTag value="grek"/>
|
||||||
|
<BaseScript>
|
||||||
|
<BaseValues>
|
||||||
|
<DefaultIndex value="1"/>
|
||||||
|
<!-- BaseCoordCount=2 -->
|
||||||
|
<BaseCoord index="0" Format="1">
|
||||||
|
<Coordinate value="-170"/>
|
||||||
|
</BaseCoord>
|
||||||
|
<BaseCoord index="1" Format="1">
|
||||||
|
<Coordinate value="0"/>
|
||||||
|
</BaseCoord>
|
||||||
|
</BaseValues>
|
||||||
|
<!-- BaseLangSysCount=0 -->
|
||||||
|
</BaseScript>
|
||||||
|
</BaseScriptRecord>
|
||||||
|
<BaseScriptRecord index="3">
|
||||||
|
<BaseScriptTag value="latn"/>
|
||||||
|
<BaseScript>
|
||||||
|
<BaseValues>
|
||||||
|
<DefaultIndex value="1"/>
|
||||||
|
<!-- BaseCoordCount=2 -->
|
||||||
|
<BaseCoord index="0" Format="1">
|
||||||
|
<Coordinate value="-170"/>
|
||||||
|
</BaseCoord>
|
||||||
|
<BaseCoord index="1" Format="1">
|
||||||
|
<Coordinate value="0"/>
|
||||||
|
</BaseCoord>
|
||||||
|
</BaseValues>
|
||||||
|
<!-- BaseLangSysCount=0 -->
|
||||||
|
</BaseScript>
|
||||||
|
</BaseScriptRecord>
|
||||||
|
</BaseScriptList>
|
||||||
|
</HorizAxis>
|
||||||
|
</BASE>
|
||||||
|
|
||||||
|
<GPOS>
|
||||||
|
<Version value="0x00010000"/>
|
||||||
|
<ScriptList>
|
||||||
|
<!-- ScriptCount=1 -->
|
||||||
|
<ScriptRecord index="0">
|
||||||
|
<ScriptTag value="DFLT"/>
|
||||||
|
<Script>
|
||||||
|
<DefaultLangSys>
|
||||||
|
<ReqFeatureIndex value="65535"/>
|
||||||
|
<!-- FeatureCount=1 -->
|
||||||
|
<FeatureIndex index="0" value="0"/>
|
||||||
|
</DefaultLangSys>
|
||||||
|
<!-- LangSysCount=0 -->
|
||||||
|
</Script>
|
||||||
|
</ScriptRecord>
|
||||||
|
</ScriptList>
|
||||||
|
<FeatureList>
|
||||||
|
<!-- FeatureCount=1 -->
|
||||||
|
<FeatureRecord index="0">
|
||||||
|
<FeatureTag value="size"/>
|
||||||
|
<Feature>
|
||||||
|
<FeatureParamsSize>
|
||||||
|
<DesignSize value="10.0"/>
|
||||||
|
<SubfamilyID value="0"/>
|
||||||
|
<SubfamilyNameID value="0"/>
|
||||||
|
<RangeStart value="0.0"/>
|
||||||
|
<RangeEnd value="0.0"/>
|
||||||
|
</FeatureParamsSize>
|
||||||
|
<!-- LookupCount=0 -->
|
||||||
|
</Feature>
|
||||||
|
</FeatureRecord>
|
||||||
|
</FeatureList>
|
||||||
|
<LookupList>
|
||||||
|
<!-- LookupCount=0 -->
|
||||||
|
</LookupList>
|
||||||
|
</GPOS>
|
||||||
|
|
||||||
|
<GSUB>
|
||||||
|
<Version value="0x00010000"/>
|
||||||
|
<ScriptList>
|
||||||
|
<!-- ScriptCount=1 -->
|
||||||
|
<ScriptRecord index="0">
|
||||||
|
<ScriptTag value="DFLT"/>
|
||||||
|
<Script>
|
||||||
|
<DefaultLangSys>
|
||||||
|
<ReqFeatureIndex value="65535"/>
|
||||||
|
<!-- FeatureCount=1 -->
|
||||||
|
<FeatureIndex index="0" value="0"/>
|
||||||
|
</DefaultLangSys>
|
||||||
|
<!-- LangSysCount=0 -->
|
||||||
|
</Script>
|
||||||
|
</ScriptRecord>
|
||||||
|
</ScriptList>
|
||||||
|
<FeatureList>
|
||||||
|
<!-- FeatureCount=1 -->
|
||||||
|
<FeatureRecord index="0">
|
||||||
|
<FeatureTag value="test"/>
|
||||||
|
<Feature>
|
||||||
|
<!-- LookupCount=1 -->
|
||||||
|
<LookupListIndex index="0" value="0"/>
|
||||||
|
</Feature>
|
||||||
|
</FeatureRecord>
|
||||||
|
</FeatureList>
|
||||||
|
<LookupList>
|
||||||
|
<!-- LookupCount=1 -->
|
||||||
|
<Lookup index="0">
|
||||||
|
<LookupType value="1"/>
|
||||||
|
<LookupFlag value="0"/>
|
||||||
|
<!-- SubTableCount=1 -->
|
||||||
|
<SingleSubst index="0" Format="1">
|
||||||
|
<Substitution in="dollar" out="dollar.a"/>
|
||||||
|
</SingleSubst>
|
||||||
|
</Lookup>
|
||||||
|
</LookupList>
|
||||||
|
</GSUB>
|
||||||
|
|
||||||
|
<hmtx>
|
||||||
|
<mtx name=".notdef" width="600" lsb="24"/>
|
||||||
|
<mtx name="A" width="600" lsb="0"/>
|
||||||
|
<mtx name="T" width="600" lsb="27"/>
|
||||||
|
<mtx name="dollar" width="560" lsb="51"/>
|
||||||
|
<mtx name="dollar.a" width="600" lsb="56"/>
|
||||||
|
</hmtx>
|
||||||
|
|
||||||
|
<DSIG>
|
||||||
|
<!-- note that the Digital Signature will be invalid after recompilation! -->
|
||||||
|
<tableHeader flag="0x0" numSigs="0" version="1"/>
|
||||||
|
</DSIG>
|
||||||
|
|
||||||
|
</ttFont>
|
510
Tests/varLib/data/master_cff2_input/TestCFF2_ExtraLight.ttx
Normal file
510
Tests/varLib/data/master_cff2_input/TestCFF2_ExtraLight.ttx
Normal file
@ -0,0 +1,510 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ttFont sfntVersion="OTTO" ttLibVersion="4.2">
|
||||||
|
|
||||||
|
<GlyphOrder>
|
||||||
|
<!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
|
||||||
|
<GlyphID id="0" name=".notdef"/>
|
||||||
|
<GlyphID id="1" name="A"/>
|
||||||
|
<GlyphID id="2" name="T"/>
|
||||||
|
<GlyphID id="3" name="dollar.a"/>
|
||||||
|
<GlyphID id="4" name="dollar"/>
|
||||||
|
</GlyphOrder>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<!-- Most of this table will be recalculated by the compiler -->
|
||||||
|
<tableVersion value="1.0"/>
|
||||||
|
<fontRevision value="1.01"/>
|
||||||
|
<checkSumAdjustment value="0xeb345d38"/>
|
||||||
|
<magicNumber value="0x5f0f3cf5"/>
|
||||||
|
<flags value="00000000 00000011"/>
|
||||||
|
<unitsPerEm value="1000"/>
|
||||||
|
<created value="Thu Nov 29 14:52:09 2018"/>
|
||||||
|
<modified value="Thu Nov 29 14:52:09 2018"/>
|
||||||
|
<xMin value="50"/>
|
||||||
|
<yMin value="-115"/>
|
||||||
|
<xMax value="550"/>
|
||||||
|
<yMax value="762"/>
|
||||||
|
<macStyle value="00000000 00000000"/>
|
||||||
|
<lowestRecPPEM value="3"/>
|
||||||
|
<fontDirectionHint value="2"/>
|
||||||
|
<indexToLocFormat value="0"/>
|
||||||
|
<glyphDataFormat value="0"/>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<hhea>
|
||||||
|
<tableVersion value="0x00010000"/>
|
||||||
|
<ascent value="984"/>
|
||||||
|
<descent value="-273"/>
|
||||||
|
<lineGap value="0"/>
|
||||||
|
<advanceWidthMax value="600"/>
|
||||||
|
<minLeftSideBearing value="50"/>
|
||||||
|
<minRightSideBearing value="50"/>
|
||||||
|
<xMaxExtent value="550"/>
|
||||||
|
<caretSlopeRise value="1"/>
|
||||||
|
<caretSlopeRun value="0"/>
|
||||||
|
<caretOffset value="0"/>
|
||||||
|
<reserved0 value="0"/>
|
||||||
|
<reserved1 value="0"/>
|
||||||
|
<reserved2 value="0"/>
|
||||||
|
<reserved3 value="0"/>
|
||||||
|
<metricDataFormat value="0"/>
|
||||||
|
<numberOfHMetrics value="5"/>
|
||||||
|
</hhea>
|
||||||
|
|
||||||
|
<maxp>
|
||||||
|
<tableVersion value="0x5000"/>
|
||||||
|
<numGlyphs value="5"/>
|
||||||
|
</maxp>
|
||||||
|
|
||||||
|
<OS_2>
|
||||||
|
<!-- The fields 'usFirstCharIndex' and 'usLastCharIndex'
|
||||||
|
will be recalculated by the compiler -->
|
||||||
|
<version value="3"/>
|
||||||
|
<xAvgCharWidth value="578"/>
|
||||||
|
<usWeightClass value="200"/>
|
||||||
|
<usWidthClass value="5"/>
|
||||||
|
<fsType value="00000000 00000000"/>
|
||||||
|
<ySubscriptXSize value="650"/>
|
||||||
|
<ySubscriptYSize value="600"/>
|
||||||
|
<ySubscriptXOffset value="0"/>
|
||||||
|
<ySubscriptYOffset value="75"/>
|
||||||
|
<ySuperscriptXSize value="650"/>
|
||||||
|
<ySuperscriptYSize value="600"/>
|
||||||
|
<ySuperscriptXOffset value="0"/>
|
||||||
|
<ySuperscriptYOffset value="350"/>
|
||||||
|
<yStrikeoutSize value="50"/>
|
||||||
|
<yStrikeoutPosition value="286"/>
|
||||||
|
<sFamilyClass value="0"/>
|
||||||
|
<panose>
|
||||||
|
<bFamilyType value="2"/>
|
||||||
|
<bSerifStyle value="11"/>
|
||||||
|
<bWeight value="3"/>
|
||||||
|
<bProportion value="9"/>
|
||||||
|
<bContrast value="3"/>
|
||||||
|
<bStrokeVariation value="4"/>
|
||||||
|
<bArmStyle value="3"/>
|
||||||
|
<bLetterForm value="2"/>
|
||||||
|
<bMidline value="2"/>
|
||||||
|
<bXHeight value="4"/>
|
||||||
|
</panose>
|
||||||
|
<ulUnicodeRange1 value="00000000 00000000 00000000 00000000"/>
|
||||||
|
<ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/>
|
||||||
|
<ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/>
|
||||||
|
<ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/>
|
||||||
|
<achVendID value="ADBO"/>
|
||||||
|
<fsSelection value="00000000 00000000"/>
|
||||||
|
<usFirstCharIndex value="36"/>
|
||||||
|
<usLastCharIndex value="84"/>
|
||||||
|
<sTypoAscender value="750"/>
|
||||||
|
<sTypoDescender value="-250"/>
|
||||||
|
<sTypoLineGap value="0"/>
|
||||||
|
<usWinAscent value="984"/>
|
||||||
|
<usWinDescent value="273"/>
|
||||||
|
<ulCodePageRange1 value="00000000 00000000 00000000 00000001"/>
|
||||||
|
<ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
|
||||||
|
<sxHeight value="478"/>
|
||||||
|
<sCapHeight value="660"/>
|
||||||
|
<usDefaultChar value="0"/>
|
||||||
|
<usBreakChar value="32"/>
|
||||||
|
<usMaxContext value="1"/>
|
||||||
|
</OS_2>
|
||||||
|
|
||||||
|
<name>
|
||||||
|
<namerecord nameID="1" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
|
Source Code Variable
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="2" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
|
Regular
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="3" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
|
1.010;ADBO;SourceCode_ExtraLight
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="4" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
|
Source Code Variable
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="5" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
|
Version 1.010;hotconv 1.0.109;makeotfexe 2.5.65596
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="6" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
|
SourceCode_ExtraLight
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="17" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
|
Roman Master 0
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
|
||||||
|
Source Code Variable
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
|
||||||
|
Regular
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
|
||||||
|
1.010;ADBO;SourceCode_ExtraLight
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
|
||||||
|
Source Code Variable
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="5" platformID="3" platEncID="1" langID="0x409">
|
||||||
|
Version 1.010;hotconv 1.0.109;makeotfexe 2.5.65596
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
|
||||||
|
SourceCode_ExtraLight
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="17" platformID="3" platEncID="1" langID="0x409">
|
||||||
|
Roman Master 0
|
||||||
|
</namerecord>
|
||||||
|
</name>
|
||||||
|
|
||||||
|
<cmap>
|
||||||
|
<tableVersion version="0"/>
|
||||||
|
<cmap_format_4 platformID="0" platEncID="3" language="0">
|
||||||
|
<map code="0x24" name="dollar"/><!-- DOLLAR SIGN -->
|
||||||
|
<map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
|
||||||
|
<map code="0x54" name="T"/><!-- LATIN CAPITAL LETTER T -->
|
||||||
|
</cmap_format_4>
|
||||||
|
<cmap_format_6 platformID="1" platEncID="0" language="0">
|
||||||
|
<map code="0x24" name="dollar"/>
|
||||||
|
<map code="0x41" name="A"/>
|
||||||
|
<map code="0x54" name="T"/>
|
||||||
|
</cmap_format_6>
|
||||||
|
<cmap_format_4 platformID="3" platEncID="1" language="0">
|
||||||
|
<map code="0x24" name="dollar"/><!-- DOLLAR SIGN -->
|
||||||
|
<map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
|
||||||
|
<map code="0x54" name="T"/><!-- LATIN CAPITAL LETTER T -->
|
||||||
|
</cmap_format_4>
|
||||||
|
</cmap>
|
||||||
|
|
||||||
|
<post>
|
||||||
|
<formatType value="2.0"/>
|
||||||
|
<italicAngle value="0.0"/>
|
||||||
|
<underlinePosition value="-75"/>
|
||||||
|
<underlineThickness value="50"/>
|
||||||
|
<isFixedPitch value="1"/>
|
||||||
|
<minMemType42 value="0"/>
|
||||||
|
<maxMemType42 value="0"/>
|
||||||
|
<minMemType1 value="0"/>
|
||||||
|
<maxMemType1 value="0"/>
|
||||||
|
<psNames>
|
||||||
|
<!-- This file uses unique glyph names based on the information
|
||||||
|
found in the 'post' table. Since these names might not be unique,
|
||||||
|
we have to invent artificial names in case of clashes. In order to
|
||||||
|
be able to retain the original information, we need a name to
|
||||||
|
ps name mapping for those cases where they differ. That's what
|
||||||
|
you see below.
|
||||||
|
-->
|
||||||
|
</psNames>
|
||||||
|
<extraNames>
|
||||||
|
<!-- following are the name that are not taken from the standard Mac glyph order -->
|
||||||
|
<psName name="dollar.a"/>
|
||||||
|
</extraNames>
|
||||||
|
</post>
|
||||||
|
|
||||||
|
<CFF2>
|
||||||
|
<major value="2"/>
|
||||||
|
<minor value="0"/>
|
||||||
|
<CFFFont name="CFF2Font">
|
||||||
|
<FontMatrix value="0.001 0 0 0.001 0 0"/>
|
||||||
|
<FDArray>
|
||||||
|
<FontDict index="0">
|
||||||
|
<Private>
|
||||||
|
<BlueValues value="-12 0 478 490 570 582 640 652 660 672 722 734"/>
|
||||||
|
<OtherBlues value="-234 -222"/>
|
||||||
|
<FamilyBlues value="-12 0 486 498 574 586 638 650 656 668 712 724"/>
|
||||||
|
<FamilyOtherBlues value="-217 -205"/>
|
||||||
|
<BlueScale value="0.0625"/>
|
||||||
|
<BlueShift value="7"/>
|
||||||
|
<BlueFuzz value="0"/>
|
||||||
|
<StdHW value="28"/>
|
||||||
|
<StdVW value="34"/>
|
||||||
|
</Private>
|
||||||
|
</FontDict>
|
||||||
|
</FDArray>
|
||||||
|
<CharStrings>
|
||||||
|
<CharString name=".notdef">
|
||||||
|
84 0 rmoveto
|
||||||
|
432 0 rlineto
|
||||||
|
0 660 rlineto
|
||||||
|
-432 0 rlineto
|
||||||
|
0 -660 rlineto
|
||||||
|
48 32 rmoveto
|
||||||
|
102 176 rlineto
|
||||||
|
64 106 rlineto
|
||||||
|
4 0 rlineto
|
||||||
|
62 -106 rlineto
|
||||||
|
100 -176 rlineto
|
||||||
|
-332 0 rlineto
|
||||||
|
-10 42 rmoveto
|
||||||
|
0 536 rlineto
|
||||||
|
154 -270 rlineto
|
||||||
|
-154 -266 rlineto
|
||||||
|
176 292 rmoveto
|
||||||
|
-56 92 rlineto
|
||||||
|
-94 168 rlineto
|
||||||
|
302 0 rlineto
|
||||||
|
-94 -168 rlineto
|
||||||
|
-54 -92 rlineto
|
||||||
|
-4 0 rlineto
|
||||||
|
26 -26 rmoveto
|
||||||
|
152 270 rlineto
|
||||||
|
0 -536 rlineto
|
||||||
|
-152 266 rlineto
|
||||||
|
</CharString>
|
||||||
|
<CharString name="A">
|
||||||
|
50 0 rmoveto
|
||||||
|
32 0 rlineto
|
||||||
|
140 396 rlineto
|
||||||
|
28 80 24 68 24 82 rrcurveto
|
||||||
|
4 0 rlineto
|
||||||
|
24 -82 24 -68 28 -80 rrcurveto
|
||||||
|
138 -396 rlineto
|
||||||
|
34 0 rlineto
|
||||||
|
-236 660 rlineto
|
||||||
|
-28 0 rlineto
|
||||||
|
-236 -660 rlineto
|
||||||
|
102 236 rmoveto
|
||||||
|
293 0 rlineto
|
||||||
|
0 28 rlineto
|
||||||
|
-293 0 rlineto
|
||||||
|
0 -28 rlineto
|
||||||
|
</CharString>
|
||||||
|
<CharString name="T">
|
||||||
|
284 0 rmoveto
|
||||||
|
32 0 rlineto
|
||||||
|
0 632 rlineto
|
||||||
|
234 0 rlineto
|
||||||
|
0 28 rlineto
|
||||||
|
-500 0 rlineto
|
||||||
|
0 -28 rlineto
|
||||||
|
234 0 rlineto
|
||||||
|
0 -632 rlineto
|
||||||
|
</CharString>
|
||||||
|
<CharString name="dollar">
|
||||||
|
-107 245 7 rmoveto
|
||||||
|
-65 0 -39 15 -46 50 rrcurveto
|
||||||
|
36 -48 rlineto
|
||||||
|
-28 100 rlineto
|
||||||
|
-4 16 -12 4 -11 0 rrcurveto
|
||||||
|
-14 0 -8 -7 -1 -14 rrcurveto
|
||||||
|
24 -85 61 -51 107 0 rrcurveto
|
||||||
|
91 0 90 53 0 111 rrcurveto
|
||||||
|
0 70 -26 66 -134 57 rrcurveto
|
||||||
|
-19 8 rlineto
|
||||||
|
-93 39 -42 49 0 68 rrcurveto
|
||||||
|
0 91 60 48 88 0 rrcurveto
|
||||||
|
56 0 35 -14 44 -50 rrcurveto
|
||||||
|
-38 47 rlineto
|
||||||
|
28 -100 rlineto
|
||||||
|
6 -15 10 -5 11 0 rrcurveto
|
||||||
|
14 0 8 7 1 14 rrcurveto
|
||||||
|
-24 88 -67 48 -84 0 rrcurveto
|
||||||
|
-92 0 -82 -51 0 -108 rrcurveto
|
||||||
|
0 -80 45 -53 92 -42 rrcurveto
|
||||||
|
37 -17 rlineto
|
||||||
|
114 -52 26 -46 0 -65 rrcurveto
|
||||||
|
0 -92 -65 -54 -90 0 rrcurveto
|
||||||
|
18 327 rmoveto
|
||||||
|
0 428 rlineto
|
||||||
|
-22 0 rlineto
|
||||||
|
0 -428 rlineto
|
||||||
|
22 0 rlineto
|
||||||
|
-22 -449 rmoveto
|
||||||
|
22 0 rlineto
|
||||||
|
0 449 rlineto
|
||||||
|
-22 0 rlineto
|
||||||
|
0 -449 rlineto
|
||||||
|
</CharString>
|
||||||
|
<CharString name="dollar.a">
|
||||||
|
311 34 rmoveto
|
||||||
|
103 0 88 56 0 94 rrcurveto
|
||||||
|
0 184 -338 -32 0 142 rrcurveto
|
||||||
|
0 68 57 44 85 0 rrcurveto
|
||||||
|
76 0 34 -24 44 -38 rrcurveto
|
||||||
|
20 20 rlineto
|
||||||
|
-41 38 -45 32 -85 0 rrcurveto
|
||||||
|
-99 0 -78 -54 0 -88 rrcurveto
|
||||||
|
0 -166 338 28 0 -156 rrcurveto
|
||||||
|
0 -70 -56 -50 -103 0 rrcurveto
|
||||||
|
-85 0 -66 38 -40 34 rrcurveto
|
||||||
|
-18 -22 rlineto
|
||||||
|
45 -38 73 -40 91 0 rrcurveto
|
||||||
|
-70 -146 rmoveto
|
||||||
|
158 860 rlineto
|
||||||
|
-30 4 rlineto
|
||||||
|
-158 -860 rlineto
|
||||||
|
30 -4 rlineto
|
||||||
|
</CharString>
|
||||||
|
</CharStrings>
|
||||||
|
</CFFFont>
|
||||||
|
|
||||||
|
<GlobalSubrs>
|
||||||
|
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
|
||||||
|
</GlobalSubrs>
|
||||||
|
</CFF2>
|
||||||
|
|
||||||
|
<BASE>
|
||||||
|
<Version value="0x00010000"/>
|
||||||
|
<HorizAxis>
|
||||||
|
<BaseTagList>
|
||||||
|
<!-- BaseTagCount=2 -->
|
||||||
|
<BaselineTag index="0" value="ideo"/>
|
||||||
|
<BaselineTag index="1" value="romn"/>
|
||||||
|
</BaseTagList>
|
||||||
|
<BaseScriptList>
|
||||||
|
<!-- BaseScriptCount=4 -->
|
||||||
|
<BaseScriptRecord index="0">
|
||||||
|
<BaseScriptTag value="DFLT"/>
|
||||||
|
<BaseScript>
|
||||||
|
<BaseValues>
|
||||||
|
<DefaultIndex value="1"/>
|
||||||
|
<!-- BaseCoordCount=2 -->
|
||||||
|
<BaseCoord index="0" Format="1">
|
||||||
|
<Coordinate value="-170"/>
|
||||||
|
</BaseCoord>
|
||||||
|
<BaseCoord index="1" Format="1">
|
||||||
|
<Coordinate value="0"/>
|
||||||
|
</BaseCoord>
|
||||||
|
</BaseValues>
|
||||||
|
<!-- BaseLangSysCount=0 -->
|
||||||
|
</BaseScript>
|
||||||
|
</BaseScriptRecord>
|
||||||
|
<BaseScriptRecord index="1">
|
||||||
|
<BaseScriptTag value="cyrl"/>
|
||||||
|
<BaseScript>
|
||||||
|
<BaseValues>
|
||||||
|
<DefaultIndex value="1"/>
|
||||||
|
<!-- BaseCoordCount=2 -->
|
||||||
|
<BaseCoord index="0" Format="1">
|
||||||
|
<Coordinate value="-170"/>
|
||||||
|
</BaseCoord>
|
||||||
|
<BaseCoord index="1" Format="1">
|
||||||
|
<Coordinate value="0"/>
|
||||||
|
</BaseCoord>
|
||||||
|
</BaseValues>
|
||||||
|
<!-- BaseLangSysCount=0 -->
|
||||||
|
</BaseScript>
|
||||||
|
</BaseScriptRecord>
|
||||||
|
<BaseScriptRecord index="2">
|
||||||
|
<BaseScriptTag value="grek"/>
|
||||||
|
<BaseScript>
|
||||||
|
<BaseValues>
|
||||||
|
<DefaultIndex value="1"/>
|
||||||
|
<!-- BaseCoordCount=2 -->
|
||||||
|
<BaseCoord index="0" Format="1">
|
||||||
|
<Coordinate value="-170"/>
|
||||||
|
</BaseCoord>
|
||||||
|
<BaseCoord index="1" Format="1">
|
||||||
|
<Coordinate value="0"/>
|
||||||
|
</BaseCoord>
|
||||||
|
</BaseValues>
|
||||||
|
<!-- BaseLangSysCount=0 -->
|
||||||
|
</BaseScript>
|
||||||
|
</BaseScriptRecord>
|
||||||
|
<BaseScriptRecord index="3">
|
||||||
|
<BaseScriptTag value="latn"/>
|
||||||
|
<BaseScript>
|
||||||
|
<BaseValues>
|
||||||
|
<DefaultIndex value="1"/>
|
||||||
|
<!-- BaseCoordCount=2 -->
|
||||||
|
<BaseCoord index="0" Format="1">
|
||||||
|
<Coordinate value="-170"/>
|
||||||
|
</BaseCoord>
|
||||||
|
<BaseCoord index="1" Format="1">
|
||||||
|
<Coordinate value="0"/>
|
||||||
|
</BaseCoord>
|
||||||
|
</BaseValues>
|
||||||
|
<!-- BaseLangSysCount=0 -->
|
||||||
|
</BaseScript>
|
||||||
|
</BaseScriptRecord>
|
||||||
|
</BaseScriptList>
|
||||||
|
</HorizAxis>
|
||||||
|
</BASE>
|
||||||
|
|
||||||
|
<GPOS>
|
||||||
|
<Version value="0x00010000"/>
|
||||||
|
<ScriptList>
|
||||||
|
<!-- ScriptCount=1 -->
|
||||||
|
<ScriptRecord index="0">
|
||||||
|
<ScriptTag value="DFLT"/>
|
||||||
|
<Script>
|
||||||
|
<DefaultLangSys>
|
||||||
|
<ReqFeatureIndex value="65535"/>
|
||||||
|
<!-- FeatureCount=1 -->
|
||||||
|
<FeatureIndex index="0" value="0"/>
|
||||||
|
</DefaultLangSys>
|
||||||
|
<!-- LangSysCount=0 -->
|
||||||
|
</Script>
|
||||||
|
</ScriptRecord>
|
||||||
|
</ScriptList>
|
||||||
|
<FeatureList>
|
||||||
|
<!-- FeatureCount=1 -->
|
||||||
|
<FeatureRecord index="0">
|
||||||
|
<FeatureTag value="size"/>
|
||||||
|
<Feature>
|
||||||
|
<FeatureParamsSize>
|
||||||
|
<DesignSize value="10.0"/>
|
||||||
|
<SubfamilyID value="0"/>
|
||||||
|
<SubfamilyNameID value="0"/>
|
||||||
|
<RangeStart value="0.0"/>
|
||||||
|
<RangeEnd value="0.0"/>
|
||||||
|
</FeatureParamsSize>
|
||||||
|
<!-- LookupCount=0 -->
|
||||||
|
</Feature>
|
||||||
|
</FeatureRecord>
|
||||||
|
</FeatureList>
|
||||||
|
<LookupList>
|
||||||
|
<!-- LookupCount=0 -->
|
||||||
|
</LookupList>
|
||||||
|
</GPOS>
|
||||||
|
|
||||||
|
<GSUB>
|
||||||
|
<Version value="0x00010000"/>
|
||||||
|
<ScriptList>
|
||||||
|
<!-- ScriptCount=1 -->
|
||||||
|
<ScriptRecord index="0">
|
||||||
|
<ScriptTag value="DFLT"/>
|
||||||
|
<Script>
|
||||||
|
<DefaultLangSys>
|
||||||
|
<ReqFeatureIndex value="65535"/>
|
||||||
|
<!-- FeatureCount=1 -->
|
||||||
|
<FeatureIndex index="0" value="0"/>
|
||||||
|
</DefaultLangSys>
|
||||||
|
<!-- LangSysCount=0 -->
|
||||||
|
</Script>
|
||||||
|
</ScriptRecord>
|
||||||
|
</ScriptList>
|
||||||
|
<FeatureList>
|
||||||
|
<!-- FeatureCount=1 -->
|
||||||
|
<FeatureRecord index="0">
|
||||||
|
<FeatureTag value="test"/>
|
||||||
|
<Feature>
|
||||||
|
<!-- LookupCount=1 -->
|
||||||
|
<LookupListIndex index="0" value="0"/>
|
||||||
|
</Feature>
|
||||||
|
</FeatureRecord>
|
||||||
|
</FeatureList>
|
||||||
|
<LookupList>
|
||||||
|
<!-- LookupCount=1 -->
|
||||||
|
<Lookup index="0">
|
||||||
|
<LookupType value="1"/>
|
||||||
|
<LookupFlag value="0"/>
|
||||||
|
<!-- SubTableCount=1 -->
|
||||||
|
<SingleSubst index="0" Format="1">
|
||||||
|
<Substitution in="dollar" out="dollar.a"/>
|
||||||
|
</SingleSubst>
|
||||||
|
</Lookup>
|
||||||
|
</LookupList>
|
||||||
|
</GSUB>
|
||||||
|
|
||||||
|
<hmtx>
|
||||||
|
<mtx name=".notdef" width="600" lsb="84"/>
|
||||||
|
<mtx name="A" width="600" lsb="50"/>
|
||||||
|
<mtx name="T" width="600" lsb="50"/>
|
||||||
|
<mtx name="dollar" width="490" lsb="53"/>
|
||||||
|
<mtx name="dollar.a" width="600" lsb="102"/>
|
||||||
|
</hmtx>
|
||||||
|
|
||||||
|
<DSIG>
|
||||||
|
<!-- note that the Digital Signature will be invalid after recompilation! -->
|
||||||
|
<tableHeader flag="0x0" numSigs="0" version="1"/>
|
||||||
|
</DSIG>
|
||||||
|
|
||||||
|
</ttFont>
|
508
Tests/varLib/data/master_cff2_input/TestCFF2_Regular.ttx
Normal file
508
Tests/varLib/data/master_cff2_input/TestCFF2_Regular.ttx
Normal file
@ -0,0 +1,508 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ttFont sfntVersion="OTTO" ttLibVersion="4.2">
|
||||||
|
|
||||||
|
<GlyphOrder>
|
||||||
|
<!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
|
||||||
|
<GlyphID id="0" name=".notdef"/>
|
||||||
|
<GlyphID id="1" name="A"/>
|
||||||
|
<GlyphID id="2" name="T"/>
|
||||||
|
<GlyphID id="3" name="dollar.a"/>
|
||||||
|
<GlyphID id="4" name="dollar"/>
|
||||||
|
</GlyphOrder>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<!-- Most of this table will be recalculated by the compiler -->
|
||||||
|
<tableVersion value="1.0"/>
|
||||||
|
<fontRevision value="1.01"/>
|
||||||
|
<checkSumAdjustment value="0x60d07155"/>
|
||||||
|
<magicNumber value="0x5f0f3cf5"/>
|
||||||
|
<flags value="00000000 00000011"/>
|
||||||
|
<unitsPerEm value="1000"/>
|
||||||
|
<created value="Thu Nov 29 14:52:09 2018"/>
|
||||||
|
<modified value="Thu Nov 29 14:52:09 2018"/>
|
||||||
|
<xMin value="31"/>
|
||||||
|
<yMin value="-115"/>
|
||||||
|
<xMax value="569"/>
|
||||||
|
<yMax value="751"/>
|
||||||
|
<macStyle value="00000000 00000000"/>
|
||||||
|
<lowestRecPPEM value="3"/>
|
||||||
|
<fontDirectionHint value="2"/>
|
||||||
|
<indexToLocFormat value="0"/>
|
||||||
|
<glyphDataFormat value="0"/>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<hhea>
|
||||||
|
<tableVersion value="0x00010000"/>
|
||||||
|
<ascent value="984"/>
|
||||||
|
<descent value="-273"/>
|
||||||
|
<lineGap value="0"/>
|
||||||
|
<advanceWidthMax value="600"/>
|
||||||
|
<minLeftSideBearing value="31"/>
|
||||||
|
<minRightSideBearing value="31"/>
|
||||||
|
<xMaxExtent value="569"/>
|
||||||
|
<caretSlopeRise value="1"/>
|
||||||
|
<caretSlopeRun value="0"/>
|
||||||
|
<caretOffset value="0"/>
|
||||||
|
<reserved0 value="0"/>
|
||||||
|
<reserved1 value="0"/>
|
||||||
|
<reserved2 value="0"/>
|
||||||
|
<reserved3 value="0"/>
|
||||||
|
<metricDataFormat value="0"/>
|
||||||
|
<numberOfHMetrics value="5"/>
|
||||||
|
</hhea>
|
||||||
|
|
||||||
|
<maxp>
|
||||||
|
<tableVersion value="0x5000"/>
|
||||||
|
<numGlyphs value="5"/>
|
||||||
|
</maxp>
|
||||||
|
|
||||||
|
<OS_2>
|
||||||
|
<!-- The fields 'usFirstCharIndex' and 'usLastCharIndex'
|
||||||
|
will be recalculated by the compiler -->
|
||||||
|
<version value="3"/>
|
||||||
|
<xAvgCharWidth value="579"/>
|
||||||
|
<usWeightClass value="400"/>
|
||||||
|
<usWidthClass value="5"/>
|
||||||
|
<fsType value="00000000 00000000"/>
|
||||||
|
<ySubscriptXSize value="650"/>
|
||||||
|
<ySubscriptYSize value="600"/>
|
||||||
|
<ySubscriptXOffset value="0"/>
|
||||||
|
<ySubscriptYOffset value="75"/>
|
||||||
|
<ySuperscriptXSize value="650"/>
|
||||||
|
<ySuperscriptYSize value="600"/>
|
||||||
|
<ySuperscriptXOffset value="0"/>
|
||||||
|
<ySuperscriptYOffset value="350"/>
|
||||||
|
<yStrikeoutSize value="50"/>
|
||||||
|
<yStrikeoutPosition value="291"/>
|
||||||
|
<sFamilyClass value="0"/>
|
||||||
|
<panose>
|
||||||
|
<bFamilyType value="2"/>
|
||||||
|
<bSerifStyle value="11"/>
|
||||||
|
<bWeight value="5"/>
|
||||||
|
<bProportion value="9"/>
|
||||||
|
<bContrast value="3"/>
|
||||||
|
<bStrokeVariation value="4"/>
|
||||||
|
<bArmStyle value="3"/>
|
||||||
|
<bLetterForm value="2"/>
|
||||||
|
<bMidline value="2"/>
|
||||||
|
<bXHeight value="4"/>
|
||||||
|
</panose>
|
||||||
|
<ulUnicodeRange1 value="00000000 00000000 00000000 00000000"/>
|
||||||
|
<ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/>
|
||||||
|
<ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/>
|
||||||
|
<ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/>
|
||||||
|
<achVendID value="ADBO"/>
|
||||||
|
<fsSelection value="00000000 01000000"/>
|
||||||
|
<usFirstCharIndex value="36"/>
|
||||||
|
<usLastCharIndex value="84"/>
|
||||||
|
<sTypoAscender value="750"/>
|
||||||
|
<sTypoDescender value="-250"/>
|
||||||
|
<sTypoLineGap value="0"/>
|
||||||
|
<usWinAscent value="984"/>
|
||||||
|
<usWinDescent value="273"/>
|
||||||
|
<ulCodePageRange1 value="00000000 00000000 00000000 00000001"/>
|
||||||
|
<ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
|
||||||
|
<sxHeight value="486"/>
|
||||||
|
<sCapHeight value="660"/>
|
||||||
|
<usDefaultChar value="0"/>
|
||||||
|
<usBreakChar value="32"/>
|
||||||
|
<usMaxContext value="1"/>
|
||||||
|
</OS_2>
|
||||||
|
|
||||||
|
<name>
|
||||||
|
<namerecord nameID="1" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
|
Source Code Variable
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="2" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
|
Regular
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="3" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
|
1.010;ADBO;SourceCodeVariable-Roman
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="4" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
|
Source Code Variable
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="5" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
|
Version 1.010;hotconv 1.0.109;makeotfexe 2.5.65596
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="6" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
|
SourceCodeVariable-Roman
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="17" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
|
Roman
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
|
||||||
|
Source Code Variable
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
|
||||||
|
Regular
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
|
||||||
|
1.010;ADBO;SourceCodeVariable-Roman
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
|
||||||
|
Source Code Variable
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="5" platformID="3" platEncID="1" langID="0x409">
|
||||||
|
Version 1.010;hotconv 1.0.109;makeotfexe 2.5.65596
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
|
||||||
|
SourceCodeVariable-Roman
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="17" platformID="3" platEncID="1" langID="0x409">
|
||||||
|
Roman
|
||||||
|
</namerecord>
|
||||||
|
</name>
|
||||||
|
|
||||||
|
<cmap>
|
||||||
|
<tableVersion version="0"/>
|
||||||
|
<cmap_format_4 platformID="0" platEncID="3" language="0">
|
||||||
|
<map code="0x24" name="dollar"/><!-- DOLLAR SIGN -->
|
||||||
|
<map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
|
||||||
|
<map code="0x54" name="T"/><!-- LATIN CAPITAL LETTER T -->
|
||||||
|
</cmap_format_4>
|
||||||
|
<cmap_format_6 platformID="1" platEncID="0" language="0">
|
||||||
|
<map code="0x24" name="dollar"/>
|
||||||
|
<map code="0x41" name="A"/>
|
||||||
|
<map code="0x54" name="T"/>
|
||||||
|
</cmap_format_6>
|
||||||
|
<cmap_format_4 platformID="3" platEncID="1" language="0">
|
||||||
|
<map code="0x24" name="dollar"/><!-- DOLLAR SIGN -->
|
||||||
|
<map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
|
||||||
|
<map code="0x54" name="T"/><!-- LATIN CAPITAL LETTER T -->
|
||||||
|
</cmap_format_4>
|
||||||
|
</cmap>
|
||||||
|
|
||||||
|
<post>
|
||||||
|
<formatType value="2.0"/>
|
||||||
|
<italicAngle value="0.0"/>
|
||||||
|
<underlinePosition value="-75"/>
|
||||||
|
<underlineThickness value="50"/>
|
||||||
|
<isFixedPitch value="1"/>
|
||||||
|
<minMemType42 value="0"/>
|
||||||
|
<maxMemType42 value="0"/>
|
||||||
|
<minMemType1 value="0"/>
|
||||||
|
<maxMemType1 value="0"/>
|
||||||
|
<psNames>
|
||||||
|
<!-- This file uses unique glyph names based on the information
|
||||||
|
found in the 'post' table. Since these names might not be unique,
|
||||||
|
we have to invent artificial names in case of clashes. In order to
|
||||||
|
be able to retain the original information, we need a name to
|
||||||
|
ps name mapping for those cases where they differ. That's what
|
||||||
|
you see below.
|
||||||
|
-->
|
||||||
|
</psNames>
|
||||||
|
<extraNames>
|
||||||
|
<!-- following are the name that are not taken from the standard Mac glyph order -->
|
||||||
|
<psName name="dollar.a"/>
|
||||||
|
</extraNames>
|
||||||
|
</post>
|
||||||
|
|
||||||
|
<CFF2>
|
||||||
|
<major value="2"/>
|
||||||
|
<minor value="0"/>
|
||||||
|
<CFFFont name="CFF2Font">
|
||||||
|
<FontMatrix value="0.001 0 0 0.001 0 0"/>
|
||||||
|
<FDArray>
|
||||||
|
<FontDict index="0">
|
||||||
|
<Private>
|
||||||
|
<BlueValues value="-12 0 486 498 574 586 638 650 656 668 712 724"/>
|
||||||
|
<OtherBlues value="-217 -205"/>
|
||||||
|
<BlueScale value="0.0625"/>
|
||||||
|
<BlueShift value="7"/>
|
||||||
|
<BlueFuzz value="0"/>
|
||||||
|
<StdHW value="67"/>
|
||||||
|
<StdVW value="85"/>
|
||||||
|
</Private>
|
||||||
|
</FontDict>
|
||||||
|
</FDArray>
|
||||||
|
<CharStrings>
|
||||||
|
<CharString name=".notdef">
|
||||||
|
62 0 rmoveto
|
||||||
|
476 0 rlineto
|
||||||
|
0 660 rlineto
|
||||||
|
-476 0 rlineto
|
||||||
|
0 -660 rlineto
|
||||||
|
109 59 rmoveto
|
||||||
|
73 131 rlineto
|
||||||
|
54 102 rlineto
|
||||||
|
4 0 rlineto
|
||||||
|
52 -102 rlineto
|
||||||
|
73 -131 rlineto
|
||||||
|
-256 0 rlineto
|
||||||
|
-44 52 rmoveto
|
||||||
|
0 461 rlineto
|
||||||
|
127 -232 rlineto
|
||||||
|
-127 -229 rlineto
|
||||||
|
171 277 rmoveto
|
||||||
|
-50 93 rlineto
|
||||||
|
-66 119 rlineto
|
||||||
|
234 0 rlineto
|
||||||
|
-65 -119 rlineto
|
||||||
|
-49 -93 rlineto
|
||||||
|
-4 0 rlineto
|
||||||
|
48 -48 rmoveto
|
||||||
|
126 232 rlineto
|
||||||
|
0 -461 rlineto
|
||||||
|
-126 229 rlineto
|
||||||
|
</CharString>
|
||||||
|
<CharString name="A">
|
||||||
|
31 0 rmoveto
|
||||||
|
86 0 rlineto
|
||||||
|
115 366 rlineto
|
||||||
|
23 73 21 72 21 76 rrcurveto
|
||||||
|
4 0 rlineto
|
||||||
|
20 -76 22 -72 23 -73 rrcurveto
|
||||||
|
113 -366 rlineto
|
||||||
|
90 0 rlineto
|
||||||
|
-221 656 rlineto
|
||||||
|
-96 0 rlineto
|
||||||
|
-221 -656 rlineto
|
||||||
|
117 199 rmoveto
|
||||||
|
301 0 rlineto
|
||||||
|
0 68 rlineto
|
||||||
|
-301 0 rlineto
|
||||||
|
0 -68 rlineto
|
||||||
|
</CharString>
|
||||||
|
<CharString name="T">
|
||||||
|
258 0 rmoveto
|
||||||
|
84 0 rlineto
|
||||||
|
0 585 rlineto
|
||||||
|
217 0 rlineto
|
||||||
|
0 71 rlineto
|
||||||
|
-518 0 rlineto
|
||||||
|
0 -71 rlineto
|
||||||
|
217 0 rlineto
|
||||||
|
0 -585 rlineto
|
||||||
|
</CharString>
|
||||||
|
<CharString name="dollar">
|
||||||
|
-107 248 35 rmoveto
|
||||||
|
-39 0 -45 5 -46 18 rrcurveto
|
||||||
|
53 -36 rlineto
|
||||||
|
-17 76 rlineto
|
||||||
|
-12 53 -22 13 -24 0 rrcurveto
|
||||||
|
-22 0 -14 -11 -9 -20 rrcurveto
|
||||||
|
4 -87 81 -59 107 0 rrcurveto
|
||||||
|
136 0 82 76 0 107 rrcurveto
|
||||||
|
0 82 -41 65 -135 47 rrcurveto
|
||||||
|
-38 13 rlineto
|
||||||
|
-71 23 -40 35 0 64 rrcurveto
|
||||||
|
0 75 57 37 74 0 rrcurveto
|
||||||
|
30 0 36 -5 42 -17 rrcurveto
|
||||||
|
-52 36 rlineto
|
||||||
|
17 -76 rlineto
|
||||||
|
12 -52 25 -14 22 0 rrcurveto
|
||||||
|
19 0 17 10 8 21 rrcurveto
|
||||||
|
-6 86 -80 60 -101 0 rrcurveto
|
||||||
|
-115 0 -83 -80 0 -102 rrcurveto
|
||||||
|
0 -100 62 -54 105 -37 rrcurveto
|
||||||
|
37 -13 rlineto
|
||||||
|
85 -30 36 -30 0 -63 rrcurveto
|
||||||
|
0 -74 -53 -42 -82 0 rrcurveto
|
||||||
|
31 287 rmoveto
|
||||||
|
0 428 rlineto
|
||||||
|
-40 0 rlineto
|
||||||
|
0 -428 rlineto
|
||||||
|
40 0 rlineto
|
||||||
|
-41 -437 rmoveto
|
||||||
|
40 0 rlineto
|
||||||
|
0 437 rlineto
|
||||||
|
-40 0 rlineto
|
||||||
|
0 -437 rlineto
|
||||||
|
</CharString>
|
||||||
|
<CharString name="dollar.a">
|
||||||
|
304 34 rmoveto
|
||||||
|
125 0 86 65 0 96 rrcurveto
|
||||||
|
0 183 -324 -21 0 110 rrcurveto
|
||||||
|
0 50 42 32 67 0 rrcurveto
|
||||||
|
68 0 36 -21 47 -36 rrcurveto
|
||||||
|
44 49 rlineto
|
||||||
|
-46 44 -54 33 -89 0 rrcurveto
|
||||||
|
-115 0 -81 -59 0 -94 rrcurveto
|
||||||
|
0 -174 324 22 0 -124 rrcurveto
|
||||||
|
0 -51 -42 -35 -78 0 rrcurveto
|
||||||
|
-76 0 -62 31 -52 37 rrcurveto
|
||||||
|
-39 -58 rlineto
|
||||||
|
52 -43 84 -36 83 0 rrcurveto
|
||||||
|
-51 -147 rmoveto
|
||||||
|
159 857 rlineto
|
||||||
|
-56 7 rlineto
|
||||||
|
-159 -858 rlineto
|
||||||
|
56 -6 rlineto
|
||||||
|
</CharString>
|
||||||
|
</CharStrings>
|
||||||
|
</CFFFont>
|
||||||
|
|
||||||
|
<GlobalSubrs>
|
||||||
|
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
|
||||||
|
</GlobalSubrs>
|
||||||
|
</CFF2>
|
||||||
|
|
||||||
|
<BASE>
|
||||||
|
<Version value="0x00010000"/>
|
||||||
|
<HorizAxis>
|
||||||
|
<BaseTagList>
|
||||||
|
<!-- BaseTagCount=2 -->
|
||||||
|
<BaselineTag index="0" value="ideo"/>
|
||||||
|
<BaselineTag index="1" value="romn"/>
|
||||||
|
</BaseTagList>
|
||||||
|
<BaseScriptList>
|
||||||
|
<!-- BaseScriptCount=4 -->
|
||||||
|
<BaseScriptRecord index="0">
|
||||||
|
<BaseScriptTag value="DFLT"/>
|
||||||
|
<BaseScript>
|
||||||
|
<BaseValues>
|
||||||
|
<DefaultIndex value="1"/>
|
||||||
|
<!-- BaseCoordCount=2 -->
|
||||||
|
<BaseCoord index="0" Format="1">
|
||||||
|
<Coordinate value="-170"/>
|
||||||
|
</BaseCoord>
|
||||||
|
<BaseCoord index="1" Format="1">
|
||||||
|
<Coordinate value="0"/>
|
||||||
|
</BaseCoord>
|
||||||
|
</BaseValues>
|
||||||
|
<!-- BaseLangSysCount=0 -->
|
||||||
|
</BaseScript>
|
||||||
|
</BaseScriptRecord>
|
||||||
|
<BaseScriptRecord index="1">
|
||||||
|
<BaseScriptTag value="cyrl"/>
|
||||||
|
<BaseScript>
|
||||||
|
<BaseValues>
|
||||||
|
<DefaultIndex value="1"/>
|
||||||
|
<!-- BaseCoordCount=2 -->
|
||||||
|
<BaseCoord index="0" Format="1">
|
||||||
|
<Coordinate value="-170"/>
|
||||||
|
</BaseCoord>
|
||||||
|
<BaseCoord index="1" Format="1">
|
||||||
|
<Coordinate value="0"/>
|
||||||
|
</BaseCoord>
|
||||||
|
</BaseValues>
|
||||||
|
<!-- BaseLangSysCount=0 -->
|
||||||
|
</BaseScript>
|
||||||
|
</BaseScriptRecord>
|
||||||
|
<BaseScriptRecord index="2">
|
||||||
|
<BaseScriptTag value="grek"/>
|
||||||
|
<BaseScript>
|
||||||
|
<BaseValues>
|
||||||
|
<DefaultIndex value="1"/>
|
||||||
|
<!-- BaseCoordCount=2 -->
|
||||||
|
<BaseCoord index="0" Format="1">
|
||||||
|
<Coordinate value="-170"/>
|
||||||
|
</BaseCoord>
|
||||||
|
<BaseCoord index="1" Format="1">
|
||||||
|
<Coordinate value="0"/>
|
||||||
|
</BaseCoord>
|
||||||
|
</BaseValues>
|
||||||
|
<!-- BaseLangSysCount=0 -->
|
||||||
|
</BaseScript>
|
||||||
|
</BaseScriptRecord>
|
||||||
|
<BaseScriptRecord index="3">
|
||||||
|
<BaseScriptTag value="latn"/>
|
||||||
|
<BaseScript>
|
||||||
|
<BaseValues>
|
||||||
|
<DefaultIndex value="1"/>
|
||||||
|
<!-- BaseCoordCount=2 -->
|
||||||
|
<BaseCoord index="0" Format="1">
|
||||||
|
<Coordinate value="-170"/>
|
||||||
|
</BaseCoord>
|
||||||
|
<BaseCoord index="1" Format="1">
|
||||||
|
<Coordinate value="0"/>
|
||||||
|
</BaseCoord>
|
||||||
|
</BaseValues>
|
||||||
|
<!-- BaseLangSysCount=0 -->
|
||||||
|
</BaseScript>
|
||||||
|
</BaseScriptRecord>
|
||||||
|
</BaseScriptList>
|
||||||
|
</HorizAxis>
|
||||||
|
</BASE>
|
||||||
|
|
||||||
|
<GPOS>
|
||||||
|
<Version value="0x00010000"/>
|
||||||
|
<ScriptList>
|
||||||
|
<!-- ScriptCount=1 -->
|
||||||
|
<ScriptRecord index="0">
|
||||||
|
<ScriptTag value="DFLT"/>
|
||||||
|
<Script>
|
||||||
|
<DefaultLangSys>
|
||||||
|
<ReqFeatureIndex value="65535"/>
|
||||||
|
<!-- FeatureCount=1 -->
|
||||||
|
<FeatureIndex index="0" value="0"/>
|
||||||
|
</DefaultLangSys>
|
||||||
|
<!-- LangSysCount=0 -->
|
||||||
|
</Script>
|
||||||
|
</ScriptRecord>
|
||||||
|
</ScriptList>
|
||||||
|
<FeatureList>
|
||||||
|
<!-- FeatureCount=1 -->
|
||||||
|
<FeatureRecord index="0">
|
||||||
|
<FeatureTag value="size"/>
|
||||||
|
<Feature>
|
||||||
|
<FeatureParamsSize>
|
||||||
|
<DesignSize value="10.0"/>
|
||||||
|
<SubfamilyID value="0"/>
|
||||||
|
<SubfamilyNameID value="0"/>
|
||||||
|
<RangeStart value="0.0"/>
|
||||||
|
<RangeEnd value="0.0"/>
|
||||||
|
</FeatureParamsSize>
|
||||||
|
<!-- LookupCount=0 -->
|
||||||
|
</Feature>
|
||||||
|
</FeatureRecord>
|
||||||
|
</FeatureList>
|
||||||
|
<LookupList>
|
||||||
|
<!-- LookupCount=0 -->
|
||||||
|
</LookupList>
|
||||||
|
</GPOS>
|
||||||
|
|
||||||
|
<GSUB>
|
||||||
|
<Version value="0x00010000"/>
|
||||||
|
<ScriptList>
|
||||||
|
<!-- ScriptCount=1 -->
|
||||||
|
<ScriptRecord index="0">
|
||||||
|
<ScriptTag value="DFLT"/>
|
||||||
|
<Script>
|
||||||
|
<DefaultLangSys>
|
||||||
|
<ReqFeatureIndex value="65535"/>
|
||||||
|
<!-- FeatureCount=1 -->
|
||||||
|
<FeatureIndex index="0" value="0"/>
|
||||||
|
</DefaultLangSys>
|
||||||
|
<!-- LangSysCount=0 -->
|
||||||
|
</Script>
|
||||||
|
</ScriptRecord>
|
||||||
|
</ScriptList>
|
||||||
|
<FeatureList>
|
||||||
|
<!-- FeatureCount=1 -->
|
||||||
|
<FeatureRecord index="0">
|
||||||
|
<FeatureTag value="test"/>
|
||||||
|
<Feature>
|
||||||
|
<!-- LookupCount=1 -->
|
||||||
|
<LookupListIndex index="0" value="0"/>
|
||||||
|
</Feature>
|
||||||
|
</FeatureRecord>
|
||||||
|
</FeatureList>
|
||||||
|
<LookupList>
|
||||||
|
<!-- LookupCount=1 -->
|
||||||
|
<Lookup index="0">
|
||||||
|
<LookupType value="1"/>
|
||||||
|
<LookupFlag value="0"/>
|
||||||
|
<!-- SubTableCount=1 -->
|
||||||
|
<SingleSubst index="0" Format="1">
|
||||||
|
<Substitution in="dollar" out="dollar.a"/>
|
||||||
|
</SingleSubst>
|
||||||
|
</Lookup>
|
||||||
|
</LookupList>
|
||||||
|
</GSUB>
|
||||||
|
|
||||||
|
<hmtx>
|
||||||
|
<mtx name=".notdef" width="600" lsb="62"/>
|
||||||
|
<mtx name="A" width="600" lsb="31"/>
|
||||||
|
<mtx name="T" width="600" lsb="41"/>
|
||||||
|
<mtx name="dollar" width="497" lsb="51"/>
|
||||||
|
<mtx name="dollar.a" width="600" lsb="85"/>
|
||||||
|
</hmtx>
|
||||||
|
|
||||||
|
<DSIG>
|
||||||
|
<!-- note that the Digital Signature will be invalid after recompilation! -->
|
||||||
|
<tableHeader flag="0x0" numSigs="0" version="1"/>
|
||||||
|
</DSIG>
|
||||||
|
|
||||||
|
</ttFont>
|
@ -317,6 +317,28 @@ class BuildTest(unittest.TestCase):
|
|||||||
tables = ["fvar", "CFF2"]
|
tables = ["fvar", "CFF2"]
|
||||||
self.expect_ttx(varfont, expected_ttx_path, tables)
|
self.expect_ttx(varfont, expected_ttx_path, tables)
|
||||||
|
|
||||||
|
def test_varlib_build_CFF2_from_CFF2(self):
|
||||||
|
ds_path = self.get_test_input('TestCFF2Input.designspace')
|
||||||
|
ttx_dir = self.get_test_input("master_cff2_input")
|
||||||
|
expected_ttx_path = self.get_test_output("BuildTestCFF2.ttx")
|
||||||
|
|
||||||
|
self.temp_dir()
|
||||||
|
for path in self.get_file_list(ttx_dir, '.ttx', 'TestCFF2_'):
|
||||||
|
self.compile_font(path, ".otf", self.tempdir)
|
||||||
|
|
||||||
|
ds = DesignSpaceDocument.fromfile(ds_path)
|
||||||
|
for source in ds.sources:
|
||||||
|
source.path = os.path.join(
|
||||||
|
self.tempdir, os.path.basename(source.filename).replace(".ufo", ".otf")
|
||||||
|
)
|
||||||
|
ds.updatePaths()
|
||||||
|
|
||||||
|
varfont, _, _ = build(ds)
|
||||||
|
varfont = reload_font(varfont)
|
||||||
|
|
||||||
|
tables = ["fvar", "CFF2"]
|
||||||
|
self.expect_ttx(varfont, expected_ttx_path, tables)
|
||||||
|
|
||||||
def test_varlib_build_sparse_CFF2(self):
|
def test_varlib_build_sparse_CFF2(self):
|
||||||
ds_path = self.get_test_input('TestSparseCFF2VF.designspace')
|
ds_path = self.get_test_input('TestSparseCFF2VF.designspace')
|
||||||
ttx_dir = self.get_test_input("master_sparse_cff2")
|
ttx_dir = self.get_test_input("master_sparse_cff2")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user