[varLib] Always write tuple entries for composite glyphs (#1383)

* [varLib] Always write tuple entries for composite glyphs

Fixes https://github.com/fonttools/fonttools/issues/1381
Fixes https://github.com/googlei18n/fontmake/issues/481 partially

* Make sure at least one gvar delta is written for composites

* Add test data for composite fix

* Put in the correct issue link

* Typo

* Fix typos

* Expand comment, add link to issue

* Add ttx files for test font
This commit is contained in:
Behdad Esfahbod 2018-12-17 08:03:40 -05:00 committed by Jens Kutilek
parent 6e1e0b73f1
commit 9c3dde3ce6
46 changed files with 3468 additions and 3 deletions

View File

@ -291,8 +291,12 @@ def _add_gvar(font, masterModel, master_ttfs, tolerance=0.5, optimize=True):
gvar.reserved = 0
gvar.variations = {}
glyf = font['glyf']
for glyph in font.getGlyphOrder():
isComposite = glyf[glyph].isComposite()
allData = [_GetCoordinates(m, glyph) for m in master_ttfs]
model, allData = masterModel.getSubModel(allData)
@ -315,13 +319,23 @@ def _add_gvar(font, masterModel, master_ttfs, tolerance=0.5, optimize=True):
endPts = control[1] if control[0] >= 1 else list(range(len(control[1])))
for i,(delta,support) in enumerate(zip(deltas[1:], supports[1:])):
if all(abs(v) <= tolerance for v in delta.array):
if all(abs(v) <= tolerance for v in delta.array) and not isComposite:
continue
var = TupleVariation(support, delta)
if optimize:
delta_opt = iup_delta_optimize(delta, origCoords, endPts, tolerance=tolerance)
if None in delta_opt:
"""In composite glyphs, there should be one 0 entry
to make sure the gvar entry is written to the font.
This is to work around an issue with macOS 10.14 and can be
removed once the behaviour of macOS is changed.
https://github.com/fonttools/fonttools/issues/1381
"""
if all(d is None for d in delta_opt):
delta_opt = [(0, 0)] + [None] * (len(delta_opt) - 1)
# Use "optimized" version only if smaller...
var_opt = TupleVariation(support, delta_opt)

View File

@ -0,0 +1,22 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="4.0">
<axes>
<axis tag="slnt" name="Slant" minimum="-15" maximum="0" default="0"/>
</axes>
<sources>
<source filename="master_ufo/TestFamily4-Regular.ufo" name="master_0" familyname="Test Family 4" stylename="Regular">
<lib copy="1"/>
<groups copy="1"/>
<features copy="1"/>
<info copy="1"/>
<location>
<dimension name="Slant" xvalue="0"/>
</location>
</source>
<source filename="master_ufo/TestFamily4-Italic15.ufo" name="master_1" familyname="Test Family 4" stylename="Italic">
<location>
<dimension name="Slant" xvalue="-15"/>
</location>
</source>
</sources>
</designspace>

View File

@ -0,0 +1,662 @@
<?xml version="1.0" encoding="UTF-8"?>
<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="3.34">
<GlyphOrder>
<!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
<GlyphID id="0" name=".notdef"/>
<GlyphID id="1" name="N"/>
<GlyphID id="2" name="O"/>
<GlyphID id="3" name="Odieresis"/>
<GlyphID id="4" name="n"/>
<GlyphID id="5" name="o"/>
<GlyphID id="6" name="odieresis"/>
<GlyphID id="7" name="uni0308"/>
</GlyphOrder>
<head>
<!-- Most of this table will be recalculated by the compiler -->
<tableVersion value="1.0"/>
<fontRevision value="1.0"/>
<checkSumAdjustment value="0xc48e411d"/>
<magicNumber value="0x5f0f3cf5"/>
<flags value="00000000 00000011"/>
<unitsPerEm value="750"/>
<created value="Sat Oct 21 13:31:38 2017"/>
<modified value="Mon Dec 17 12:42:07 2018"/>
<xMin value="6"/>
<yMin value="-150"/>
<xMax value="436"/>
<yMax value="650"/>
<macStyle value="00000000 00000010"/>
<lowestRecPPEM value="6"/>
<fontDirectionHint value="2"/>
<indexToLocFormat value="0"/>
<glyphDataFormat value="0"/>
</head>
<hhea>
<tableVersion value="0x00010000"/>
<ascent value="750"/>
<descent value="-150"/>
<lineGap value="0"/>
<advanceWidthMax value="408"/>
<minLeftSideBearing value="6"/>
<minRightSideBearing value="-333"/>
<xMaxExtent value="436"/>
<caretSlopeRise value="1000"/>
<caretSlopeRun value="268"/>
<caretOffset value="0"/>
<reserved0 value="0"/>
<reserved1 value="0"/>
<reserved2 value="0"/>
<reserved3 value="0"/>
<metricDataFormat value="0"/>
<numberOfHMetrics value="8"/>
</hhea>
<maxp>
<!-- Most of this table will be recalculated by the compiler -->
<tableVersion value="0x10000"/>
<numGlyphs value="8"/>
<maxPoints value="36"/>
<maxContours value="2"/>
<maxCompositePoints value="64"/>
<maxCompositeContours value="4"/>
<maxZones value="1"/>
<maxTwilightPoints value="0"/>
<maxStorage value="0"/>
<maxFunctionDefs value="0"/>
<maxInstructionDefs value="0"/>
<maxStackElements value="0"/>
<maxSizeOfInstructions value="0"/>
<maxComponentElements value="2"/>
<maxComponentDepth value="1"/>
</maxp>
<OS_2>
<!-- The fields 'usFirstCharIndex' and 'usLastCharIndex'
will be recalculated by the compiler -->
<version value="4"/>
<xAvgCharWidth value="375"/>
<usWeightClass value="400"/>
<usWidthClass value="5"/>
<fsType value="00000000 00001000"/>
<ySubscriptXSize value="488"/>
<ySubscriptYSize value="450"/>
<ySubscriptXOffset value="-15"/>
<ySubscriptYOffset value="56"/>
<ySuperscriptXSize value="488"/>
<ySuperscriptYSize value="450"/>
<ySuperscriptXOffset value="70"/>
<ySuperscriptYOffset value="263"/>
<yStrikeoutSize value="50"/>
<yStrikeoutPosition value="210"/>
<sFamilyClass value="0"/>
<panose>
<bFamilyType value="0"/>
<bSerifStyle value="0"/>
<bWeight value="0"/>
<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 01000011"/>
<ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/>
<ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/>
<ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/>
<achVendID value="jens"/>
<fsSelection value="00000000 00000001"/>
<usFirstCharIndex value="78"/>
<usLastCharIndex value="776"/>
<sTypoAscender value="600"/>
<sTypoDescender value="-150"/>
<sTypoLineGap value="150"/>
<usWinAscent value="700"/>
<usWinDescent value="250"/>
<ulCodePageRange1 value="00000000 00000000 00000000 00000001"/>
<ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
<sxHeight value="350"/>
<sCapHeight value="500"/>
<usDefaultChar value="0"/>
<usBreakChar value="32"/>
<usMaxContext value="1"/>
</OS_2>
<hmtx>
<mtx name=".notdef" width="375" lsb="38"/>
<mtx name="N" width="408" lsb="11"/>
<mtx name="O" width="404" lsb="33"/>
<mtx name="Odieresis" width="404" lsb="33"/>
<mtx name="n" width="348" lsb="6"/>
<mtx name="o" width="342" lsb="22"/>
<mtx name="odieresis" width="342" lsb="22"/>
<mtx name="uni0308" width="0" lsb="123"/>
</hmtx>
<cmap>
<tableVersion version="0"/>
<cmap_format_4 platformID="0" platEncID="3" language="0">
<map code="0x4e" name="N"/><!-- LATIN CAPITAL LETTER N -->
<map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O -->
<map code="0x6e" name="n"/><!-- LATIN SMALL LETTER N -->
<map code="0x6f" name="o"/><!-- LATIN SMALL LETTER O -->
<map code="0xd6" name="Odieresis"/><!-- LATIN CAPITAL LETTER O WITH DIAERESIS -->
<map code="0xf6" name="odieresis"/><!-- LATIN SMALL LETTER O WITH DIAERESIS -->
<map code="0x308" name="uni0308"/><!-- COMBINING DIAERESIS -->
</cmap_format_4>
<cmap_format_4 platformID="3" platEncID="1" language="0">
<map code="0x4e" name="N"/><!-- LATIN CAPITAL LETTER N -->
<map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O -->
<map code="0x6e" name="n"/><!-- LATIN SMALL LETTER N -->
<map code="0x6f" name="o"/><!-- LATIN SMALL LETTER O -->
<map code="0xd6" name="Odieresis"/><!-- LATIN CAPITAL LETTER O WITH DIAERESIS -->
<map code="0xf6" name="odieresis"/><!-- LATIN SMALL LETTER O WITH DIAERESIS -->
<map code="0x308" name="uni0308"/><!-- COMBINING DIAERESIS -->
</cmap_format_4>
</cmap>
<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="38" yMin="-150" xMax="337" yMax="600">
<contour>
<pt x="38" y="-150" on="1"/>
<pt x="337" y="-150" on="1"/>
<pt x="337" y="600" on="1"/>
<pt x="38" y="600" on="1"/>
</contour>
<contour>
<pt x="76" y="-112" on="1"/>
<pt x="76" y="562" on="1"/>
<pt x="299" y="562" on="1"/>
<pt x="299" y="-112" on="1"/>
</contour>
<instructions/>
</TTGlyph>
<TTGlyph name="N" xMin="11" yMin="-4" xMax="436" yMax="504">
<contour>
<pt x="38" y="-4" on="1"/>
<pt x="26" y="-4" on="0"/>
<pt x="11" y="16" on="0"/>
<pt x="14" y="28" on="1"/>
<pt x="136" y="486" on="1"/>
<pt x="138" y="495" on="0"/>
<pt x="152" y="504" on="0"/>
<pt x="159" y="504" on="1"/>
<pt x="167" y="504" on="0"/>
<pt x="182" y="495" on="0"/>
<pt x="184" y="486" on="1"/>
<pt x="287" y="116" on="1"/>
<pt x="386" y="485" on="1"/>
<pt x="388" y="493" on="0"/>
<pt x="401" y="504" on="0"/>
<pt x="410" y="504" on="1"/>
<pt x="425" y="504" on="0"/>
<pt x="436" y="480" on="0"/>
<pt x="434" y="472" on="1"/>
<pt x="312" y="14" on="1"/>
<pt x="310" y="5" on="0"/>
<pt x="296" y="-4" on="0"/>
<pt x="288" y="-4" on="1"/>
<pt x="281" y="-4" on="0"/>
<pt x="266" y="5" on="0"/>
<pt x="264" y="14" on="1"/>
<pt x="161" y="384" on="1"/>
<pt x="62" y="15" on="1"/>
<pt x="60" y="7" on="0"/>
<pt x="47" y="-4" on="0"/>
</contour>
<instructions/>
</TTGlyph>
<TTGlyph name="O" xMin="33" yMin="-10" xMax="412" yMax="510">
<contour>
<pt x="159" y="-10" on="1"/>
<pt x="116" y="-10" on="0"/>
<pt x="57" y="33" on="0"/>
<pt x="33" y="105" on="0"/>
<pt x="44" y="146" on="1"/>
<pt x="103" y="366" on="1"/>
<pt x="114" y="406" on="0"/>
<pt x="169" y="471" on="0"/>
<pt x="245" y="510" on="0"/>
<pt x="285" y="510" on="1"/>
<pt x="328" y="510" on="0"/>
<pt x="388" y="467" on="0"/>
<pt x="412" y="396" on="0"/>
<pt x="401" y="354" on="1"/>
<pt x="342" y="133" on="1"/>
<pt x="332" y="94" on="0"/>
<pt x="275" y="29" on="0"/>
<pt x="199" y="-10" on="0"/>
</contour>
<contour>
<pt x="159" y="40" on="1"/>
<pt x="188" y="40" on="0"/>
<pt x="244" y="69" on="0"/>
<pt x="286" y="117" on="0"/>
<pt x="294" y="146" on="1"/>
<pt x="353" y="366" on="1"/>
<pt x="360" y="393" on="0"/>
<pt x="347" y="435" on="0"/>
<pt x="312" y="460" on="0"/>
<pt x="285" y="460" on="1"/>
<pt x="256" y="460" on="0"/>
<pt x="200" y="431" on="0"/>
<pt x="159" y="383" on="0"/>
<pt x="151" y="354" on="1"/>
<pt x="92" y="133" on="1"/>
<pt x="85" y="107" on="0"/>
<pt x="98" y="65" on="0"/>
<pt x="133" y="40" on="0"/>
</contour>
<instructions/>
</TTGlyph>
<TTGlyph name="Odieresis" xMin="33" yMin="-10" xMax="425" yMax="650">
<component glyphName="O" x="0" y="0" flags="0x204"/>
<component glyphName="uni0308" x="92" y="150" flags="0x4"/>
</TTGlyph>
<TTGlyph name="n" xMin="6" yMin="-4" xMax="327" yMax="350">
<contour>
<pt x="34" y="-4" on="1"/>
<pt x="22" y="-4" on="0"/>
<pt x="6" y="15" on="0"/>
<pt x="10" y="28" on="1"/>
<pt x="90" y="329" on="1"/>
<pt x="96" y="350" on="0"/>
<pt x="118" y="350" on="1"/>
<pt x="238" y="350" on="1"/>
<pt x="269" y="350" on="0"/>
<pt x="311" y="321" on="0"/>
<pt x="327" y="272" on="0"/>
<pt x="319" y="242" on="1"/>
<pt x="258" y="15" on="1"/>
<pt x="256" y="6" on="0"/>
<pt x="243" y="-4" on="0"/>
<pt x="234" y="-4" on="1"/>
<pt x="222" y="-4" on="0"/>
<pt x="206" y="15" on="0"/>
<pt x="210" y="28" on="1"/>
<pt x="271" y="255" on="1"/>
<pt x="276" y="275" on="0"/>
<pt x="259" y="300" on="0"/>
<pt x="238" y="300" on="1"/>
<pt x="134" y="300" on="1"/>
<pt x="58" y="15" on="1"/>
<pt x="56" y="7" on="0"/>
<pt x="43" y="-4" on="0"/>
</contour>
<instructions/>
</TTGlyph>
<TTGlyph name="o" xMin="22" yMin="-10" xMax="322" yMax="360">
<contour>
<pt x="129" y="-10" on="1"/>
<pt x="91" y="-10" on="0"/>
<pt x="40" y="25" on="0"/>
<pt x="22" y="86" on="0"/>
<pt x="32" y="124" on="1"/>
<pt x="64" y="240" on="1"/>
<pt x="74" y="276" on="0"/>
<pt x="119" y="330" on="0"/>
<pt x="180" y="360" on="0"/>
<pt x="215" y="360" on="1"/>
<pt x="253" y="360" on="0"/>
<pt x="304" y="325" on="0"/>
<pt x="323" y="265" on="0"/>
<pt x="312" y="226" on="1"/>
<pt x="280" y="110" on="1"/>
<pt x="270" y="75" on="0"/>
<pt x="225" y="20" on="0"/>
<pt x="164" y="-10" on="0"/>
</contour>
<contour>
<pt x="129" y="40" on="1"/>
<pt x="165" y="40" on="0"/>
<pt x="222" y="86" on="0"/>
<pt x="232" y="124" on="1"/>
<pt x="264" y="240" on="1"/>
<pt x="273" y="273" on="0"/>
<pt x="247" y="310" on="0"/>
<pt x="215" y="310" on="1"/>
<pt x="179" y="310" on="0"/>
<pt x="123" y="264" on="0"/>
<pt x="112" y="226" on="1"/>
<pt x="80" y="110" on="1"/>
<pt x="71" y="77" on="0"/>
<pt x="97" y="40" on="0"/>
</contour>
<instructions/>
</TTGlyph>
<TTGlyph name="odieresis" xMin="22" yMin="-10" xMax="354" yMax="500">
<component glyphName="o" x="0" y="0" flags="0x204"/>
<component glyphName="uni0308" x="21" y="0" flags="0x4"/>
</TTGlyph>
<TTGlyph name="uni0308" xMin="123" yMin="425" xMax="333" yMax="500">
<contour>
<pt x="300" y="425" on="1"/>
<pt x="288" y="425" on="0"/>
<pt x="273" y="445" on="0"/>
<pt x="276" y="456" on="1"/>
<pt x="282" y="480" on="1"/>
<pt x="284" y="489" on="0"/>
<pt x="297" y="500" on="0"/>
<pt x="306" y="500" on="1"/>
<pt x="318" y="500" on="0"/>
<pt x="333" y="480" on="0"/>
<pt x="330" y="469" on="1"/>
<pt x="324" y="445" on="1"/>
<pt x="322" y="436" on="0"/>
<pt x="309" y="425" on="0"/>
</contour>
<contour>
<pt x="150" y="425" on="1"/>
<pt x="138" y="425" on="0"/>
<pt x="123" y="445" on="0"/>
<pt x="126" y="456" on="1"/>
<pt x="132" y="480" on="1"/>
<pt x="134" y="489" on="0"/>
<pt x="147" y="500" on="0"/>
<pt x="156" y="500" on="1"/>
<pt x="168" y="500" on="0"/>
<pt x="183" y="480" on="0"/>
<pt x="180" y="469" on="1"/>
<pt x="174" y="445" on="1"/>
<pt x="172" y="436" on="0"/>
<pt x="159" y="425" on="0"/>
</contour>
<instructions/>
</TTGlyph>
</glyf>
<name>
<namerecord nameID="0" platformID="3" platEncID="1" langID="0x409">
Copyright 2017 by Jens Kutilek
</namerecord>
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
Test Family 4 15
</namerecord>
<namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
Italic
</namerecord>
<namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
1.000;jens;TestFamily4-Italic15
</namerecord>
<namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
Test Family 4 Italic 15
</namerecord>
<namerecord nameID="5" platformID="3" platEncID="1" langID="0x409">
Version 1.000
</namerecord>
<namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
TestFamily4-Italic15
</namerecord>
<namerecord nameID="8" platformID="3" platEncID="1" langID="0x409">
Jens Kutilek
</namerecord>
<namerecord nameID="9" platformID="3" platEncID="1" langID="0x409">
Jens Kutilek after the ISO 3098 standard
</namerecord>
<namerecord nameID="11" platformID="3" platEncID="1" langID="0x409">
https://www.kutilek.de/
</namerecord>
<namerecord nameID="12" platformID="3" platEncID="1" langID="0x409">
https://www.kutilek.de/
</namerecord>
<namerecord nameID="16" platformID="3" platEncID="1" langID="0x409">
Test Family 4
</namerecord>
<namerecord nameID="17" platformID="3" platEncID="1" langID="0x409">
Italic 15
</namerecord>
</name>
<post>
<formatType value="2.0"/>
<italicAngle value="-15.0"/>
<underlinePosition value="-100"/>
<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 -->
<psName name="dieresiscomb"/>
<psName name="uni0308"/>
</extraNames>
</post>
<GDEF>
<Version value="0x00010002"/>
<GlyphClassDef Format="2">
<ClassDef glyph="N" class="1"/>
<ClassDef glyph="O" class="1"/>
<ClassDef glyph="Odieresis" class="1"/>
<ClassDef glyph="n" class="1"/>
<ClassDef glyph="o" class="1"/>
<ClassDef glyph="odieresis" class="1"/>
<ClassDef glyph="uni0308" class="3"/>
</GlyphClassDef>
<MarkGlyphSetsDef>
<MarkSetTableFormat value="1"/>
<!-- MarkSetCount=1 -->
<Coverage index="0" Format="1">
<Glyph value="uni0308"/>
</Coverage>
</MarkGlyphSetsDef>
</GDEF>
<GPOS>
<Version value="0x00010000"/>
<ScriptList>
<!-- ScriptCount=2 -->
<ScriptRecord index="0">
<ScriptTag value="DFLT"/>
<Script>
<DefaultLangSys>
<ReqFeatureIndex value="65535"/>
<!-- FeatureCount=3 -->
<FeatureIndex index="0" value="0"/>
<FeatureIndex index="1" value="1"/>
<FeatureIndex index="2" value="2"/>
</DefaultLangSys>
<!-- LangSysCount=0 -->
</Script>
</ScriptRecord>
<ScriptRecord index="1">
<ScriptTag value="latn"/>
<Script>
<DefaultLangSys>
<ReqFeatureIndex value="65535"/>
<!-- FeatureCount=3 -->
<FeatureIndex index="0" value="0"/>
<FeatureIndex index="1" value="1"/>
<FeatureIndex index="2" value="2"/>
</DefaultLangSys>
<!-- LangSysCount=1 -->
<LangSysRecord index="0">
<LangSysTag value="NLD "/>
<LangSys>
<ReqFeatureIndex value="65535"/>
<!-- FeatureCount=3 -->
<FeatureIndex index="0" value="0"/>
<FeatureIndex index="1" value="1"/>
<FeatureIndex index="2" value="2"/>
</LangSys>
</LangSysRecord>
</Script>
</ScriptRecord>
</ScriptList>
<FeatureList>
<!-- FeatureCount=3 -->
<FeatureRecord index="0">
<FeatureTag value="cpsp"/>
<Feature>
<!-- LookupCount=1 -->
<LookupListIndex index="0" value="0"/>
</Feature>
</FeatureRecord>
<FeatureRecord index="1">
<FeatureTag value="mark"/>
<Feature>
<!-- LookupCount=1 -->
<LookupListIndex index="0" value="1"/>
</Feature>
</FeatureRecord>
<FeatureRecord index="2">
<FeatureTag value="mkmk"/>
<Feature>
<!-- LookupCount=1 -->
<LookupListIndex index="0" value="2"/>
</Feature>
</FeatureRecord>
</FeatureList>
<LookupList>
<!-- LookupCount=3 -->
<Lookup index="0">
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<SinglePos index="0" Format="1">
<Coverage Format="1">
<Glyph value="N"/>
<Glyph value="O"/>
<Glyph value="Odieresis"/>
</Coverage>
<ValueFormat value="5"/>
<Value XPlacement="25" XAdvance="50"/>
</SinglePos>
</Lookup>
<Lookup index="1">
<LookupType value="4"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<MarkBasePos index="0" Format="1">
<MarkCoverage Format="1">
<Glyph value="uni0308"/>
</MarkCoverage>
<BaseCoverage Format="2">
<Glyph value="N"/>
<Glyph value="O"/>
<Glyph value="Odieresis"/>
<Glyph value="n"/>
<Glyph value="o"/>
<Glyph value="odieresis"/>
</BaseCoverage>
<!-- ClassCount=1 -->
<MarkArray>
<!-- MarkCount=1 -->
<MarkRecord index="0">
<Class value="0"/>
<MarkAnchor Format="1">
<XCoordinate value="197"/>
<YCoordinate value="350"/>
</MarkAnchor>
</MarkRecord>
</MarkArray>
<BaseArray>
<!-- BaseCount=6 -->
<BaseRecord index="0">
<BaseAnchor index="0" Format="1">
<XCoordinate value="291"/>
<YCoordinate value="500"/>
</BaseAnchor>
</BaseRecord>
<BaseRecord index="1">
<BaseAnchor index="0" Format="1">
<XCoordinate value="289"/>
<YCoordinate value="500"/>
</BaseAnchor>
</BaseRecord>
<BaseRecord index="2">
<BaseAnchor index="0" Format="1">
<XCoordinate value="322"/>
<YCoordinate value="625"/>
</BaseAnchor>
</BaseRecord>
<BaseRecord index="3">
<BaseAnchor index="0" Format="1">
<XCoordinate value="222"/>
<YCoordinate value="350"/>
</BaseAnchor>
</BaseRecord>
<BaseRecord index="4">
<BaseAnchor index="0" Format="1">
<XCoordinate value="218"/>
<YCoordinate value="350"/>
</BaseAnchor>
</BaseRecord>
<BaseRecord index="5">
<BaseAnchor index="0" Format="1">
<XCoordinate value="251"/>
<YCoordinate value="475"/>
</BaseAnchor>
</BaseRecord>
</BaseArray>
</MarkBasePos>
</Lookup>
<Lookup index="2">
<LookupType value="6"/>
<LookupFlag value="16"/>
<!-- SubTableCount=1 -->
<MarkMarkPos index="0" Format="1">
<Mark1Coverage Format="1">
<Glyph value="uni0308"/>
</Mark1Coverage>
<Mark2Coverage Format="1">
<Glyph value="uni0308"/>
</Mark2Coverage>
<!-- ClassCount=1 -->
<Mark1Array>
<!-- MarkCount=1 -->
<MarkRecord index="0">
<Class value="0"/>
<MarkAnchor Format="1">
<XCoordinate value="197"/>
<YCoordinate value="350"/>
</MarkAnchor>
</MarkRecord>
</Mark1Array>
<Mark2Array>
<!-- Mark2Count=1 -->
<Mark2Record index="0">
<Mark2Anchor index="0" Format="1">
<XCoordinate value="230"/>
<YCoordinate value="475"/>
</Mark2Anchor>
</Mark2Record>
</Mark2Array>
</MarkMarkPos>
<MarkFilteringSet value="0"/>
</Lookup>
</LookupList>
</GPOS>
</ttFont>

View File

@ -0,0 +1,656 @@
<?xml version="1.0" encoding="UTF-8"?>
<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="3.34">
<GlyphOrder>
<!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
<GlyphID id="0" name=".notdef"/>
<GlyphID id="1" name="N"/>
<GlyphID id="2" name="O"/>
<GlyphID id="3" name="Odieresis"/>
<GlyphID id="4" name="n"/>
<GlyphID id="5" name="o"/>
<GlyphID id="6" name="odieresis"/>
<GlyphID id="7" name="uni0308"/>
</GlyphOrder>
<head>
<!-- Most of this table will be recalculated by the compiler -->
<tableVersion value="1.0"/>
<fontRevision value="1.0"/>
<checkSumAdjustment value="0x20783e4b"/>
<magicNumber value="0x5f0f3cf5"/>
<flags value="00000000 00000011"/>
<unitsPerEm value="750"/>
<created value="Sat Oct 21 13:31:38 2017"/>
<modified value="Mon Dec 17 12:42:07 2018"/>
<xMin value="38"/>
<yMin value="-150"/>
<xMax value="354"/>
<yMax value="650"/>
<macStyle value="00000000 00000000"/>
<lowestRecPPEM value="6"/>
<fontDirectionHint value="2"/>
<indexToLocFormat value="0"/>
<glyphDataFormat value="0"/>
</head>
<hhea>
<tableVersion value="0x00010000"/>
<ascent value="750"/>
<descent value="-150"/>
<lineGap value="0"/>
<advanceWidthMax value="408"/>
<minLeftSideBearing value="38"/>
<minRightSideBearing value="-250"/>
<xMaxExtent value="354"/>
<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="8"/>
</hhea>
<maxp>
<!-- Most of this table will be recalculated by the compiler -->
<tableVersion value="0x10000"/>
<numGlyphs value="8"/>
<maxPoints value="36"/>
<maxContours value="2"/>
<maxCompositePoints value="64"/>
<maxCompositeContours value="4"/>
<maxZones value="1"/>
<maxTwilightPoints value="0"/>
<maxStorage value="0"/>
<maxFunctionDefs value="0"/>
<maxInstructionDefs value="0"/>
<maxStackElements value="0"/>
<maxSizeOfInstructions value="0"/>
<maxComponentElements value="2"/>
<maxComponentDepth value="1"/>
</maxp>
<OS_2>
<!-- The fields 'usFirstCharIndex' and 'usLastCharIndex'
will be recalculated by the compiler -->
<version value="4"/>
<xAvgCharWidth value="375"/>
<usWeightClass value="400"/>
<usWidthClass value="5"/>
<fsType value="00000000 00001000"/>
<ySubscriptXSize value="488"/>
<ySubscriptYSize value="450"/>
<ySubscriptXOffset value="0"/>
<ySubscriptYOffset value="56"/>
<ySuperscriptXSize value="488"/>
<ySuperscriptYSize value="450"/>
<ySuperscriptXOffset value="0"/>
<ySuperscriptYOffset value="263"/>
<yStrikeoutSize value="50"/>
<yStrikeoutPosition value="210"/>
<sFamilyClass value="0"/>
<panose>
<bFamilyType value="0"/>
<bSerifStyle value="0"/>
<bWeight value="0"/>
<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 01000011"/>
<ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/>
<ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/>
<ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/>
<achVendID value="jens"/>
<fsSelection value="00000000 01000000"/>
<usFirstCharIndex value="78"/>
<usLastCharIndex value="776"/>
<sTypoAscender value="600"/>
<sTypoDescender value="-150"/>
<sTypoLineGap value="150"/>
<usWinAscent value="700"/>
<usWinDescent value="250"/>
<ulCodePageRange1 value="00000000 00000000 00000000 00000001"/>
<ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
<sxHeight value="350"/>
<sCapHeight value="500"/>
<usDefaultChar value="0"/>
<usBreakChar value="32"/>
<usMaxContext value="1"/>
</OS_2>
<hmtx>
<mtx name=".notdef" width="375" lsb="38"/>
<mtx name="N" width="408" lsb="54"/>
<mtx name="O" width="404" lsb="52"/>
<mtx name="Odieresis" width="404" lsb="52"/>
<mtx name="n" width="348" lsb="50"/>
<mtx name="o" width="342" lsb="46"/>
<mtx name="odieresis" width="342" lsb="46"/>
<mtx name="uni0308" width="0" lsb="50"/>
</hmtx>
<cmap>
<tableVersion version="0"/>
<cmap_format_4 platformID="0" platEncID="3" language="0">
<map code="0x4e" name="N"/><!-- LATIN CAPITAL LETTER N -->
<map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O -->
<map code="0x6e" name="n"/><!-- LATIN SMALL LETTER N -->
<map code="0x6f" name="o"/><!-- LATIN SMALL LETTER O -->
<map code="0xd6" name="Odieresis"/><!-- LATIN CAPITAL LETTER O WITH DIAERESIS -->
<map code="0xf6" name="odieresis"/><!-- LATIN SMALL LETTER O WITH DIAERESIS -->
<map code="0x308" name="uni0308"/><!-- COMBINING DIAERESIS -->
</cmap_format_4>
<cmap_format_4 platformID="3" platEncID="1" language="0">
<map code="0x4e" name="N"/><!-- LATIN CAPITAL LETTER N -->
<map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O -->
<map code="0x6e" name="n"/><!-- LATIN SMALL LETTER N -->
<map code="0x6f" name="o"/><!-- LATIN SMALL LETTER O -->
<map code="0xd6" name="Odieresis"/><!-- LATIN CAPITAL LETTER O WITH DIAERESIS -->
<map code="0xf6" name="odieresis"/><!-- LATIN SMALL LETTER O WITH DIAERESIS -->
<map code="0x308" name="uni0308"/><!-- COMBINING DIAERESIS -->
</cmap_format_4>
</cmap>
<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="38" yMin="-150" xMax="337" yMax="600">
<contour>
<pt x="38" y="-150" on="1"/>
<pt x="337" y="-150" on="1"/>
<pt x="337" y="600" on="1"/>
<pt x="38" y="600" on="1"/>
</contour>
<contour>
<pt x="76" y="-112" on="1"/>
<pt x="76" y="562" on="1"/>
<pt x="299" y="562" on="1"/>
<pt x="299" y="-112" on="1"/>
</contour>
<instructions/>
</TTGlyph>
<TTGlyph name="N" xMin="54" yMin="-4" xMax="354" yMax="504">
<contour>
<pt x="79" y="-4" on="1"/>
<pt x="69" y="-4" on="0"/>
<pt x="54" y="11" on="0"/>
<pt x="54" y="21" on="1"/>
<pt x="54" y="479" on="1"/>
<pt x="54" y="490" on="0"/>
<pt x="69" y="504" on="0"/>
<pt x="79" y="504" on="1"/>
<pt x="88" y="504" on="0"/>
<pt x="98" y="496" on="0"/>
<pt x="101" y="491" on="1"/>
<pt x="304" y="119" on="1"/>
<pt x="304" y="479" on="1"/>
<pt x="304" y="490" on="0"/>
<pt x="319" y="504" on="0"/>
<pt x="329" y="504" on="1"/>
<pt x="340" y="504" on="0"/>
<pt x="354" y="490" on="0"/>
<pt x="354" y="479" on="1"/>
<pt x="354" y="21" on="1"/>
<pt x="354" y="11" on="0"/>
<pt x="340" y="-4" on="0"/>
<pt x="329" y="-4" on="1"/>
<pt x="320" y="-4" on="0"/>
<pt x="310" y="4" on="0"/>
<pt x="307" y="9" on="1"/>
<pt x="104" y="381" on="1"/>
<pt x="104" y="21" on="1"/>
<pt x="104" y="11" on="0"/>
<pt x="90" y="-4" on="0"/>
</contour>
<instructions/>
</TTGlyph>
<TTGlyph name="O" xMin="52" yMin="-10" xMax="352" yMax="510">
<contour>
<pt x="202" y="-10" on="1"/>
<pt x="161" y="-10" on="0"/>
<pt x="93" y="31" on="0"/>
<pt x="52" y="99" on="0"/>
<pt x="52" y="140" on="1"/>
<pt x="52" y="360" on="1"/>
<pt x="52" y="401" on="0"/>
<pt x="93" y="469" on="0"/>
<pt x="161" y="510" on="0"/>
<pt x="202" y="510" on="1"/>
<pt x="243" y="510" on="0"/>
<pt x="311" y="469" on="0"/>
<pt x="352" y="401" on="0"/>
<pt x="352" y="360" on="1"/>
<pt x="352" y="140" on="1"/>
<pt x="352" y="99" on="0"/>
<pt x="311" y="31" on="0"/>
<pt x="243" y="-10" on="0"/>
</contour>
<contour>
<pt x="202" y="40" on="1"/>
<pt x="230" y="40" on="0"/>
<pt x="275" y="67" on="0"/>
<pt x="302" y="113" on="0"/>
<pt x="302" y="140" on="1"/>
<pt x="302" y="360" on="1"/>
<pt x="302" y="388" on="0"/>
<pt x="275" y="433" on="0"/>
<pt x="230" y="460" on="0"/>
<pt x="202" y="460" on="1"/>
<pt x="175" y="460" on="0"/>
<pt x="129" y="433" on="0"/>
<pt x="102" y="388" on="0"/>
<pt x="102" y="360" on="1"/>
<pt x="102" y="140" on="1"/>
<pt x="102" y="113" on="0"/>
<pt x="129" y="67" on="0"/>
<pt x="175" y="40" on="0"/>
</contour>
<instructions/>
</TTGlyph>
<TTGlyph name="Odieresis" xMin="52" yMin="-10" xMax="352" yMax="650">
<component glyphName="O" x="0" y="0" flags="0x204"/>
<component glyphName="uni0308" x="52" y="150" flags="0x4"/>
</TTGlyph>
<TTGlyph name="n" xMin="50" yMin="-4" xMax="300" yMax="350">
<contour>
<pt x="75" y="-4" on="1"/>
<pt x="65" y="-4" on="0"/>
<pt x="50" y="11" on="0"/>
<pt x="50" y="21" on="1"/>
<pt x="50" y="325" on="1"/>
<pt x="50" y="350" on="0"/>
<pt x="75" y="350" on="1"/>
<pt x="198" y="350" on="1"/>
<pt x="228" y="350" on="0"/>
<pt x="274" y="324" on="0"/>
<pt x="300" y="278" on="0"/>
<pt x="300" y="248" on="1"/>
<pt x="300" y="21" on="1"/>
<pt x="300" y="11" on="0"/>
<pt x="286" y="-4" on="0"/>
<pt x="275" y="-4" on="1"/>
<pt x="265" y="-4" on="0"/>
<pt x="250" y="11" on="0"/>
<pt x="250" y="21" on="1"/>
<pt x="250" y="248" on="1"/>
<pt x="250" y="271" on="0"/>
<pt x="221" y="300" on="0"/>
<pt x="198" y="300" on="1"/>
<pt x="100" y="300" on="1"/>
<pt x="100" y="21" on="1"/>
<pt x="100" y="11" on="0"/>
<pt x="86" y="-4" on="0"/>
</contour>
<instructions/>
</TTGlyph>
<TTGlyph name="o" xMin="46" yMin="-10" xMax="296" yMax="360">
<contour>
<pt x="171" y="-10" on="1"/>
<pt x="135" y="-10" on="0"/>
<pt x="78" y="23" on="0"/>
<pt x="46" y="80" on="0"/>
<pt x="46" y="117" on="1"/>
<pt x="46" y="233" on="1"/>
<pt x="46" y="270" on="0"/>
<pt x="78" y="327" on="0"/>
<pt x="135" y="360" on="0"/>
<pt x="171" y="360" on="1"/>
<pt x="208" y="360" on="0"/>
<pt x="264" y="327" on="0"/>
<pt x="296" y="270" on="0"/>
<pt x="296" y="233" on="1"/>
<pt x="296" y="117" on="1"/>
<pt x="296" y="80" on="0"/>
<pt x="264" y="23" on="0"/>
<pt x="208" y="-10" on="0"/>
</contour>
<contour>
<pt x="171" y="40" on="1"/>
<pt x="205" y="40" on="0"/>
<pt x="246" y="82" on="0"/>
<pt x="246" y="117" on="1"/>
<pt x="246" y="233" on="1"/>
<pt x="246" y="268" on="0"/>
<pt x="205" y="310" on="0"/>
<pt x="171" y="310" on="1"/>
<pt x="137" y="310" on="0"/>
<pt x="96" y="268" on="0"/>
<pt x="96" y="233" on="1"/>
<pt x="96" y="117" on="1"/>
<pt x="96" y="82" on="0"/>
<pt x="137" y="40" on="0"/>
</contour>
<instructions/>
</TTGlyph>
<TTGlyph name="odieresis" xMin="46" yMin="-10" xMax="296" yMax="500">
<component glyphName="o" x="0" y="0" flags="0x204"/>
<component glyphName="uni0308" x="21" y="0" flags="0x4"/>
</TTGlyph>
<TTGlyph name="uni0308" xMin="50" yMin="425" xMax="250" yMax="500">
<contour>
<pt x="225" y="425" on="1"/>
<pt x="215" y="425" on="0"/>
<pt x="200" y="440" on="0"/>
<pt x="200" y="450" on="1"/>
<pt x="200" y="475" on="1"/>
<pt x="200" y="486" on="0"/>
<pt x="215" y="500" on="0"/>
<pt x="225" y="500" on="1"/>
<pt x="236" y="500" on="0"/>
<pt x="250" y="486" on="0"/>
<pt x="250" y="475" on="1"/>
<pt x="250" y="450" on="1"/>
<pt x="250" y="440" on="0"/>
<pt x="236" y="425" on="0"/>
</contour>
<contour>
<pt x="75" y="425" on="1"/>
<pt x="65" y="425" on="0"/>
<pt x="50" y="440" on="0"/>
<pt x="50" y="450" on="1"/>
<pt x="50" y="475" on="1"/>
<pt x="50" y="486" on="0"/>
<pt x="65" y="500" on="0"/>
<pt x="75" y="500" on="1"/>
<pt x="86" y="500" on="0"/>
<pt x="100" y="486" on="0"/>
<pt x="100" y="475" on="1"/>
<pt x="100" y="450" on="1"/>
<pt x="100" y="440" on="0"/>
<pt x="86" y="425" on="0"/>
</contour>
<instructions/>
</TTGlyph>
</glyf>
<name>
<namerecord nameID="0" platformID="3" platEncID="1" langID="0x409">
Copyright 2017 by Jens Kutilek
</namerecord>
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
Test Family 4
</namerecord>
<namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
Regular
</namerecord>
<namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
1.000;jens;TestFamily4-Regular
</namerecord>
<namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
Test Family 4 Regular
</namerecord>
<namerecord nameID="5" platformID="3" platEncID="1" langID="0x409">
Version 1.000
</namerecord>
<namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
TestFamily4-Regular
</namerecord>
<namerecord nameID="8" platformID="3" platEncID="1" langID="0x409">
Jens Kutilek
</namerecord>
<namerecord nameID="9" platformID="3" platEncID="1" langID="0x409">
Jens Kutilek after the ISO 3098 standard
</namerecord>
<namerecord nameID="11" platformID="3" platEncID="1" langID="0x409">
https://www.kutilek.de/
</namerecord>
<namerecord nameID="12" platformID="3" platEncID="1" langID="0x409">
https://www.kutilek.de/
</namerecord>
</name>
<post>
<formatType value="2.0"/>
<italicAngle value="0.0"/>
<underlinePosition value="-100"/>
<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 -->
<psName name="dieresiscomb"/>
<psName name="uni0308"/>
</extraNames>
</post>
<GDEF>
<Version value="0x00010002"/>
<GlyphClassDef Format="2">
<ClassDef glyph="N" class="1"/>
<ClassDef glyph="O" class="1"/>
<ClassDef glyph="Odieresis" class="1"/>
<ClassDef glyph="n" class="1"/>
<ClassDef glyph="o" class="1"/>
<ClassDef glyph="odieresis" class="1"/>
<ClassDef glyph="uni0308" class="3"/>
</GlyphClassDef>
<MarkGlyphSetsDef>
<MarkSetTableFormat value="1"/>
<!-- MarkSetCount=1 -->
<Coverage index="0" Format="1">
<Glyph value="uni0308"/>
</Coverage>
</MarkGlyphSetsDef>
</GDEF>
<GPOS>
<Version value="0x00010000"/>
<ScriptList>
<!-- ScriptCount=2 -->
<ScriptRecord index="0">
<ScriptTag value="DFLT"/>
<Script>
<DefaultLangSys>
<ReqFeatureIndex value="65535"/>
<!-- FeatureCount=3 -->
<FeatureIndex index="0" value="0"/>
<FeatureIndex index="1" value="1"/>
<FeatureIndex index="2" value="2"/>
</DefaultLangSys>
<!-- LangSysCount=0 -->
</Script>
</ScriptRecord>
<ScriptRecord index="1">
<ScriptTag value="latn"/>
<Script>
<DefaultLangSys>
<ReqFeatureIndex value="65535"/>
<!-- FeatureCount=3 -->
<FeatureIndex index="0" value="0"/>
<FeatureIndex index="1" value="1"/>
<FeatureIndex index="2" value="2"/>
</DefaultLangSys>
<!-- LangSysCount=1 -->
<LangSysRecord index="0">
<LangSysTag value="NLD "/>
<LangSys>
<ReqFeatureIndex value="65535"/>
<!-- FeatureCount=3 -->
<FeatureIndex index="0" value="0"/>
<FeatureIndex index="1" value="1"/>
<FeatureIndex index="2" value="2"/>
</LangSys>
</LangSysRecord>
</Script>
</ScriptRecord>
</ScriptList>
<FeatureList>
<!-- FeatureCount=3 -->
<FeatureRecord index="0">
<FeatureTag value="cpsp"/>
<Feature>
<!-- LookupCount=1 -->
<LookupListIndex index="0" value="0"/>
</Feature>
</FeatureRecord>
<FeatureRecord index="1">
<FeatureTag value="mark"/>
<Feature>
<!-- LookupCount=1 -->
<LookupListIndex index="0" value="1"/>
</Feature>
</FeatureRecord>
<FeatureRecord index="2">
<FeatureTag value="mkmk"/>
<Feature>
<!-- LookupCount=1 -->
<LookupListIndex index="0" value="2"/>
</Feature>
</FeatureRecord>
</FeatureList>
<LookupList>
<!-- LookupCount=3 -->
<Lookup index="0">
<LookupType value="1"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<SinglePos index="0" Format="1">
<Coverage Format="1">
<Glyph value="N"/>
<Glyph value="O"/>
<Glyph value="Odieresis"/>
</Coverage>
<ValueFormat value="5"/>
<Value XPlacement="25" XAdvance="50"/>
</SinglePos>
</Lookup>
<Lookup index="1">
<LookupType value="4"/>
<LookupFlag value="0"/>
<!-- SubTableCount=1 -->
<MarkBasePos index="0" Format="1">
<MarkCoverage Format="1">
<Glyph value="uni0308"/>
</MarkCoverage>
<BaseCoverage Format="2">
<Glyph value="N"/>
<Glyph value="O"/>
<Glyph value="Odieresis"/>
<Glyph value="n"/>
<Glyph value="o"/>
<Glyph value="odieresis"/>
</BaseCoverage>
<!-- ClassCount=1 -->
<MarkArray>
<!-- MarkCount=1 -->
<MarkRecord index="0">
<Class value="0"/>
<MarkAnchor Format="1">
<XCoordinate value="150"/>
<YCoordinate value="350"/>
</MarkAnchor>
</MarkRecord>
</MarkArray>
<BaseArray>
<!-- BaseCount=6 -->
<BaseRecord index="0">
<BaseAnchor index="0" Format="1">
<XCoordinate value="204"/>
<YCoordinate value="500"/>
</BaseAnchor>
</BaseRecord>
<BaseRecord index="1">
<BaseAnchor index="0" Format="1">
<XCoordinate value="202"/>
<YCoordinate value="500"/>
</BaseAnchor>
</BaseRecord>
<BaseRecord index="2">
<BaseAnchor index="0" Format="1">
<XCoordinate value="202"/>
<YCoordinate value="625"/>
</BaseAnchor>
</BaseRecord>
<BaseRecord index="3">
<BaseAnchor index="0" Format="1">
<XCoordinate value="175"/>
<YCoordinate value="350"/>
</BaseAnchor>
</BaseRecord>
<BaseRecord index="4">
<BaseAnchor index="0" Format="1">
<XCoordinate value="171"/>
<YCoordinate value="350"/>
</BaseAnchor>
</BaseRecord>
<BaseRecord index="5">
<BaseAnchor index="0" Format="1">
<XCoordinate value="171"/>
<YCoordinate value="475"/>
</BaseAnchor>
</BaseRecord>
</BaseArray>
</MarkBasePos>
</Lookup>
<Lookup index="2">
<LookupType value="6"/>
<LookupFlag value="16"/>
<!-- SubTableCount=1 -->
<MarkMarkPos index="0" Format="1">
<Mark1Coverage Format="1">
<Glyph value="uni0308"/>
</Mark1Coverage>
<Mark2Coverage Format="1">
<Glyph value="uni0308"/>
</Mark2Coverage>
<!-- ClassCount=1 -->
<Mark1Array>
<!-- MarkCount=1 -->
<MarkRecord index="0">
<Class value="0"/>
<MarkAnchor Format="1">
<XCoordinate value="150"/>
<YCoordinate value="350"/>
</MarkAnchor>
</MarkRecord>
</Mark1Array>
<Mark2Array>
<!-- Mark2Count=1 -->
<Mark2Record index="0">
<Mark2Anchor index="0" Format="1">
<XCoordinate value="150"/>
<YCoordinate value="475"/>
</Mark2Anchor>
</Mark2Record>
</Mark2Array>
</MarkMarkPos>
<MarkFilteringSet value="0"/>
</Lookup>
</LookupList>
</GPOS>
</ttFont>

View File

@ -0,0 +1,23 @@
# automatic
@Uppercase = [ N O Odieresis ];
# Prefix: Languagesystems
# automatic
languagesystem DFLT dflt;
languagesystem latn dflt;
languagesystem latn NLD;
feature cpsp {
pos @Uppercase <25 0 50 0>;
} cpsp;
table GDEF {
# automatic
GlyphClassDef
[N O Odieresis n o odieresis], # Base
, # Liga
[dieresiscomb], # Mark
;
} GDEF;

View File

@ -0,0 +1,93 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ascender</key>
<real>600.0</real>
<key>capHeight</key>
<real>500.0</real>
<key>copyright</key>
<string>Copyright 2017 by Jens Kutilek</string>
<key>descender</key>
<real>-150.0</real>
<key>familyName</key>
<string>Test Family 4</string>
<key>guidelines</key>
<array>
<dict>
<key>angle</key>
<real>180.0</real>
<key>x</key>
<real>125.0</real>
<key>y</key>
<real>175.0</real>
</dict>
</array>
<key>italicAngle</key>
<real>-15.0</real>
<key>openTypeHeadCreated</key>
<string>2017/10/21 13:31:38</string>
<key>openTypeNameDesigner</key>
<string>Jens Kutilek after the ISO 3098 standard</string>
<key>openTypeNameDesignerURL</key>
<string>https://www.kutilek.de/</string>
<key>openTypeNameManufacturer</key>
<string>Jens Kutilek</string>
<key>openTypeNameManufacturerURL</key>
<string>https://www.kutilek.de/</string>
<key>openTypeOS2Type</key>
<array>
<integer>3</integer>
</array>
<key>openTypeOS2VendorID</key>
<string>jens</string>
<key>openTypeOS2WinAscent</key>
<integer>700</integer>
<key>openTypeOS2WinDescent</key>
<integer>250</integer>
<key>postscriptBlueValues</key>
<array>
<real>-10.0</real>
<real>0.0</real>
<real>350.0</real>
<real>360.0</real>
<real>500.0</real>
<real>510.0</real>
</array>
<key>postscriptFamilyBlues</key>
<array/>
<key>postscriptFamilyOtherBlues</key>
<array/>
<key>postscriptOtherBlues</key>
<array>
<real>-160.0</real>
<real>-150.0</real>
</array>
<key>postscriptStemSnapH</key>
<array>
<integer>50</integer>
</array>
<key>postscriptStemSnapV</key>
<array>
<integer>50</integer>
</array>
<key>postscriptUnderlinePosition</key>
<integer>-100</integer>
<key>postscriptUnderlineThickness</key>
<integer>50</integer>
<key>styleMapFamilyName</key>
<string>Test Family 4 15</string>
<key>styleMapStyleName</key>
<string>italic</string>
<key>styleName</key>
<string>Italic 15</string>
<key>unitsPerEm</key>
<integer>750</integer>
<key>versionMajor</key>
<integer>1</integer>
<key>versionMinor</key>
<integer>0</integer>
<key>xHeight</key>
<real>350.0</real>
</dict>
</plist>

View File

@ -0,0 +1,41 @@
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="N" format="2">
<anchor x="153.0" y="0.0" name="bottom"/>
<anchor x="287.0" y="500.0" name="top"/>
<outline>
<contour>
<point x="34.0" y="21.0" type="move"/>
<point x="156.0" y="479.0" type="line"/>
<point x="284.0" y="21.0" type="line"/>
<point x="406.0" y="479.0" type="line"/>
</contour>
<contour>
<point x="156.0" y="454.0" type="curve" smooth="yes"/>
<point x="170.0" y="454.0"/>
<point x="181.0" y="465.0"/>
<point x="181.0" y="479.0" type="curve" smooth="yes"/>
<point x="181.0" y="493.0"/>
<point x="170.0" y="504.0"/>
<point x="156.0" y="504.0" type="curve" smooth="yes"/>
<point x="142.0" y="504.0"/>
<point x="131.0" y="493.0"/>
<point x="131.0" y="479.0" type="curve" smooth="yes"/>
<point x="131.0" y="465.0"/>
<point x="142.0" y="454.0"/>
</contour>
<contour>
<point x="284.0" y="-4.0" type="curve" smooth="yes"/>
<point x="298.0" y="-4.0"/>
<point x="309.0" y="7.0"/>
<point x="309.0" y="21.0" type="curve" smooth="yes"/>
<point x="309.0" y="35.0"/>
<point x="298.0" y="46.0"/>
<point x="284.0" y="46.0" type="curve" smooth="yes"/>
<point x="270.0" y="46.0"/>
<point x="259.0" y="35.0"/>
<point x="259.0" y="21.0" type="curve" smooth="yes"/>
<point x="259.0" y="7.0"/>
<point x="270.0" y="-4.0"/>
</contour>
</outline>
</glyph>

View File

@ -0,0 +1,27 @@
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="O" format="2">
<anchor x="153.0" y="0.0" name="bottom"/>
<anchor x="220.0" y="250.0" name="center"/>
<anchor x="316.0" y="10.0" name="ogonek"/>
<anchor x="287.0" y="500.0" name="top"/>
<anchor x="107.0" y="500.0" name="topleft"/>
<anchor x="467.0" y="500.0" name="topright"/>
<outline>
<contour>
<point x="66.0" y="140.0" type="curve"/>
<point x="125.0" y="360.0" type="line"/>
<point x="143.0" y="429.0"/>
<point x="214.0" y="485.0"/>
<point x="283.0" y="485.0" type="curve"/>
<point x="352.0" y="485.0"/>
<point x="393.0" y="429.0"/>
<point x="375.0" y="360.0" type="curve"/>
<point x="316.0" y="140.0" type="line"/>
<point x="297.0" y="71.0"/>
<point x="226.0" y="15.0"/>
<point x="157.0" y="15.0" type="curve"/>
<point x="88.0" y="15.0"/>
<point x="47.0" y="71.0"/>
</contour>
</outline>
</glyph>

View File

@ -0,0 +1,14 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>N</key>
<string>N_.glif</string>
<key>O</key>
<string>O_.glif</string>
<key>dieresiscomb</key>
<string>dieresiscomb.glif</string>
<key>o</key>
<string>o.glif</string>
</dict>
</plist>

View File

@ -0,0 +1,15 @@
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="dieresiscomb" format="2">
<anchor x="197.0" y="350.0" name="_top"/>
<anchor x="230.0" y="475.0" name="top"/>
<outline>
<contour>
<point x="155.0" y="475.0" type="move"/>
<point x="149.0" y="450.0" type="line"/>
</contour>
<contour>
<point x="305.0" y="475.0" type="move"/>
<point x="299.0" y="450.0" type="line"/>
</contour>
</outline>
</glyph>

View File

@ -0,0 +1,37 @@
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="o" format="2">
<outline>
<contour>
<point x="128.0" y="-10.0" type="curve" smooth="yes"/>
<point x="194.0" y="-10.0"/>
<point x="262.0" y="43.0"/>
<point x="279.0" y="108.0" type="curve" smooth="yes"/>
<point x="311.0" y="229.0" type="line" smooth="yes"/>
<point x="330.0" y="299.0"/>
<point x="286.0" y="360.0"/>
<point x="214.0" y="360.0" type="curve" smooth="yes"/>
<point x="148.0" y="360.0"/>
<point x="80.0" y="307.0"/>
<point x="63.0" y="242.0" type="curve" smooth="yes"/>
<point x="31.0" y="121.0" type="line" smooth="yes"/>
<point x="12.0" y="51.0"/>
<point x="56.0" y="-10.0"/>
</contour>
<contour>
<point x="128.0" y="40.0" type="curve" smooth="yes"/>
<point x="88.0" y="40.0"/>
<point x="69.0" y="71.0"/>
<point x="79.0" y="108.0" type="curve" smooth="yes"/>
<point x="111.0" y="229.0" type="line" smooth="yes"/>
<point x="123.0" y="273.0"/>
<point x="170.0" y="310.0"/>
<point x="214.0" y="310.0" type="curve" smooth="yes"/>
<point x="254.0" y="310.0"/>
<point x="273.0" y="279.0"/>
<point x="263.0" y="242.0" type="curve" smooth="yes"/>
<point x="231.0" y="121.0" type="line" smooth="yes"/>
<point x="219.0" y="77.0"/>
<point x="172.0" y="40.0"/>
</contour>
</outline>
</glyph>

View File

@ -0,0 +1,47 @@
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="N" format="2">
<advance width="408.0"/>
<unicode hex="004E"/>
<anchor x="157.0" y="0.0" name="bottom"/>
<anchor x="291.0" y="500.0" name="top"/>
<outline>
<contour>
<point x="38.0" y="-4.0" type="curve" smooth="yes"/>
<point x="50.0" y="-4.0"/>
<point x="59.0" y="4.0"/>
<point x="62.0" y="15.0" type="curve" smooth="yes"/>
<point x="161.0" y="384.0" type="line"/>
<point x="264.0" y="14.0" type="line" smooth="yes"/>
<point x="267.0" y="2.0"/>
<point x="278.0" y="-4.0"/>
<point x="288.0" y="-4.0" type="curve" smooth="yes"/>
<point x="299.0" y="-4.0"/>
<point x="309.0" y="2.0"/>
<point x="312.0" y="14.0" type="curve" smooth="yes"/>
<point x="434.0" y="472.0" type="line" smooth="yes"/>
<point x="437.0" y="483.0"/>
<point x="430.0" y="504.0"/>
<point x="410.0" y="504.0" type="curve" smooth="yes"/>
<point x="398.0" y="504.0"/>
<point x="389.0" y="496.0"/>
<point x="386.0" y="485.0" type="curve" smooth="yes"/>
<point x="287.0" y="116.0" type="line"/>
<point x="184.0" y="486.0" type="line" smooth="yes"/>
<point x="181.0" y="498.0"/>
<point x="170.0" y="504.0"/>
<point x="159.0" y="504.0" type="curve" smooth="yes"/>
<point x="149.0" y="504.0"/>
<point x="139.0" y="498.0"/>
<point x="136.0" y="486.0" type="curve" smooth="yes"/>
<point x="14.0" y="28.0" type="line" smooth="yes"/>
<point x="10.0" y="12.0"/>
<point x="22.0" y="-4.0"/>
</contour>
</outline>
<lib>
<dict>
<key>com.schriftgestaltung.Glyphs.lastChange</key>
<string>2018/11/20 10:52:27</string>
</dict>
</lib>
</glyph>

View File

@ -0,0 +1,51 @@
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="O" format="2">
<advance width="404.0"/>
<unicode hex="004F"/>
<anchor x="155.0" y="0.0" name="bottom"/>
<anchor x="222.0" y="250.0" name="center"/>
<anchor x="318.0" y="10.0" name="ogonek"/>
<anchor x="289.0" y="500.0" name="top"/>
<anchor x="109.0" y="500.0" name="topleft"/>
<anchor x="469.0" y="500.0" name="topright"/>
<outline>
<contour>
<point x="159.0" y="-10.0" type="curve" smooth="yes"/>
<point x="239.0" y="-10.0"/>
<point x="321.0" y="54.0"/>
<point x="342.0" y="133.0" type="curve" smooth="yes"/>
<point x="401.0" y="354.0" type="line" smooth="yes"/>
<point x="423.0" y="437.0"/>
<point x="371.0" y="510.0"/>
<point x="285.0" y="510.0" type="curve" smooth="yes"/>
<point x="205.0" y="510.0"/>
<point x="124.0" y="446.0"/>
<point x="103.0" y="366.0" type="curve" smooth="yes"/>
<point x="44.0" y="146.0" type="line" smooth="yes"/>
<point x="22.0" y="63.0"/>
<point x="73.0" y="-10.0"/>
</contour>
<contour>
<point x="159.0" y="40.0" type="curve" smooth="yes"/>
<point x="106.0" y="40.0"/>
<point x="78.0" y="81.0"/>
<point x="92.0" y="133.0" type="curve" smooth="yes"/>
<point x="151.0" y="354.0" type="line" smooth="yes"/>
<point x="166.0" y="412.0"/>
<point x="227.0" y="460.0"/>
<point x="285.0" y="460.0" type="curve" smooth="yes"/>
<point x="338.0" y="460.0"/>
<point x="367.0" y="419.0"/>
<point x="353.0" y="366.0" type="curve" smooth="yes"/>
<point x="294.0" y="146.0" type="line" smooth="yes"/>
<point x="278.0" y="88.0"/>
<point x="217.0" y="40.0"/>
</contour>
</outline>
<lib>
<dict>
<key>com.schriftgestaltung.Glyphs.lastChange</key>
<string>2017/10/27 21:28:25</string>
</dict>
</lib>
</glyph>

View File

@ -0,0 +1,23 @@
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="Odieresis" format="2">
<advance width="404.0"/>
<unicode hex="00D6"/>
<anchor x="155.0" y="0.0" name="bottom"/>
<anchor x="222.0" y="250.0" name="center"/>
<anchor x="318.0" y="10.0" name="ogonek"/>
<anchor x="322.0" y="625.0" name="top"/>
<anchor x="109.0" y="500.0" name="topleft"/>
<anchor x="469.0" y="500.0" name="topright"/>
<outline>
<component base="O"/>
<component base="dieresiscomb" xOffset="92.0" yOffset="150.0"/>
</outline>
<lib>
<dict>
<key>com.schriftgestaltung.Glyphs.lastChange</key>
<string>2017/10/27 21:28:35</string>
<key>public.markColor</key>
<string>0,0.67,0.91,1</string>
</dict>
</lib>
</glyph>

View File

@ -0,0 +1,20 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>N</key>
<string>N_.glif</string>
<key>O</key>
<string>O_.glif</string>
<key>Odieresis</key>
<string>O_dieresis.glif</string>
<key>dieresiscomb</key>
<string>dieresiscomb.glif</string>
<key>n</key>
<string>n.glif</string>
<key>o</key>
<string>o.glif</string>
<key>odieresis</key>
<string>odieresis.glif</string>
</dict>
</plist>

View File

@ -0,0 +1,48 @@
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="dieresiscomb" format="2">
<unicode hex="0308"/>
<anchor x="197.0" y="350.0" name="_top"/>
<anchor x="230.0" y="475.0" name="top"/>
<outline>
<contour>
<point x="300.0" y="425.0" type="curve" smooth="yes"/>
<point x="312.0" y="425.0"/>
<point x="321.0" y="433.0"/>
<point x="324.0" y="445.0" type="curve" smooth="yes"/>
<point x="330.0" y="469.0" type="line" smooth="yes"/>
<point x="334.0" y="484.0"/>
<point x="322.0" y="500.0"/>
<point x="306.0" y="500.0" type="curve" smooth="yes"/>
<point x="294.0" y="500.0"/>
<point x="285.0" y="492.0"/>
<point x="282.0" y="480.0" type="curve" smooth="yes"/>
<point x="276.0" y="456.0" type="line" smooth="yes"/>
<point x="272.0" y="441.0"/>
<point x="284.0" y="425.0"/>
</contour>
<contour>
<point x="150.0" y="425.0" type="curve" smooth="yes"/>
<point x="162.0" y="425.0"/>
<point x="171.0" y="433.0"/>
<point x="174.0" y="445.0" type="curve" smooth="yes"/>
<point x="180.0" y="469.0" type="line" smooth="yes"/>
<point x="184.0" y="484.0"/>
<point x="172.0" y="500.0"/>
<point x="156.0" y="500.0" type="curve" smooth="yes"/>
<point x="144.0" y="500.0"/>
<point x="135.0" y="492.0"/>
<point x="132.0" y="480.0" type="curve" smooth="yes"/>
<point x="126.0" y="456.0" type="line" smooth="yes"/>
<point x="122.0" y="441.0"/>
<point x="134.0" y="425.0"/>
</contour>
</outline>
<lib>
<dict>
<key>com.schriftgestaltung.Glyphs.lastChange</key>
<string>2018/11/20 11:01:28</string>
<key>com.schriftgestaltung.Glyphs.originalWidth</key>
<real>300.0</real>
</dict>
</lib>
</glyph>

View File

@ -0,0 +1,44 @@
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="n" format="2">
<advance width="348.0"/>
<unicode hex="006E"/>
<anchor x="128.0" y="0.0" name="bottom"/>
<anchor x="222.0" y="350.0" name="top"/>
<outline>
<contour>
<point x="34.0" y="-4.0" type="curve" smooth="yes"/>
<point x="46.0" y="-4.0"/>
<point x="55.0" y="4.0"/>
<point x="58.0" y="15.0" type="curve" smooth="yes"/>
<point x="134.0" y="300.0" type="line"/>
<point x="238.0" y="300.0" type="line" smooth="yes"/>
<point x="266.0" y="300.0"/>
<point x="278.0" y="282.0"/>
<point x="271.0" y="255.0" type="curve" smooth="yes"/>
<point x="210.0" y="28.0" type="line" smooth="yes"/>
<point x="205.0" y="11.0"/>
<point x="218.0" y="-4.0"/>
<point x="234.0" y="-4.0" type="curve" smooth="yes"/>
<point x="246.0" y="-4.0"/>
<point x="255.0" y="3.0"/>
<point x="258.0" y="15.0" type="curve" smooth="yes"/>
<point x="319.0" y="242.0" type="line" smooth="yes"/>
<point x="335.0" y="301.0"/>
<point x="299.0" y="350.0"/>
<point x="238.0" y="350.0" type="curve" smooth="yes"/>
<point x="118.0" y="350.0" type="line" smooth="yes"/>
<point x="102.993" y="350.0"/>
<point x="94.0" y="343.0"/>
<point x="90.0" y="329.0" type="curve" smooth="yes"/>
<point x="10.0" y="28.0" type="line" smooth="yes"/>
<point x="5.0" y="11.0"/>
<point x="18.0" y="-4.0"/>
</contour>
</outline>
<lib>
<dict>
<key>com.schriftgestaltung.Glyphs.lastChange</key>
<string>2017/10/27 21:28:25</string>
</dict>
</lib>
</glyph>

View File

@ -0,0 +1,50 @@
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="o" format="2">
<advance width="342.0"/>
<unicode hex="006F"/>
<anchor x="124.0" y="0.0" name="bottom"/>
<anchor x="171.0" y="175.0" name="center"/>
<anchor x="267.0" y="10.0" name="ogonek"/>
<anchor x="218.0" y="350.0" name="top"/>
<anchor x="373.0" y="350.0" name="topright"/>
<outline>
<contour>
<point x="129.0" y="-10.0" type="curve" smooth="yes"/>
<point x="199.0" y="-10.0"/>
<point x="260.0" y="39.0"/>
<point x="280.0" y="110.0" type="curve" smooth="yes"/>
<point x="312.0" y="226.0" type="line" smooth="yes"/>
<point x="333.0" y="303.0"/>
<point x="291.0" y="360.0"/>
<point x="215.0" y="360.0" type="curve" smooth="yes"/>
<point x="145.0" y="360.0"/>
<point x="84.0" y="311.0"/>
<point x="64.0" y="240.0" type="curve" smooth="yes"/>
<point x="32.0" y="124.0" type="line" smooth="yes"/>
<point x="11.0" y="47.0"/>
<point x="53.0" y="-10.0"/>
</contour>
<contour>
<point x="129.0" y="40.0" type="curve" smooth="yes"/>
<point x="86.0" y="40.0"/>
<point x="68.0" y="66.0"/>
<point x="80.0" y="110.0" type="curve" smooth="yes"/>
<point x="112.0" y="226.0" type="line" smooth="yes"/>
<point x="126.0" y="277.0"/>
<point x="167.0" y="310.0"/>
<point x="215.0" y="310.0" type="curve" smooth="yes"/>
<point x="258.0" y="310.0"/>
<point x="276.0" y="284.0"/>
<point x="264.0" y="240.0" type="curve" smooth="yes"/>
<point x="232.0" y="124.0" type="line" smooth="yes"/>
<point x="218.0" y="73.0"/>
<point x="177.0" y="40.0"/>
</contour>
</outline>
<lib>
<dict>
<key>com.schriftgestaltung.Glyphs.lastChange</key>
<string>2018/11/20 11:01:11</string>
</dict>
</lib>
</glyph>

View File

@ -0,0 +1,22 @@
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="odieresis" format="2">
<advance width="342.0"/>
<unicode hex="00F6"/>
<anchor x="124.0" y="0.0" name="bottom"/>
<anchor x="171.0" y="175.0" name="center"/>
<anchor x="267.0" y="10.0" name="ogonek"/>
<anchor x="251.0" y="475.0" name="top"/>
<anchor x="373.0" y="350.0" name="topright"/>
<outline>
<component base="o"/>
<component base="dieresiscomb" xOffset="21.0"/>
</outline>
<lib>
<dict>
<key>com.schriftgestaltung.Glyphs.lastChange</key>
<string>2018/11/20 10:59:58</string>
<key>public.markColor</key>
<string>0,0.67,0.91,1</string>
</dict>
</lib>
</glyph>

View File

@ -0,0 +1,34 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>public.kern1.O</key>
<array>
<string>O</string>
<string>Odieresis</string>
</array>
<key>public.kern1.n</key>
<array>
<string>n</string>
</array>
<key>public.kern1.o</key>
<array>
<string>o</string>
<string>odieresis</string>
</array>
<key>public.kern2.O</key>
<array>
<string>O</string>
<string>Odieresis</string>
</array>
<key>public.kern2.n</key>
<array>
<string>n</string>
</array>
<key>public.kern2.o</key>
<array>
<string>o</string>
<string>odieresis</string>
</array>
</dict>
</plist>

View File

@ -0,0 +1,14 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<array>
<string>public.default</string>
<string>glyphs</string>
</array>
<array>
<string>public.background</string>
<string>glyphs.public.background</string>
</array>
</array>
</plist>

View File

@ -0,0 +1,86 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.schriftgestaltung.appVersion</key>
<string>1179</string>
<key>com.schriftgestaltung.customName</key>
<string>Italic 15</string>
<key>com.schriftgestaltung.customParameter.GSFont.Axes</key>
<array>
<dict>
<key>Name</key>
<string>Slant</string>
<key>Tag</key>
<string>slnt</string>
</dict>
</array>
<key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
<array>
<string>o/dieresiscomb ö</string>
</array>
<key>com.schriftgestaltung.customParameter.GSFont.Variation Font Origin</key>
<string>EB3D7718-A203-47FB-ABD4-8B7A501887ED</string>
<key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
<false/>
<key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
<integer>1</integer>
<key>com.schriftgestaltung.customParameter.GSFontMaster.Link Metrics With Master</key>
<string>Regular</string>
<key>com.schriftgestaltung.customParameter.GSFontMaster.Master Name</key>
<string>Italic 15</string>
<key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
<real>-15.0</real>
<key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
<real>16.0</real>
<key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
<real>0.0</real>
<key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
<real>0.0</real>
<key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
<string></string>
<key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
<real>-15.0</real>
<key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
<real>100.0</real>
<key>com.schriftgestaltung.customValue</key>
<real>-15.0</real>
<key>com.schriftgestaltung.customValue1</key>
<real>16.0</real>
<key>com.schriftgestaltung.fontMasterOrder</key>
<integer>1</integer>
<key>com.schriftgestaltung.glyphOrder</key>
<false/>
<key>com.schriftgestaltung.keyboardIncrement</key>
<integer>1</integer>
<key>com.schriftgestaltung.weight</key>
<string>Regular</string>
<key>com.schriftgestaltung.weightValue</key>
<real>-15.0</real>
<key>com.schriftgestaltung.width</key>
<string>Regular</string>
<key>com.schriftgestaltung.widthValue</key>
<real>100.0</real>
<key>noodleExtremesAndInflections</key>
<integer>0</integer>
<key>noodleRemoveOverlap</key>
<integer>1</integer>
<key>noodleThickness</key>
<string>50.0</string>
<key>public.glyphOrder</key>
<array>
<string>N</string>
<string>O</string>
<string>Odieresis</string>
<string>n</string>
<string>o</string>
<string>odieresis</string>
<string>dieresiscomb</string>
</array>
<key>public.postscriptNames</key>
<dict>
<key>dieresiscomb</key>
<string>uni0308</string>
</dict>
</dict>
</plist>

View File

@ -0,0 +1,10 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>creator</key>
<string>com.github.fonttools.ufoLib</string>
<key>formatVersion</key>
<integer>3</integer>
</dict>
</plist>

View File

@ -0,0 +1,23 @@
# automatic
@Uppercase = [ N O Odieresis ];
# Prefix: Languagesystems
# automatic
languagesystem DFLT dflt;
languagesystem latn dflt;
languagesystem latn NLD;
feature cpsp {
pos @Uppercase <25 0 50 0>;
} cpsp;
table GDEF {
# automatic
GlyphClassDef
[N O Odieresis n o odieresis], # Base
, # Liga
[dieresiscomb], # Mark
;
} GDEF;

View File

@ -0,0 +1,93 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ascender</key>
<real>600.0</real>
<key>capHeight</key>
<real>500.0</real>
<key>copyright</key>
<string>Copyright 2017 by Jens Kutilek</string>
<key>descender</key>
<real>-150.0</real>
<key>familyName</key>
<string>Test Family 4</string>
<key>guidelines</key>
<array>
<dict>
<key>angle</key>
<real>180.0</real>
<key>x</key>
<real>125.0</real>
<key>y</key>
<real>175.0</real>
</dict>
</array>
<key>italicAngle</key>
<real>-0.0</real>
<key>openTypeHeadCreated</key>
<string>2017/10/21 13:31:38</string>
<key>openTypeNameDesigner</key>
<string>Jens Kutilek after the ISO 3098 standard</string>
<key>openTypeNameDesignerURL</key>
<string>https://www.kutilek.de/</string>
<key>openTypeNameManufacturer</key>
<string>Jens Kutilek</string>
<key>openTypeNameManufacturerURL</key>
<string>https://www.kutilek.de/</string>
<key>openTypeOS2Type</key>
<array>
<integer>3</integer>
</array>
<key>openTypeOS2VendorID</key>
<string>jens</string>
<key>openTypeOS2WinAscent</key>
<integer>700</integer>
<key>openTypeOS2WinDescent</key>
<integer>250</integer>
<key>postscriptBlueValues</key>
<array>
<real>-10.0</real>
<real>0.0</real>
<real>350.0</real>
<real>360.0</real>
<real>500.0</real>
<real>510.0</real>
</array>
<key>postscriptFamilyBlues</key>
<array/>
<key>postscriptFamilyOtherBlues</key>
<array/>
<key>postscriptOtherBlues</key>
<array>
<real>-160.0</real>
<real>-150.0</real>
</array>
<key>postscriptStemSnapH</key>
<array>
<integer>50</integer>
</array>
<key>postscriptStemSnapV</key>
<array>
<integer>50</integer>
</array>
<key>postscriptUnderlinePosition</key>
<integer>-100</integer>
<key>postscriptUnderlineThickness</key>
<integer>50</integer>
<key>styleMapFamilyName</key>
<string>Test Family 4</string>
<key>styleMapStyleName</key>
<string>regular</string>
<key>styleName</key>
<string>Regular</string>
<key>unitsPerEm</key>
<integer>750</integer>
<key>versionMajor</key>
<integer>1</integer>
<key>versionMinor</key>
<integer>0</integer>
<key>xHeight</key>
<real>350.0</real>
</dict>
</plist>

View File

@ -0,0 +1,31 @@
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="N" format="2">
<outline>
<contour>
<point x="324.0" y="-22.0" type="line" smooth="yes"/>
<point x="336.0" y="-44.0"/>
<point x="354.0" y="-40.0"/>
<point x="354.0" y="-14.0" type="curve" smooth="yes"/>
<point x="354.0" y="479.0" type="line" smooth="yes"/>
<point x="354.0" y="493.0"/>
<point x="343.0" y="504.0"/>
<point x="329.0" y="504.0" type="curve" smooth="yes"/>
<point x="315.0" y="504.0"/>
<point x="304.0" y="493.0"/>
<point x="304.0" y="479.0" type="curve" smooth="yes"/>
<point x="304.0" y="119.0" type="line"/>
<point x="84.0" y="522.0" type="line" smooth="yes"/>
<point x="72.0" y="544.0"/>
<point x="54.0" y="540.0"/>
<point x="54.0" y="514.0" type="curve" smooth="yes"/>
<point x="54.0" y="21.0" type="line" smooth="yes"/>
<point x="54.0" y="7.0"/>
<point x="65.0" y="-4.0"/>
<point x="79.0" y="-4.0" type="curve" smooth="yes"/>
<point x="93.0" y="-4.0"/>
<point x="104.0" y="7.0"/>
<point x="104.0" y="21.0" type="curve" smooth="yes"/>
<point x="104.0" y="381.0" type="line"/>
</contour>
</outline>
</glyph>

View File

@ -0,0 +1,28 @@
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="O" format="2">
<anchor x="202.0" y="0.0" name="bottom"/>
<anchor x="202.0" y="250.0" name="center"/>
<anchor x="362.0" y="10.0" name="ogonek"/>
<anchor x="202.0" y="500.0" name="top"/>
<anchor x="22.0" y="500.0" name="topleft"/>
<anchor x="382.0" y="500.0" name="topright"/>
<outline>
<contour>
<point x="77.0" y="150.0" type="curve"/>
<point x="77.0" y="350.0" type="line"/>
<point x="77.0" y="419.0"/>
<point x="133.0" y="475.0"/>
<point x="202.0" y="475.0" type="curve"/>
<point x="271.0" y="475.0"/>
<point x="327.0" y="419.0"/>
<point x="327.0" y="350.0" type="curve"/>
<point x="327.0" y="250.0" type="line"/>
<point x="327.0" y="150.0" type="line"/>
<point x="327.0" y="81.0"/>
<point x="271.0" y="25.0"/>
<point x="202.0" y="25.0" type="curve"/>
<point x="133.0" y="25.0"/>
<point x="77.0" y="81.0"/>
</contour>
</outline>
</glyph>

View File

@ -0,0 +1,16 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>N</key>
<string>N_.glif</string>
<key>O</key>
<string>O_.glif</string>
<key>dieresiscomb</key>
<string>dieresiscomb.glif</string>
<key>n</key>
<string>n.glif</string>
<key>o</key>
<string>o.glif</string>
</dict>
</plist>

View File

@ -0,0 +1,15 @@
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="dieresiscomb" format="2">
<anchor x="150.0" y="350.0" name="_top"/>
<anchor x="150.0" y="475.0" name="top"/>
<outline>
<contour>
<point x="75.0" y="475.0" type="move"/>
<point x="75.0" y="450.0" type="line"/>
</contour>
<contour>
<point x="225.0" y="475.0" type="move"/>
<point x="225.0" y="450.0" type="line"/>
</contour>
</outline>
</glyph>

View File

@ -0,0 +1,14 @@
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="n" format="2">
<outline>
<contour>
<point x="75.0" y="21.0" type="move"/>
<point x="75.0" y="325.0" type="line"/>
<point x="198.0" y="325.0" type="line" smooth="yes"/>
<point x="243.0" y="325.0"/>
<point x="275.0" y="293.0"/>
<point x="275.0" y="248.0" type="curve" smooth="yes"/>
<point x="275.0" y="21.0" type="line"/>
</contour>
</outline>
</glyph>

View File

@ -0,0 +1,37 @@
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="o" format="2">
<outline>
<contour>
<point x="171.0" y="-10.0" type="curve" smooth="yes"/>
<point x="240.0" y="-10.0"/>
<point x="296.0" y="46.0"/>
<point x="296.0" y="115.0" type="curve" smooth="yes"/>
<point x="296.0" y="235.0" type="line" smooth="yes"/>
<point x="296.0" y="304.0"/>
<point x="240.0" y="360.0"/>
<point x="171.0" y="360.0" type="curve" smooth="yes"/>
<point x="102.0" y="360.0"/>
<point x="46.0" y="304.0"/>
<point x="46.0" y="235.0" type="curve" smooth="yes"/>
<point x="46.0" y="115.0" type="line" smooth="yes"/>
<point x="46.0" y="46.0"/>
<point x="102.0" y="-10.0"/>
</contour>
<contour>
<point x="171.0" y="40.0" type="curve" smooth="yes"/>
<point x="130.0" y="40.0"/>
<point x="96.0" y="74.0"/>
<point x="96.0" y="115.0" type="curve" smooth="yes"/>
<point x="96.0" y="235.0" type="line" smooth="yes"/>
<point x="96.0" y="276.0"/>
<point x="130.0" y="310.0"/>
<point x="171.0" y="310.0" type="curve" smooth="yes"/>
<point x="212.0" y="310.0"/>
<point x="246.0" y="276.0"/>
<point x="246.0" y="235.0" type="curve" smooth="yes"/>
<point x="246.0" y="115.0" type="line" smooth="yes"/>
<point x="246.0" y="74.0"/>
<point x="212.0" y="40.0"/>
</contour>
</outline>
</glyph>

View File

@ -0,0 +1,47 @@
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="N" format="2">
<advance width="408.0"/>
<unicode hex="004E"/>
<anchor x="204.0" y="0.0" name="bottom"/>
<anchor x="204.0" y="500.0" name="top"/>
<outline>
<contour>
<point x="79.0" y="-4.0" type="curve" smooth="yes"/>
<point x="93.0" y="-4.0"/>
<point x="104.0" y="7.0"/>
<point x="104.0" y="21.0" type="curve" smooth="yes"/>
<point x="104.0" y="381.0" type="line"/>
<point x="307.0" y="9.0" type="line" smooth="yes"/>
<point x="311.0" y="2.0"/>
<point x="317.0" y="-4.0"/>
<point x="329.0" y="-4.0" type="curve" smooth="yes"/>
<point x="343.0" y="-4.0"/>
<point x="354.0" y="7.0"/>
<point x="354.0" y="21.0" type="curve" smooth="yes"/>
<point x="354.0" y="479.0" type="line" smooth="yes"/>
<point x="354.0" y="493.0"/>
<point x="343.0" y="504.0"/>
<point x="329.0" y="504.0" type="curve" smooth="yes"/>
<point x="315.0" y="504.0"/>
<point x="304.0" y="493.0"/>
<point x="304.0" y="479.0" type="curve" smooth="yes"/>
<point x="304.0" y="119.0" type="line"/>
<point x="101.0" y="491.0" type="line" smooth="yes"/>
<point x="97.0" y="498.0"/>
<point x="91.0" y="504.0"/>
<point x="79.0" y="504.0" type="curve" smooth="yes"/>
<point x="65.0" y="504.0"/>
<point x="54.0" y="493.0"/>
<point x="54.0" y="479.0" type="curve" smooth="yes"/>
<point x="54.0" y="21.0" type="line" smooth="yes"/>
<point x="54.0" y="7.0"/>
<point x="65.0" y="-4.0"/>
</contour>
</outline>
<lib>
<dict>
<key>com.schriftgestaltung.Glyphs.lastChange</key>
<string>2018/11/20 10:52:27</string>
</dict>
</lib>
</glyph>

View File

@ -0,0 +1,51 @@
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="O" format="2">
<advance width="404.0"/>
<unicode hex="004F"/>
<anchor x="202.0" y="0.0" name="bottom"/>
<anchor x="202.0" y="250.0" name="center"/>
<anchor x="362.0" y="10.0" name="ogonek"/>
<anchor x="202.0" y="500.0" name="top"/>
<anchor x="22.0" y="500.0" name="topleft"/>
<anchor x="382.0" y="500.0" name="topright"/>
<outline>
<contour>
<point x="202.0" y="-10.0" type="curve" smooth="yes"/>
<point x="284.0" y="-10.0"/>
<point x="352.0" y="58.0"/>
<point x="352.0" y="140.0" type="curve" smooth="yes"/>
<point x="352.0" y="360.0" type="line" smooth="yes"/>
<point x="352.0" y="442.0"/>
<point x="284.0" y="510.0"/>
<point x="202.0" y="510.0" type="curve" smooth="yes"/>
<point x="120.0" y="510.0"/>
<point x="52.0" y="442.0"/>
<point x="52.0" y="360.0" type="curve" smooth="yes"/>
<point x="52.0" y="140.0" type="line" smooth="yes"/>
<point x="52.0" y="58.0"/>
<point x="120.0" y="-10.0"/>
</contour>
<contour>
<point x="202.0" y="40.0" type="curve" smooth="yes"/>
<point x="147.0" y="40.0"/>
<point x="102.0" y="85.0"/>
<point x="102.0" y="140.0" type="curve" smooth="yes"/>
<point x="102.0" y="360.0" type="line" smooth="yes"/>
<point x="102.0" y="415.0"/>
<point x="147.0" y="460.0"/>
<point x="202.0" y="460.0" type="curve" smooth="yes"/>
<point x="257.0" y="460.0"/>
<point x="302.0" y="415.0"/>
<point x="302.0" y="360.0" type="curve" smooth="yes"/>
<point x="302.0" y="140.0" type="line" smooth="yes"/>
<point x="302.0" y="85.0"/>
<point x="257.0" y="40.0"/>
</contour>
</outline>
<lib>
<dict>
<key>com.schriftgestaltung.Glyphs.lastChange</key>
<string>2017/10/27 21:28:25</string>
</dict>
</lib>
</glyph>

View File

@ -0,0 +1,23 @@
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="Odieresis" format="2">
<advance width="404.0"/>
<unicode hex="00D6"/>
<anchor x="202.0" y="0.0" name="bottom"/>
<anchor x="202.0" y="250.0" name="center"/>
<anchor x="362.0" y="10.0" name="ogonek"/>
<anchor x="202.0" y="625.0" name="top"/>
<anchor x="22.0" y="500.0" name="topleft"/>
<anchor x="382.0" y="500.0" name="topright"/>
<outline>
<component base="O"/>
<component base="dieresiscomb" xOffset="52.0" yOffset="150.0"/>
</outline>
<lib>
<dict>
<key>com.schriftgestaltung.Glyphs.lastChange</key>
<string>2017/10/27 21:28:35</string>
<key>public.markColor</key>
<string>0,0.67,0.91,1</string>
</dict>
</lib>
</glyph>

View File

@ -0,0 +1,20 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>N</key>
<string>N_.glif</string>
<key>O</key>
<string>O_.glif</string>
<key>Odieresis</key>
<string>O_dieresis.glif</string>
<key>dieresiscomb</key>
<string>dieresiscomb.glif</string>
<key>n</key>
<string>n.glif</string>
<key>o</key>
<string>o.glif</string>
<key>odieresis</key>
<string>odieresis.glif</string>
</dict>
</plist>

View File

@ -0,0 +1,48 @@
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="dieresiscomb" format="2">
<unicode hex="0308"/>
<anchor x="150.0" y="350.0" name="_top"/>
<anchor x="150.0" y="475.0" name="top"/>
<outline>
<contour>
<point x="225.0" y="425.0" type="curve" smooth="yes"/>
<point x="239.0" y="425.0"/>
<point x="250.0" y="436.0"/>
<point x="250.0" y="450.0" type="curve" smooth="yes"/>
<point x="250.0" y="475.0" type="line" smooth="yes"/>
<point x="250.0" y="489.0"/>
<point x="239.0" y="500.0"/>
<point x="225.0" y="500.0" type="curve" smooth="yes"/>
<point x="211.0" y="500.0"/>
<point x="200.0" y="489.0"/>
<point x="200.0" y="475.0" type="curve" smooth="yes"/>
<point x="200.0" y="450.0" type="line" smooth="yes"/>
<point x="200.0" y="436.0"/>
<point x="211.0" y="425.0"/>
</contour>
<contour>
<point x="75.0" y="425.0" type="curve" smooth="yes"/>
<point x="89.0" y="425.0"/>
<point x="100.0" y="436.0"/>
<point x="100.0" y="450.0" type="curve" smooth="yes"/>
<point x="100.0" y="475.0" type="line" smooth="yes"/>
<point x="100.0" y="489.0"/>
<point x="89.0" y="500.0"/>
<point x="75.0" y="500.0" type="curve" smooth="yes"/>
<point x="61.0" y="500.0"/>
<point x="50.0" y="489.0"/>
<point x="50.0" y="475.0" type="curve" smooth="yes"/>
<point x="50.0" y="450.0" type="line" smooth="yes"/>
<point x="50.0" y="436.0"/>
<point x="61.0" y="425.0"/>
</contour>
</outline>
<lib>
<dict>
<key>com.schriftgestaltung.Glyphs.lastChange</key>
<string>2018/11/20 11:01:28</string>
<key>com.schriftgestaltung.Glyphs.originalWidth</key>
<real>300.0</real>
</dict>
</lib>
</glyph>

View File

@ -0,0 +1,44 @@
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="n" format="2">
<advance width="348.0"/>
<unicode hex="006E"/>
<anchor x="175.0" y="0.0" name="bottom"/>
<anchor x="175.0" y="350.0" name="top"/>
<outline>
<contour>
<point x="75.0" y="-4.0" type="curve" smooth="yes"/>
<point x="89.0" y="-4.0"/>
<point x="100.0" y="7.0"/>
<point x="100.0" y="21.0" type="curve" smooth="yes"/>
<point x="100.0" y="300.0" type="line"/>
<point x="198.0" y="300.0" type="line" smooth="yes"/>
<point x="229.0" y="300.0"/>
<point x="250.0" y="279.0"/>
<point x="250.0" y="248.0" type="curve" smooth="yes"/>
<point x="250.0" y="21.0" type="line" smooth="yes"/>
<point x="250.0" y="7.0"/>
<point x="261.0" y="-4.0"/>
<point x="275.0" y="-4.0" type="curve" smooth="yes"/>
<point x="289.0" y="-4.0"/>
<point x="300.0" y="7.0"/>
<point x="300.0" y="21.0" type="curve" smooth="yes"/>
<point x="300.0" y="248.0" type="line" smooth="yes"/>
<point x="300.0" y="307.0"/>
<point x="257.0" y="350.0"/>
<point x="198.0" y="350.0" type="curve" smooth="yes"/>
<point x="75.0" y="350.0" type="line" smooth="yes"/>
<point x="59.0" y="350.0"/>
<point x="50.0" y="341.0"/>
<point x="50.0" y="325.0" type="curve" smooth="yes"/>
<point x="50.0" y="21.0" type="line" smooth="yes"/>
<point x="50.0" y="7.0"/>
<point x="61.0" y="-4.0"/>
</contour>
</outline>
<lib>
<dict>
<key>com.schriftgestaltung.Glyphs.lastChange</key>
<string>2017/10/27 21:28:25</string>
</dict>
</lib>
</glyph>

View File

@ -0,0 +1,50 @@
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="o" format="2">
<advance width="342.0"/>
<unicode hex="006F"/>
<anchor x="171.0" y="0.0" name="bottom"/>
<anchor x="171.0" y="175.0" name="center"/>
<anchor x="311.0" y="10.0" name="ogonek"/>
<anchor x="171.0" y="350.0" name="top"/>
<anchor x="326.0" y="350.0" name="topright"/>
<outline>
<contour>
<point x="171.0" y="-10.0" type="curve" smooth="yes"/>
<point x="244.0" y="-10.0"/>
<point x="296.0" y="43.0"/>
<point x="296.0" y="117.0" type="curve" smooth="yes"/>
<point x="296.0" y="233.0" type="line" smooth="yes"/>
<point x="296.0" y="307.0"/>
<point x="244.0" y="360.0"/>
<point x="171.0" y="360.0" type="curve" smooth="yes"/>
<point x="98.0" y="360.0"/>
<point x="46.0" y="307.0"/>
<point x="46.0" y="233.0" type="curve" smooth="yes"/>
<point x="46.0" y="117.0" type="line" smooth="yes"/>
<point x="46.0" y="43.0"/>
<point x="98.0" y="-10.0"/>
</contour>
<contour>
<point x="171.0" y="40.0" type="curve" smooth="yes"/>
<point x="126.0" y="40.0"/>
<point x="96.0" y="70.0"/>
<point x="96.0" y="117.0" type="curve" smooth="yes"/>
<point x="96.0" y="233.0" type="line" smooth="yes"/>
<point x="96.0" y="280.0"/>
<point x="126.0" y="310.0"/>
<point x="171.0" y="310.0" type="curve" smooth="yes"/>
<point x="216.0" y="310.0"/>
<point x="246.0" y="280.0"/>
<point x="246.0" y="233.0" type="curve" smooth="yes"/>
<point x="246.0" y="117.0" type="line" smooth="yes"/>
<point x="246.0" y="70.0"/>
<point x="216.0" y="40.0"/>
</contour>
</outline>
<lib>
<dict>
<key>com.schriftgestaltung.Glyphs.lastChange</key>
<string>2018/11/20 11:01:11</string>
</dict>
</lib>
</glyph>

View File

@ -0,0 +1,22 @@
<?xml version='1.0' encoding='UTF-8'?>
<glyph name="odieresis" format="2">
<advance width="342.0"/>
<unicode hex="00F6"/>
<anchor x="171.0" y="0.0" name="bottom"/>
<anchor x="171.0" y="175.0" name="center"/>
<anchor x="311.0" y="10.0" name="ogonek"/>
<anchor x="171.0" y="475.0" name="top"/>
<anchor x="326.0" y="350.0" name="topright"/>
<outline>
<component base="o"/>
<component base="dieresiscomb" xOffset="21.0"/>
</outline>
<lib>
<dict>
<key>com.schriftgestaltung.Glyphs.lastChange</key>
<string>2018/11/20 10:59:58</string>
<key>public.markColor</key>
<string>0,0.67,0.91,1</string>
</dict>
</lib>
</glyph>

View File

@ -0,0 +1,34 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>public.kern1.O</key>
<array>
<string>O</string>
<string>Odieresis</string>
</array>
<key>public.kern1.n</key>
<array>
<string>n</string>
</array>
<key>public.kern1.o</key>
<array>
<string>o</string>
<string>odieresis</string>
</array>
<key>public.kern2.O</key>
<array>
<string>O</string>
<string>Odieresis</string>
</array>
<key>public.kern2.n</key>
<array>
<string>n</string>
</array>
<key>public.kern2.o</key>
<array>
<string>o</string>
<string>odieresis</string>
</array>
</dict>
</plist>

View File

@ -0,0 +1,468 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>public.kern1.A</key>
<dict>
<key>public.kern2.O</key>
<real>-5.0</real>
<key>public.kern2.T</key>
<real>-40.0</real>
<key>public.kern2.V</key>
<real>-40.0</real>
<key>public.kern2.W</key>
<real>-25.0</real>
<key>public.kern2.Y</key>
<real>-50.0</real>
<key>public.kern2.f</key>
<real>-15.0</real>
<key>public.kern2.hyphen</key>
<real>-10.0</real>
<key>public.kern2.quote</key>
<real>-80.0</real>
<key>public.kern2.w</key>
<real>-25.0</real>
<key>public.kern2.y</key>
<real>-30.0</real>
</dict>
<key>public.kern1.B</key>
<dict>
<key>public.kern2.quote</key>
<real>-10.0</real>
</dict>
<key>public.kern1.C</key>
<dict>
<key>public.kern2.O</key>
<real>-5.0</real>
</dict>
<key>public.kern1.E</key>
<dict>
<key>public.kern2.O</key>
<real>-5.0</real>
</dict>
<key>public.kern1.F</key>
<dict>
<key>public.kern2.A</key>
<real>-35.0</real>
<key>public.kern2.a</key>
<real>-25.0</real>
<key>public.kern2.o</key>
<real>-20.0</real>
<key>public.kern2.period</key>
<real>-40.0</real>
<key>public.kern2.u</key>
<real>-15.0</real>
</dict>
<key>public.kern1.K</key>
<dict>
<key>public.kern2.O</key>
<real>-10.0</real>
</dict>
<key>public.kern1.L</key>
<dict>
<key>public.kern2.O</key>
<real>-20.0</real>
<key>public.kern2.T</key>
<real>-60.0</real>
<key>public.kern2.V</key>
<real>-65.0</real>
<key>public.kern2.W</key>
<real>-50.0</real>
<key>public.kern2.Y</key>
<real>-70.0</real>
<key>public.kern2.hyphen</key>
<real>-30.0</real>
<key>public.kern2.quote</key>
<real>-130.0</real>
</dict>
<key>public.kern1.O</key>
<dict>
<key>public.kern2.A</key>
<real>-5.0</real>
<key>public.kern2.J</key>
<real>-15.0</real>
<key>public.kern2.T</key>
<real>-15.0</real>
<key>public.kern2.V</key>
<real>-5.0</real>
<key>public.kern2.W</key>
<real>-15.0</real>
<key>public.kern2.X</key>
<real>-15.0</real>
<key>public.kern2.Y</key>
<real>-20.0</real>
<key>public.kern2.quote</key>
<real>-5.0</real>
</dict>
<key>public.kern1.P</key>
<dict>
<key>public.kern2.A</key>
<real>-30.0</real>
<key>public.kern2.J</key>
<real>-80.0</real>
<key>public.kern2.period</key>
<real>-50.0</real>
<key>public.kern2.quote</key>
<real>15.0</real>
</dict>
<key>public.kern1.R</key>
<dict>
<key>public.kern2.T</key>
<real>-15.0</real>
<key>public.kern2.W</key>
<real>-5.0</real>
<key>public.kern2.Y</key>
<real>-10.0</real>
<key>public.kern2.o</key>
<real>-10.0</real>
<key>public.kern2.quote</key>
<real>10.0</real>
</dict>
<key>public.kern1.S</key>
<dict>
<key>public.kern2.quote</key>
<real>-10.0</real>
</dict>
<key>public.kern1.T</key>
<dict>
<key>public.kern2.A</key>
<real>-40.0</real>
<key>public.kern2.J</key>
<real>-50.0</real>
<key>public.kern2.O</key>
<real>-15.0</real>
<key>public.kern2.a</key>
<real>-50.0</real>
<key>public.kern2.hyphen</key>
<real>-50.0</real>
<key>public.kern2.n</key>
<real>-40.0</real>
<key>public.kern2.o</key>
<real>-50.0</real>
<key>public.kern2.period</key>
<real>-60.0</real>
<key>public.kern2.s</key>
<real>-50.0</real>
<key>public.kern2.u</key>
<real>-40.0</real>
<key>public.kern2.w</key>
<real>-40.0</real>
<key>public.kern2.y</key>
<real>-40.0</real>
</dict>
<key>public.kern1.V</key>
<dict>
<key>public.kern2.A</key>
<real>-40.0</real>
<key>public.kern2.O</key>
<real>-5.0</real>
<key>public.kern2.a</key>
<real>-45.0</real>
<key>public.kern2.f</key>
<real>-15.0</real>
<key>public.kern2.hyphen</key>
<real>-30.0</real>
<key>public.kern2.n</key>
<real>-30.0</real>
<key>public.kern2.o</key>
<real>-45.0</real>
<key>public.kern2.period</key>
<real>-70.0</real>
<key>public.kern2.quote</key>
<real>-10.0</real>
<key>public.kern2.s</key>
<real>-35.0</real>
<key>public.kern2.u</key>
<real>-35.0</real>
<key>public.kern2.w</key>
<real>-35.0</real>
<key>public.kern2.x</key>
<real>-40.0</real>
<key>public.kern2.y</key>
<real>-35.0</real>
<key>public.kern2.z</key>
<real>-40.0</real>
</dict>
<key>public.kern1.W</key>
<dict>
<key>public.kern2.A</key>
<real>-25.0</real>
<key>public.kern2.O</key>
<real>-15.0</real>
<key>public.kern2.a</key>
<real>-25.0</real>
<key>public.kern2.f</key>
<real>-15.0</real>
<key>public.kern2.hyphen</key>
<real>-20.0</real>
<key>public.kern2.n</key>
<real>-20.0</real>
<key>public.kern2.o</key>
<real>-30.0</real>
<key>public.kern2.period</key>
<real>-40.0</real>
<key>public.kern2.quote</key>
<real>-10.0</real>
<key>public.kern2.s</key>
<real>-20.0</real>
<key>public.kern2.u</key>
<real>-30.0</real>
<key>public.kern2.w</key>
<real>-25.0</real>
<key>public.kern2.x</key>
<real>-30.0</real>
<key>public.kern2.y</key>
<real>-35.0</real>
<key>public.kern2.z</key>
<real>-25.0</real>
</dict>
<key>public.kern1.X</key>
<dict>
<key>public.kern2.O</key>
<real>-15.0</real>
<key>public.kern2.quote</key>
<real>-10.0</real>
</dict>
<key>public.kern1.Y</key>
<dict>
<key>public.kern2.A</key>
<real>-50.0</real>
<key>public.kern2.O</key>
<real>-20.0</real>
<key>public.kern2.a</key>
<real>-60.0</real>
<key>public.kern2.f</key>
<real>-20.0</real>
<key>public.kern2.hyphen</key>
<real>-60.0</real>
<key>public.kern2.n</key>
<real>-40.0</real>
<key>public.kern2.o</key>
<real>-60.0</real>
<key>public.kern2.period</key>
<real>-60.0</real>
<key>public.kern2.quote</key>
<real>-5.0</real>
<key>public.kern2.s</key>
<real>-45.0</real>
<key>public.kern2.u</key>
<real>-40.0</real>
</dict>
<key>public.kern1.Z</key>
<dict>
<key>public.kern2.quote</key>
<real>-5.0</real>
</dict>
<key>public.kern1.c</key>
<dict>
<key>public.kern2.hyphen</key>
<real>-10.0</real>
<key>public.kern2.quote</key>
<real>20.0</real>
</dict>
<key>public.kern1.f</key>
<dict>
<key>public.kern2.hyphen</key>
<real>-15.0</real>
<key>public.kern2.o</key>
<real>-15.0</real>
<key>public.kern2.period</key>
<real>-40.0</real>
<key>public.kern2.quote</key>
<real>45.0</real>
</dict>
<key>public.kern1.hyphen</key>
<dict>
<key>public.kern2.A</key>
<real>-10.0</real>
<key>public.kern2.T</key>
<real>-50.0</real>
<key>public.kern2.V</key>
<real>-30.0</real>
<key>public.kern2.W</key>
<real>-20.0</real>
<key>public.kern2.Y</key>
<real>-60.0</real>
<key>public.kern2.f</key>
<real>-5.0</real>
<key>public.kern2.j</key>
<real>-5.0</real>
<key>public.kern2.period</key>
<real>-20.0</real>
<key>public.kern2.quote</key>
<real>-40.0</real>
<key>public.kern2.s</key>
<real>-5.0</real>
<key>public.kern2.w</key>
<real>-10.0</real>
<key>public.kern2.x</key>
<real>-25.0</real>
<key>public.kern2.y</key>
<real>-10.0</real>
<key>public.kern2.z</key>
<real>-20.0</real>
</dict>
<key>public.kern1.k</key>
<dict>
<key>public.kern2.hyphen</key>
<real>-5.0</real>
</dict>
<key>public.kern1.l</key>
<dict>
<key>public.kern2.hyphen</key>
<real>-10.0</real>
<key>public.kern2.period</key>
<real>15.0</real>
<key>public.kern2.quote</key>
<real>-15.0</real>
</dict>
<key>public.kern1.n</key>
<dict>
<key>public.kern2.quote</key>
<real>-10.0</real>
<key>public.kern2.y</key>
<real>-5.0</real>
</dict>
<key>public.kern1.o</key>
<dict>
<key>public.kern2.period</key>
<real>-10.0</real>
<key>public.kern2.quote</key>
<real>-10.0</real>
<key>public.kern2.w</key>
<real>-8.0</real>
<key>public.kern2.y</key>
<real>-8.0</real>
</dict>
<key>public.kern1.period</key>
<dict>
<key>public.kern2.T</key>
<real>-60.0</real>
<key>public.kern2.V</key>
<real>-70.0</real>
<key>public.kern2.W</key>
<real>-40.0</real>
<key>public.kern2.Y</key>
<real>-60.0</real>
<key>public.kern2.f</key>
<real>-20.0</real>
<key>public.kern2.hyphen</key>
<real>-20.0</real>
<key>public.kern2.l</key>
<real>-5.0</real>
<key>public.kern2.o</key>
<real>-10.0</real>
<key>public.kern2.quote</key>
<real>-60.0</real>
<key>public.kern2.u</key>
<real>-10.0</real>
<key>public.kern2.w</key>
<real>-30.0</real>
<key>public.kern2.x</key>
<real>10.0</real>
<key>public.kern2.y</key>
<real>-30.0</real>
<key>public.kern2.z</key>
<real>5.0</real>
</dict>
<key>public.kern1.quote</key>
<dict>
<key>public.kern2.A</key>
<real>-90.0</real>
<key>public.kern2.J</key>
<real>-110.0</real>
<key>public.kern2.O</key>
<real>-10.0</real>
<key>public.kern2.T</key>
<real>10.0</real>
<key>public.kern2.a</key>
<real>-30.0</real>
<key>public.kern2.f</key>
<real>5.0</real>
<key>public.kern2.hyphen</key>
<real>-90.0</real>
<key>public.kern2.n</key>
<real>-10.0</real>
<key>public.kern2.o</key>
<real>-25.0</real>
<key>public.kern2.period</key>
<real>-80.0</real>
<key>public.kern2.s</key>
<real>-15.0</real>
<key>public.kern2.u</key>
<real>-5.0</real>
<key>public.kern2.z</key>
<real>-5.0</real>
</dict>
<key>public.kern1.r</key>
<dict>
<key>public.kern2.hyphen</key>
<real>-5.0</real>
<key>public.kern2.period</key>
<real>-35.0</real>
<key>public.kern2.quote</key>
<real>20.0</real>
</dict>
<key>public.kern1.s</key>
<dict>
<key>public.kern2.hyphen</key>
<real>-10.0</real>
</dict>
<key>public.kern1.t</key>
<dict>
<key>public.kern2.hyphen</key>
<real>-15.0</real>
<key>public.kern2.o</key>
<real>-15.0</real>
<key>public.kern2.period</key>
<real>-40.0</real>
<key>public.kern2.quote</key>
<real>20.0</real>
</dict>
<key>public.kern1.u</key>
<dict>
<key>public.kern2.quote</key>
<real>15.0</real>
</dict>
<key>public.kern1.w</key>
<dict>
<key>public.kern2.hyphen</key>
<real>-10.0</real>
<key>public.kern2.o</key>
<real>-8.0</real>
<key>public.kern2.period</key>
<real>-30.0</real>
<key>public.kern2.quote</key>
<real>15.0</real>
</dict>
<key>public.kern1.x</key>
<dict>
<key>public.kern2.hyphen</key>
<real>-25.0</real>
<key>public.kern2.period</key>
<real>10.0</real>
<key>public.kern2.quote</key>
<real>15.0</real>
</dict>
<key>public.kern1.y</key>
<dict>
<key>public.kern2.hyphen</key>
<real>-10.0</real>
<key>public.kern2.o</key>
<real>-8.0</real>
<key>public.kern2.period</key>
<real>-30.0</real>
<key>public.kern2.quote</key>
<real>15.0</real>
</dict>
<key>public.kern1.z</key>
<dict>
<key>public.kern2.hyphen</key>
<real>-10.0</real>
<key>public.kern2.period</key>
<real>5.0</real>
<key>public.kern2.quote</key>
<real>20.0</real>
</dict>
</dict>
</plist>

View File

@ -0,0 +1,14 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<array>
<string>public.default</string>
<string>glyphs</string>
</array>
<array>
<string>public.background</string>
<string>glyphs.public.background</string>
</array>
</array>
</plist>

View File

@ -0,0 +1,80 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.schriftgestaltung.appVersion</key>
<string>1179</string>
<key>com.schriftgestaltung.customParameter.GSFont.Axes</key>
<array>
<dict>
<key>Name</key>
<string>Slant</string>
<key>Tag</key>
<string>slnt</string>
</dict>
</array>
<key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
<array>
<string>o/dieresiscomb ö</string>
</array>
<key>com.schriftgestaltung.customParameter.GSFont.Variation Font Origin</key>
<string>EB3D7718-A203-47FB-ABD4-8B7A501887ED</string>
<key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
<false/>
<key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
<integer>1</integer>
<key>com.schriftgestaltung.customParameter.GSFontMaster.Master Name</key>
<string>Regular</string>
<key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
<real>0.0</real>
<key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
<real>16.0</real>
<key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
<real>0.0</real>
<key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
<real>0.0</real>
<key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
<string></string>
<key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
<real>0.0</real>
<key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
<real>100.0</real>
<key>com.schriftgestaltung.customValue1</key>
<real>16.0</real>
<key>com.schriftgestaltung.fontMasterOrder</key>
<integer>0</integer>
<key>com.schriftgestaltung.glyphOrder</key>
<false/>
<key>com.schriftgestaltung.keyboardIncrement</key>
<integer>1</integer>
<key>com.schriftgestaltung.weight</key>
<string>Regular</string>
<key>com.schriftgestaltung.weightValue</key>
<real>0.0</real>
<key>com.schriftgestaltung.width</key>
<string>Regular</string>
<key>com.schriftgestaltung.widthValue</key>
<real>100.0</real>
<key>noodleExtremesAndInflections</key>
<integer>0</integer>
<key>noodleRemoveOverlap</key>
<integer>1</integer>
<key>noodleThickness</key>
<string>50.0</string>
<key>public.glyphOrder</key>
<array>
<string>N</string>
<string>O</string>
<string>Odieresis</string>
<string>n</string>
<string>o</string>
<string>odieresis</string>
<string>dieresiscomb</string>
</array>
<key>public.postscriptNames</key>
<dict>
<key>dieresiscomb</key>
<string>uni0308</string>
</dict>
</dict>
</plist>

View File

@ -0,0 +1,10 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>creator</key>
<string>com.github.fonttools.ufoLib</string>
<key>formatVersion</key>
<integer>3</integer>
</dict>
</plist>

View File

@ -0,0 +1,229 @@
<?xml version="1.0" encoding="UTF-8"?>
<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="3.40">
<gvar>
<version value="1"/>
<reserved value="0"/>
<glyphVariations glyph="N">
<tuple>
<coord axis="slnt" value="-1.0"/>
<delta pt="0" x="-41" y="0"/>
<delta pt="1" x="-43" y="0"/>
<delta pt="2" x="-43" y="5"/>
<delta pt="3" x="-40" y="7"/>
<delta pt="4" x="82" y="7"/>
<delta pt="5" x="84" y="5"/>
<delta pt="6" x="83" y="0"/>
<delta pt="7" x="80" y="0"/>
<delta pt="8" x="79" y="0"/>
<delta pt="9" x="84" y="-1"/>
<delta pt="10" x="83" y="-5"/>
<delta pt="11" x="-17" y="-3"/>
<delta pt="12" x="82" y="6"/>
<delta pt="13" x="84" y="3"/>
<delta pt="14" x="82" y="0"/>
<delta pt="15" x="81" y="0"/>
<delta pt="16" x="85" y="0"/>
<delta pt="17" x="82" y="-10"/>
<delta pt="18" x="80" y="-7"/>
<delta pt="19" x="-42" y="-7"/>
<delta pt="20" x="-44" y="-6"/>
<delta pt="21" x="-44" y="0"/>
<delta pt="22" x="-41" y="0"/>
<delta pt="23" x="-39" y="0"/>
<delta pt="24" x="-44" y="1"/>
<delta pt="25" x="-43" y="5"/>
<delta pt="26" x="57" y="3"/>
<delta pt="27" x="-42" y="-6"/>
<delta pt="28" x="-44" y="-4"/>
<delta pt="29" x="-43" y="0"/>
<delta pt="30" x="0" y="0"/>
<delta pt="31" x="0" y="0"/>
<delta pt="32" x="0" y="0"/>
<delta pt="33" x="0" y="0"/>
</tuple>
</glyphVariations>
<glyphVariations glyph="O">
<tuple>
<coord axis="slnt" value="-1.0"/>
<delta pt="0" x="-43" y="0"/>
<delta pt="1" x="-45" y="0"/>
<delta pt="2" x="-36" y="2"/>
<delta pt="3" x="-19" y="6"/>
<delta pt="4" x="-8" y="6"/>
<delta pt="5" x="51" y="6"/>
<delta pt="6" x="62" y="5"/>
<delta pt="7" x="76" y="2"/>
<delta pt="8" x="84" y="0"/>
<delta pt="9" x="83" y="0"/>
<delta pt="10" x="85" y="0"/>
<delta pt="11" x="77" y="-2"/>
<delta pt="12" x="60" y="-5"/>
<delta pt="13" x="49" y="-6"/>
<delta pt="14" x="-10" y="-7"/>
<delta pt="15" x="-20" y="-5"/>
<delta pt="16" x="-36" y="-2"/>
<delta pt="17" x="-44" y="0"/>
<delta pt="18" x="-43" y="0"/>
<delta pt="19" x="-42" y="0"/>
<delta pt="20" x="-31" y="2"/>
<delta pt="21" x="-16" y="4"/>
<delta pt="22" x="-8" y="6"/>
<delta pt="23" x="51" y="6"/>
<delta pt="24" x="58" y="5"/>
<delta pt="25" x="72" y="2"/>
<delta pt="26" x="82" y="0"/>
<delta pt="27" x="83" y="0"/>
<delta pt="28" x="81" y="0"/>
<delta pt="29" x="71" y="-2"/>
<delta pt="30" x="57" y="-5"/>
<delta pt="31" x="49" y="-6"/>
<delta pt="32" x="-10" y="-7"/>
<delta pt="33" x="-17" y="-6"/>
<delta pt="34" x="-31" y="-2"/>
<delta pt="35" x="-42" y="0"/>
<delta pt="36" x="0" y="0"/>
<delta pt="37" x="0" y="0"/>
<delta pt="38" x="0" y="0"/>
<delta pt="39" x="0" y="0"/>
</tuple>
</glyphVariations>
<glyphVariations glyph="Odieresis">
<tuple>
<coord axis="slnt" value="-1.0"/>
<delta pt="0" x="0" y="0"/>
<delta pt="1" x="40" y="0"/>
<delta pt="2" x="0" y="0"/>
<delta pt="3" x="0" y="0"/>
<delta pt="4" x="0" y="0"/>
<delta pt="5" x="0" y="0"/>
</tuple>
</glyphVariations>
<glyphVariations glyph="n">
<tuple>
<coord axis="slnt" value="-1.0"/>
<delta pt="0" x="-41" y="0"/>
<delta pt="1" x="-43" y="0"/>
<delta pt="2" x="-44" y="4"/>
<delta pt="3" x="-40" y="7"/>
<delta pt="4" x="40" y="4"/>
<delta pt="5" x="46" y="0"/>
<delta pt="6" x="43" y="0"/>
<delta pt="7" x="40" y="0"/>
<delta pt="8" x="41" y="0"/>
<delta pt="9" x="37" y="-3"/>
<delta pt="10" x="27" y="-6"/>
<delta pt="11" x="19" y="-6"/>
<delta pt="12" x="-42" y="-6"/>
<delta pt="13" x="-44" y="-5"/>
<delta pt="14" x="-43" y="0"/>
<delta pt="15" x="-41" y="0"/>
<delta pt="16" x="-43" y="0"/>
<delta pt="17" x="-44" y="4"/>
<delta pt="18" x="-40" y="7"/>
<delta pt="19" x="21" y="7"/>
<delta pt="20" x="26" y="4"/>
<delta pt="21" x="38" y="0"/>
<delta pt="22" x="40" y="0"/>
<delta pt="23" x="34" y="0"/>
<delta pt="24" x="-42" y="-6"/>
<delta pt="25" x="-44" y="-4"/>
<delta pt="26" x="-43" y="0"/>
<delta pt="27" x="0" y="0"/>
<delta pt="28" x="0" y="0"/>
<delta pt="29" x="0" y="0"/>
<delta pt="30" x="0" y="0"/>
</tuple>
</glyphVariations>
<glyphVariations glyph="o">
<tuple>
<coord axis="slnt" value="-1.0"/>
<delta pt="0" x="-42" y="0"/>
<delta pt="1" x="-44" y="0"/>
<delta pt="2" x="-38" y="2"/>
<delta pt="3" x="-24" y="6"/>
<delta pt="4" x="-14" y="7"/>
<delta pt="5" x="18" y="7"/>
<delta pt="6" x="28" y="6"/>
<delta pt="7" x="41" y="3"/>
<delta pt="8" x="45" y="0"/>
<delta pt="9" x="44" y="0"/>
<delta pt="10" x="45" y="0"/>
<delta pt="11" x="40" y="-2"/>
<delta pt="12" x="27" y="-5"/>
<delta pt="13" x="16" y="-7"/>
<delta pt="14" x="-16" y="-7"/>
<delta pt="15" x="-26" y="-5"/>
<delta pt="16" x="-39" y="-3"/>
<delta pt="17" x="-44" y="0"/>
<delta pt="18" x="-42" y="0"/>
<delta pt="19" x="-40" y="0"/>
<delta pt="20" x="-24" y="4"/>
<delta pt="21" x="-14" y="7"/>
<delta pt="22" x="18" y="7"/>
<delta pt="23" x="27" y="5"/>
<delta pt="24" x="42" y="0"/>
<delta pt="25" x="44" y="0"/>
<delta pt="26" x="42" y="0"/>
<delta pt="27" x="27" y="-4"/>
<delta pt="28" x="16" y="-7"/>
<delta pt="29" x="-16" y="-7"/>
<delta pt="30" x="-25" y="-5"/>
<delta pt="31" x="-40" y="0"/>
<delta pt="32" x="0" y="0"/>
<delta pt="33" x="0" y="0"/>
<delta pt="34" x="0" y="0"/>
<delta pt="35" x="0" y="0"/>
</tuple>
</glyphVariations>
<glyphVariations glyph="odieresis">
<tuple>
<coord axis="slnt" value="-1.0"/>
<delta pt="0" x="0" y="0"/>
<delta pt="1" x="0" y="0"/>
<delta pt="2" x="0" y="0"/>
<delta pt="3" x="0" y="0"/>
<delta pt="4" x="0" y="0"/>
<delta pt="5" x="0" y="0"/>
</tuple>
</glyphVariations>
<glyphVariations glyph="uni0308">
<tuple>
<coord axis="slnt" value="-1.0"/>
<delta pt="0" x="75" y="0"/>
<delta pt="1" x="73" y="0"/>
<delta pt="2" x="73" y="5"/>
<delta pt="3" x="76" y="6"/>
<delta pt="4" x="82" y="5"/>
<delta pt="5" x="84" y="3"/>
<delta pt="6" x="82" y="0"/>
<delta pt="7" x="81" y="0"/>
<delta pt="8" x="82" y="0"/>
<delta pt="9" x="83" y="-6"/>
<delta pt="10" x="80" y="-6"/>
<delta pt="11" x="74" y="-5"/>
<delta pt="12" x="72" y="-4"/>
<delta pt="13" x="73" y="0"/>
<delta pt="14" x="75" y="0"/>
<delta pt="15" x="73" y="0"/>
<delta pt="16" x="73" y="5"/>
<delta pt="17" x="76" y="6"/>
<delta pt="18" x="82" y="5"/>
<delta pt="19" x="84" y="3"/>
<delta pt="20" x="82" y="0"/>
<delta pt="21" x="81" y="0"/>
<delta pt="22" x="82" y="0"/>
<delta pt="23" x="83" y="-6"/>
<delta pt="24" x="80" y="-6"/>
<delta pt="25" x="74" y="-5"/>
<delta pt="26" x="72" y="-4"/>
<delta pt="27" x="73" y="0"/>
<delta pt="28" x="0" y="0"/>
<delta pt="29" x="0" y="0"/>
<delta pt="30" x="0" y="0"/>
<delta pt="31" x="0" y="0"/>
</tuple>
</glyphVariations>
</gvar>
</ttFont>

View File

@ -160,7 +160,7 @@ class BuildTest(unittest.TestCase):
avar segment will not be empty but will contain the default axis value
maps: {-1.0: -1.0, 0.0: 0.0, 1.0: 1.0}.
This is to to work around an issue with some rasterizers:
This is to work around an issue with some rasterizers:
https://github.com/googlei18n/fontmake/issues/295
https://github.com/fonttools/fonttools/issues/1011
"""
@ -180,7 +180,7 @@ class BuildTest(unittest.TestCase):
resulting avar segment still contains the default axis value maps:
{-1.0: -1.0, 0.0: 0.0, 1.0: 1.0}.
This is again to to work around an issue with some rasterizers:
This is again to work around an issue with some rasterizers:
https://github.com/googlei18n/fontmake/issues/295
https://github.com/fonttools/fonttools/issues/1011
"""
@ -204,6 +204,21 @@ class BuildTest(unittest.TestCase):
save_before_dump=True,
)
def test_varlib_gvar_explicit_delta(self):
"""The variable font contains a composite glyph odieresis which does not
need a gvar entry, because all its deltas are 0, but it must be added
anyway to work around an issue with macOS 10.14.
https://github.com/fonttools/fonttools/issues/1381
"""
test_name = 'BuildGvarCompositeExplicitDelta'
self._run_varlib_build_test(
designspace_name=test_name,
font_name='TestFamily4',
tables=['gvar'],
expected_ttx_name=test_name
)
def test_varlib_build_CFF2(self):
ds_path = self.get_test_input('TestCFF2.designspace')
suffix = '.otf'