don't sort product of liga components to keep declaration order
technically we are tweaking the original example from the spec but it keeps the spirit, so that the product of glyph classes produces the same representation in the font as if the sequences were manually enumerated (while keeping the declaration order)
This commit is contained in:
parent
f96b2128a1
commit
957b5fb45a
@ -1338,7 +1338,7 @@ class Builder(object):
|
||||
# substitutions to be specified on target sequences that contain
|
||||
# glyph classes, the implementation software will enumerate
|
||||
# all specific glyph sequences if glyph classes are detected"
|
||||
for g in sorted(itertools.product(*glyphs)):
|
||||
for g in itertools.product(*glyphs):
|
||||
lookup.ligatures[g] = replacement
|
||||
|
||||
# GSUB 5/6
|
||||
|
@ -2,7 +2,7 @@
|
||||
# http://www.adobe.com/devnet/opentype/afdko/topic_feature_file_syntax.html
|
||||
|
||||
feature F1 {
|
||||
sub [one one.oldstyle] [slash fraction] [two two.oldstyle] by onehalf;
|
||||
sub [one one.oldstyle] [fraction slash] [two two.oldstyle] by onehalf;
|
||||
} F1;
|
||||
|
||||
# Since the OpenType specification does not allow ligature substitutions
|
||||
@ -12,12 +12,12 @@ feature F1 {
|
||||
# example produces an identical representation in the font as if all
|
||||
# the sequences were manually enumerated by the font editor:
|
||||
feature F2 {
|
||||
sub one slash two by onehalf;
|
||||
sub one.oldstyle slash two by onehalf;
|
||||
sub one fraction two by onehalf;
|
||||
sub one.oldstyle fraction two by onehalf;
|
||||
sub one slash two.oldstyle by onehalf;
|
||||
sub one.oldstyle slash two.oldstyle by onehalf;
|
||||
sub one fraction two.oldstyle by onehalf;
|
||||
sub one slash two by onehalf;
|
||||
sub one slash two.oldstyle by onehalf;
|
||||
sub one.oldstyle fraction two by onehalf;
|
||||
sub one.oldstyle fraction two.oldstyle by onehalf;
|
||||
sub one.oldstyle slash two by onehalf;
|
||||
sub one.oldstyle slash two.oldstyle by onehalf;
|
||||
} F2;
|
||||
|
@ -62,16 +62,16 @@
|
||||
<!-- SubTableCount=1 -->
|
||||
<LigatureSubst index="0">
|
||||
<LigatureSet glyph="one">
|
||||
<Ligature components="slash,two" glyph="onehalf"/>
|
||||
<Ligature components="fraction,two" glyph="onehalf"/>
|
||||
<Ligature components="slash,two.oldstyle" glyph="onehalf"/>
|
||||
<Ligature components="fraction,two.oldstyle" glyph="onehalf"/>
|
||||
<Ligature components="slash,two" glyph="onehalf"/>
|
||||
<Ligature components="slash,two.oldstyle" glyph="onehalf"/>
|
||||
</LigatureSet>
|
||||
<LigatureSet glyph="one.oldstyle">
|
||||
<Ligature components="slash,two" glyph="onehalf"/>
|
||||
<Ligature components="fraction,two" glyph="onehalf"/>
|
||||
<Ligature components="slash,two.oldstyle" glyph="onehalf"/>
|
||||
<Ligature components="fraction,two.oldstyle" glyph="onehalf"/>
|
||||
<Ligature components="slash,two" glyph="onehalf"/>
|
||||
<Ligature components="slash,two.oldstyle" glyph="onehalf"/>
|
||||
</LigatureSet>
|
||||
</LigatureSubst>
|
||||
</Lookup>
|
||||
|
Loading…
x
Reference in New Issue
Block a user