For this construct, makeotf throws an error: "Contextual alternate rule not yet supported". If it had been implemented, we speculate that the ordering would likely be the same as with other contextual substitutions (the chain comes before, not after, the dependent lookup). https://github.com/behdad/fonttools/issues/507
275 lines
8.7 KiB
XML
275 lines
8.7 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<ttFont>
|
|
|
|
<GSUB>
|
|
<Version value="1.0"/>
|
|
<ScriptList>
|
|
<!-- ScriptCount=1 -->
|
|
<ScriptRecord index="0">
|
|
<ScriptTag value="DFLT"/>
|
|
<Script>
|
|
<DefaultLangSys>
|
|
<ReqFeatureIndex value="65535"/>
|
|
<!-- FeatureCount=1 -->
|
|
<FeatureIndex index="0" value="0"/>
|
|
</DefaultLangSys>
|
|
<!-- LangSysCount=0 -->
|
|
</Script>
|
|
</ScriptRecord>
|
|
</ScriptList>
|
|
<FeatureList>
|
|
<!-- FeatureCount=1 -->
|
|
<FeatureRecord index="0">
|
|
<FeatureTag value="test"/>
|
|
<Feature>
|
|
<!-- LookupCount=5 -->
|
|
<LookupListIndex index="0" value="1"/>
|
|
<LookupListIndex index="1" value="4"/>
|
|
<LookupListIndex index="2" value="5"/>
|
|
<LookupListIndex index="3" value="7"/>
|
|
<LookupListIndex index="4" value="9"/>
|
|
</Feature>
|
|
</FeatureRecord>
|
|
</FeatureList>
|
|
<LookupList>
|
|
<!-- LookupCount=10 -->
|
|
<Lookup index="0">
|
|
<!-- LookupType=1 -->
|
|
<LookupFlag value="0"/>
|
|
<!-- SubTableCount=1 -->
|
|
<SingleSubst index="0">
|
|
<Substitution in="A" out="A.sc"/>
|
|
</SingleSubst>
|
|
</Lookup>
|
|
<Lookup index="1">
|
|
<!-- LookupType=6 -->
|
|
<LookupFlag value="0"/>
|
|
<!-- SubTableCount=2 -->
|
|
<ChainContextSubst index="0" Format="3">
|
|
<!-- BacktrackGlyphCount=2 -->
|
|
<BacktrackCoverage index="0">
|
|
<Glyph value="three"/>
|
|
</BacktrackCoverage>
|
|
<BacktrackCoverage index="1">
|
|
<Glyph value="one"/>
|
|
<Glyph value="two"/>
|
|
</BacktrackCoverage>
|
|
<!-- InputGlyphCount=1 -->
|
|
<InputCoverage index="0">
|
|
<Glyph value="A"/>
|
|
</InputCoverage>
|
|
<!-- LookAheadGlyphCount=0 -->
|
|
<!-- SubstCount=1 -->
|
|
<SubstLookupRecord index="0">
|
|
<SequenceIndex value="0"/>
|
|
<LookupListIndex value="0"/>
|
|
</SubstLookupRecord>
|
|
</ChainContextSubst>
|
|
<ChainContextSubst index="1" Format="3">
|
|
<!-- BacktrackGlyphCount=0 -->
|
|
<!-- InputGlyphCount=1 -->
|
|
<InputCoverage index="0">
|
|
<Glyph value="B"/>
|
|
<Glyph value="C"/>
|
|
<Glyph value="D"/>
|
|
</InputCoverage>
|
|
<!-- LookAheadGlyphCount=2 -->
|
|
<LookAheadCoverage index="0">
|
|
<Glyph value="seven"/>
|
|
</LookAheadCoverage>
|
|
<LookAheadCoverage index="1">
|
|
<Glyph value="eight"/>
|
|
<Glyph value="nine"/>
|
|
</LookAheadCoverage>
|
|
<!-- SubstCount=1 -->
|
|
<SubstLookupRecord index="0">
|
|
<SequenceIndex value="0"/>
|
|
<LookupListIndex value="2"/>
|
|
</SubstLookupRecord>
|
|
</ChainContextSubst>
|
|
</Lookup>
|
|
<Lookup index="2">
|
|
<!-- LookupType=1 -->
|
|
<LookupFlag value="0"/>
|
|
<!-- SubTableCount=1 -->
|
|
<SingleSubst index="0">
|
|
<Substitution in="B" out="B.sc"/>
|
|
<Substitution in="C" out="C.sc"/>
|
|
<Substitution in="D" out="D.sc"/>
|
|
</SingleSubst>
|
|
</Lookup>
|
|
<Lookup index="3">
|
|
<!-- LookupType=2 -->
|
|
<LookupFlag value="0"/>
|
|
<!-- SubTableCount=1 -->
|
|
<MultipleSubst index="0">
|
|
<Substitution in="c_t" out="c,t"/>
|
|
</MultipleSubst>
|
|
</Lookup>
|
|
<Lookup index="4">
|
|
<!-- LookupType=6 -->
|
|
<LookupFlag value="0"/>
|
|
<!-- SubTableCount=1 -->
|
|
<ChainContextSubst index="0" Format="3">
|
|
<!-- BacktrackGlyphCount=3 -->
|
|
<BacktrackCoverage index="0">
|
|
<Glyph value="E"/>
|
|
</BacktrackCoverage>
|
|
<BacktrackCoverage index="1">
|
|
<Glyph value="D"/>
|
|
<Glyph value="d"/>
|
|
</BacktrackCoverage>
|
|
<BacktrackCoverage index="2">
|
|
<Glyph value="A"/>
|
|
<Glyph value="B"/>
|
|
<Glyph value="C"/>
|
|
<Glyph value="a"/>
|
|
<Glyph value="b"/>
|
|
<Glyph value="c"/>
|
|
</BacktrackCoverage>
|
|
<!-- InputGlyphCount=1 -->
|
|
<InputCoverage index="0">
|
|
<Glyph value="c_t"/>
|
|
</InputCoverage>
|
|
<!-- LookAheadGlyphCount=3 -->
|
|
<LookAheadCoverage index="0">
|
|
<Glyph value="V"/>
|
|
</LookAheadCoverage>
|
|
<LookAheadCoverage index="1">
|
|
<Glyph value="W"/>
|
|
<Glyph value="w"/>
|
|
</LookAheadCoverage>
|
|
<LookAheadCoverage index="2">
|
|
<Glyph value="X"/>
|
|
<Glyph value="Y"/>
|
|
<Glyph value="Z"/>
|
|
<Glyph value="x"/>
|
|
<Glyph value="y"/>
|
|
<Glyph value="z"/>
|
|
</LookAheadCoverage>
|
|
<!-- SubstCount=1 -->
|
|
<SubstLookupRecord index="0">
|
|
<SequenceIndex value="0"/>
|
|
<LookupListIndex value="3"/>
|
|
</SubstLookupRecord>
|
|
</ChainContextSubst>
|
|
</Lookup>
|
|
<Lookup index="5">
|
|
<!-- LookupType=6 -->
|
|
<LookupFlag value="0"/>
|
|
<!-- SubTableCount=1 -->
|
|
<ChainContextSubst index="0" Format="3">
|
|
<!-- BacktrackGlyphCount=1 -->
|
|
<BacktrackCoverage index="0">
|
|
<Glyph value="space"/>
|
|
<Glyph value="semicolon"/>
|
|
<Glyph value="comma"/>
|
|
</BacktrackCoverage>
|
|
<!-- InputGlyphCount=1 -->
|
|
<InputCoverage index="0">
|
|
<Glyph value="e"/>
|
|
</InputCoverage>
|
|
<!-- LookAheadGlyphCount=0 -->
|
|
<!-- SubstCount=1 -->
|
|
<SubstLookupRecord index="0">
|
|
<SequenceIndex value="0"/>
|
|
<LookupListIndex value="6"/>
|
|
</SubstLookupRecord>
|
|
</ChainContextSubst>
|
|
</Lookup>
|
|
<Lookup index="6">
|
|
<!-- LookupType=3 -->
|
|
<LookupFlag value="0"/>
|
|
<!-- SubTableCount=1 -->
|
|
<AlternateSubst index="0">
|
|
<AlternateSet glyph="e">
|
|
<Alternate glyph="e"/>
|
|
<Alternate glyph="e.begin"/>
|
|
</AlternateSet>
|
|
</AlternateSubst>
|
|
</Lookup>
|
|
<Lookup index="7">
|
|
<!-- LookupType=6 -->
|
|
<LookupFlag value="0"/>
|
|
<!-- SubTableCount=1 -->
|
|
<ChainContextSubst index="0" Format="3">
|
|
<!-- BacktrackGlyphCount=1 -->
|
|
<BacktrackCoverage index="0">
|
|
<Glyph value="A"/>
|
|
</BacktrackCoverage>
|
|
<!-- InputGlyphCount=2 -->
|
|
<InputCoverage index="0">
|
|
<Glyph value="C"/>
|
|
<Glyph value="c"/>
|
|
</InputCoverage>
|
|
<InputCoverage index="1">
|
|
<Glyph value="T"/>
|
|
<Glyph value="t"/>
|
|
</InputCoverage>
|
|
<!-- LookAheadGlyphCount=1 -->
|
|
<LookAheadCoverage index="0">
|
|
<Glyph value="Z"/>
|
|
</LookAheadCoverage>
|
|
<!-- SubstCount=1 -->
|
|
<SubstLookupRecord index="0">
|
|
<SequenceIndex value="0"/>
|
|
<LookupListIndex value="8"/>
|
|
</SubstLookupRecord>
|
|
</ChainContextSubst>
|
|
</Lookup>
|
|
<Lookup index="8">
|
|
<!-- LookupType=4 -->
|
|
<LookupFlag value="0"/>
|
|
<!-- SubTableCount=1 -->
|
|
<LigatureSubst index="0">
|
|
<LigatureSet glyph="C">
|
|
<Ligature components="T" glyph="c_t"/>
|
|
<Ligature components="t" glyph="c_t"/>
|
|
</LigatureSet>
|
|
<LigatureSet glyph="c">
|
|
<Ligature components="T" glyph="c_t"/>
|
|
<Ligature components="t" glyph="c_t"/>
|
|
</LigatureSet>
|
|
</LigatureSubst>
|
|
</Lookup>
|
|
<Lookup index="9">
|
|
<!-- LookupType=6 -->
|
|
<LookupFlag value="0"/>
|
|
<!-- SubTableCount=1 -->
|
|
<ChainContextSubst index="0" Format="3">
|
|
<!-- BacktrackGlyphCount=3 -->
|
|
<BacktrackCoverage index="0">
|
|
<Glyph value="E"/>
|
|
</BacktrackCoverage>
|
|
<BacktrackCoverage index="1">
|
|
<Glyph value="D"/>
|
|
</BacktrackCoverage>
|
|
<BacktrackCoverage index="2">
|
|
<Glyph value="A"/>
|
|
</BacktrackCoverage>
|
|
<!-- InputGlyphCount=1 -->
|
|
<InputCoverage index="0">
|
|
<Glyph value="c_t"/>
|
|
</InputCoverage>
|
|
<!-- LookAheadGlyphCount=3 -->
|
|
<LookAheadCoverage index="0">
|
|
<Glyph value="V"/>
|
|
</LookAheadCoverage>
|
|
<LookAheadCoverage index="1">
|
|
<Glyph value="W"/>
|
|
</LookAheadCoverage>
|
|
<LookAheadCoverage index="2">
|
|
<Glyph value="X"/>
|
|
</LookAheadCoverage>
|
|
<!-- SubstCount=1 -->
|
|
<SubstLookupRecord index="0">
|
|
<SequenceIndex value="0"/>
|
|
<LookupListIndex value="4"/>
|
|
</SubstLookupRecord>
|
|
</ChainContextSubst>
|
|
</Lookup>
|
|
</LookupList>
|
|
</GSUB>
|
|
|
|
</ttFont>
|