From 9dea9c8dcf7d30d04649e1537f4225b109bd328c Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Tue, 20 May 2025 22:50:40 -0400 Subject: [PATCH] Refine glyph shapes of three currency symbols. (#2778) --- changes/33.2.4.md | 3 ++ .../font-glyphs/src/letter/latin/upper-t.ptl | 4 +- packages/font-glyphs/src/symbol/letter.ptl | 47 +++++++++---------- 3 files changed, 26 insertions(+), 28 deletions(-) diff --git a/changes/33.2.4.md b/changes/33.2.4.md index f0d8faa12..35366de95 100644 --- a/changes/33.2.4.md +++ b/changes/33.2.4.md @@ -1,2 +1,5 @@ * Refine shape of the following characters: + - TENGE SIGN (`U+20B8`). + - TURKISH LIRA SIGN (`U+20BA`). + - MANAT SIGN (`U+20BC`). - LATIN CAPITAL LETTER LAMBDA WITH STROKE (`U+A7DC`). diff --git a/packages/font-glyphs/src/letter/latin/upper-t.ptl b/packages/font-glyphs/src/letter/latin/upper-t.ptl index 0de610817..e50aa64ee 100644 --- a/packages/font-glyphs/src/letter/latin/upper-t.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-t.ptl @@ -137,9 +137,9 @@ glyph-block Letter-Latin-Upper-T : begin create-glyph "currency/tengeSign.\(suffix)" : glyph-proc local df : include : DivFrame adws include : df.markSet.capital - local gap : Math.max (CAP * 0.1) : AdviceStroke2 2 6 CAP + local gap : Math.max (CAP * 0.1) HalfStroke include : HBar.t [TLeftX df] [TRightX df] CAP OverlayStroke - include : TShape df (CAP - gap - OverlayStroke) doST doSB + include : TShape df (CAP - OverlayStroke - gap) doST doSB create-glyph "cyrl/teDescender.upright.\(suffix)" : glyph-proc local df : include : DivFrame adws diff --git a/packages/font-glyphs/src/symbol/letter.ptl b/packages/font-glyphs/src/symbol/letter.ptl index 73d75af45..06dbabec8 100644 --- a/packages/font-glyphs/src/symbol/letter.ptl +++ b/packages/font-glyphs/src/symbol/letter.ptl @@ -66,19 +66,22 @@ glyph-block Symbol-Currency : begin create-glyph "currency/turkishLiraSign.\(suffix)" : glyph-proc set-width Width include : MarkSet.capital + local xBarLeft : SB * 1.5 + local xRight : RightSB - 0.75 * OX include : union dispiro widths.lhs Stroke - flat SB 0 [heading Rightward] - curl Middle 0 + flat xBarLeft 0 [heading Rightward] + curl [mix xBarLeft xRight 0.5] 0 archv - straight.up.end RightSB Hook [heading Upward] - VBar.l SB 0 CAP - include : LetterObliqueBarOverlay.l SB (CAP * 0.37) - include : LetterObliqueBarOverlay.l SB (CAP * 0.60 - OverlayStroke * 0.25) + straight.up.end (xRight - OX) Hook [heading Upward] + VBar.l xBarLeft 0 CAP + include : LetterObliqueBarOverlay.l xBarLeft (CAP * 0.37) + include : LetterObliqueBarOverlay.l xBarLeft (CAP * 0.60 - OverlayStroke * 0.25) if serifGrade : begin - local sf : SerifFrame.fromDf [DivFrame 1] CAP 0 - include : composite-proc sf.lt.fullSide sf.lb.outer + include : HSerif.lb (xBarLeft + [HSwToV HalfStroke]) 0 Jut + include : HSerif.lt (xBarLeft + [HSwToV HalfStroke]) CAP Jut + include : HSerif.rt (xBarLeft + [HSwToV HalfStroke]) CAP MidJutSide select-variant 'currency/turkishLiraSign' 0x20BA @@ -110,27 +113,18 @@ glyph-block Symbol-Currency : begin create-glyph 'currency/manatSign' 0x20BC : glyph-proc local df : include : DivFrame para.advanceScaleT 3 - include : df.markSet.e - define pY 0.8 - local archTop : mix 0 XH pY - - local sw : Math.min df.mvs : AdviceStroke2 3 2 archTop df.adws - - local ada : df.archDepthAOf SmallArchDepth sw - local adb : df.archDepthBOf SmallArchDepth sw - - include : VBar.m df.middle [if SLAB sw 0] XH sw + include : VBar.m df.middle [if SLAB df.mvs 0] (XH + LongVJut - QuarterStroke) df.mvs include : dispiro - widths.rhs sw + widths.rhs df.mvs flat df.leftSB 0 [heading Upward] - curl df.leftSB [if (ada + adb < archTop) (archTop - ada) : mix archTop 0 (ada / (ada + adb))] - arch.rhs archTop (sw -- sw) - flat df.rightSB [if (ada + adb < archTop) (archTop - adb) : mix archTop 0 (adb / (ada + adb))] + curl df.leftSB [if (df.smallArchDepthA + df.smallArchDepthB < XH) (XH - df.smallArchDepthA) : mix XH 0 (df.smallArchDepthA / (df.smallArchDepthA + df.smallArchDepthB))] + arch.rhs XH (sw -- df.mvs) + flat df.rightSB [if (df.smallArchDepthA + df.smallArchDepthB < XH) (XH - df.smallArchDepthB) : mix XH 0 (df.smallArchDepthB / (df.smallArchDepthA + df.smallArchDepthB))] curl df.rightSB 0 [heading Downward] if SLAB : begin - local sf : SerifFrame.fromDf df XH 0 (swSerif -- sw) + local sf : SerifFrame.fromDf df XH 0 (swSerif -- df.mvs) include : composite-proc sf.lb.full sf.rb.full create-glyph 'currency/lariSign' 0x20BE : glyph-proc @@ -412,17 +406,18 @@ glyph-block Symbol-Letter-Phonetic : begin g4.up.end (RightSB - OX) XH [heading Upward] create-glyph 'cyrlInvLowKavykaWithKavyka' 0x2E46 : glyph-proc - include : MarkSet.e + local df : include : DivFrame para.advanceScaleSp + include : df.markSet.e include : BreveShape - xMiddle -- Middle + xMiddle -- df.middle width -- (3 * markExtend) top -- XH bottom -- (XH - AccentHeight) hs -- markHalfStroke include : InvBreveShape - xMiddle -- Middle + xMiddle -- df.middle width -- (3 * markExtend) top -- AccentHeight bottom -- 0