From 8c770919245d62311071734c0b2a8f1bb157c589 Mon Sep 17 00:00:00 2001 From: Rasmus Andersson Date: Thu, 25 May 2023 13:06:06 -0700 Subject: move fanyc tt tf etc ligatures from liga to dlig --- src/Inter-Italic.glyphspackage/fontinfo.plist | 17 +++----------- src/Inter-Roman.glyphspackage/fontinfo.plist | 34 ++++++++++----------------- src/features/dlig-classes.fea | 12 ++++++++++ src/features/dlig.fea | 33 +++++++++++++++++++++++++- src/features/liga-classes.fea | 12 ---------- src/features/liga.fea | 13 +--------- 6 files changed, 61 insertions(+), 60 deletions(-) create mode 100644 src/features/dlig-classes.fea delete mode 100644 src/features/liga-classes.fea (limited to 'src') diff --git a/src/Inter-Italic.glyphspackage/fontinfo.plist b/src/Inter-Italic.glyphspackage/fontinfo.plist index e9a52044e..9a313e8b3 100644 --- a/src/Inter-Italic.glyphspackage/fontinfo.plist +++ b/src/Inter-Italic.glyphspackage/fontinfo.plist @@ -2428,12 +2428,12 @@ code = "include(features/calt.fea); tag = calt; }, { -code = "include(features/dlig.fea);"; +code = "include(features/dlig.fea); +"; tag = dlig; }, { -code = "include(features/liga-classes.fea); -include(features/liga.fea); +code = "include(features/liga.fea); "; tag = liga; }, @@ -2644,17 +2644,6 @@ value = ""; tag = ss05; }, { -code = "include(features/liga.fea); -"; -labels = ( -{ -language = dflt; -value = "Force enable ligatures"; -} -); -tag = ss06; -}, -{ code = "include(features/cv01-one.fea);"; tag = cv01; }, diff --git a/src/Inter-Roman.glyphspackage/fontinfo.plist b/src/Inter-Roman.glyphspackage/fontinfo.plist index 6b950c63c..702a7d25c 100644 --- a/src/Inter-Roman.glyphspackage/fontinfo.plist +++ b/src/Inter-Roman.glyphspackage/fontinfo.plist @@ -740,6 +740,7 @@ iebrevecyrillic, eturn, _part.f_base, f, +f.1, longs, slongstroke, slongdotaccent, @@ -2428,13 +2429,13 @@ code = "include(features/calt.fea); tag = calt; }, { -code = "include(features/liga-classes.fea); -include(features/liga.fea); +code = "include(features/liga.fea); "; tag = liga; }, { -code = "include(features/dlig.fea);"; +code = "include(features/dlig.fea); +"; tag = dlig; }, { @@ -2646,17 +2647,6 @@ value = ""; tag = ss05; }, { -code = "include(features/liga.fea); -"; -labels = ( -{ -language = dflt; -value = "Force enable ligatures"; -} -); -tag = ss06; -}, -{ code = "include(features/cv01-one.fea);"; tag = cv01; }, @@ -2698,7 +2688,7 @@ code = "include(features/cv10-g-spur.fea);"; tag = cv10; }, { -code = "cvParameters { FeatUILabelNameID { name \"Single-storey a\"; }; }; +code = "cvParameters { FeatUILabelNameID { name \"Single-story a\"; }; }; include(features/cv11-single-storey-a.fea); "; tag = cv11; @@ -3294,10 +3284,11 @@ stemValues = ( userData = { GSCornerRadius = 180; GSOffsetCapStyle = 3; -GSOffsetHorizontal = 85; +GSOffsetHorizontal = 87; GSOffsetKeepCompatible = 1; GSOffsetMakeStroke = 1; -GSOffsetVertical = 80; +GSOffsetPosition = 1; +GSOffsetVertical = 85; }; }, { @@ -3577,9 +3568,10 @@ userData = { GSCornerRadius = 160; GSExtrudeAngle = 30; GSExtrudeOffset = 15; -GSOffsetHorizontal = 150; +GSOffsetHorizontal = 180; GSOffsetKeepCompatible = 1; GSOffsetMakeStroke = 1; +GSOffsetPosition = 1; GSOffsetProportional = 1; GSOffsetVertical = 130; }; @@ -10013,7 +10005,7 @@ Psi = -93; "@MMK_R_bullet" = -46; "@MMK_R_comma" = -116; "@MMK_R_eight.sups" = 46; -"@MMK_R_f" = -50; +"@MMK_R_f" = -60; "@MMK_R_four" = -128; "@MMK_R_guillemetleft" = -81; "@MMK_R_hyphen" = -58; @@ -10506,7 +10498,7 @@ underscore = -93; "@MMK_R_Y" = -32; "@MMK_R_a" = 20; "@MMK_R_bullet" = -23; -"@MMK_R_f" = -70; +"@MMK_R_f" = 0; "@MMK_R_four" = -29; "@MMK_R_hyphen" = -40; "@MMK_R_idblgrave" = 93; @@ -10515,7 +10507,7 @@ underscore = -93; "@MMK_R_quotedblleft" = -81; "@MMK_R_quotedblright" = 58; "@MMK_R_s" = -20; -"@MMK_R_t" = -80; +"@MMK_R_t" = -70; "@MMK_R_v" = 60; "@MMK_R_w" = 50; "@MMK_R_zero.subs" = 69; diff --git a/src/features/dlig-classes.fea b/src/features/dlig-classes.fea new file mode 100644 index 000000000..b01b6d950 --- /dev/null +++ b/src/features/dlig-classes.fea @@ -0,0 +1,12 @@ +# classes used by dlig and ss06 + +# left side "trigger" glyph for t.1 and f.1 sub +@LIGA_L_t = [ + f f.1 fdotaccent feng + + r rrthook uni024D rfishhook rdescend racute rcommaaccent rcaron + rdblgrave rinvertedbreve rdotaccent rdotbelow rdotbelowmacron rlinebelow + + t t.1 tpalatalhook trthook tcurl tbar tcedilla tcaron tcommaaccent tdotaccent + tdotbelow tlinebelow tcircumflexbelow tdieresis +]; diff --git a/src/features/dlig.fea b/src/features/dlig.fea index 37352a4f1..2182a2bd4 100644 --- a/src/features/dlig.fea +++ b/src/features/dlig.fea @@ -1,11 +1,42 @@ # Discretionary Ligatures -# https://docs.microsoft.com/en-us/typography/opentype/spec/features_ae#dlig +# https://learn.microsoft.com/en-us/typography/opentype/spec/features_ae#dlig # Set IgnoreMarks to skip over marks in lookups. # For example, if we have /f/acutecomb/i, treat lookup as /f/i # https://learn.microsoft.com/en-us/typography/opentype/spec/chapter2#lookup-table lookupflag IgnoreMarks; +# left side "trigger" glyph for t.1 and f.1 sub +@DLIG_L_t = [ + f f.1 fdotaccent feng + + k khook kcommaaccent kcaron kacute kdotbelow klinebelow k.base + + r rrthook uni024D rfishhook rdescend racute rcommaaccent rcaron + rdblgrave rinvertedbreve rdotaccent rdotbelow rdotbelowmacron rlinebelow + + t t.1 tpalatalhook trthook tcurl tbar tcedilla tcaron tcommaaccent tdotaccent + tdotbelow tlinebelow tcircumflexbelow tdieresis + + v vtilde vdotbelow + + w wdieresis wcircumflex wgrave wacute wdotaccent wdotbelow wring + + x xdotaccent xdieresis khacyrillic chi + + y ydieresis uni024F yacute ycircumflex uni0233 ydotaccent yring ygrave ydotbelow + yhookabove ytilde ucyrillic ushortcyrillic umacroncyrillic udieresiscyrillic + uhungarumlautcyrillic yogonek y.sc +]; + +# ffi (note. f.i is sub'd by liga) +sub f [ f f.i ]' i by f.i.1; + +# tt, ft, rt, tf, ff, ft ... +sub @DLIG_L_t t' by t.1; +sub @DLIG_L_t f' by f.1; + +# interrobang sub exclam question by interrobang; sub question exclam by interrobang; sub exclamdown questiondown by invertedinterrobang; diff --git a/src/features/liga-classes.fea b/src/features/liga-classes.fea deleted file mode 100644 index ce623a989..000000000 --- a/src/features/liga-classes.fea +++ /dev/null @@ -1,12 +0,0 @@ -# classes used by liga and ss06 - -# left side "trigger" glyph for t.1 and f.1 sub -@LIGA_L_t = [ - f f.1 fdotaccent feng - - r rrthook uni024D rfishhook rdescend racute rcommaaccent rcaron - rdblgrave rinvertedbreve rdotaccent rdotbelow rdotbelowmacron rlinebelow - - t t.1 tpalatalhook trthook tcurl tbar tcedilla tcaron tcommaaccent tdotaccent - tdotbelow tlinebelow tcircumflexbelow tdieresis -]; diff --git a/src/features/liga.fea b/src/features/liga.fea index 47491836e..e4caaaa09 100644 --- a/src/features/liga.fea +++ b/src/features/liga.fea @@ -1,18 +1,11 @@ -# Standard Ligatures (also available via ss06) +# Standard Ligatures # https://learn.microsoft.com/en-us/typography/opentype/spec/features_ko#liga -# -# Note: this code is included for both liga and ss06, thus classes like LIGA_L_t -# are defined in a separate file: liga-classes.fea (classes are not namespaced) -# # Set IgnoreMarks to skip over marks in lookups. # For example, if we have /f/acutecomb/i, treat lookup as /f/i # https://learn.microsoft.com/en-us/typography/opentype/spec/chapter2#lookup-table lookupflag IgnoreMarks; -# ffi -sub f f' i by f.i.1; - # fi sub f' [ i idotless idotless.double itildebelow ibar igrave iacute iogonek @@ -20,7 +13,3 @@ sub f' [ j jdotless jdotlessbar uni0249 uni0249.ccmp jcrosstail yotgreek jecyrillic ] by f.i; - -# tt, ft, rt, tf, ff, ft, etc. -sub @LIGA_L_t t' by t.1; -sub @LIGA_L_t f' by f.1; -- cgit v1.2.3