[subset] First unit tests and test data
This commit is contained in:
parent
51bd7e00b5
commit
270b155d45
99
Lib/fontTools/subset/subset_test.py
Normal file
99
Lib/fontTools/subset/subset_test.py
Normal file
@ -0,0 +1,99 @@
|
||||
from __future__ import print_function, division, absolute_import
|
||||
from fontTools.misc.py23 import *
|
||||
from fontTools import subset
|
||||
from fontTools.ttLib import TTFont
|
||||
import codecs
|
||||
import difflib
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
import tempfile
|
||||
import unittest
|
||||
|
||||
|
||||
class SubsetTest(unittest.TestCase):
|
||||
def __init__(self, methodName):
|
||||
unittest.TestCase.__init__(self, methodName)
|
||||
# Python 3 renamed assertRaisesRegexp to assertRaisesRegex,
|
||||
# and fires deprecation warnings if a program uses the old name.
|
||||
if not hasattr(self, "assertRaisesRegex"):
|
||||
self.assertRaisesRegex = self.assertRaisesRegexp
|
||||
|
||||
def setUp(self):
|
||||
self.tempdir = None
|
||||
self.num_tempfiles = 0
|
||||
|
||||
def tearDown(self):
|
||||
if self.tempdir:
|
||||
shutil.rmtree(self.tempdir)
|
||||
|
||||
@staticmethod
|
||||
def getpath(testfile):
|
||||
path, _ = os.path.split(__file__)
|
||||
return os.path.join(path, "testdata", testfile)
|
||||
|
||||
def temp_path(self, suffix):
|
||||
if not self.tempdir:
|
||||
self.tempdir = tempfile.mkdtemp()
|
||||
self.num_tempfiles += 1
|
||||
return os.path.join(self.tempdir,
|
||||
"tmp%d%s" % (self.num_tempfiles, suffix))
|
||||
|
||||
def read_ttx(self, path):
|
||||
lines = []
|
||||
with codecs.open(path, "r", "utf-8") as ttx:
|
||||
for line in ttx.readlines():
|
||||
# Elide ttFont attributes because ttLibVersion may change,
|
||||
# and use os-native line separators so we can run difflib.
|
||||
if line.startswith("<ttFont "):
|
||||
lines.append("<ttFont>" + os.linesep)
|
||||
else:
|
||||
lines.append(line.rstrip() + os.linesep)
|
||||
return lines
|
||||
|
||||
def expect_ttx(self, font, expected_ttx, tables):
|
||||
path = self.temp_path(suffix=".ttx")
|
||||
font.saveXML(path, quiet=True, tables=tables)
|
||||
actual = self.read_ttx(path)
|
||||
expected = self.read_ttx(expected_ttx)
|
||||
if actual != expected:
|
||||
for line in difflib.unified_diff(
|
||||
expected, actual, fromfile=path, tofile=expected_ttx):
|
||||
sys.stdout.write(line)
|
||||
self.fail("TTX output is different from expected")
|
||||
|
||||
def compile_font(self, path, suffix):
|
||||
savepath = self.temp_path(suffix=suffix)
|
||||
font = TTFont(recalcBBoxes=False, recalcTimestamp=False)
|
||||
font.importXML(path, quiet=True)
|
||||
font.save(savepath, reorderTables=None)
|
||||
return font, savepath
|
||||
|
||||
# -----
|
||||
# Tests
|
||||
# -----
|
||||
|
||||
def test_no_notdef_outline_otf(self):
|
||||
_, fontpath = self.compile_font(self.getpath("TestOTF-Regular.ttx"), ".otf")
|
||||
subsetpath = self.temp_path(".otf")
|
||||
subset.main([fontpath, "--no-notdef-outline", "--gids=0", "--output-file=%s" % subsetpath])
|
||||
subsetfont = TTFont(subsetpath)
|
||||
self.expect_ttx(subsetfont, self.getpath("expect_no_notdef_outline_otf.ttx"), ["CFF "])
|
||||
|
||||
def test_no_notdef_outline_cid(self):
|
||||
_, fontpath = self.compile_font(self.getpath("TestCID-Regular.ttx"), ".otf")
|
||||
subsetpath = self.temp_path(".otf")
|
||||
subset.main([fontpath, "--no-notdef-outline", "--gids=0", "--output-file=%s" % subsetpath])
|
||||
subsetfont = TTFont(subsetpath)
|
||||
self.expect_ttx(subsetfont, self.getpath("expect_no_notdef_outline_cid.ttx"), ["CFF "])
|
||||
|
||||
def test_no_notdef_outline_ttf(self):
|
||||
_, fontpath = self.compile_font(self.getpath("TestTTF-Regular.ttx"), ".ttf")
|
||||
subsetpath = self.temp_path(".ttf")
|
||||
subset.main([fontpath, "--no-notdef-outline", "--gids=0", "--output-file=%s" % subsetpath])
|
||||
subsetfont = TTFont(subsetpath)
|
||||
self.expect_ttx(subsetfont, self.getpath("expect_no_notdef_outline_ttf.ttx"), ["glyf", "hmtx"])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
389
Lib/fontTools/subset/testdata/TestCID-Regular.ttx
vendored
Normal file
389
Lib/fontTools/subset/testdata/TestCID-Regular.ttx
vendored
Normal file
@ -0,0 +1,389 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ttFont sfntVersion="OTTO" ttLibVersion="2.5">
|
||||
|
||||
<GlyphOrder>
|
||||
<!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
|
||||
<GlyphID id="0" name=".notdef"/>
|
||||
<GlyphID id="1" name="cid00001"/>
|
||||
<GlyphID id="2" name="cid00002"/>
|
||||
<GlyphID id="3" name="cid00003"/>
|
||||
</GlyphOrder>
|
||||
|
||||
<head>
|
||||
<!-- Most of this table will be recalculated by the compiler -->
|
||||
<tableVersion value="1.0"/>
|
||||
<fontRevision value="1.000"/>
|
||||
<checkSumAdjustment value="0xbad6461a"/>
|
||||
<magicNumber value="0x5f0f3cf5"/>
|
||||
<flags value="00000000 00000011"/>
|
||||
<unitsPerEm value="1000"/>
|
||||
<created value="Mon Jun 15 05:17:40 2015"/>
|
||||
<modified value="Mon Jun 15 05:17:40 2015"/>
|
||||
<xMin value="-1000"/>
|
||||
<yMin value="-1048"/>
|
||||
<xMax value="2928"/>
|
||||
<yMax value="1808"/>
|
||||
<macStyle value="00000000 00000000"/>
|
||||
<lowestRecPPEM value="3"/>
|
||||
<fontDirectionHint value="2"/>
|
||||
<indexToLocFormat value="0"/>
|
||||
<glyphDataFormat value="0"/>
|
||||
</head>
|
||||
|
||||
<hhea>
|
||||
<tableVersion value="1.0"/>
|
||||
<ascent value="1000"/>
|
||||
<descent value="-320"/>
|
||||
<lineGap value="0"/>
|
||||
<advanceWidthMax value="1000"/>
|
||||
<minLeftSideBearing value="-1000"/>
|
||||
<minRightSideBearing value="-181"/>
|
||||
<xMaxExtent value="2928"/>
|
||||
<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="4"/>
|
||||
</hhea>
|
||||
|
||||
<maxp>
|
||||
<tableVersion value="0x5000"/>
|
||||
<numGlyphs value="4"/>
|
||||
</maxp>
|
||||
|
||||
<OS_2>
|
||||
<version value="3"/>
|
||||
<xAvgCharWidth value="979"/>
|
||||
<usWeightClass value="350"/>
|
||||
<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="325"/>
|
||||
<sFamilyClass value="0"/>
|
||||
<panose>
|
||||
<bFamilyType value="2"/>
|
||||
<bSerifStyle value="11"/>
|
||||
<bWeight value="4"/>
|
||||
<bProportion value="0"/>
|
||||
<bContrast value="0"/>
|
||||
<bStrokeVariation value="0"/>
|
||||
<bArmStyle value="0"/>
|
||||
<bLetterForm value="0"/>
|
||||
<bMidline value="0"/>
|
||||
<bXHeight value="0"/>
|
||||
</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="UKWN"/>
|
||||
<fsSelection value="00000000 00000000"/>
|
||||
<fsFirstCharIndex value="0"/>
|
||||
<fsLastCharIndex value="65535"/>
|
||||
<sTypoAscender value="880"/>
|
||||
<sTypoDescender value="-120"/>
|
||||
<sTypoLineGap value="0"/>
|
||||
<usWinAscent value="1160"/>
|
||||
<usWinDescent value="320"/>
|
||||
<ulCodePageRange1 value="00000000 00000000 00000000 00000001"/>
|
||||
<ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
|
||||
<sxHeight value="543"/>
|
||||
<sCapHeight value="733"/>
|
||||
<usDefaultChar value="0"/>
|
||||
<usBreakChar value="32"/>
|
||||
<usMaxContex value="6"/>
|
||||
</OS_2>
|
||||
|
||||
<name>
|
||||
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
|
||||
Test CID
|
||||
</namerecord>
|
||||
<namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
|
||||
Regular
|
||||
</namerecord>
|
||||
</name>
|
||||
|
||||
<cmap>
|
||||
<tableVersion version="0"/>
|
||||
<cmap_format_4 platformID="0" platEncID="3" language="0">
|
||||
<map code="0x20" name="cid00001"/><!-- SPACE -->
|
||||
<map code="0x21" name="cid00002"/><!-- EXCLAMATION MARK -->
|
||||
<map code="0x22" name="cid00003"/><!-- QUOTATION MARK -->
|
||||
<map code="0xa0" name="cid00001"/><!-- NO-BREAK SPACE -->
|
||||
</cmap_format_4>
|
||||
<cmap_format_12 platformID="0" platEncID="4" format="12" reserved="0" length="424" language="0" nGroups="34">
|
||||
<map code="0x20" name="cid00001"/><!-- SPACE -->
|
||||
<map code="0x21" name="cid00002"/><!-- EXCLAMATION MARK -->
|
||||
<map code="0x22" name="cid00003"/><!-- QUOTATION MARK -->
|
||||
<map code="0xa0" name="cid00001"/><!-- NO-BREAK SPACE -->
|
||||
</cmap_format_12>
|
||||
<cmap_format_4 platformID="3" platEncID="1" language="0">
|
||||
<map code="0x20" name="cid00001"/><!-- SPACE -->
|
||||
<map code="0x21" name="cid00002"/><!-- EXCLAMATION MARK -->
|
||||
<map code="0x22" name="cid00003"/><!-- QUOTATION MARK -->
|
||||
<map code="0xa0" name="cid00001"/><!-- NO-BREAK SPACE -->
|
||||
</cmap_format_4>
|
||||
<cmap_format_12 platformID="3" platEncID="10" format="12" reserved="0" length="424" language="0" nGroups="34">
|
||||
<map code="0x20" name="cid00001"/><!-- SPACE -->
|
||||
<map code="0x21" name="cid00002"/><!-- EXCLAMATION MARK -->
|
||||
<map code="0x22" name="cid00003"/><!-- QUOTATION MARK -->
|
||||
<map code="0xa0" name="cid00001"/><!-- NO-BREAK SPACE -->
|
||||
</cmap_format_12>
|
||||
</cmap>
|
||||
|
||||
<post>
|
||||
<formatType value="3.0"/>
|
||||
<italicAngle value="0.0"/>
|
||||
<underlinePosition value="-125"/>
|
||||
<underlineThickness value="50"/>
|
||||
<isFixedPitch value="0"/>
|
||||
<minMemType42 value="0"/>
|
||||
<maxMemType42 value="0"/>
|
||||
<minMemType1 value="0"/>
|
||||
<maxMemType1 value="0"/>
|
||||
</post>
|
||||
|
||||
<CFF>
|
||||
<CFFFont name="TestCID-Regular">
|
||||
<ROS Registry="Adobe" Order="Identity" Supplement="0"/>
|
||||
<FullName value="Test CID Regular"/>
|
||||
<FamilyName value="Test CID"/>
|
||||
<Weight value="Regular"/>
|
||||
<isFixedPitch value="0"/>
|
||||
<ItalicAngle value="0"/>
|
||||
<UnderlinePosition value="-150"/>
|
||||
<UnderlineThickness value="50"/>
|
||||
<PaintType value="0"/>
|
||||
<CharstringType value="2"/>
|
||||
<FontMatrix value="0.001 0 0 0.001 0 0"/>
|
||||
<FontBBox value="-1000 -1000 1000 1000"/>
|
||||
<StrokeWidth value="0"/>
|
||||
<CIDFontVersion value="1.000"/>
|
||||
<CIDFontRevision value="0"/>
|
||||
<CIDFontType value="0"/>
|
||||
<CIDCount value="4"/>
|
||||
<!-- charset is dumped separately as the 'GlyphOrder' element -->
|
||||
<FDSelect format="3"/>
|
||||
<FDArray>
|
||||
<FontDict index="0">
|
||||
<FontName value="TestCID-Regular-One"/>
|
||||
<isFixedPitch value="0"/>
|
||||
<ItalicAngle value="0"/>
|
||||
<UnderlineThickness value="50"/>
|
||||
<PaintType value="0"/>
|
||||
<CharstringType value="2"/>
|
||||
<FontMatrix value="0.001 0 0 0.001 0 0"/>
|
||||
<FontBBox value="0 0 0 0"/>
|
||||
<StrokeWidth value="0"/>
|
||||
<Encoding name="StandardEncoding"/>
|
||||
<Private>
|
||||
<BlueValues value="-250 -250 1100 1100"/>
|
||||
<BlueScale value="0.039625"/>
|
||||
<BlueShift value="7"/>
|
||||
<BlueFuzz value="1"/>
|
||||
<StdHW value="40"/>
|
||||
<StdVW value="40"/>
|
||||
<StemSnapH value="40 120"/>
|
||||
<StemSnapV value="40 120"/>
|
||||
<ForceBold value="0"/>
|
||||
<LanguageGroup value="1"/>
|
||||
<ExpansionFactor value="0.06"/>
|
||||
<initialRandomSeed value="0"/>
|
||||
<defaultWidthX value="1000"/>
|
||||
<nominalWidthX value="107"/>
|
||||
<Subrs>
|
||||
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
|
||||
</Subrs>
|
||||
</Private>
|
||||
</FontDict>
|
||||
<FontDict index="1">
|
||||
<FontName value="TestCID-Regular-Two"/>
|
||||
<isFixedPitch value="0"/>
|
||||
<ItalicAngle value="0"/>
|
||||
<UnderlineThickness value="50"/>
|
||||
<PaintType value="0"/>
|
||||
<CharstringType value="2"/>
|
||||
<FontMatrix value="0.001 0 0 0.001 0 0"/>
|
||||
<FontBBox value="0 0 0 0"/>
|
||||
<StrokeWidth value="0"/>
|
||||
<Encoding name="StandardEncoding"/>
|
||||
<Private>
|
||||
<BlueValues value="-13 0 540 554 732 745"/>
|
||||
<OtherBlues value="-251 -232 -227 -227"/>
|
||||
<BlueScale value="0.039625"/>
|
||||
<BlueShift value="7"/>
|
||||
<BlueFuzz value="1"/>
|
||||
<StdHW value="58"/>
|
||||
<StdVW value="71"/>
|
||||
<StemSnapH value="58 73 83"/>
|
||||
<StemSnapV value="71 81 96"/>
|
||||
<ForceBold value="0"/>
|
||||
<LanguageGroup value="0"/>
|
||||
<ExpansionFactor value="0.06"/>
|
||||
<initialRandomSeed value="0"/>
|
||||
<defaultWidthX value="602"/>
|
||||
<nominalWidthX value="630"/>
|
||||
<Subrs>
|
||||
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
|
||||
<CharString index="0">
|
||||
129 216 -105 callsubr
|
||||
-82 hlineto
|
||||
2 -98 rlineto
|
||||
return
|
||||
</CharString>
|
||||
<CharString index="1">
|
||||
-106 callgsubr
|
||||
67 return
|
||||
</CharString>
|
||||
<CharString index="2">
|
||||
rmoveto
|
||||
56 hlineto
|
||||
11 433 2 98 rlineto
|
||||
return
|
||||
</CharString>
|
||||
<CharString index="3">
|
||||
-33 -28 -26 -40 vhcurveto
|
||||
hintmask 01100000
|
||||
-38 28 -26 33 vhcurveto
|
||||
endchar
|
||||
</CharString>
|
||||
<CharString index="4">
|
||||
-13 130 -109 -21 return
|
||||
</CharString>
|
||||
<CharString index="5">
|
||||
493 277 hstem
|
||||
91 -105 callgsubr
|
||||
return
|
||||
</CharString>
|
||||
</Subrs>
|
||||
</Private>
|
||||
</FontDict>
|
||||
</FDArray>
|
||||
<CharStrings>
|
||||
<CharString name=".notdef" fdSelectIndex="0">
|
||||
-120 50 900 50 hstem
|
||||
100 50 700 50 vstem
|
||||
100 -120 rmoveto
|
||||
800 1000 -800 hlineto
|
||||
400 -459 rmoveto
|
||||
-318 409 rlineto
|
||||
636 hlineto
|
||||
-286 -450 rmoveto
|
||||
318 409 rlineto
|
||||
-818 vlineto
|
||||
-668 -41 rmoveto
|
||||
318 409 318 -409 rlineto
|
||||
-668 859 rmoveto
|
||||
318 -409 -318 -409 rlineto
|
||||
endchar
|
||||
</CharString>
|
||||
<CharString name="cid00001" fdSelectIndex="1">
|
||||
-407 endchar
|
||||
</CharString>
|
||||
<CharString name="cid00002" fdSelectIndex="1">
|
||||
-316 -103 callsubr
|
||||
-106 callsubr
|
||||
hintmask 01010000
|
||||
-107 callsubr
|
||||
hintmask 01100000
|
||||
39 -662 rmoveto
|
||||
33 29 26 38 hvcurveto
|
||||
hintmask 10100000
|
||||
40 -29 26 -33 -104 callsubr
|
||||
</CharString>
|
||||
<CharString name="cid00003" fdSelectIndex="1">
|
||||
-173 -102 callsubr
|
||||
-104 callgsubr
|
||||
86 vstem
|
||||
108 493 rmoveto
|
||||
52 hlineto
|
||||
15 180 3 97 rlineto
|
||||
-88 hlineto
|
||||
2 -97 rlineto
|
||||
203 -103 callgsubr
|
||||
51 hlineto
|
||||
17 180 2 97 rlineto
|
||||
-88 hlineto
|
||||
2 -97 rlineto
|
||||
endchar
|
||||
</CharString>
|
||||
</CharStrings>
|
||||
</CFFFont>
|
||||
|
||||
<GlobalSubrs>
|
||||
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
|
||||
<CharString index="0">
|
||||
123 -95.5 return
|
||||
</CharString>
|
||||
<CharString index="1">
|
||||
hstemhm
|
||||
96 -107 callgsubr
|
||||
return
|
||||
</CharString>
|
||||
<CharString index="2">
|
||||
85.5 return
|
||||
</CharString>
|
||||
<CharString index="3">
|
||||
101.5 return
|
||||
</CharString>
|
||||
<CharString index="4">
|
||||
-180 rmoveto
|
||||
return
|
||||
</CharString>
|
||||
</GlobalSubrs>
|
||||
</CFF>
|
||||
|
||||
<VORG>
|
||||
<majorVersion value="1"/>
|
||||
<minorVersion value="0"/>
|
||||
<defaultVertOriginY value="880"/>
|
||||
<numVertOriginYMetrics value="0"/>
|
||||
</VORG>
|
||||
|
||||
<hmtx>
|
||||
<mtx name=".notdef" width="1000" lsb="100"/>
|
||||
<mtx name="cid00001" width="223" lsb="0"/>
|
||||
<mtx name="cid00002" width="314" lsb="96"/>
|
||||
<mtx name="cid00003" width="457" lsb="90"/>
|
||||
</hmtx>
|
||||
|
||||
<vhea>
|
||||
<tableVersion value="1.0625"/>
|
||||
<ascent value="500"/>
|
||||
<descent value="-500"/>
|
||||
<lineGap value="0"/>
|
||||
<advanceHeightMax value="3000"/>
|
||||
<minTopSideBearing value="-1000"/>
|
||||
<minBottomSideBearing value="-672"/>
|
||||
<yMaxExtent value="2928"/>
|
||||
<caretSlopeRise value="0"/>
|
||||
<caretSlopeRun value="1"/>
|
||||
<reserved0 value="0"/>
|
||||
<reserved1 value="0"/>
|
||||
<reserved2 value="0"/>
|
||||
<reserved3 value="0"/>
|
||||
<reserved4 value="0"/>
|
||||
<metricDataFormat value="0"/>
|
||||
<numberOfVMetrics value="1"/>
|
||||
</vhea>
|
||||
|
||||
<vmtx>
|
||||
<mtx name=".notdef" height="1000" tsb="0"/>
|
||||
<mtx name="cid00001" height="1000" tsb="880"/>
|
||||
<mtx name="cid00002" height="1000" tsb="133"/>
|
||||
<mtx name="cid00003" height="1000" tsb="110"/>
|
||||
</vmtx>
|
||||
|
||||
</ttFont>
|
262
Lib/fontTools/subset/testdata/TestOTF-Regular.ttx
vendored
Normal file
262
Lib/fontTools/subset/testdata/TestOTF-Regular.ttx
vendored
Normal file
@ -0,0 +1,262 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ttFont sfntVersion="OTTO" ttLibVersion="2.5">
|
||||
|
||||
<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="B"/>
|
||||
<GlyphID id="3" name="C"/>
|
||||
</GlyphOrder>
|
||||
|
||||
<head>
|
||||
<!-- Most of this table will be recalculated by the compiler -->
|
||||
<tableVersion value="1.0"/>
|
||||
<fontRevision value="1.0"/>
|
||||
<checkSumAdjustment value="0xc6122d26"/>
|
||||
<magicNumber value="0x5f0f3cf5"/>
|
||||
<flags value="00000000 00000011"/>
|
||||
<unitsPerEm value="1000"/>
|
||||
<created value="Fri Nov 13 01:59:53 2015"/>
|
||||
<modified value="Fri Nov 13 01:59:53 2015"/>
|
||||
<xMin value="10"/>
|
||||
<yMin value="0"/>
|
||||
<xMax value="486"/>
|
||||
<yMax value="660"/>
|
||||
<macStyle value="00000000 00000000"/>
|
||||
<lowestRecPPEM value="3"/>
|
||||
<fontDirectionHint value="2"/>
|
||||
<indexToLocFormat value="0"/>
|
||||
<glyphDataFormat value="0"/>
|
||||
</head>
|
||||
|
||||
<hhea>
|
||||
<tableVersion value="1.0"/>
|
||||
<ascent value="660"/>
|
||||
<descent value="-340"/>
|
||||
<lineGap value="200"/>
|
||||
<advanceWidthMax value="500"/>
|
||||
<minLeftSideBearing value="10"/>
|
||||
<minRightSideBearing value="10"/>
|
||||
<xMaxExtent value="486"/>
|
||||
<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="4"/>
|
||||
</hhea>
|
||||
|
||||
<maxp>
|
||||
<tableVersion value="0x5000"/>
|
||||
<numGlyphs value="4"/>
|
||||
</maxp>
|
||||
|
||||
<OS_2>
|
||||
<version value="3"/>
|
||||
<xAvgCharWidth value="474"/>
|
||||
<usWeightClass value="400"/>
|
||||
<usWidthClass value="5"/>
|
||||
<fsType value="00000000 00000100"/>
|
||||
<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="220"/>
|
||||
<sFamilyClass value="0"/>
|
||||
<panose>
|
||||
<bFamilyType value="0"/>
|
||||
<bSerifStyle value="0"/>
|
||||
<bWeight value="5"/>
|
||||
<bProportion value="0"/>
|
||||
<bContrast value="0"/>
|
||||
<bStrokeVariation value="0"/>
|
||||
<bArmStyle value="0"/>
|
||||
<bLetterForm value="0"/>
|
||||
<bMidline value="0"/>
|
||||
<bXHeight value="0"/>
|
||||
</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="UKWN"/>
|
||||
<fsSelection value="00000000 01000000"/>
|
||||
<fsFirstCharIndex value="65"/>
|
||||
<fsLastCharIndex value="67"/>
|
||||
<sTypoAscender value="660"/>
|
||||
<sTypoDescender value="-340"/>
|
||||
<sTypoLineGap value="200"/>
|
||||
<usWinAscent value="1000"/>
|
||||
<usWinDescent value="0"/>
|
||||
<ulCodePageRange1 value="00000000 00000000 00000000 00000001"/>
|
||||
<ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
|
||||
<sxHeight value="0"/>
|
||||
<sCapHeight value="0"/>
|
||||
<usDefaultChar value="0"/>
|
||||
<usBreakChar value="32"/>
|
||||
<usMaxContex value="0"/>
|
||||
</OS_2>
|
||||
|
||||
<name>
|
||||
<namerecord nameID="1" platformID="1" platEncID="0" langID="0x0">
|
||||
Test OTF
|
||||
</namerecord>
|
||||
<namerecord nameID="2" platformID="1" platEncID="0" langID="0x0">
|
||||
Regular
|
||||
</namerecord>
|
||||
<namerecord nameID="3" platformID="1" platEncID="0" langID="0x0">
|
||||
1.000;UKWN;TestOTF-Regular
|
||||
</namerecord>
|
||||
<namerecord nameID="4" platformID="1" platEncID="0" langID="0x0">
|
||||
Test OTF
|
||||
</namerecord>
|
||||
<namerecord nameID="5" platformID="1" platEncID="0" langID="0x0">
|
||||
Version 1.000;PS 1.0;hotconv 1.0.88;makeotf.lib2.5.647800
|
||||
</namerecord>
|
||||
<namerecord nameID="6" platformID="1" platEncID="0" langID="0x0">
|
||||
TestOTF-Regular
|
||||
</namerecord>
|
||||
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
|
||||
Test OTF
|
||||
</namerecord>
|
||||
<namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
|
||||
Regular
|
||||
</namerecord>
|
||||
<namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
|
||||
1.000;UKWN;TestOTF-Regular
|
||||
</namerecord>
|
||||
<namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
|
||||
Test OTF
|
||||
</namerecord>
|
||||
<namerecord nameID="5" platformID="3" platEncID="1" langID="0x409">
|
||||
Version 1.000;PS 1.0;hotconv 1.0.88;makeotf.lib2.5.647800
|
||||
</namerecord>
|
||||
<namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
|
||||
TestOTF-Regular
|
||||
</namerecord>
|
||||
</name>
|
||||
|
||||
<cmap>
|
||||
<tableVersion version="0"/>
|
||||
<cmap_format_4 platformID="0" platEncID="3" language="0">
|
||||
<map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
|
||||
<map code="0x42" name="B"/><!-- LATIN CAPITAL LETTER B -->
|
||||
<map code="0x43" name="C"/><!-- LATIN CAPITAL LETTER C -->
|
||||
</cmap_format_4>
|
||||
<cmap_format_6 platformID="1" platEncID="0" language="0">
|
||||
<map code="0x41" name="A"/>
|
||||
<map code="0x42" name="B"/>
|
||||
<map code="0x43" name="C"/>
|
||||
</cmap_format_6>
|
||||
<cmap_format_4 platformID="3" platEncID="1" language="0">
|
||||
<map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
|
||||
<map code="0x42" name="B"/><!-- LATIN CAPITAL LETTER B -->
|
||||
<map code="0x43" name="C"/><!-- LATIN CAPITAL LETTER C -->
|
||||
</cmap_format_4>
|
||||
</cmap>
|
||||
|
||||
<post>
|
||||
<formatType value="3.0"/>
|
||||
<italicAngle value="0.0"/>
|
||||
<underlinePosition value="-75"/>
|
||||
<underlineThickness value="50"/>
|
||||
<isFixedPitch value="0"/>
|
||||
<minMemType42 value="0"/>
|
||||
<maxMemType42 value="0"/>
|
||||
<minMemType1 value="0"/>
|
||||
<maxMemType1 value="0"/>
|
||||
</post>
|
||||
|
||||
<CFF>
|
||||
<CFFFont name="TestOTF-Regular">
|
||||
<version value="1.0"/>
|
||||
<FamilyName value="Test OTF"/>
|
||||
<isFixedPitch value="0"/>
|
||||
<ItalicAngle value="0"/>
|
||||
<UnderlineThickness value="50"/>
|
||||
<PaintType value="0"/>
|
||||
<CharstringType value="2"/>
|
||||
<FontMatrix value="0.001 0 0 0.001 0 0"/>
|
||||
<FontBBox value="0 0 486 660"/>
|
||||
<StrokeWidth value="0"/>
|
||||
<!-- charset is dumped separately as the 'GlyphOrder' element -->
|
||||
<Encoding name="StandardEncoding"/>
|
||||
<Private>
|
||||
<BlueValues value="-10 0 500 510"/>
|
||||
<BlueScale value="0.039625"/>
|
||||
<BlueShift value="7"/>
|
||||
<BlueFuzz value="1"/>
|
||||
<StdHW value="20"/>
|
||||
<StdVW value="20"/>
|
||||
<StemSnapH value="20"/>
|
||||
<StemSnapV value="20"/>
|
||||
<ForceBold value="0"/>
|
||||
<LanguageGroup value="0"/>
|
||||
<ExpansionFactor value="0.06"/>
|
||||
<initialRandomSeed value="0"/>
|
||||
<defaultWidthX value="500"/>
|
||||
<nominalWidthX value="300"/>
|
||||
<Subrs>
|
||||
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
|
||||
<CharString index="0">
|
||||
132 304 rmoveto
|
||||
233 263 -233 hlineto
|
||||
endchar
|
||||
</CharString>
|
||||
</Subrs>
|
||||
</Private>
|
||||
<CharStrings>
|
||||
<CharString name=".notdef">
|
||||
196 10 hmoveto
|
||||
476 660 -476 hlineto
|
||||
108 -602 rmoveto
|
||||
74 132 54 103 rlineto
|
||||
4 hlineto
|
||||
52 -103 73 -132 rlineto
|
||||
-129 329 rmoveto
|
||||
-50 94 -66 119 rlineto
|
||||
235 hlineto
|
||||
-66 -119 -49 -94 rlineto
|
||||
-175 -277 rmoveto
|
||||
462 vlineto
|
||||
127 -232 rlineto
|
||||
217 -230 rmoveto
|
||||
-126 230 126 232 rlineto
|
||||
endchar
|
||||
</CharString>
|
||||
<CharString name="A">
|
||||
-107 callsubr
|
||||
</CharString>
|
||||
<CharString name="B">
|
||||
100 304 263 hstem
|
||||
132 233 vstem
|
||||
-107 callsubr
|
||||
</CharString>
|
||||
<CharString name="C">
|
||||
endchar
|
||||
</CharString>
|
||||
</CharStrings>
|
||||
</CFFFont>
|
||||
|
||||
<GlobalSubrs>
|
||||
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
|
||||
</GlobalSubrs>
|
||||
</CFF>
|
||||
|
||||
<hmtx>
|
||||
<mtx name=".notdef" width="496" lsb="10"/>
|
||||
<mtx name="A" width="500" lsb="132"/>
|
||||
<mtx name="B" width="400" lsb="132"/>
|
||||
<mtx name="C" width="500" lsb="0"/>
|
||||
</hmtx>
|
||||
|
||||
</ttFont>
|
705
Lib/fontTools/subset/testdata/TestTTF-Regular.ttx
vendored
Normal file
705
Lib/fontTools/subset/testdata/TestTTF-Regular.ttx
vendored
Normal file
@ -0,0 +1,705 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="2.5">
|
||||
|
||||
<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="B"/>
|
||||
<GlyphID id="3" name="C"/>
|
||||
</GlyphOrder>
|
||||
|
||||
<head>
|
||||
<!-- Most of this table will be recalculated by the compiler -->
|
||||
<tableVersion value="1.0"/>
|
||||
<fontRevision value="1.0"/>
|
||||
<checkSumAdjustment value="0x840fbf5c"/>
|
||||
<magicNumber value="0x5f0f3cf5"/>
|
||||
<flags value="00000000 00001011"/>
|
||||
<unitsPerEm value="1000"/>
|
||||
<created value="Fri Nov 13 03:46:42 2015"/>
|
||||
<modified value="Fri Nov 13 11:59:06 2015"/>
|
||||
<xMin value="10"/>
|
||||
<yMin value="0"/>
|
||||
<xMax value="486"/>
|
||||
<yMax value="660"/>
|
||||
<macStyle value="00000000 00000000"/>
|
||||
<lowestRecPPEM value="9"/>
|
||||
<fontDirectionHint value="2"/>
|
||||
<indexToLocFormat value="0"/>
|
||||
<glyphDataFormat value="0"/>
|
||||
</head>
|
||||
|
||||
<hhea>
|
||||
<tableVersion value="1.0"/>
|
||||
<ascent value="660"/>
|
||||
<descent value="-340"/>
|
||||
<lineGap value="200"/>
|
||||
<advanceWidthMax value="500"/>
|
||||
<minLeftSideBearing value="10"/>
|
||||
<minRightSideBearing value="10"/>
|
||||
<xMaxExtent value="486"/>
|
||||
<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="4"/>
|
||||
</hhea>
|
||||
|
||||
<maxp>
|
||||
<!-- Most of this table will be recalculated by the compiler -->
|
||||
<tableVersion value="0x10000"/>
|
||||
<numGlyphs value="4"/>
|
||||
<maxPoints value="22"/>
|
||||
<maxContours value="5"/>
|
||||
<maxCompositePoints value="0"/>
|
||||
<maxCompositeContours value="0"/>
|
||||
<maxZones value="1"/>
|
||||
<maxTwilightPoints value="0"/>
|
||||
<maxStorage value="0"/>
|
||||
<maxFunctionDefs value="10"/>
|
||||
<maxInstructionDefs value="0"/>
|
||||
<maxStackElements value="512"/>
|
||||
<maxSizeOfInstructions value="371"/>
|
||||
<maxComponentElements value="0"/>
|
||||
<maxComponentDepth value="0"/>
|
||||
</maxp>
|
||||
|
||||
<OS_2>
|
||||
<version value="3"/>
|
||||
<xAvgCharWidth value="474"/>
|
||||
<usWeightClass value="400"/>
|
||||
<usWidthClass value="5"/>
|
||||
<fsType value="00000000 00000100"/>
|
||||
<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="220"/>
|
||||
<sFamilyClass value="0"/>
|
||||
<panose>
|
||||
<bFamilyType value="0"/>
|
||||
<bSerifStyle value="0"/>
|
||||
<bWeight value="5"/>
|
||||
<bProportion value="0"/>
|
||||
<bContrast value="0"/>
|
||||
<bStrokeVariation value="0"/>
|
||||
<bArmStyle value="0"/>
|
||||
<bLetterForm value="0"/>
|
||||
<bMidline value="0"/>
|
||||
<bXHeight value="0"/>
|
||||
</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="UKWN"/>
|
||||
<fsSelection value="00000000 01000000"/>
|
||||
<fsFirstCharIndex value="0"/>
|
||||
<fsLastCharIndex value="67"/>
|
||||
<sTypoAscender value="660"/>
|
||||
<sTypoDescender value="-340"/>
|
||||
<sTypoLineGap value="200"/>
|
||||
<usWinAscent value="1000"/>
|
||||
<usWinDescent value="0"/>
|
||||
<ulCodePageRange1 value="00000000 00000000 00000000 00000001"/>
|
||||
<ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
|
||||
<sxHeight value="0"/>
|
||||
<sCapHeight value="0"/>
|
||||
<usDefaultChar value="0"/>
|
||||
<usBreakChar value="32"/>
|
||||
<usMaxContex value="0"/>
|
||||
</OS_2>
|
||||
|
||||
<hmtx>
|
||||
<mtx name=".notdef" width="496" lsb="10"/>
|
||||
<mtx name="A" width="500" lsb="132"/>
|
||||
<mtx name="B" width="400" lsb="132"/>
|
||||
<mtx name="C" width="500" lsb="0"/>
|
||||
</hmtx>
|
||||
|
||||
<cmap>
|
||||
<tableVersion version="0"/>
|
||||
<cmap_format_4 platformID="0" platEncID="3" language="0">
|
||||
<map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
|
||||
<map code="0x42" name="B"/><!-- LATIN CAPITAL LETTER B -->
|
||||
<map code="0x43" name="C"/><!-- LATIN CAPITAL LETTER C -->
|
||||
</cmap_format_4>
|
||||
<cmap_format_6 platformID="1" platEncID="0" language="0">
|
||||
<map code="0x41" name="A"/>
|
||||
<map code="0x42" name="B"/>
|
||||
<map code="0x43" name="C"/>
|
||||
</cmap_format_6>
|
||||
<cmap_format_4 platformID="3" platEncID="1" language="0">
|
||||
<map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
|
||||
<map code="0x42" name="B"/><!-- LATIN CAPITAL LETTER B -->
|
||||
<map code="0x43" name="C"/><!-- LATIN CAPITAL LETTER C -->
|
||||
</cmap_format_4>
|
||||
</cmap>
|
||||
|
||||
<fpgm>
|
||||
<assembly>
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
0
|
||||
FDEF[ ] /* FunctionDefinition */
|
||||
MPPEM[ ] /* MeasurePixelPerEm */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
9
|
||||
LT[ ] /* LessThan */
|
||||
IF[ ] /* If */
|
||||
PUSH[ ] /* 2 values pushed */
|
||||
1 1
|
||||
INSTCTRL[ ] /* SetInstrExecControl */
|
||||
EIF[ ] /* EndIf */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
511
|
||||
SCANCTRL[ ] /* ScanConversionControl */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
68
|
||||
SCVTCI[ ] /* SetCVTCutIn */
|
||||
PUSH[ ] /* 2 values pushed */
|
||||
9 3
|
||||
SDS[ ] /* SetDeltaShiftInGState */
|
||||
SDB[ ] /* SetDeltaBaseInGState */
|
||||
ENDF[ ] /* EndFunctionDefinition */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
1
|
||||
FDEF[ ] /* FunctionDefinition */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
RCVT[ ] /* ReadCVT */
|
||||
ROUND[01] /* Round */
|
||||
WCVTP[ ] /* WriteCVTInPixels */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
1
|
||||
ADD[ ] /* Add */
|
||||
ENDF[ ] /* EndFunctionDefinition */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
2
|
||||
FDEF[ ] /* FunctionDefinition */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
1
|
||||
LOOPCALL[ ] /* LoopAndCallFunction */
|
||||
POP[ ] /* PopTopStack */
|
||||
ENDF[ ] /* EndFunctionDefinition */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
3
|
||||
FDEF[ ] /* FunctionDefinition */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
GC[0] /* GetCoordOnPVector */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
3
|
||||
CINDEX[ ] /* CopyXToTopStack */
|
||||
GC[0] /* GetCoordOnPVector */
|
||||
GT[ ] /* GreaterThan */
|
||||
IF[ ] /* If */
|
||||
SWAP[ ] /* SwapTopStack */
|
||||
EIF[ ] /* EndIf */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
ROLL[ ] /* RollTopThreeStack */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
ROLL[ ] /* RollTopThreeStack */
|
||||
MD[0] /* MeasureDistance */
|
||||
ABS[ ] /* Absolute */
|
||||
ROLL[ ] /* RollTopThreeStack */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
GC[0] /* GetCoordOnPVector */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
ROUND[00] /* Round */
|
||||
SUB[ ] /* Subtract */
|
||||
ABS[ ] /* Absolute */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
4
|
||||
CINDEX[ ] /* CopyXToTopStack */
|
||||
GC[0] /* GetCoordOnPVector */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
ROUND[00] /* Round */
|
||||
SUB[ ] /* Subtract */
|
||||
ABS[ ] /* Absolute */
|
||||
GT[ ] /* GreaterThan */
|
||||
IF[ ] /* If */
|
||||
SWAP[ ] /* SwapTopStack */
|
||||
NEG[ ] /* Negate */
|
||||
ROLL[ ] /* RollTopThreeStack */
|
||||
EIF[ ] /* EndIf */
|
||||
MDAP[1] /* MoveDirectAbsPt */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
0
|
||||
GTEQ[ ] /* GreaterThanOrEqual */
|
||||
IF[ ] /* If */
|
||||
ROUND[01] /* Round */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
0
|
||||
EQ[ ] /* Equal */
|
||||
IF[ ] /* If */
|
||||
POP[ ] /* PopTopStack */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
64
|
||||
EIF[ ] /* EndIf */
|
||||
ELSE[ ] /* Else */
|
||||
ROUND[01] /* Round */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
0
|
||||
EQ[ ] /* Equal */
|
||||
IF[ ] /* If */
|
||||
POP[ ] /* PopTopStack */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
64
|
||||
NEG[ ] /* Negate */
|
||||
EIF[ ] /* EndIf */
|
||||
EIF[ ] /* EndIf */
|
||||
MSIRP[0] /* MoveStackIndirRelPt */
|
||||
ENDF[ ] /* EndFunctionDefinition */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
4
|
||||
FDEF[ ] /* FunctionDefinition */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
GC[0] /* GetCoordOnPVector */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
4
|
||||
CINDEX[ ] /* CopyXToTopStack */
|
||||
GC[0] /* GetCoordOnPVector */
|
||||
GT[ ] /* GreaterThan */
|
||||
IF[ ] /* If */
|
||||
SWAP[ ] /* SwapTopStack */
|
||||
ROLL[ ] /* RollTopThreeStack */
|
||||
EIF[ ] /* EndIf */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
GC[0] /* GetCoordOnPVector */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
ROUND[10] /* Round */
|
||||
SUB[ ] /* Subtract */
|
||||
ABS[ ] /* Absolute */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
4
|
||||
CINDEX[ ] /* CopyXToTopStack */
|
||||
GC[0] /* GetCoordOnPVector */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
ROUND[10] /* Round */
|
||||
SUB[ ] /* Subtract */
|
||||
ABS[ ] /* Absolute */
|
||||
GT[ ] /* GreaterThan */
|
||||
IF[ ] /* If */
|
||||
SWAP[ ] /* SwapTopStack */
|
||||
ROLL[ ] /* RollTopThreeStack */
|
||||
EIF[ ] /* EndIf */
|
||||
MDAP[1] /* MoveDirectAbsPt */
|
||||
MIRP[11101] /* MoveIndirectRelPt */
|
||||
ENDF[ ] /* EndFunctionDefinition */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
5
|
||||
FDEF[ ] /* FunctionDefinition */
|
||||
MPPEM[ ] /* MeasurePixelPerEm */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
3
|
||||
MINDEX[ ] /* MoveXToTopStack */
|
||||
LT[ ] /* LessThan */
|
||||
IF[ ] /* If */
|
||||
LTEQ[ ] /* LessThenOrEqual */
|
||||
IF[ ] /* If */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
128
|
||||
WCVTP[ ] /* WriteCVTInPixels */
|
||||
ELSE[ ] /* Else */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
64
|
||||
WCVTP[ ] /* WriteCVTInPixels */
|
||||
EIF[ ] /* EndIf */
|
||||
ELSE[ ] /* Else */
|
||||
POP[ ] /* PopTopStack */
|
||||
POP[ ] /* PopTopStack */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
RCVT[ ] /* ReadCVT */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
192
|
||||
LT[ ] /* LessThan */
|
||||
IF[ ] /* If */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
192
|
||||
WCVTP[ ] /* WriteCVTInPixels */
|
||||
ELSE[ ] /* Else */
|
||||
POP[ ] /* PopTopStack */
|
||||
EIF[ ] /* EndIf */
|
||||
EIF[ ] /* EndIf */
|
||||
ENDF[ ] /* EndFunctionDefinition */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
6
|
||||
FDEF[ ] /* FunctionDefinition */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
RCVT[ ] /* ReadCVT */
|
||||
ROUND[01] /* Round */
|
||||
WCVTP[ ] /* WriteCVTInPixels */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
1
|
||||
ADD[ ] /* Add */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
RCVT[ ] /* ReadCVT */
|
||||
RDTG[ ] /* RoundDownToGrid */
|
||||
ROUND[01] /* Round */
|
||||
RTG[ ] /* RoundToGrid */
|
||||
WCVTP[ ] /* WriteCVTInPixels */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
1
|
||||
ADD[ ] /* Add */
|
||||
ENDF[ ] /* EndFunctionDefinition */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
7
|
||||
FDEF[ ] /* FunctionDefinition */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
6
|
||||
LOOPCALL[ ] /* LoopAndCallFunction */
|
||||
ENDF[ ] /* EndFunctionDefinition */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
8
|
||||
FDEF[ ] /* FunctionDefinition */
|
||||
MPPEM[ ] /* MeasurePixelPerEm */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
3
|
||||
MINDEX[ ] /* MoveXToTopStack */
|
||||
GTEQ[ ] /* GreaterThanOrEqual */
|
||||
IF[ ] /* If */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
64
|
||||
ELSE[ ] /* Else */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
0
|
||||
EIF[ ] /* EndIf */
|
||||
ROLL[ ] /* RollTopThreeStack */
|
||||
ROLL[ ] /* RollTopThreeStack */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
3
|
||||
MINDEX[ ] /* MoveXToTopStack */
|
||||
GTEQ[ ] /* GreaterThanOrEqual */
|
||||
IF[ ] /* If */
|
||||
SWAP[ ] /* SwapTopStack */
|
||||
POP[ ] /* PopTopStack */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
128
|
||||
ROLL[ ] /* RollTopThreeStack */
|
||||
ROLL[ ] /* RollTopThreeStack */
|
||||
ELSE[ ] /* Else */
|
||||
ROLL[ ] /* RollTopThreeStack */
|
||||
SWAP[ ] /* SwapTopStack */
|
||||
EIF[ ] /* EndIf */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
3
|
||||
MINDEX[ ] /* MoveXToTopStack */
|
||||
GTEQ[ ] /* GreaterThanOrEqual */
|
||||
IF[ ] /* If */
|
||||
SWAP[ ] /* SwapTopStack */
|
||||
POP[ ] /* PopTopStack */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
192
|
||||
ROLL[ ] /* RollTopThreeStack */
|
||||
ROLL[ ] /* RollTopThreeStack */
|
||||
ELSE[ ] /* Else */
|
||||
ROLL[ ] /* RollTopThreeStack */
|
||||
SWAP[ ] /* SwapTopStack */
|
||||
EIF[ ] /* EndIf */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
3
|
||||
MINDEX[ ] /* MoveXToTopStack */
|
||||
GTEQ[ ] /* GreaterThanOrEqual */
|
||||
IF[ ] /* If */
|
||||
SWAP[ ] /* SwapTopStack */
|
||||
POP[ ] /* PopTopStack */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
256
|
||||
ROLL[ ] /* RollTopThreeStack */
|
||||
ROLL[ ] /* RollTopThreeStack */
|
||||
ELSE[ ] /* Else */
|
||||
ROLL[ ] /* RollTopThreeStack */
|
||||
SWAP[ ] /* SwapTopStack */
|
||||
EIF[ ] /* EndIf */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
3
|
||||
MINDEX[ ] /* MoveXToTopStack */
|
||||
GTEQ[ ] /* GreaterThanOrEqual */
|
||||
IF[ ] /* If */
|
||||
SWAP[ ] /* SwapTopStack */
|
||||
POP[ ] /* PopTopStack */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
320
|
||||
ROLL[ ] /* RollTopThreeStack */
|
||||
ROLL[ ] /* RollTopThreeStack */
|
||||
ELSE[ ] /* Else */
|
||||
ROLL[ ] /* RollTopThreeStack */
|
||||
SWAP[ ] /* SwapTopStack */
|
||||
EIF[ ] /* EndIf */
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
3
|
||||
MINDEX[ ] /* MoveXToTopStack */
|
||||
GTEQ[ ] /* GreaterThanOrEqual */
|
||||
IF[ ] /* If */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
3
|
||||
CINDEX[ ] /* CopyXToTopStack */
|
||||
RCVT[ ] /* ReadCVT */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
384
|
||||
LT[ ] /* LessThan */
|
||||
IF[ ] /* If */
|
||||
SWAP[ ] /* SwapTopStack */
|
||||
POP[ ] /* PopTopStack */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
384
|
||||
SWAP[ ] /* SwapTopStack */
|
||||
POP[ ] /* PopTopStack */
|
||||
ELSE[ ] /* Else */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
3
|
||||
CINDEX[ ] /* CopyXToTopStack */
|
||||
RCVT[ ] /* ReadCVT */
|
||||
SWAP[ ] /* SwapTopStack */
|
||||
POP[ ] /* PopTopStack */
|
||||
SWAP[ ] /* SwapTopStack */
|
||||
POP[ ] /* PopTopStack */
|
||||
EIF[ ] /* EndIf */
|
||||
ELSE[ ] /* Else */
|
||||
POP[ ] /* PopTopStack */
|
||||
EIF[ ] /* EndIf */
|
||||
WCVTP[ ] /* WriteCVTInPixels */
|
||||
ENDF[ ] /* EndFunctionDefinition */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
9
|
||||
FDEF[ ] /* FunctionDefinition */
|
||||
MPPEM[ ] /* MeasurePixelPerEm */
|
||||
GTEQ[ ] /* GreaterThanOrEqual */
|
||||
IF[ ] /* If */
|
||||
RCVT[ ] /* ReadCVT */
|
||||
WCVTP[ ] /* WriteCVTInPixels */
|
||||
ELSE[ ] /* Else */
|
||||
POP[ ] /* PopTopStack */
|
||||
POP[ ] /* PopTopStack */
|
||||
EIF[ ] /* EndIf */
|
||||
ENDF[ ] /* EndFunctionDefinition */
|
||||
</assembly>
|
||||
</fpgm>
|
||||
|
||||
<prep>
|
||||
<assembly>
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
0
|
||||
CALL[ ] /* CallFunction */
|
||||
SVTCA[0] /* SetFPVectorToAxis */
|
||||
PUSH[ ] /* 3 values pushed */
|
||||
1 1 2
|
||||
CALL[ ] /* CallFunction */
|
||||
SVTCA[1] /* SetFPVectorToAxis */
|
||||
PUSH[ ] /* 3 values pushed */
|
||||
2 1 2
|
||||
CALL[ ] /* CallFunction */
|
||||
SVTCA[1] /* SetFPVectorToAxis */
|
||||
PUSH[ ] /* 8 values pushed */
|
||||
2 275 225 175 125 75 0 8
|
||||
CALL[ ] /* CallFunction */
|
||||
SVTCA[0] /* SetFPVectorToAxis */
|
||||
PUSH[ ] /* 8 values pushed */
|
||||
1 275 225 175 125 75 0 8
|
||||
CALL[ ] /* CallFunction */
|
||||
SVTCA[0] /* SetFPVectorToAxis */
|
||||
PUSH[ ] /* 3 values pushed */
|
||||
3 2 7
|
||||
CALL[ ] /* CallFunction */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
0
|
||||
DUP[ ] /* DuplicateTopStack */
|
||||
RCVT[ ] /* ReadCVT */
|
||||
RDTG[ ] /* RoundDownToGrid */
|
||||
ROUND[01] /* Round */
|
||||
RTG[ ] /* RoundToGrid */
|
||||
WCVTP[ ] /* WriteCVTInPixels */
|
||||
MPPEM[ ] /* MeasurePixelPerEm */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
96
|
||||
GT[ ] /* GreaterThan */
|
||||
IF[ ] /* If */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
1
|
||||
ELSE[ ] /* Else */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
0
|
||||
EIF[ ] /* EndIf */
|
||||
PUSH[ ] /* 1 value pushed */
|
||||
1
|
||||
INSTCTRL[ ] /* SetInstrExecControl */
|
||||
</assembly>
|
||||
</prep>
|
||||
|
||||
<cvt>
|
||||
<cv index="0" value="20"/>
|
||||
<cv index="1" value="20"/>
|
||||
<cv index="2" value="20"/>
|
||||
<cv index="3" value="0"/>
|
||||
<cv index="4" value="10"/>
|
||||
<cv index="5" value="500"/>
|
||||
<cv index="6" value="10"/>
|
||||
</cvt>
|
||||
|
||||
<loca>
|
||||
<!-- The 'loca' table will be calculated by the compiler -->
|
||||
</loca>
|
||||
|
||||
<glyf>
|
||||
|
||||
<!-- The xMin, yMin, xMax and yMax values
|
||||
will be recalculated by the compiler. -->
|
||||
|
||||
<TTGlyph name=".notdef" xMin="10" yMin="0" xMax="486" yMax="660">
|
||||
<contour>
|
||||
<pt x="10" y="660" on="1"/>
|
||||
<pt x="486" y="660" on="1"/>
|
||||
<pt x="486" y="0" on="1"/>
|
||||
<pt x="10" y="0" on="1"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<pt x="375" y="58" on="1"/>
|
||||
<pt x="302" y="190" on="1"/>
|
||||
<pt x="250" y="293" on="1"/>
|
||||
<pt x="246" y="293" on="1"/>
|
||||
<pt x="192" y="190" on="1"/>
|
||||
<pt x="118" y="58" on="1"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<pt x="250" y="387" on="1"/>
|
||||
<pt x="299" y="481" on="1"/>
|
||||
<pt x="365" y="600" on="1"/>
|
||||
<pt x="130" y="600" on="1"/>
|
||||
<pt x="196" y="481" on="1"/>
|
||||
<pt x="246" y="387" on="1"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<pt x="202" y="340" on="1"/>
|
||||
<pt x="75" y="572" on="1"/>
|
||||
<pt x="75" y="110" on="1"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<pt x="419" y="572" on="1"/>
|
||||
<pt x="293" y="340" on="1"/>
|
||||
<pt x="419" y="110" on="1"/>
|
||||
</contour>
|
||||
<instructions><assembly>
|
||||
</assembly></instructions>
|
||||
</TTGlyph>
|
||||
|
||||
<TTGlyph name="A" xMin="132" yMin="304" xMax="365" yMax="567">
|
||||
<contour>
|
||||
<pt x="132" y="567" on="1"/>
|
||||
<pt x="365" y="567" on="1"/>
|
||||
<pt x="365" y="304" on="1"/>
|
||||
<pt x="132" y="304" on="1"/>
|
||||
</contour>
|
||||
<instructions><assembly>
|
||||
</assembly></instructions>
|
||||
</TTGlyph>
|
||||
|
||||
<TTGlyph name="B" xMin="132" yMin="304" xMax="365" yMax="567">
|
||||
<contour>
|
||||
<pt x="132" y="567" on="1"/>
|
||||
<pt x="365" y="567" on="1"/>
|
||||
<pt x="365" y="304" on="1"/>
|
||||
<pt x="132" y="304" on="1"/>
|
||||
</contour>
|
||||
<instructions><assembly>
|
||||
SVTCA[0] /* SetFPVectorToAxis */
|
||||
PUSH[ ] /* 3 values pushed */
|
||||
1 2 3
|
||||
CALL[ ] /* CallFunction */
|
||||
IUP[0] /* InterpolateUntPts */
|
||||
IUP[1] /* InterpolateUntPts */
|
||||
</assembly></instructions>
|
||||
</TTGlyph>
|
||||
|
||||
<TTGlyph name="C"/><!-- contains no outline data -->
|
||||
|
||||
</glyf>
|
||||
|
||||
<name>
|
||||
<namerecord nameID="1" platformID="1" platEncID="0" langID="0x0">
|
||||
TestTTF
|
||||
</namerecord>
|
||||
<namerecord nameID="2" platformID="1" platEncID="0" langID="0x0">
|
||||
Regular
|
||||
</namerecord>
|
||||
<namerecord nameID="3" platformID="1" platEncID="0" langID="0x0">
|
||||
1.000;UKWN;TestTTF-Regular
|
||||
</namerecord>
|
||||
<namerecord nameID="4" platformID="1" platEncID="0" langID="0x0">
|
||||
TestTTF
|
||||
</namerecord>
|
||||
<namerecord nameID="5" platformID="1" platEncID="0" langID="0x0">
|
||||
Version 1.000;PS 1.000;hotconv 1.0.88;makeotf.lib2.5.647800 DEVELOPMENT
|
||||
</namerecord>
|
||||
<namerecord nameID="6" platformID="1" platEncID="0" langID="0x0">
|
||||
TestTTF-Regular
|
||||
</namerecord>
|
||||
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
|
||||
TestTTF
|
||||
</namerecord>
|
||||
<namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
|
||||
Regular
|
||||
</namerecord>
|
||||
<namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
|
||||
1.000;UKWN;TestTTF-Regular
|
||||
</namerecord>
|
||||
<namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
|
||||
TestTTF
|
||||
</namerecord>
|
||||
<namerecord nameID="5" platformID="3" platEncID="1" langID="0x409">
|
||||
Version 1.000;PS 1.000;hotconv 1.0.88;makeotf.lib2.5.647800 DEVELOPMENT
|
||||
</namerecord>
|
||||
<namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
|
||||
TestTTF-Regular
|
||||
</namerecord>
|
||||
</name>
|
||||
|
||||
<post>
|
||||
<formatType value="2.0"/>
|
||||
<italicAngle value="0.0"/>
|
||||
<underlinePosition value="-75"/>
|
||||
<underlineThickness value="50"/>
|
||||
<isFixedPitch value="0"/>
|
||||
<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 -->
|
||||
</extraNames>
|
||||
</post>
|
||||
|
||||
<gasp>
|
||||
<gaspRange rangeMaxPPEM="65535" rangeGaspBehavior="2"/>
|
||||
</gasp>
|
||||
|
||||
</ttFont>
|
70
Lib/fontTools/subset/testdata/expect_no_notdef_outline_cid.ttx
vendored
Normal file
70
Lib/fontTools/subset/testdata/expect_no_notdef_outline_cid.ttx
vendored
Normal file
@ -0,0 +1,70 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ttFont sfntVersion="OTTO" ttLibVersion="2.5">
|
||||
|
||||
<CFF>
|
||||
<CFFFont name="TestCID-Regular">
|
||||
<ROS Registry="Adobe" Order="Identity" Supplement="0"/>
|
||||
<FullName value="Test CID Regular"/>
|
||||
<FamilyName value="Test CID"/>
|
||||
<Weight value="Regular"/>
|
||||
<isFixedPitch value="0"/>
|
||||
<ItalicAngle value="0"/>
|
||||
<UnderlinePosition value="-150"/>
|
||||
<UnderlineThickness value="50"/>
|
||||
<PaintType value="0"/>
|
||||
<CharstringType value="2"/>
|
||||
<FontMatrix value="0.001 0 0 0.001 0 0"/>
|
||||
<FontBBox value="-1000 -1000 1000 1000"/>
|
||||
<StrokeWidth value="0"/>
|
||||
<CIDFontVersion value="1.0"/>
|
||||
<CIDFontRevision value="0"/>
|
||||
<CIDFontType value="0"/>
|
||||
<CIDCount value="4"/>
|
||||
<!-- charset is dumped separately as the 'GlyphOrder' element -->
|
||||
<FDSelect format="3"/>
|
||||
<FDArray>
|
||||
<FontDict index="0">
|
||||
<FontName value="TestCID-Regular-One"/>
|
||||
<isFixedPitch value="0"/>
|
||||
<ItalicAngle value="0"/>
|
||||
<UnderlineThickness value="50"/>
|
||||
<PaintType value="0"/>
|
||||
<CharstringType value="2"/>
|
||||
<FontMatrix value="0.001 0 0 0.001 0 0"/>
|
||||
<FontBBox value="0 0 0 0"/>
|
||||
<StrokeWidth value="0"/>
|
||||
<Encoding name="StandardEncoding"/>
|
||||
<Private>
|
||||
<BlueValues value="-250 -250 1100 1100"/>
|
||||
<BlueScale value="0.039625"/>
|
||||
<BlueShift value="7"/>
|
||||
<BlueFuzz value="1"/>
|
||||
<StdHW value="40"/>
|
||||
<StdVW value="40"/>
|
||||
<StemSnapH value="40 120"/>
|
||||
<StemSnapV value="40 120"/>
|
||||
<ForceBold value="0"/>
|
||||
<LanguageGroup value="1"/>
|
||||
<ExpansionFactor value="0.06"/>
|
||||
<initialRandomSeed value="0"/>
|
||||
<defaultWidthX value="1000"/>
|
||||
<nominalWidthX value="107"/>
|
||||
<Subrs>
|
||||
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
|
||||
</Subrs>
|
||||
</Private>
|
||||
</FontDict>
|
||||
</FDArray>
|
||||
<CharStrings>
|
||||
<CharString name=".notdef" fdSelectIndex="0">
|
||||
endchar
|
||||
</CharString>
|
||||
</CharStrings>
|
||||
</CFFFont>
|
||||
|
||||
<GlobalSubrs>
|
||||
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
|
||||
</GlobalSubrs>
|
||||
</CFF>
|
||||
|
||||
</ttFont>
|
49
Lib/fontTools/subset/testdata/expect_no_notdef_outline_otf.ttx
vendored
Normal file
49
Lib/fontTools/subset/testdata/expect_no_notdef_outline_otf.ttx
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ttFont sfntVersion="OTTO" ttLibVersion="2.5">
|
||||
|
||||
<CFF>
|
||||
<CFFFont name="TestOTF-Regular">
|
||||
<version value="1.0"/>
|
||||
<FamilyName value="Test OTF"/>
|
||||
<isFixedPitch value="0"/>
|
||||
<ItalicAngle value="0"/>
|
||||
<UnderlineThickness value="50"/>
|
||||
<PaintType value="0"/>
|
||||
<CharstringType value="2"/>
|
||||
<FontMatrix value="0.001 0 0 0.001 0 0"/>
|
||||
<FontBBox value="0 0 486 660"/>
|
||||
<StrokeWidth value="0"/>
|
||||
<!-- charset is dumped separately as the 'GlyphOrder' element -->
|
||||
<Encoding name="StandardEncoding"/>
|
||||
<Private>
|
||||
<BlueValues value="-10 0 500 510"/>
|
||||
<BlueScale value="0.039625"/>
|
||||
<BlueShift value="7"/>
|
||||
<BlueFuzz value="1"/>
|
||||
<StdHW value="20"/>
|
||||
<StdVW value="20"/>
|
||||
<StemSnapH value="20"/>
|
||||
<StemSnapV value="20"/>
|
||||
<ForceBold value="0"/>
|
||||
<LanguageGroup value="0"/>
|
||||
<ExpansionFactor value="0.06"/>
|
||||
<initialRandomSeed value="0"/>
|
||||
<defaultWidthX value="500"/>
|
||||
<nominalWidthX value="300"/>
|
||||
<Subrs>
|
||||
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
|
||||
</Subrs>
|
||||
</Private>
|
||||
<CharStrings>
|
||||
<CharString name=".notdef">
|
||||
196 endchar
|
||||
</CharString>
|
||||
</CharStrings>
|
||||
</CFFFont>
|
||||
|
||||
<GlobalSubrs>
|
||||
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
|
||||
</GlobalSubrs>
|
||||
</CFF>
|
||||
|
||||
</ttFont>
|
17
Lib/fontTools/subset/testdata/expect_no_notdef_outline_ttf.ttx
vendored
Normal file
17
Lib/fontTools/subset/testdata/expect_no_notdef_outline_ttf.ttx
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="2.5">
|
||||
|
||||
<glyf>
|
||||
|
||||
<!-- The xMin, yMin, xMax and yMax values
|
||||
will be recalculated by the compiler. -->
|
||||
|
||||
<TTGlyph name=".notdef"/><!-- contains no outline data -->
|
||||
|
||||
</glyf>
|
||||
|
||||
<hmtx>
|
||||
<mtx name=".notdef" width="496" lsb="10"/>
|
||||
</hmtx>
|
||||
|
||||
</ttFont>
|
Loading…
x
Reference in New Issue
Block a user