From 2f36e60b0de1b1e22276d325c4fd97ebab571b5c Mon Sep 17 00:00:00 2001 From: John McWilliams Date: Tue, 18 Mar 2025 08:09:56 -0400 Subject: [PATCH] Cleanup of #2710 . --- build-plans.toml | 6 ++--- changes/33.2.0.md | 3 ++- packages/font-glyphs/src/letter/latin/w.ptl | 19 ++++++++------- params/variants.toml | 26 +++++++++++++++++---- 4 files changed, 37 insertions(+), 17 deletions(-) diff --git a/build-plans.toml b/build-plans.toml index f04ce4ba3..d8887fe66 100644 --- a/build-plans.toml +++ b/build-plans.toml @@ -773,13 +773,13 @@ exportGlyphNames = true [buildPlans.IosevkaEtoile.variants.design] capital-m = "flat-bottom-serifed" -capital-w = "straight-flat-top-serifed" +capital-w = "straight-almost-flat-top-serifed" f = "flat-hook-serifed" i = "serifed" j = "flat-hook-serifed" l = "serifed" t = "flat-hook" -w = "straight-flat-top-serifed" +w = "straight-almost-flat-top-serifed" long-s = "flat-hook-bottom-serifed" eszet = "longs-s-lig-bottom-serifed" lower-iota = "serifed-flat-tailed" @@ -797,7 +797,7 @@ percent = "rings-continuous-slash" f = "flat-hook-tailed" i = "serifed-flat-tailed" l = "serifed-flat-tailed" -w = "straight-flat-top-motion-serifed" +w = "straight-almost-flat-top-motion-serifed" long-s = "flat-hook-tailed" eszet = "longs-s-lig-tailed-serifless" cyrl-ef = "split-cursive" diff --git a/changes/33.2.0.md b/changes/33.2.0.md index 1cc0fda3d..fadac53dc 100644 --- a/changes/33.2.0.md +++ b/changes/33.2.0.md @@ -1,4 +1,5 @@ -* Add `flat-top` variants for `curly`, `straight-vertical-sides` and `rounded-vertical-sides` forms of `W` and `w` (#2146). +* Add `flat-top` variants for `curly`, `straight-vertical-sides`, and `rounded-vertical-sides` forms of `W` and `w` (#2146). +* Add `almost-flat-top` variants for `curly` forms of `W` and `w`. * Refine shape of the following characters: - ARMENIAN SMALL LIGATURE ECH YIWN (`U+0587`). - LATIN CAPITAL LETTER AU (`U+A736`). diff --git a/packages/font-glyphs/src/letter/latin/w.ptl b/packages/font-glyphs/src/letter/latin/w.ptl index b773614a0..61bc7fb26 100644 --- a/packages/font-glyphs/src/letter/latin/w.ptl +++ b/packages/font-glyphs/src/letter/latin/w.ptl @@ -139,10 +139,10 @@ glyph-block Letter-Latin-W : begin define [WSerifs df top bodyType slabType dim] : glyph-proc local oSlabPos : match bodyType - [Just FORM-CURLY] : O * 2 - [Just FORM-VERTICAL] : O * 2 - [Just FORM-CYRL-OMEGA] : O * 2 - __ 0 + [Just FORM-CURLY] 0 + [Just FORM-VERTICAL] 0 + [Just FORM-CYRL-OMEGA] 0 + __ : O * 2 local sf : SerifFrame top 0 df.leftSB df.rightSB (hSplit -- 3) local sfm : SerifFrame top 0 (df.leftSB + oSlabPos) (df.rightSB - oSlabPos) (hSplit -- 3) @@ -204,7 +204,7 @@ glyph-block Letter-Latin-W : begin include : tagged 'strokeUp1' : difference dispiro flat (dim.xRight1 - shiftT) dim.wMidHeight [widths.center.heading dim.fineInnerCrTop Downward] - curl (dim.xBot1 + shiftB) 0 [widths.center.heading dim.fineOuterCr Downward] + curl (dim.xBot1 + shiftB) 0 [widths.center.heading dim.fineOuterCr Downward] match bodyType [Just FORM-CYRL-OMEGA] : spiro-outline corner df.width (dim.wMidHeight + 1) @@ -226,10 +226,10 @@ glyph-block Letter-Latin-W : begin flat (dim.xLeft2 - [HSwToV : 0.5 * dim.strokeOuter]) dim.wMidHeight [widths.lhs.heading dim.strokeOuter Downward] curl (dim.xLeft2 - [HSwToV : 0.5 * dim.strokeOuter]) (dim.wMidHeight * (1 - dim.curlyStraightSegLength)) [heading Downward] quadControls 0 0.3 6 unimportant - g4 (dim.xBot2 - shiftB) 0 [widths.center.heading dim.fineOuterCr Downward] + g4 (dim.xBot2 - shiftB) 0 [widths.center.heading dim.fineOuterCr Downward] _ : dispiro flat (dim.xLeft2 + shiftT) dim.wMidHeight [widths.center.heading dim.fineInnerCrTop Downward] - curl (dim.xBot2 - shiftB) 0 [widths.center.heading dim.fineOuterCr Downward] + curl (dim.xBot2 - shiftB) 0 [widths.center.heading dim.fineOuterCr Downward] if (dim.wMidHeightExt > dim.wMidHeight) : include : tagged 'strokeExtension' : VBar.m df.middle dim.wMidHeight dim.wMidHeightExt (dim.fineInnerCrTop + [VSwToH : shiftT * 2]) @@ -333,7 +333,7 @@ glyph-block Letter-Latin-W : begin include : dispiro widths.rhs fine flat (df.width - x1) (top - TailY - 0.5 * fine - O) [heading Downward] - curl (df.width - x1) y3 [heading Downward] + curl (df.width - x1) y3 [heading Downward] arch.rhs 0 (sw -- fine) (swAfter -- mfine) flat (df.middle - [HSwToV : mfine - fine / 2]) y3 [widths.heading 0 mfine Upward] curl (df.middle - [HSwToV : mfine - fine / 2]) y4 [heading Upward] @@ -368,7 +368,8 @@ glyph-block Letter-Latin-W : begin roundedVerticalSides { WRounded WHookTopRounded FORM-CURLY MIDH-OTHER para.advanceScaleMM para.advanceScaleM } roundedVerticalSidesFlatTop { WRounded WHookTopRounded FORM-CURLY MIDH-TOP para.advanceScaleMM para.advanceScaleM } curly { WShapeImpl WHooktopShape FORM-CURLY MIDH-OTHER para.advanceScaleM para.advanceScaleM } - curlyFlatTop { WShapeImpl WHooktopShape FORM-CURLY MIDH-TOP para.advanceScaleM para.advanceScaleM } + curlyAlmostFlatTop { WShapeImpl WHooktopShape FORM-CURLY MIDH-ALMOST-TOP para.advanceScaleMM para.advanceScaleM } + curlyFlatTop { WShapeImpl WHooktopShape FORM-CURLY MIDH-TOP para.advanceScaleMM para.advanceScaleM } cursive { WCursiveImpl WHookTopCursive FORM-CURSIVE MIDH-OTHER para.advanceScaleM para.advanceScaleM } cyrlOmega { WShapeImpl WHooktopShape FORM-CYRL-OMEGA MIDH-OTHER para.advanceScaleMM para.advanceScaleM } diff --git a/params/variants.toml b/params/variants.toml index 35b851c10..3e84f6570 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -1916,10 +1916,19 @@ selectorAffix.W = "curly" selectorAffix."W/sansSerif" = "curly" selectorAffix.WHookTop = "curly" -[prime.capital-w.variants-buildup.stages.body.curly-flat-top] +[prime.capital-w.variants-buildup.stages.body.curly-almost-flat-top] rank = 11 groupRank = 3 nonBreakingVariantAdditionPriority = 100 +descriptionAffix = "curly body shape that the middle is almost aligned the top" +selectorAffix.W = "curlyAlmostFlatTop" +selectorAffix."W/sansSerif" = "curlyAlmostFlatTop" +selectorAffix.WHookTop = "curlyAlmostFlatTop" + +[prime.capital-w.variants-buildup.stages.body.curly-flat-top] +rank = 12 +groupRank = 3 +nonBreakingVariantAdditionPriority = 100 descriptionAffix = "curly body with a middle stem aligned to the top" selectorAffix.W = "curlyFlatTop" selectorAffix."W/sansSerif" = "curlyFlatTop" @@ -4845,7 +4854,7 @@ selectorAffix.wHookTop = "straight" [prime.w.variants-buildup.stages.body.straight-almost-flat-top] rank = 2 groupRank = 1 -descriptionAffix = "straight body shape that the middle is forced to be aligned the top" +descriptionAffix = "straight body shape that the middle is almost aligned the top" selectorAffix.w = "straightAlmostFlatTop" selectorAffix."w/sansSerif" = "straightAlmostFlatTop" selectorAffix.wHookTop = "straightAlmostFlatTop" @@ -4916,17 +4925,26 @@ selectorAffix.w = "curly" selectorAffix."w/sansSerif" = "curly" selectorAffix.wHookTop = "curly" -[prime.w.variants-buildup.stages.body.curly-flat-top] +[prime.w.variants-buildup.stages.body.curly-almost-flat-top] rank = 11 groupRank = 3 nonBreakingVariantAdditionPriority = 100 +descriptionAffix = "curly body shape that the middle is almost aligned the top" +selectorAffix.w = "curlyAlmostFlatTop" +selectorAffix."w/sansSerif" = "curlyAlmostFlatTop" +selectorAffix.wHookTop = "curlyAlmostFlatTop" + +[prime.w.variants-buildup.stages.body.curly-flat-top] +rank = 12 +groupRank = 3 +nonBreakingVariantAdditionPriority = 100 descriptionAffix = "curly body with a middle stem aligned to the top" selectorAffix.w = "curlyFlatTop" selectorAffix."w/sansSerif" = "curlyFlatTop" selectorAffix.wHookTop = "curlyFlatTop" [prime.w.variants-buildup.stages.body.cursive] -rank = 12 +rank = 13 groupRank = 4 descriptionAffix = "cursive shape" selectorAffix.w = "cursive"