diff --git a/changes/6.2.0.md b/changes/6.2.0.md index 3b614d5df..7135e6648 100644 --- a/changes/6.2.0.md +++ b/changes/6.2.0.md @@ -6,5 +6,7 @@ - Cyrillic combining Dasia (`U+0485`), Psili (`U+0486`), Pokrytie (`U+0478`). - Cyrillic Ornate Omega (`U+047C`, `U+047D`). - Cyrillic Koppa (`U+0480`, `U+0481`). + - Cyrillic Semi-soft Sign (`U+048C`, `U+048D`). - Cyrillic tailed Short I (`U+048A`, `U+048B`), tailed El (`U+04C5`, `U+04C6`), railed En (`U+04C9`, `U+04CA`), tailed Em (`U+04CD`, `U+04CE`). + - Cyrillic Ka with Stroke (`U+049E`, `U+049F`). * Add tailed variants for Cyrillic El, En, Che, Yery and Ya (#972). \ No newline at end of file diff --git a/font-src/glyphs/letter/cyrillic/yeri.ptl b/font-src/glyphs/letter/cyrillic/yeri.ptl index 2911371f4..1e11324fb 100644 --- a/font-src/glyphs/letter/cyrillic/yeri.ptl +++ b/font-src/glyphs/letter/cyrillic/yeri.ptl @@ -147,6 +147,14 @@ glyph-block Letter-Cyrillic-Yeri : begin roundTailed { CyrlYeriRoundShape true } cursiveTailed { CyrlYeriCursiveShape true } + define [YeriOverlayBar top] : begin + local stroke : AdviceStroke2 2 3 top + return : HOverlayBar + mix SB 0 0.7 + mix SB RightSB 0.5 + mix (top * 0.52 + stroke / 2) top 0.5 + Math.min ((top - Stroke * 3) / 3) OverlayStroke + foreach { suffix { Yeri fTail } } [Object.entries YerConfig] : do create-glyph "cyrl/Yeri.\(suffix)" : glyph-proc include : MarkSet.capital @@ -154,6 +162,14 @@ glyph-block Letter-Cyrillic-Yeri : begin create-glyph "cyrl/yeri.\(suffix)" : glyph-proc include : MarkSet.e include : Yeri XH + create-glyph "cyrl/YeriBar.\(suffix)" : glyph-proc + include : MarkSet.capital + include : Yeri CAP + include : YeriOverlayBar CAP + create-glyph "cyrl/yeriBar.\(suffix)" : glyph-proc + include : MarkSet.e + include : Yeri XH + include : YeriOverlayBar XH create-glyph "cyrl/Yer.\(suffix)" : glyph-proc include : MarkSet.capital include : CyrYerShape Yeri CAP @@ -178,6 +194,8 @@ glyph-block Letter-Cyrillic-Yeri : begin select-variant 'cyrl/yery' 0x44B select-variant 'cyrl/Yeri' 0x42C select-variant 'cyrl/yeri' 0x44C + select-variant 'cyrl/YeriBar' 0x48C + select-variant 'cyrl/yeriBar' 0x48D create-glyph 'cyrl/Be' 0x411 : glyph-proc include : MarkSet.capital diff --git a/font-src/glyphs/letter/latin/k.ptl b/font-src/glyphs/letter/latin/k.ptl index 345d8c4c5..f966fb387 100644 --- a/font-src/glyphs/letter/latin/k.ptl +++ b/font-src/glyphs/letter/latin/k.ptl @@ -260,6 +260,10 @@ glyph-block Letter-Latin-K : begin if slabBot : include : UpperKLBSerif slabTop CAP straightBar create-derived "KDescender.\(suffix)" : KCyrlNormalDescender CAP straightBar slabTop slabBot + create-glyph "KBar.\(suffix)" : glyph-proc + include [refer-glyph "K.\(suffix)"] AS_BASE ALSO_METRICS + include : HOverlayBar [mix (SB + [KBalance slabTop straightBar]) 0 0.7] [mix (SB + [KBalance slabTop straightBar]) RightSB 0.5] [mix XH (CAP - [if slabTop Stroke 0]) 0.45] + create-glyph "grek/kappa.\(suffix)" : glyph-proc include : MarkSet.e include : VBarLeft (SB + [KBalance slabTop straightBar]) 0 XH @@ -327,6 +331,10 @@ glyph-block Letter-Latin-K : begin CenterBottomSerif (SB + [KBalance slabTop straightBar] + HalfStroke * HVContrast) 0 Jut create-derived "kDescender.\(suffix)" : KCyrlNormalDescender XH straightBar slabTop slabBot + create-glyph "kBar.\(suffix)" : glyph-proc + include [refer-glyph "k.\(suffix)"] AS_BASE ALSO_METRICS + include : HOverlayBar [mix (SB + [KBalance slabTop straightBar]) 0 0.7] [mix (SB + [KBalance slabTop straightBar]) RightSB 0.5] [mix XH (CAP - [if slabTop Stroke 0]) 0.45] + create-glyph "khooktop.\(suffix)" : glyph-proc include : MarkSet.b include : Legs XH straightBar slabTop slabBot @@ -336,6 +344,7 @@ glyph-block Letter-Latin-K : begin select-variant 'K' 'K' alias 'grek/Kappa' 0x39A 'K' + select-variant 'cyrl/KaStroke' 0x49E (shapeFrom -- 'KBar') (follow -- 'cyrl/Ka') alias 'letterLike/kelvinSign' 0x212A 'K' select-variant 'KDescender' 0x2C69 (follow -- 'K') select-variant 'cyrl/Ka' 0x41A 'K' (shapeFrom -- 'K') (follow -- 'cyrl/Ka') @@ -343,6 +352,7 @@ glyph-block Letter-Latin-K : begin select-variant 'k' 'k' select-variant 'kDescender' 0x2C6A + select-variant 'cyrl/kaStroke' 0x49F (shapeFrom -- 'kBar') (follow -- 'cyrl/Ka') select-variant 'grek/kappa' 0x3BA diff --git a/params/variants.toml b/params/variants.toml index ef3aac726..bfd265dbb 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -3620,6 +3620,7 @@ selector."cyrl/ya" = "standingOpenTailed" rank = 1 selector."cyrl/Yer" = "corner" selector."cyrl/Yeri" = "corner" +selector."cyrl/YeriBar" = "corner" selector."cyrl/Yery" = "corner" selector."cyrl/Nje" = "corner" selector."cyrl/Lje" = "corner" @@ -3628,6 +3629,7 @@ selector."cyrl/Lje" = "corner" rank = 2 selector."cyrl/Yer" = "round" selector."cyrl/Yeri" = "round" +selector."cyrl/YeriBar" = "round" selector."cyrl/Yery" = "round" selector."cyrl/Nje" = "round" selector."cyrl/Lje" = "round" @@ -3636,6 +3638,7 @@ selector."cyrl/Lje" = "round" rank = 3 selector."cyrl/Yer" = "cursive" selector."cyrl/Yeri" = "cursive" +selector."cyrl/YeriBar" = "cursive" selector."cyrl/Yery" = "cursive" selector."cyrl/Nje" = "cursive" selector."cyrl/Lje" = "cursive" @@ -3650,6 +3653,7 @@ rank = 1 description = "Cyrillic Lower Yeri (`ь`) with corner at bottom left" selector."cyrl/yer" = "corner" selector."cyrl/yeri" = "corner" +selector."cyrl/yeriBar" = "corner" selector."cyrl/nje" = "corner" selector."cyrl/lje" = "corner" @@ -3658,6 +3662,7 @@ rank = 2 description = "Cyrillic Lower Yeri (`ь`) with rounded shape" selector."cyrl/yer" = "round" selector."cyrl/yeri" = "round" +selector."cyrl/yeriBar" = "round" selector."cyrl/nje" = "round" selector."cyrl/lje" = "round" @@ -3666,6 +3671,7 @@ rank = 3 description = "Cyrillic Lower Yeri (`ь`) with cursive shape" selector."cyrl/yer" = "cursive" selector."cyrl/yeri" = "cursive" +selector."cyrl/yeriBar" = "cursive" selector."cyrl/nje" = "cursive" selector."cyrl/lje" = "cursive"