diff --git a/changes/27.3.3.md b/changes/27.3.3.md index 060110ba7..c4da366f5 100644 --- a/changes/27.3.3.md +++ b/changes/27.3.3.md @@ -1 +1,2 @@ * Make `cv96` take effect on math asterisk operators (#2066). +* Fix serifs of italic small Yat in Etoile (#2067). diff --git a/font-src/glyphs/letter/cyrillic/nje.ptl b/font-src/glyphs/letter/cyrillic/nje.ptl index 96db52cff..d8e1e2c04 100644 --- a/font-src/glyphs/letter/cyrillic/nje.ptl +++ b/font-src/glyphs/letter/cyrillic/nje.ptl @@ -1,7 +1,7 @@ $$include '../../../meta/macros.ptl' import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DependentSelector CvDecompose] from"../../../support/gr.mjs" +import [DependentSelector] from"../../../support/gr.mjs" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/yat.ptl b/font-src/glyphs/letter/cyrillic/yat.ptl index 5deb54405..f2ee06f63 100644 --- a/font-src/glyphs/letter/cyrillic/yat.ptl +++ b/font-src/glyphs/letter/cyrillic/yat.ptl @@ -1,6 +1,7 @@ $$include '../../../meta/macros.ptl' import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [DependentSelector] from"../../../support/gr.mjs" glyph-module @@ -8,11 +9,11 @@ glyph-block Letter-Cyrillic-Yat : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives glyph-block-import Mark-Adjustment : ExtendAboveBaseAnchors + glyph-block-import Letter-Shared : CreateDependentComposite glyph-block-import Letter-Shared-Metrics : BowlXDepth glyph-block-import Letter-Shared-Shapes : LetterBarOverlay glyph-block-import Letter-Cyrillic-Yeri : YeriConfig glyph-block-import Letter-Cyrillic-Iotified-A : Iotified - glyph-block-import Letter-Shared-Shapes : nShoulderKnots define [xBarLeft df] : Math.max (df.rightSB - (RightSB - SB)) : if SLAB Just ([mix df.leftSB df.rightSB 0.35] - [HSwToV : 0.5 * df.mvs]) @@ -109,6 +110,8 @@ glyph-block Letter-Cyrillic-Yat : begin eject-contour 'serifYeriLT' eject-contour 'serifYeriLB' + DependentSelector.set currentGlyph : if (suffix === "corner") 'full' 'reduced' + select-variant 'cyrl/Yat' 0x462 (follow -- 'cyrl/YeriBar') select-variant 'cyrl/yat.upright' (follow -- 'cyrl/yeriBar') select-variant 'cyrl/yatTall' 0x1C87 (follow -- 'cyrl/yeriBar') @@ -117,5 +120,8 @@ glyph-block Letter-Cyrillic-Yat : begin select-variant 'cyrl/yatIotified' 0xA653 (follow -- 'cyrl/yeriBar') select-variant 'cyrl/yat.italic/yeri' (follow -- 'cyrl/yeriBar') - derive-composites 'cyrl/yat.italic' null 'cyrl/yat.italic/base' 'cyrl/yat.italic/yeri' + CreateDependentComposite 'cyrl/yat.italic' null 'cyrl/yat.italic/yeri' : object + full 'cyrl/yat.italic/base/corner' + reduced 'cyrl/yat.italic/base/cursive' + alias 'latn/yatSakha.italic' null 'cyrl/yat.italic' diff --git a/font-src/glyphs/letter/latin/lower-n.ptl b/font-src/glyphs/letter/latin/lower-n.ptl index 151b94f2e..ac949cbed 100644 --- a/font-src/glyphs/letter/latin/lower-n.ptl +++ b/font-src/glyphs/letter/latin/lower-n.ptl @@ -106,13 +106,20 @@ glyph-block Letter-Latin-Lower-N : begin __ NTopLeftSerif begin NBottomLeftSerif if (tail != 'tailed') NBottomRightSerifUpright - serifedItalicYat : list + serifedItalicYatCorner : list match body ([Just "earlessCorner"] || [Just "earlessRounded"]) nothing ([Just "earlessCornerHTB"] || [Just "earlessRoundedHTB"]) NHTB __ NTopLeftSerif begin NBottomLeftYatSerif begin NBottomRightYatSerif + serifedItalicYatCursive : list + match body + ([Just "earlessCorner"] || [Just "earlessRounded"]) nothing + ([Just "earlessCornerHTB"] || [Just "earlessRoundedHTB"]) NHTB + __ NTopLeftSerif + begin NBottomLeftYatSerif + begin nothing foreach { suffix { Body tailed {sLT sLB sRB} } } [Object.entries NConfig] : do create-glyph "n.\(suffix)" : glyph-proc @@ -275,7 +282,8 @@ glyph-block Letter-Latin-Lower-N : begin select-variant 'cyrl/peMidHook.italic' (follow -- 'cyrl/pe.italic') - select-variant 'cyrl/yat.italic/base' + select-variant 'cyrl/yat.italic/base/corner' (shapeFrom -- 'cyrl/yat.italic/base') + select-variant 'cyrl/yat.italic/base/cursive' (shapeFrom -- 'cyrl/yat.italic/base') do "n with Apostrophe" derive-glyphs 'nApostrophe/comma' null 'commaAbove/asPunctuation' : function [src gr] : glyph-proc diff --git a/params/variants.toml b/params/variants.toml index 80187c964..e6b84f559 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -2946,7 +2946,8 @@ selectorAffix."grek/eta" = "" selectorAffix."grek/eta/sansSerif" = "" selectorAffix."cyrl/pe.italic" = "" selectorAffix."cyrl/peItalicDescBase" = "" -selectorAffix."cyrl/yat.italic/base" = "" +selectorAffix."cyrl/yat.italic/base/corner" = "" +selectorAffix."cyrl/yat.italic/base/cursive" = "" [prime.n.variants-buildup.stages.body.earless-corner] rank = 2 @@ -2962,7 +2963,8 @@ selectorAffix."grek/eta" = "earlessCorner" selectorAffix."grek/eta/sansSerif" = "earlessCorner" selectorAffix."cyrl/pe.italic" = "" selectorAffix."cyrl/peItalicDescBase" = "" -selectorAffix."cyrl/yat.italic/base" = "" +selectorAffix."cyrl/yat.italic/base/corner" = "" +selectorAffix."cyrl/yat.italic/base/cursive" = "" [prime.n.variants-buildup.stages.body.earless-rounded] rank = 3 @@ -2978,7 +2980,8 @@ selectorAffix."grek/eta" = "earlessRounded" selectorAffix."grek/eta/sansSerif" = "earlessRounded" selectorAffix."cyrl/pe.italic" = "" selectorAffix."cyrl/peItalicDescBase" = "" -selectorAffix."cyrl/yat.italic/base" = "" +selectorAffix."cyrl/yat.italic/base/corner" = "" +selectorAffix."cyrl/yat.italic/base/cursive" = "" [prime.n.variants-buildup.stages.terminal."*"] next = "serifs" @@ -2997,7 +3000,8 @@ selectorAffix."grek/eta" = "straight" selectorAffix."grek/eta/sansSerif" = "straight" selectorAffix."cyrl/pe.italic" = "straight" selectorAffix."cyrl/peItalicDescBase" = "straight" -selectorAffix."cyrl/yat.italic/base" = "straight" +selectorAffix."cyrl/yat.italic/base/corner" = "straight" +selectorAffix."cyrl/yat.italic/base/cursive" = "straight" [prime.n.variants-buildup.stages.terminal.tailed] rank = 2 @@ -3013,7 +3017,8 @@ selectorAffix."grek/eta" = "straight" selectorAffix."grek/eta/sansSerif" = "straight" selectorAffix."cyrl/pe.italic" = "tailed" selectorAffix."cyrl/peItalicDescBase" = "straight" -selectorAffix."cyrl/yat.italic/base" = "straight" +selectorAffix."cyrl/yat.italic/base/corner" = "straight" +selectorAffix."cyrl/yat.italic/base/cursive" = "straight" [prime.n.variants-buildup.stages.serifs.serifless] rank = 1 @@ -3030,7 +3035,8 @@ selectorAffix."grek/eta" = "serifless" selectorAffix."grek/eta/sansSerif" = "serifless" selectorAffix."cyrl/pe.italic" = "serifless" selectorAffix."cyrl/peItalicDescBase" = "serifless" -selectorAffix."cyrl/yat.italic/base" = "serifless" +selectorAffix."cyrl/yat.italic/base/corner" = "serifless" +selectorAffix."cyrl/yat.italic/base/cursive" = "serifless" [prime.n.variants-buildup.stages.serifs.top-left-serifed] rank = 2 @@ -3047,7 +3053,8 @@ selectorAffix."grek/eta" = "topLeftSerifed" selectorAffix."grek/eta/sansSerif" = "serifless" selectorAffix."cyrl/pe.italic" = "topLeftSerifed" selectorAffix."cyrl/peItalicDescBase" = "topLeftSerifed" -selectorAffix."cyrl/yat.italic/base" = "topLeftSerifed" +selectorAffix."cyrl/yat.italic/base/corner" = "topLeftSerifed" +selectorAffix."cyrl/yat.italic/base/cursive" = "topLeftSerifed" [prime.n.variants-buildup.stages.serifs.motion-serifed] rank = 3 @@ -3064,7 +3071,8 @@ selectorAffix."grek/eta" = { if = [{ body = "normal" }], then = "topLeftSerifed" selectorAffix."grek/eta/sansSerif" = "serifless" selectorAffix."cyrl/pe.italic" = "motionSerifed" selectorAffix."cyrl/peItalicDescBase" = "topLeftSerifed" -selectorAffix."cyrl/yat.italic/base" = "topLeftSerifed" +selectorAffix."cyrl/yat.italic/base/corner" = "topLeftSerifed" +selectorAffix."cyrl/yat.italic/base/cursive" = "topLeftSerifed" [prime.n.variants-buildup.stages.serifs.serifed] rank = 4 @@ -3080,7 +3088,8 @@ selectorAffix."grek/eta" = { if = [{ body = "normal" }], then = "topLeftSerifed" selectorAffix."grek/eta/sansSerif" = "serifless" selectorAffix."cyrl/pe.italic" = "serifed" selectorAffix."cyrl/peItalicDescBase" = "serifed" -selectorAffix."cyrl/yat.italic/base" = "serifedItalicYat" +selectorAffix."cyrl/yat.italic/base/corner" = "serifedItalicYatCorner" +selectorAffix."cyrl/yat.italic/base/cursive" = "serifedItalicYatCursive"