From 0a619f4a95f23f67cb76addd76e979f04a9fcedf Mon Sep 17 00:00:00 2001 From: Belleve Invis Date: Tue, 9 Jun 2020 01:40:15 -0700 Subject: [PATCH] Add combining & spacing arrowheads --- glyphs/autobuild-accents.ptl | 8 +++++ glyphs/overmarks.ptl | 64 ++++++++++++++++++++++++++---------- 2 files changed, 54 insertions(+), 18 deletions(-) diff --git a/glyphs/autobuild-accents.ptl b/glyphs/autobuild-accents.ptl index 94cea1248..f8ef1c5bf 100644 --- a/glyphs/autobuild-accents.ptl +++ b/glyphs/autobuild-accents.ptl @@ -242,6 +242,14 @@ define customDecompositions : object ."\u02F7" "\uE09D\u0330" ."\u02BE" "\uE09D\u0357" ."\u02BF" "\uE09D\u0351" + ."\u02C2" "\uE09D\u1DFE" + ."\u02C3" "\uE09D\u0350" + ."\u02C4" "\uE09D\uE092" + ."\u02C5" "\uE09D\uE093" + ."\u02EF" "\uE09D\uE095" + ."\u02F0" "\uE09D\uE094" + ."\u02F1" "\uE09D\u0354" + ."\u02F2" "\uE09D\u0355" ."\u1FED" "\uE09D\u0308\u0300" ."\u1FEE" "\uE09D\u0308\u0301" diff --git a/glyphs/overmarks.ptl b/glyphs/overmarks.ptl index a46185de1..16d23402f 100644 --- a/glyphs/overmarks.ptl +++ b/glyphs/overmarks.ptl @@ -608,22 +608,44 @@ glyph-block Overmarks : begin set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop local top aboveMarkTop local bot aboveMarkBot - local exp : Math.sqrt : 1 + (top - bot) / (markExtend) * (top - bot) / (markExtend) + local exp : Math.sqrt : 1 + [Math.pow ((top - bot) / markExtend) 2] include : dispiro widths.center : markFine * 2 flat (markMiddle + markExtend) top - curl (markMiddle - markExtend) [mix top bot 0.5] [widths.heading (markFine / 2 * exp) (markFine / 2 * exp) Leftward] + curl (markMiddle - markExtend) [mix top bot 0.5] [widths.center.heading (markFine * exp) Leftward] include : dispiro widths.center : markFine * 2 flat (markMiddle + markExtend) bot - curl (markMiddle - markExtend) [mix top bot 0.5] [widths.heading (markFine / 2 * exp) (markFine / 2 * exp) Leftward] + curl (markMiddle - markExtend) [mix top bot 0.5] [widths.center.heading (markFine * exp) Leftward] save 'lessAbove' 0x1DFE include : FlipAround markMiddle [mix top bot 0.5] save 'greaterAbove' 0x350 + sketch # upArrowAbove + set-width 0 + set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop + local top aboveMarkTop + local bot aboveMarkBot + local exp : Math.sqrt : 1 + [Math.pow (3 * markExtend / (top - bot)) 2] + include : dispiro + widths.center : markFine * 2 + flat (markMiddle - markExtend) bot + curl markMiddle top [widths.center.heading (markFine * exp) Upward] + + include : dispiro + widths.center : markFine * 2 + flat (markMiddle + markExtend) bot + curl markMiddle top [widths.center.heading (markFine * exp) Upward] + + save 'upArrowHeadAbove' 0xE092 + + include : FlipAround markMiddle [mix top bot 0.5] + save 'downArrowHeadAbove' 0xE093 + + ### Below marks sketch # cedillaBelow set-width 0 @@ -992,7 +1014,6 @@ glyph-block Overmarks : begin set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot include : refer-glyph "barAbove" include : FlipAround markMiddle (XH / 2) - save 'barBelow' 0x329 sketch # dblBarBelow @@ -1000,43 +1021,50 @@ glyph-block Overmarks : begin set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot include : refer-glyph "dblBarAbove" include : FlipAround markMiddle (XH / 2) - save 'dblBarBelow' 0x348 sketch # crossBelow set-width 0 set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot - include : refer-glyph "crossAbove" include : FlipAround markMiddle (XH / 2) save 'crossBelow' 0x353 - sketch # lessBelow + create-glyph 'lessBelow' 0x354 : glyph-construction set-width 0 set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot - include : refer-glyph "greaterAbove" include : FlipAround markMiddle (XH / 2) - save 'lessBelow' 0x354 - - sketch # greaterBelow + create-glyph 'greaterBelow' 0x355 : glyph-construction set-width 0 set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot - include : refer-glyph "lessAbove" include : FlipAround markMiddle (XH / 2) - save 'greaterBelow' 0x355 - - sketch # greaterBelow + create-glyph 'upArrowHeadBelow' 0xE094 : glyph-construction set-width 0 set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot - - include : refer-glyph "dblRingAbove" + include : refer-glyph "downArrowHeadAbove" include : FlipAround markMiddle (XH / 2) - save 'dblRingBelow' 0x35a + create-glyph 'downArrowHeadBelow' 0xE095 : glyph-construction + set-width 0 + set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot + include : refer-glyph "upArrowHeadAbove" + include : FlipAround markMiddle (XH / 2) + + create-glyph 'greaterAndUpArrowheadBelow' 0x0356 : glyph-construction + set-width 0 + set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot + include : WithTransform [Translate (-markExtend) 0] : refer-glyph 'greaterBelow' + include : WithTransform [Translate (+markExtend) 0] : refer-glyph 'upArrowHeadBelow' + + create-glyph 'dblRingBelow' 0x35a : glyph-construction + set-width 0 + set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot + include : refer-glyph "dblRingAbove" + include : FlipAround markMiddle (XH / 2) sketch # lrArrowBelow set-width 0