diff --git a/changes/33.2.4.md b/changes/33.2.4.md new file mode 100644 index 000000000..f0d8faa12 --- /dev/null +++ b/changes/33.2.4.md @@ -0,0 +1,2 @@ +* Refine shape of the following characters: + - LATIN CAPITAL LETTER LAMBDA WITH STROKE (`U+A7DC`). diff --git a/packages/font-glyphs/src/letter/latin/upper-y.ptl b/packages/font-glyphs/src/letter/latin/upper-y.ptl index 076fba22a..ded586e26 100644 --- a/packages/font-glyphs/src/letter/latin/upper-y.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-y.ptl @@ -42,24 +42,26 @@ glyph-block Letter-Latin-Upper-Y : begin HalfXStrand bodyType SLAB RightSB top Middle cross 0.1 0.4 0.28 include : tagged 'strokeVMid' : VBar.m Middle bot (cross + HalfStroke) set-base-anchor 'overlay' Middle cross + set-base-anchor 'overlayOnExtension' Middle + [mix (bot + [if (slabType === SLAB-NONE || slabType === SLAB-BASE) 0 Stroke]) cross 0.5] + (Stroke - OverlayStroke) / 2 define [YenOverlayShape slabType] : glyph-proc define { ks bot } : match slabType ([Just SLAB-ALL] || [Just SLAB-BASE]) { 0.25 Stroke } otherwise { 0 0 } include : HOverlayBar SB RightSB ([mix bot [YCrossPos CAP 0] 0.5] - OverlayStroke * ks) - include : HOverlayBar SB RightSB [mix bot [YCrossPos CAP 0] 1.0] + include : HOverlayBar SB RightSB [mix bot [YCrossPos CAP 0] 1.0] define [YHookLeftHookedStroke top bot cross] : dispiro widths.lhs - straight.right.start (SB - TailX / 3) (top - Stroke - O) + straight.right.start (SB - TailX / 3) (top - O - Stroke) g4 (SB + TailX / 3) (top - TailY) [widths.lhs : AdviceStroke 2.75] quadControls 0.55 0.7 32 unimportant g4 (Middle - [HSwToV HalfStroke]) cross [widths.lhs : AdviceStroke 3.5] define [YHookRightHookedStroke top bot cross] : dispiro widths.rhs - straight.left.start (RightSB + TailX / 3) (top - Stroke - O) + straight.left.start (RightSB + TailX / 3) (top - O - Stroke) g4 (RightSB - TailX / 3) (top - TailY) [widths.rhs : AdviceStroke 2.75] quadControls 0.55 0.7 32 unimportant g4 (Middle + [HSwToV HalfStroke]) cross [widths.rhs : AdviceStroke 3.5] @@ -71,7 +73,7 @@ glyph-block Letter-Latin-Upper-Y : begin define [UpsilonHookedSymbolShape] : with-params [top bot [cross : YCrossPos top bot]] : glyph-proc include : VBar.m Middle bot (cross + HalfStroke) - include : YHookLeftHookedStroke top bot cross + include : YHookLeftHookedStroke top bot cross include : YHookRightHookedStroke top bot cross define YConfig : object @@ -92,8 +94,7 @@ glyph-block Letter-Latin-Upper-Y : begin create-glyph "grek/Upsilon.\(suffix)" : glyph-proc include [refer-glyph "Y.\(suffix)"] AS_BASE ALSO_METRICS - include : SetGrekUpperTonos - if (slabType === SLAB-NONE || slabType === SLAB-BASE) OX (OX - SideJut) + include : SetGrekUpperTonos (OX - [if (slabType === SLAB-NONE || slabType === SLAB-BASE) 0 SideJut]) create-glyph "smcpY.\(suffix)" : glyph-proc include : MarkSet.e @@ -129,10 +130,7 @@ glyph-block Letter-Latin-Upper-Y : begin link-reduced-variant 'Y/sansSerif' 'Y' MathSansSerif select-variant 'smcpY' 0x28F (follow -- 'Y') select-variant 'YHookTop' 0x1B3 (follow -- 'Y') - select-variant 'Y/LambdaBase' (shapeFrom -- 'Y') - CreateAccentedComposition 'YBar/LambdaBase' null 'Y/LambdaBase' 'barOver' - - CreateTurnedLetter 'turnY/sansSerif' 0x2144 'Y/sansSerif' HalfAdvance (CAP / 2) + CreateAccentedComposition 'YStrokeBottom' null 'Y' 'barOverOnExtension' select-variant 'grek/Upsilon' 0x3A5 (follow -- 'Y') link-reduced-variant 'grek/Upsilon/sansSerif' 'grek/Upsilon' MathSansSerif (follow -- 'Y/sansSerif') @@ -143,18 +141,19 @@ glyph-block Letter-Latin-Upper-Y : begin CreateAccentedComposition 'cyrl/Uo' 0x4B0 'cyrl/Ue' 'barOver' CreateAccentedComposition 'cyrl/uo' 0x4B1 'cyrl/ue' 'barOver' - create-glyph 'YStroke/Overlay' : HOverlayBar ([mix 0 SB 0.5]) ([mix Width RightSB 0.5]) [mix 0 CAP 0.75] + create-glyph 'YStroke/Overlay' : HOverlayBar [mix 0 SB 0.5] [mix Width RightSB 0.5] [mix 0 CAP 0.75] derive-composites 'YStroke' 0x24E 'Y' 'YStroke/Overlay' - CreateTurnedLetter 'latn/Lambda' 0xA7DA 'Y/LambdaBase' HalfAdvance (CAP / 2) - CreateTurnedLetter 'latn/LambdaStroke' 0xA7DC 'YBar/LambdaBase' HalfAdvance (CAP / 2) + CreateTurnedLetter 'latn/Lambda' 0xA7DA 'Y' HalfAdvance (CAP / 2) + CreateTurnedLetter 'latn/LambdaStroke' 0xA7DC 'YStrokeBottom' HalfAdvance (CAP / 2) + CreateTurnedLetter 'turnY/sansSerif' 0x2144 'Y/sansSerif' HalfAdvance (CAP / 2) select-variant 'currency/yenSign' 0xA5 (follow -- 'Y') # Blackboard glyph-block-import Letter-Blackboard : BBS BBD create-glyph 'mathbb/Y' 0x1D550 : glyph-proc - local yCross : CAP * 0.4 + local yCross : YCrossPos CAP 0 include : MarkSet.capital include : HBar.t SB (SB + BBD) CAP BBS @@ -162,15 +161,15 @@ glyph-block Letter-Latin-Upper-Y : begin Rect CAP 0 (-Width) (2 * Width) union difference - ExtLineCenter 1 BBS SB CAP (Middle - BBD / 2) yCross + ExtLineCenter 1 BBS SB CAP (Middle - BBD / 2) yCross Rect CAP 0 (Middle - BBD / 2 + [HSwToV : 0.5 * BBS]) (Width * 2) difference - ExtLineCenter 1 BBS (SB + BBD) CAP (Middle + BBD / 2) yCross + ExtLineCenter 1 BBS (SB + BBD) CAP (Middle + BBD / 2) yCross Rect CAP 0 (Middle + BBD / 2 + [HSwToV : 0.5 * BBS]) (Width * 2) include : intersection Rect CAP yCross (-Width) (2 * Width) - ExtLineCenter 1 BBS RightSB CAP (Middle + BBD / 2) yCross + ExtLineCenter 1 BBS RightSB CAP (Middle + BBD / 2) yCross include : HBar.b (Middle - BBD / 2) (Middle + BBD / 2) 0 BBS include : union diff --git a/packages/font-glyphs/src/marks/overlay.ptl b/packages/font-glyphs/src/marks/overlay.ptl index e3e80f9bd..89e5f1279 100644 --- a/packages/font-glyphs/src/marks/overlay.ptl +++ b/packages/font-glyphs/src/marks/overlay.ptl @@ -99,6 +99,11 @@ glyph-block Mark-Overlay : begin include : HOverlayBar (markMiddle - LongJut * 0.75) (markMiddle + LongJut * 0.75) (XH / 2 + 0.5 * gap) include : HOverlayBar (markMiddle - LongJut * 0.75) (markMiddle + LongJut * 0.75) (XH / 2 - 0.5 * gap) + create-glyph 'barOverOnExtension' : glyph-proc + set-width 0 + set-mark-anchor 'overlayOnExtension' markMiddle (XH / 2) markMiddle (XH / 2) + include : HOverlayBar (markMiddle - LongJut * 0.75) (markMiddle + LongJut * 0.75) (XH / 2) + create-glyph 'shortSlashOver' : glyph-proc set-width 0 set-mark-anchor 'overlay' markMiddle (XH / 2) markMiddle (XH / 2) diff --git a/params/variants.toml b/params/variants.toml index e7c0d4e45..5b387fff7 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -6165,7 +6165,6 @@ descriptionAffix = "straight shape" selectorAffix."grek/Lambda" = "straight" selectorAffix."grek/Lambda/sansSerif" = "straight" selectorAffix."cyrl/Yus" = "straight" -selectorAffix."Y/LambdaBase" = "straight" [prime.capital-lambda.variants-buildup.stages.body.curly] rank = 2 @@ -6173,7 +6172,6 @@ descriptionAffix = "curly shape" selectorAffix."grek/Lambda" = "curly" selectorAffix."grek/Lambda/sansSerif" = "curly" selectorAffix."cyrl/Yus" = "curly" -selectorAffix."Y/LambdaBase" = "curly" [prime.capital-lambda.variants-buildup.stages.serifs.serifless] rank = 1 @@ -6182,7 +6180,6 @@ descriptionJoiner = "without" selectorAffix."grek/Lambda" = "serifless" selectorAffix."grek/Lambda/sansSerif" = "serifless" selectorAffix."cyrl/Yus" = "" -selectorAffix."Y/LambdaBase" = "serifless" [prime.capital-lambda.variants-buildup.stages.serifs.top-serifed] rank = 2 @@ -6190,7 +6187,6 @@ descriptionAffix = "serifs at top" selectorAffix."grek/Lambda" = "topSerifed" selectorAffix."grek/Lambda/sansSerif" = "serifless" selectorAffix."cyrl/Yus" = "" -selectorAffix."Y/LambdaBase" = "baseSerifed" [prime.capital-lambda.variants-buildup.stages.serifs.base-serifed] rank = 3 @@ -6198,7 +6194,6 @@ descriptionAffix = "serifs at base" selectorAffix."grek/Lambda" = "baseSerifed" selectorAffix."grek/Lambda/sansSerif" = "serifless" selectorAffix."cyrl/Yus" = "" -selectorAffix."Y/LambdaBase" = "serifed" [prime.capital-lambda.variants-buildup.stages.serifs.tri-serifed] rank = 4 @@ -6206,7 +6201,6 @@ descriptionAffix = "serifs at both top and base" selectorAffix."grek/Lambda" = "triSerifed" selectorAffix."grek/Lambda/sansSerif" = "serifless" selectorAffix."cyrl/Yus" = "" -selectorAffix."Y/LambdaBase" = "serifed" @@ -9454,6 +9448,7 @@ i = "hooky" j = "serifed" k = "straight-serifless" l = "zshaped" +r = "serifless" t = "bent-hook-short-neck" u = "toothed-serifless" v = "straight-serifless" @@ -9685,6 +9680,7 @@ j = "serifed" k = "symmetric-touching-serifless" l = "serifed" q = "top-cut-straight-serifless" +r = "serifless" t = "bent-hook-short-neck" u = "toothed-serifless" v = "straight-serifless" @@ -9763,6 +9759,7 @@ d = "toothed-serifed" f = "flat-hook-serifed" k = "symmetric-touching-serifed" q = "top-cut-straight-serifed" +r = "serifed" u = "toothed-serifed" v = "straight-serifed" w = "straight-serifed" @@ -9791,6 +9788,7 @@ a = "single-storey-top-cut-serifed" f = "flat-hook-tailed" k = "cursive-top-left-and-bottom-right-serifed" l = "tailed-serifed" +r = "top-serifed" u = "toothed-motion-serifed" v = "straight-motion-serifed" w = "straight-motion-serifed" @@ -9829,6 +9827,7 @@ i = "serifed" j = "flat-hook-serifed" k = "straight-serifless" l = "serifed-flat-tailed" +r = "serifless" t = "flat-hook-short-neck" u = "toothed-serifless" v = "straight-serifless" @@ -10281,6 +10280,7 @@ i = "serifed" j = "serifed" k = "curly-serifless" l = "zshaped" +r = "serifless" t = "bent-hook" u = "toothed-serifless" v = "curly-serifless" @@ -10360,6 +10360,7 @@ a = "double-storey-serifed" d = "toothed-serifed" f = "serifed" k = "curly-serifed" +r = "serifed" u = "toothed-serifed" v = "curly-serifed" w = "curly-serifed" @@ -10388,6 +10389,7 @@ micro-sign = "toothed-serifed" [composite.ss08.slab-override.italic] k = "curly-top-left-and-bottom-right-serifed" +r = "top-serifed" u = "toothed-motion-serifed" v = "curly-motion-serifed" w = "curly-motion-serifed" @@ -10544,6 +10546,7 @@ j = "flat-hook-serifed" k = "symmetric-connected-serifless" l = "hooky" q = "straight-serifless" +r = "serifless" t = "flat-hook" u = "toothed-serifless" v = "straight-serifless" @@ -10605,6 +10608,7 @@ i = "serifed" k = "symmetric-connected-serifed" l = "serifed" q = "straight-serifed" +r = "serifed" u = "toothed-serifed" v = "straight-serifed" w = "rounded-vertical-sides-serifed" @@ -10630,6 +10634,7 @@ i = "serifed-flat-tailed" k = "symmetric-connected-top-left-and-bottom-right-serifed" l = "serifed-flat-tailed" q = "top-cut-straight-serifed" +r = "top-serifed" u = "tailed-motion-serifed" v = "straight-motion-serifed" w = "rounded-vertical-sides-motion-serifed" @@ -10671,6 +10676,8 @@ at = "threefold" dollar = "through-cap" cent = "through-cap" percent = "rings-continuous-slash" +question = "smooth" +pilcrow = "high" [composite.ss11.slab-override.design] two = "straight-neck-serifed" @@ -10968,6 +10975,7 @@ i = "serifed" j = "flat-hook-serifed" k = "symmetric-connected-serifless" l = "serifed-flat-tailed" +r = "serifless" t = "flat-hook-short-neck" u = "toothless-rounded-serifless" v = "straight-serifless" @@ -11042,6 +11050,7 @@ d = "toothed-serifed" f = "flat-hook-serifed" g = "single-storey-flat-hook-serifed" k = "symmetric-connected-serifed" +r = "serifed" u = "toothless-rounded-serifed" v = "straight-serifed" w = "straight-flat-top-serifed" @@ -11072,6 +11081,7 @@ a = "single-storey-tailed" f = "flat-hook-tailed" g = "single-storey-flat-hook-serifless" k = "symmetric-connected-top-left-and-bottom-right-serifed" +r = "top-serifed" u = "toothless-rounded-motion-serifed" v = "straight-motion-serifed" w = "straight-flat-top-motion-serifed" @@ -11580,6 +11590,7 @@ j = "serifed" k = "symmetric-connected-serifless" l = "serifed" q = "earless-corner-straight-serifless" +r = "serifless" t = "bent-hook" u = "toothed-serifless" v = "straight-serifless" @@ -11638,6 +11649,7 @@ d = "toothed-serifed" f = "serifed-crossbar-at-x-height" k = "symmetric-connected-serifed" q = "earless-corner-straight-serifed" +r = "serifed" u = "toothed-serifed" v = "straight-serifed" w = "straight-serifed" @@ -11664,6 +11676,7 @@ micro-sign = "tailed-serifed" [composite.ss18.slab-override.italic] f = "extended-crossbar-at-x-height" k = "symmetric-connected-top-left-and-bottom-right-serifed" +r = "top-serifed" u = "toothed-motion-serifed" v = "straight-motion-serifed" w = "straight-motion-serifed" @@ -11699,11 +11712,13 @@ w = "curly-serifless" x = "curly-serifless" y = "curly-serifless" z = "curly-serifless" +lower-eth = "curly-bar" capital-delta = "curly" lower-kappa = "curly-serifless" capital-lambda = "curly-serifless" lower-lambda = "curly" lower-chi = "curly-serifless" +partial-derivative = "curly-bar" cyrl-capital-u = "curly-serifless" cyrl-u = "curly-serifless" cyrl-capital-ya = "curly-serifless"