diff --git a/glyphs/letters-unified-basic.ptl b/glyphs/letters-unified-basic.ptl index 1f20d56..ad3e789 100644 --- a/glyphs/letters-unified-basic.ptl +++ b/glyphs/letters-unified-basic.ptl @@ -43,7 +43,7 @@ export : define [apply] : begin define [IotaShape top] : glyph-construction local middle MIDDLE set-anchor 'above' BASE middle top - include : LeftwardTopSerif middle top LONGJUT + include : tagged 'serifLT' : LeftwardTopSerif middle top LONGJUT include : dispiro widths.center flat middle top [heading DOWNWARD] @@ -71,8 +71,8 @@ export : define [apply] : begin sketch # dotlessi.hooky include markset.e - include : VBar (MIDDLE + IBALANCE) 0 XH - include : LeftwardTopSerif (MIDDLE + IBALANCE) XH LONGJUT + include : VBar (MIDDLE + IBALANCE2) 0 XH + include : LeftwardTopSerif (MIDDLE + IBALANCE2) XH LONGJUT save 'dotlessi.hooky' sketch # dotlessi.zshaped @@ -309,16 +309,16 @@ export : define [apply] : begin sketch # l.hooky include markset.b - include : VBar (MIDDLE + LBALANCE) 0 (CAP - STROKE) - include : LeftwardTopSerif (MIDDLE + LBALANCE) CAP LONGJUT - + include : VBar (MIDDLE + LBALANCE2) 0 (CAP - STROKE) + include : LeftwardTopSerif (MIDDLE + LBALANCE2) CAP LONGJUT + save 'l.hooky' sketch # l.zshaped include markset.b include : VBar MIDDLE 0 (CAP - STROKE) - include : LeftwardTopSerif MIDDLE CAP LONGJUT - include : RightwardBottomSerif MIDDLE 0 LONGJUT + include : tagged 'serifLT' : LeftwardTopSerif MIDDLE CAP LONGJUT + include : tagged 'serifRB' : RightwardBottomSerif MIDDLE 0 LONGJUT save 'l.zshaped' @@ -344,7 +344,7 @@ export : define [apply] : begin curl left (SMALLSMOOTHB * 0.85) hookend O g4 right HOOK - include : dispiro + include : tagged 'serifLT': dispiro flat SB CAP [widths 0 STROKE] curl left CAP set-anchor 'above' BASE (left + HALFSTROKE) CAP @@ -352,12 +352,32 @@ export : define [apply] : begin set-anchor 'overlay' BASE (left + HALFSTROKE) (CAP * OVERLAYPOS) : else : include : IotaShape CAP save 'l.italic' + + sketch # l.tailed + include markset.b + local middle : MIDDLE - HALFSTROKE / 2 + local top CAP + local x0 : (HOOK - HALFSTROKE + 1) * 0.9 + HALFSTROKE / 2 + local x1 : [Math.max (HOOK - HALFSTROKE + 1) LONGJUT] + HALFSTROKE / 2 + include : dispiro + widths.center + flat (middle) top [heading DOWNWARD] + curl (middle) HOOK + arcvh + g4.right.mid (middle + x0) (HALFSTROKE + O) [heading RIGHTWARD] + g4 (middle + x1) (HALFSTROKE - O) [heading RIGHTWARD] + set-anchor 'above' BASE middle CAP + set-anchor 'below' BASE middle 0 + set-anchor 'overlay' BASE middle (CAP * OVERLAYPOS) + save 'l.tailed' + select-variant 'l' 'l' [if para.isItalic 'italic' 'serifed'] { .'cv07' 'l.serifed' .'cv08' 'l.italic' .'cv09' 'l.hooky' .'cv10' 'l.zshaped' + .'cv27' 'l.tailed' } alias 'palochka' 0x4CF 'l' turned 'turnl' 0xA781 'l' MIDDLE (XH / 2) markset.p diff --git a/meta/aesthetics.ptl b/meta/aesthetics.ptl index 3115586..df31b9e 100644 --- a/meta/aesthetics.ptl +++ b/meta/aesthetics.ptl @@ -79,6 +79,8 @@ export : define [calculateMetrics para] : begin define TAILADJY : XH * 0.25 define LBALANCE : LONGJUT * 0.04 define IBALANCE : fallback para.ibalance (LONGJUT * 0.04) + define LBALANCE2 : LONGJUT * 0.14 + define IBALANCE2 : fallback para.ibalance (LONGJUT * 0.14) define JBALANCE : fallback para.jbalance 0 define JBALANCE2 : fallback para.jbalance2 (STROKE * 0.25 + LBALANCE) define TBALANCE : fallback para.tbalance JBALANCE @@ -142,7 +144,7 @@ export : define [calculateMetrics para] : begin TANSLANT SINSLANT COSSLANT HVCONTRAST UPWARD DOWNWARD RIGHTWARD LEFTWARD O OX OXHOOK HOOK AHOOK SHOOK RHOOK JHOOK FHOOK HOOKX SMOOTH SMALLSMOOTH STROKE DOTSIZE PERIODSIZE BARPOS GBARPOS PBARPOS EBARPOS OVERLAYPOS FIVEBARPOS LONGJUT JUT VJUT ACCENT ACCENTX CTHIN CTHINB SLAB - TAILADJX TAILADJY LBALANCE IBALANCE JBALANCE JBALANCE2 TBALANCE TBALANCE2 RBALANCE RBALANCE2 + TAILADJX TAILADJY LBALANCE IBALANCE LBALANCE2 IBALANCE2 JBALANCE JBALANCE2 TBALANCE TBALANCE2 RBALANCE RBALANCE2 FBALANCE ONEBALANCE FULLWIDTH FULLWIDTH1 FULLWIDTH2 FULLWIDTH3 OXE ESS ESSQUESTION XO CAPO HALFSTROKE RIGHTSB FWRSB MIDDLE FWMIDDLE CAPMIDDLE CAP_SMOOTH DOTRADIUS PERIODRADIUS SIDEJUT SMOOTHA SMOOTHB SMALLSMOOTHA SMALLSMOOTHB CORRECTION_OMIDX CORRECTION_OMIDS WHITENESS adviceBlackness MVERTSTROKE OVERLAYSTROKE OPERATORSTROKE SHOULDERFINE SUPERNESS superxy diff --git a/meta/macros.ptl b/meta/macros.ptl index 573cbd0..d3fa47c 100644 --- a/meta/macros.ptl +++ b/meta/macros.ptl @@ -155,7 +155,7 @@ define-macro glyph-module-entry : syntax-rules TANSLANT SINSLANT COSSLANT HVCONTRAST UPWARD DOWNWARD RIGHTWARD LEFTWARD O OX OXHOOK HOOK AHOOK SHOOK RHOOK JHOOK FHOOK HOOKX SMOOTH SMALLSMOOTH STROKE DOTSIZE PERIODSIZE BARPOS GBARPOS PBARPOS EBARPOS OVERLAYPOS FIVEBARPOS LONGJUT JUT VJUT ACCENT ACCENTX CTHIN CTHINB SLAB - TAILADJX TAILADJY LBALANCE IBALANCE JBALANCE JBALANCE2 TBALANCE TBALANCE2 RBALANCE RBALANCE2 + TAILADJX TAILADJY LBALANCE IBALANCE LBALANCE2 IBALANCE2 JBALANCE JBALANCE2 TBALANCE TBALANCE2 RBALANCE RBALANCE2 FBALANCE ONEBALANCE FULLWIDTH FULLWIDTH1 FULLWIDTH2 FULLWIDTH3 OXE ESS ESSQUESTION XO CAPO HALFSTROKE RIGHTSB FWRSB MIDDLE FWMIDDLE CAPMIDDLE CAP_SMOOTH DOTRADIUS PERIODRADIUS SIDEJUT SMOOTHA SMOOTHB SMALLSMOOTHA SMALLSMOOTHB CORRECTION_OMIDX CORRECTION_OMIDS WHITENESS adviceBlackness MVERTSTROKE OVERLAYSTROKE OPERATORSTROKE SHOULDERFINE SUPERNESS superxy diff --git a/parameters.toml b/parameters.toml index 1b233ce..75407ba 100644 --- a/parameters.toml +++ b/parameters.toml @@ -560,6 +560,8 @@ dotlessi = 'serifed' l = 'italic' [v-i-italic.variantSelector] dotlessi = 'italic' +[v-l-tailed.variantSelector] +l = 'tailed' [v-a-singlestorey.variantSelector] a = 'singlestorey' [v-a-doublestorey.variantSelector]