From 3f20b14e5a2c627e706e51b1d1c8a4b9e7c2027e Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Wed, 6 Nov 2024 21:56:26 -0500 Subject: [PATCH] =?UTF-8?q?Optimize=20glyphs=20for=20`=D4=BB`/`=D4=BF`/`?= =?UTF-8?q?=D5=8E`=20(Armenian).=20(#2574)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Cleanup of #2571 . * Optimize glyphs for `Ի`/`Կ`/`Վ`. * Cleanup of #2573 . --- changes/32.0.2.md | 3 ++ .../font-glyphs/src/letter/armenian/ca.ptl | 6 ++- .../src/letter/armenian/hook-group.ptl | 43 +++++++++++-------- .../src/letter/armenian/lower-u-group.ptl | 3 -- .../font-glyphs/src/letter/armenian/to.ptl | 2 +- .../font-glyphs/src/letter/latin/lower-g.ptl | 12 +++--- .../font-glyphs/src/letter/latin/lower-j.ptl | 5 --- packages/font-glyphs/src/letter/latin/u.ptl | 4 +- packages/font-glyphs/src/letter/shared.ptl | 8 ++-- 9 files changed, 47 insertions(+), 39 deletions(-) diff --git a/changes/32.0.2.md b/changes/32.0.2.md index 425c37c4d..8aaa0fdc9 100644 --- a/changes/32.0.2.md +++ b/changes/32.0.2.md @@ -1,2 +1,5 @@ +* Optimize glyphs for Armenian Capital Ini (`U+053B`), Ken (`U+053F`), and Vew (`U+054E`). +* Remove bottom-right serif from Armenian Capital Now (`U+0546`). +* Remove top-right serif from Armenian Lower Ben (`U+0562`). * Make serif of Armenian Lower Yi (`U+0575`) consistent with Armenian Lower Liwn (`U+056C`). * Make hook of Armenian Lower Co (`U+0581`) consistent with Armenian Lower Yi (`U+0575`). diff --git a/packages/font-glyphs/src/letter/armenian/ca.ptl b/packages/font-glyphs/src/letter/armenian/ca.ptl index ac8c9fbf3..7b70b710d 100644 --- a/packages/font-glyphs/src/letter/armenian/ca.ptl +++ b/packages/font-glyphs/src/letter/armenian/ca.ptl @@ -51,6 +51,10 @@ glyph-block Letter-Armenian-Ca : begin local x3 : mix df.leftSB df.rightSB 0.1 local x4 : mix df.leftSB df.rightSB 0.6 + local rExt : Math.max df.rightSB : Math.min + x4 + [HSwToV : 1.5 * df.mvs] + jut + df.rightSB + jut - [HSwToV : 0.5 * df.mvs] + include : intersection [MaskBelowLine (x1 - xOffset) Ascender (x2 - xOffset) y2 100] : dispiro widths.rhs df.mvs flat (x3 + xOffset) Ascender @@ -62,4 +66,4 @@ glyph-block Letter-Armenian-Ca : begin curl (df.leftSB + OX) (highBarPos - SmallArchDepthA) arcvh flat df.middle highBarPos - curl (df.rightSB + jut - [HSwToV : 0.5 * df.mvs]) highBarPos + curl rExt highBarPos diff --git a/packages/font-glyphs/src/letter/armenian/hook-group.ptl b/packages/font-glyphs/src/letter/armenian/hook-group.ptl index 40dc765ab..ad4c499e1 100644 --- a/packages/font-glyphs/src/letter/armenian/hook-group.ptl +++ b/packages/font-glyphs/src/letter/armenian/hook-group.ptl @@ -8,7 +8,7 @@ glyph-module glyph-block Letter-Armenian-Hook-Group : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-import Letter-Shared-Shapes : SerifFrame + glyph-block-import Letter-Shared-Shapes : nShoulder uBowl SerifFrame glyph-block-import Letter-Armenian-Shared-Shapes : ArmHBar LeftHook RightHook do "Ben" @@ -47,7 +47,14 @@ glyph-block Letter-Armenian-Hook-Group : begin create-glyph 'armn/Ini' 0x53B : glyph-proc local df : include : DivFrame 1 include : df.markSet.capital - include : RightHook df XH df.mvs + include : nShoulder.shape + left -- (df.leftSB + [HSwToV df.mvs]) + right -- df.rightSB + top -- XH + bottom -- (XH / 2) + ada -- ArchDepthA + adb -- ArchDepthB + stroke -- df.mvs include : VBar.l df.leftSB 0 CAP if SLAB : begin local sf : SerifFrame.fromDf df CAP 0 @@ -58,13 +65,14 @@ glyph-block Letter-Armenian-Hook-Group : begin local df : include : DivFrame 1 include : df.markSet.capital local midy : XH / 2 - df.mvs / 2 - include : dispiro - widths.lhs df.mvs - flat df.leftSB CAP [heading Downward] - curl df.leftSB (midy + ArchDepthB) - arch.lhs midy (sw -- df.mvs) - flat df.rightSB (midy + ArchDepthA) - curl df.rightSB XH [heading Upward] + include : uBowl.shape + left -- df.leftSB + right -- (df.rightSB - [HSwToV df.mvs]) + top -- CAP + bottom -- midy + ada -- ArchDepthA + adb -- ArchDepthB + stroke -- df.mvs include : VBar.r df.rightSB 0 XH if SLAB : begin @@ -83,7 +91,7 @@ glyph-block Letter-Armenian-Hook-Group : begin create-glyph 'armn/Nu' 0x546 : glyph-proc local df : include : DivFrame 1 include : df.markSet.capital - include : LeftHook df CAP df.mvs SLAB SLAB + include : LeftHook df CAP df.mvs SLAB 0 include : FlipAround df.middle (CAP / 2) include : [ArmHBar.left df 1 SLAB].top @@ -101,13 +109,14 @@ glyph-block Letter-Armenian-Hook-Group : begin local df : include : DivFrame 1 include : df.markSet.capital local midy : XH / 2 - df.mvs / 2 - include : dispiro - widths.lhs df.mvs - flat df.leftSB XH [heading Downward] - curl df.leftSB (midy + ArchDepthB) - arch.lhs midy (sw -- df.mvs) - flat df.rightSB (midy + ArchDepthA) - curl df.rightSB XH [heading Upward] + include : uBowl.shape + left -- df.leftSB + right -- (df.rightSB - [HSwToV df.mvs]) + top -- XH + bottom -- midy + ada -- ArchDepthA + adb -- ArchDepthB + stroke -- df.mvs include : VBar.r df.rightSB 0 CAP df.mvs include : [ArmHBar.right df 1 SLAB].base diff --git a/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl b/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl index acc00a5a8..ee8d2326e 100644 --- a/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl +++ b/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl @@ -58,9 +58,6 @@ glyph-block Letter-Armenian-Lower-U-Group : begin if SLAB : begin local sf : SerifFrame.fromDf df XH Descender include : composite-proc sf.lt.outer sf.lb.fullSide - if [not para.isItalic] : begin - local sf2 : SerifFrame.fromDf df XH (XH / 2) - include sf2.rb.full do "Da" create-glyph 'armn/da' 0x564 : glyph-proc diff --git a/packages/font-glyphs/src/letter/armenian/to.ptl b/packages/font-glyphs/src/letter/armenian/to.ptl index 0181cc12d..72a9eef08 100644 --- a/packages/font-glyphs/src/letter/armenian/to.ptl +++ b/packages/font-glyphs/src/letter/armenian/to.ptl @@ -43,7 +43,7 @@ glyph-block Letter-Armenian-To : begin local fine : df.adviceStroke2 6 3 XH include : df.markSet.p include : VBar.l df.leftSB Descender XH df.mvs - local barPosT : XH / 2 + df.mvs / 2 + local barPosT : barPos + df.mvs / 2 include : dispiro nShoulder.knots left -- (df.leftSB + [HSwToV df.mvs]) diff --git a/packages/font-glyphs/src/letter/latin/lower-g.ptl b/packages/font-glyphs/src/letter/latin/lower-g.ptl index e4c2d0cbc..541aaa674 100644 --- a/packages/font-glyphs/src/letter/latin/lower-g.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-g.ptl @@ -162,15 +162,15 @@ glyph-block Letter-Latin-Lower-G : begin local df : include : DivFrame 1 include : df.markSet.p set-base-anchor 'overlay' Middle (XH / 2) - set-base-anchor 'strike' Middle (XH / 2) - include : bodyShape df XH + set-base-anchor 'strike' Middle (XH / 2) + include : bodyShape df XH include : hookShape df (XH - hookStart) create-glyph "GScript.\(suffix)" : glyph-proc local df : include : DivFrame 1 include : df.markSet.capDesc set-base-anchor 'overlay' Middle (CAP / 2) - include : bodyShape df CAP + include : bodyShape df CAP include : hookShape df (CAP - hookStart) create-glyph "gScriptPalatalHook.\(suffix)" : glyph-proc @@ -178,7 +178,7 @@ glyph-block Letter-Latin-Lower-G : begin include : df.markSet.p set-base-anchor 'overlay' Middle (XH / 2) local dfSub : DivFrame (0.75 * para.diversityM) 2 - include : bodyShape dfSub XH + include : bodyShape dfSub XH include : hookShape dfSub (XH - hookStart) include : PalatalHook.r x -- df.rightSB @@ -213,8 +213,8 @@ glyph-block Letter-Latin-Lower-G : begin include : MarkSet.p set-base-anchor 'overlay' Middle (XH / 2) define df : DivFrame 1 - include : SingleStorey.ScriptCutBody df XH - include : SingleStorey.CrossedHook df (XH - HalfStroke) + include : SingleStorey.ScriptCutBody df XH + include : SingleStorey.CrossedHook df (XH - HalfStroke) glyph-block-import Letter-Blackboard : BBS BBD BBBarRight create-glyph 'mathbb/g' 0x1D558 : glyph-proc diff --git a/packages/font-glyphs/src/letter/latin/lower-j.ptl b/packages/font-glyphs/src/letter/latin/lower-j.ptl index a67447d5a..86daa4013 100644 --- a/packages/font-glyphs/src/letter/latin/lower-j.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-j.ptl @@ -87,11 +87,6 @@ glyph-block Letter-Latin-Lower-J : begin include : Serifless df top xMiddle include : LeaningAnchor.Above.At [mix df.middle xMiddle (7/8)] - export : define [AutoSerifed df top xMiddle] : glyph-proc - include : if SLAB - Serifed df top xMiddle - Serifless df top xMiddle - define Div : namespace export : define BentHook 1 export : define StraightSerifless para.diversityII diff --git a/packages/font-glyphs/src/letter/latin/u.ptl b/packages/font-glyphs/src/letter/latin/u.ptl index 911143384..aec3a451b 100644 --- a/packages/font-glyphs/src/letter/latin/u.ptl +++ b/packages/font-glyphs/src/letter/latin/u.ptl @@ -10,8 +10,7 @@ glyph-block Letter-Latin-U : begin glyph-block-import Common-Derivatives glyph-block-import Mark-Shared-Metrics : markHalfStroke glyph-block-import Mark-Adjustment : LeaningAnchor - glyph-block-import Letter-Shared : CreateAccentedComposition - glyph-block-import Letter-Shared : SetGrekUpperTonos + glyph-block-import Letter-Shared : CreateAccentedComposition SetGrekUpperTonos glyph-block-import Letter-Shared-Shapes : uBowl RightwardTailedBar DToothlessRise SerifFrame glyph-block-import Letter-Shared-Shapes : CyrDescender CyrTailDescender RetroflexHook VerticalHook TopHook @@ -310,6 +309,7 @@ glyph-block Letter-Latin-U : begin select-variant 'U/withTonos' (follow -- 'U') link-reduced-variant 'U/sansSerif' 'U' MathSansSerif select-variant 'smcpU' 0x1D1C (follow -- 'U') + select-variant 'u' 'u' link-reduced-variant 'u/sansSerif' 'u' MathSansSerif select-variant 'u/uRTailBase' (shapeFrom -- 'u') diff --git a/packages/font-glyphs/src/letter/shared.ptl b/packages/font-glyphs/src/letter/shared.ptl index 1a1943bf8..5fbdc66cd 100644 --- a/packages/font-glyphs/src/letter/shared.ptl +++ b/packages/font-glyphs/src/letter/shared.ptl @@ -242,10 +242,10 @@ glyph-block Letter-Shared-Shapes : begin local-parameter : adb -- SmallArchDepthB local-parameter : stroke -- Stroke local-parameter : fMask -- false - local-parameter : leftY0 -- nothing + local-parameter : leftY0 -- (top - ada - 2) return : list - flat (left - [HSwToV fine]) [fallback leftY0 (top - ada - 2)] [widths.rhs fine] + flat (left - [HSwToV fine]) leftY0 [widths.rhs fine] curl (left - [HSwToV fine]) (top - ada) arch.rhs top (sw -- stroke) (swBefore -- fine) flat right (top - adb) [widths.rhs stroke] @@ -300,14 +300,14 @@ glyph-block Letter-Shared-Shapes : begin local-parameter : top local-parameter : bottom local-parameter : adb -- ArchDepthB - local-parameter : sw -- Stroke + local-parameter : sw -- Stroke define xMid : mix left right 0.5 define rise DToothlessRise return : dispiro flat left top [widths.lhs.heading sw Downward] - curl left (bottom+ adb) + curl left (bottom + adb) arch.lhs.centerAt.ltr.b (xMid + [HSwToV : 0.2 * sw]) bottom g4 right (bottom + rise + 0.25 * sw)