[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):
|
||||
from .cff import (convertCFFtoCFF2, merge_region_fonts)
|
||||
from .cff import merge_region_fonts
|
||||
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)
|
||||
# re-ordering the master list simplifies building the CFF2 data item lists.
|
||||
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)
|
||||
if 'GSUB' not in exclude and ds.rules:
|
||||
_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)
|
||||
if "post" in vf:
|
||||
# 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
|
||||
|
||||
|
||||
def _cff_or_cff2(font):
|
||||
if "CFF " in font:
|
||||
return font["CFF "]
|
||||
return font["CFF2"]
|
||||
|
||||
|
||||
def getfd_map(varFont, fonts_list):
|
||||
""" Since a subset source font may have fewer FontDicts in their
|
||||
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]
|
||||
region_fonts = fonts_list[1:]
|
||||
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'):
|
||||
# All glyphs reference only one FontDict.
|
||||
# Map the FD index for regions to index 0.
|
||||
@ -294,7 +300,7 @@ def getfd_map(varFont, fonts_list):
|
||||
fd_map[fdIndex] = {}
|
||||
for ri, region_font in enumerate(region_fonts):
|
||||
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'):
|
||||
# All the glyphs share the same FontDict. Pick any glyph.
|
||||
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):
|
||||
topDict = varFont['CFF2'].cff.topDictIndex[0]
|
||||
top_dicts = [topDict] + [
|
||||
ttFont['CFF '].cff.topDictIndex[0]
|
||||
_cff_or_cff2(ttFont).cff.topDictIndex[0]
|
||||
for ttFont in ordered_fonts_list[1:]
|
||||
]
|
||||
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"]
|
||||
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):
|
||||
ds_path = self.get_test_input('TestSparseCFF2VF.designspace')
|
||||
ttx_dir = self.get_test_input("master_sparse_cff2")
|
||||
|
Loading…
x
Reference in New Issue
Block a user