From 6fefad315865054b9cda18aa1fd729ecb8d1fe2b Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Fri, 30 May 2025 07:29:47 -0400 Subject: [PATCH] =?UTF-8?q?Make=20Greek=20Archaic=20Sampi=20(`=CD=B2`/`?= =?UTF-8?q?=CD=B3`)=20slightly=20narrower=20under=20QP.=20(#2785)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- changes/33.2.4.md | 7 +- .../font-glyphs/src/letter/greek/sampi.ptl | 27 +----- .../font-glyphs/src/letter/latin/upper-t.ptl | 89 ++++++++++++------- 3 files changed, 65 insertions(+), 58 deletions(-) diff --git a/changes/33.2.4.md b/changes/33.2.4.md index f7b0bb483..e69bd082a 100644 --- a/changes/33.2.4.md +++ b/changes/33.2.4.md @@ -1,4 +1,5 @@ * Refine shape of the following characters: + - GREEK CAPITAL LETTER ARCHAIC SAMPI (`U+0372`) ... GREEK SMALL LETTER ARCHAIC SAMPI (`U+0373`). - GREEK CAPITAL LETTER GAMMA (`U+0393`). - GREEK LETTER DIGAMMA (`U+03DC`) ... GREEK SMALL LETTER DIGAMMA (`U+03DD`). - CYRILLIC CAPITAL LETTER GHE (`U+0413`). @@ -14,8 +15,6 @@ - NUMERO SIGN (`U+2116`). - DOUBLE STRUCK CAPITAL GAMMA (`U+213E`). - TILDE WITH RING ABOVE (`U+2E18`). - - TILDE WITH DOT ABOVE (`U+2E1E`). - - TILDE WITH DOT BELOW (`U+2E1F`). + - TILDE WITH DOT ABOVE (`U+2E1E`) ... TILDE WITH DOT BELOW (`U+2E1F`). - LATIN CAPITAL LETTER LAMBDA WITH STROKE (`U+A7DC`). - - LATIN SMALL LETTER SCRIPT R (`U+AB4B`). - - LATIN SMALL LETTER SCRIPT R WITH RING (`U+AB4C`). + - LATIN SMALL LETTER SCRIPT R (`U+AB4B`) ... LATIN SMALL LETTER SCRIPT R WITH RING (`U+AB4C`). diff --git a/packages/font-glyphs/src/letter/greek/sampi.ptl b/packages/font-glyphs/src/letter/greek/sampi.ptl index 319e0518f..b2d2d370d 100644 --- a/packages/font-glyphs/src/letter/greek/sampi.ptl +++ b/packages/font-glyphs/src/letter/greek/sampi.ptl @@ -5,27 +5,6 @@ import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module -glyph-block Letter-Greek-Arachaic-Sampi : begin - glyph-block-import CommonShapes - - define KSampiDepth 0.45 - define [SampiShape df top bottom fDoSerifs] : glyph-proc - include : VBar.l df.leftSB top [mix (top - Stroke) bottom KSampiDepth] df.mvs - include : VBar.r df.rightSB top [mix (top - Stroke) bottom KSampiDepth] df.mvs - include : VBar.m df.middle top bottom df.mvs - include : HBar.t df.leftSB df.rightSB top - if (fDoSerifs && SLAB) : include : HSerif.mb df.middle 0 MidJutSide - - create-glyph 'grek/SampiArchaic' 0x372 : glyph-proc - local df : include : DivFrame para.advanceScaleM 3 - include : df.markSet.capital - include : SampiShape df CAP 0 true - - create-glyph 'grek/sampiArchaic' 0x373 : glyph-proc - local df : include : DivFrame para.advanceScaleM 3 - include : df.markSet.p - include : SampiShape df XH Descender false - glyph-block Letter-Greek-Sampi : begin glyph-block-import CommonShapes @@ -34,12 +13,12 @@ glyph-block Letter-Greek-Sampi : begin define sw : AdviceStroke 3 define fine : AdviceStroke 4.25 define rightStrokeShift : HSwToV : 0.45 * sw - define leftStrokeShift : HSwToV : 0.45 * fine + define leftStrokeShift : HSwToV : 0.45 * fine define [LeftSideMask] : spiro-outline corner (RightSB - [HSwToV HalfStroke] + O) 0 corner Middle CAP - corner (-2 * Width) CAP - corner (-2 * Width) 0 + corner ((-2) * Width) CAP + corner ((-2) * Width) 0 include : intersection MaskBelow CAP MaskAbove 0 diff --git a/packages/font-glyphs/src/letter/latin/upper-t.ptl b/packages/font-glyphs/src/letter/latin/upper-t.ptl index 9b58ad77d..d87b7c83b 100644 --- a/packages/font-glyphs/src/letter/latin/upper-t.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-t.ptl @@ -15,13 +15,14 @@ glyph-block Letter-Latin-Upper-T : begin glyph-block-import Letter-Shared-Shapes : LetterBarOverlay UpwardHookShape glyph-block-import Letter-Shared-Shapes : CyrDescender SerifFrame FlatHookDepth LeftHook RetroflexHook - define ox : 0.75 * OX define [TLeftX df] : df.leftSB + 0.75 * OX define [TRightX df] : df.rightSB - 0.75 * OX define [TShape df top doTopSerifs doBottomSerifs] : glyph-proc include : tagged 'strokeV' : VBar.m df.middle 0 top - local l : TLeftX df + + local l : TLeftX df local r : TRightX df + include : tagged 'strokeLT' : HBar.t l df.middle top include : tagged 'strokeRT' : HBar.t df.middle r top @@ -39,8 +40,10 @@ glyph-block Letter-Latin-Upper-T : begin local xTopBarLeft : df.leftSB - SideJut local xTopBarRightSym : 2 * left + [HSwToV df.mvs] - xTopBarLeft local xTopBarRight : Math.max xTopBarRightSym : mix left df.rightSB 0.475 + include : tagged 'strokeLT' : HBar.t xTopBarLeft mid top df.mvs include : tagged 'strokeRT' : HBar.t mid xTopBarRight top df.mvs + include : UpwardHookShape left -- left right -- df.rightSB @@ -57,7 +60,7 @@ glyph-block Letter-Latin-Upper-T : begin local sf2 : [SerifFrame.fromDf df (top / 2 + HalfStroke) 0].slice 1 2 if SLAB : include sf2.rt.full - define [TweUpperShape df top doTopSerifs] : glyph-proc + define [TweUpperShape df top doTopSerifs doBottomSerifs] : glyph-proc include : TShape df top doTopSerifs false eject-contour 'strokeV' @@ -68,7 +71,7 @@ glyph-block Letter-Latin-Upper-T : begin local xBarRight : df.width - 1.5 * df.leftSB include : tagged 'strokeLT' : HBar.t xLeft xBarRight top - include : tagged 'strokeV' : VBar.r xBarRight 0 top + include : tagged 'strokeV' : VBar.r xBarRight 0 top if doTopSerifs : begin include : tagged 'serifLT' : VSerif.dl xLeft top VJut @@ -116,12 +119,37 @@ glyph-block Letter-Latin-Upper-T : begin eject-contour 'strokeLT' include : LeftHook (df.leftSB + LeftHook.extension) CAP df.middle + create-glyph "TRTail.\(suffix)" : glyph-proc + local df : DivFrame adws + include [refer-glyph "T.\(suffix)"] AS_BASE ALSO_METRICS + include : df.markSet.capital + include : RetroflexHook.mExt df.middle 0 + create-glyph "smcpT.\(suffix)" : glyph-proc local df : include : DivFrame adws include : df.markSet.e set-base-anchor 'bottomRight' (df.middle + [HSwToV HalfStroke]) 0 include : TShape df XH doST doSB + create-glyph "cyrl/teDescender.upright.\(suffix)" : glyph-proc + local df : include : DivFrame adws + include : df.markSet.e + include : TShape df XH doST doSB + include : CyrDescender.rSideJut + x -- (df.middle + [HSwToV HalfStroke]) + y -- 0 + jut -- [if doSB MidJutCenter Jut] + + create-glyph "cyrl/TjeKomi.\(suffix)" : glyph-proc + local df : include : DivFrame adws 3 + include : df.markSet.capital + include : TjeShape df CAP doST + + create-glyph "cyrl/tjeKomi.upright.\(suffix)" : glyph-proc + local df : include : DivFrame adws 3 + include : df.markSet.e + include : TjeShape df XH doST + create-glyph "cyrl/Twe/upper.\(suffix)" : glyph-proc local df : include : DivFrame adws include : df.markSet.capital @@ -141,31 +169,6 @@ glyph-block Letter-Latin-Upper-T : begin include : HBar.t [TLeftX df] [TRightX df] CAP OverlayStroke include : TShape df (CAP - OverlayStroke - gap) doST doSB - create-glyph "cyrl/teDescender.upright.\(suffix)" : glyph-proc - local df : include : DivFrame adws - include : df.markSet.e - include : TShape df XH doST doSB - include : CyrDescender.rSideJut - x -- (df.middle + [HSwToV HalfStroke]) - y -- 0 - jut -- [if doSB MidJutCenter Jut] - - create-glyph "TRTail.\(suffix)" : glyph-proc - local df : DivFrame adws - include [refer-glyph "T.\(suffix)"] AS_BASE ALSO_METRICS - include : df.markSet.capital - include : RetroflexHook.mExt df.middle 0 - - create-glyph "cyrl/TjeKomi.\(suffix)" : glyph-proc - local df : include : DivFrame adws 3 - include : df.markSet.capital - include : TjeShape df CAP doST - - create-glyph "cyrl/tjeKomi.upright.\(suffix)" : glyph-proc - local df : include : DivFrame adws 3 - include : df.markSet.e - include : TjeShape df XH doST - create-glyph "cyrl/teTall.\(suffix)" : glyph-proc local df : include : DivFrame 1 include : df.markSet.b @@ -191,6 +194,7 @@ glyph-block Letter-Latin-Upper-T : begin select-variant 'cyrl/TjeKomi' 0x50E (follow -- 'T/rtailBase') select-variant 'cyrl/tjeKomi.upright' null (follow -- 'T/rtailBase') + select-variant 'cyrl/Twe/upper' (follow -- 'T/rtailBase') select-variant 'cyrl/twe/upper' (follow -- 'T/rtailBase') derive-composites 'cyrl/Twe' 0xA68C 'cyrl/Twe/upper' 'cyrl/Twe/middle' @@ -206,7 +210,8 @@ glyph-block Letter-Latin-Upper-T : begin create-glyph 'capitalSmcpI' 0xA7AE : glyph-proc local df : include : DivFrame : if SLAB para.advanceScaleT 1 include : df.markSet.capital - local l : TLeftX df + + local l : TLeftX df local r : TRightX df include : VBar.m df.middle 0 CAP @@ -219,6 +224,30 @@ glyph-block Letter-Latin-Upper-T : begin include : tagged 'serifRB' : VSerif.ur r 0 VJut include : tagged 'serifLB' : VSerif.ul l 0 VJut + define [SampiShape df top bottom doTopSerifs doBottomSerifs] : glyph-proc + define kSampiDepth 0.45 + + local l : TLeftX df + local r : TRightX df + + include : VBar.m df.middle top bottom + include : HBar.t l r top + + include : VBar.l l top [mix (top - Stroke) bottom kSampiDepth] VJutStroke + include : VBar.r r top [mix (top - Stroke) bottom kSampiDepth] VJutStroke + + if doBottomSerifs : include : HSerif.mb df.middle bottom MidJutSide + + create-glyph 'grek/SampiArchaic' 0x372 : glyph-proc + local df : include : DivFrame para.advanceScaleT + include : df.markSet.capital + include : SampiShape df CAP 0 true SLAB + + create-glyph 'grek/sampiArchaic' 0x373 : glyph-proc + local df : include : DivFrame para.advanceScaleT + include : df.markSet.p + include : SampiShape df XH Descender true false + create-glyph 'mathbb/T' 0x1D54B : glyph-proc local df : include : DivFrame 1 include : df.markSet.capital