From aa7b545f329e7996ae96511ee3ac62bde715c96f Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Tue, 28 May 2024 12:22:19 -0400 Subject: [PATCH] Fix Te bar terminal of TeTse/Tche for sans oblique (#2349) --- changes/30.1.2.md | 2 ++ .../font-glyphs/src/letter/cyrillic/che.ptl | 4 ++-- .../font-glyphs/src/letter/cyrillic/tse.ptl | 24 +++++++++---------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/changes/30.1.2.md b/changes/30.1.2.md index a88ca854f..bd2296590 100644 --- a/changes/30.1.2.md +++ b/changes/30.1.2.md @@ -1,3 +1,5 @@ +* Fix Te bar terminal for Cyrillic TeTse (`U+04B4`..`U+04B5`) and Tche (`U+A693`..`U+A694`) under sans italic/oblique when `T` (`cv19`) is serifed. +* Make presence of non-Te serifs of Cyrillic TeTse automatic. * Add characters: - DOTTED OBELOS (`U+2E13`). - MODIFIER LETTER DOT VERTICAL BAR (`U+A717`) ... MODIFIER LETTER DOT HORIZONTAL BAR (`U+A719`). diff --git a/packages/font-glyphs/src/letter/cyrillic/che.ptl b/packages/font-glyphs/src/letter/cyrillic/che.ptl index a86584112..021c86d25 100644 --- a/packages/font-glyphs/src/letter/cyrillic/che.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/che.ptl @@ -121,8 +121,8 @@ glyph-block Letter-Cyrillic-Che : begin include : dispiro widths.rhs sw - flat xTopBarLeft top [if SLAB [heading Rightward] null] - curl xTopBarRight top [if SLAB [heading Rightward] null] + flat xTopBarLeft top [if teSerifs [heading Rightward] null] + curl xTopBarRight top [if teSerifs [heading Rightward] null] local sf : SerifFrame top 0 left right (swRef -- sw) include : tagged 'SerifRT' : match slabType diff --git a/packages/font-glyphs/src/letter/cyrillic/tse.ptl b/packages/font-glyphs/src/letter/cyrillic/tse.ptl index dd7b809fc..f03999bf2 100644 --- a/packages/font-glyphs/src/letter/cyrillic/tse.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/tse.ptl @@ -41,9 +41,8 @@ glyph-block Letter-Cyrillic-Tse : begin define TeTseConfig : object serifless { false false } motionSerifed { true false } - serifed { true true } - define [CyrTeTseShape top slabTop slabBot] : glyph-proc + define [CyrTeTseShape top teSerifs] : glyph-proc local sw : AdviceStroke 2.75 local left : [mix SB RightSB 0.2] - [HSwToV : 0.25 * sw] + OX local right : RightSB - OX @@ -56,31 +55,30 @@ glyph-block Letter-Cyrillic-Tse : begin include : VBar.r right 0 top sw include : dispiro widths.rhs sw - flat xTopBarLeft top [if SLAB [heading Rightward] null] - curl xTopBarRight top [if SLAB [heading Rightward] null] + flat xTopBarLeft top [if teSerifs [heading Rightward] null] + curl xTopBarRight top [if teSerifs [heading Rightward] null] local sf : SerifFrame top 0 left right (swRef -- sw) include : CyrDescender.rSideJut right 0 (sideJut -- sf.sideJut) - if slabTop : begin + if SLAB : begin include sf.rt.outer + include sf.lb.outer + include sf.rb.outer + if teSerifs : begin local swVJut : Math.min [AdviceStroke 4.5] (0.625 * (left - xTopBarLeft)) include : VSerif.dl xTopBarLeft top VJut swVJut include : VSerif.dr xTopBarRight top VJut swVJut - if slabBot : begin - include sf.lb.outer - include sf.rb.outer - foreach { suffix { doST doSB } } [Object.entries TeTseConfig] : do create-glyph "cyrl/TeTse.\(suffix)" : glyph-proc include : MarkSet.capital - include : CyrTeTseShape CAP doST doSB + include : CyrTeTseShape CAP doST create-glyph "cyrl/tetse.upright.\(suffix)" : glyph-proc include : MarkSet.e - include : CyrTeTseShape XH doST doSB + include : CyrTeTseShape XH doST - select-variant 'cyrl/TeTse' 0x4B4 (follow -- 'T') - select-variant 'cyrl/tetse.upright' (follow -- 'T') + select-variant 'cyrl/TeTse' 0x4B4 (follow -- 'T/rtailBase') + select-variant 'cyrl/tetse.upright' (follow -- 'T/rtailBase')