From 01f47d22495ec6a72a7ea96e0e673c9cc0c91dc5 Mon Sep 17 00:00:00 2001 From: John McWilliams Date: Tue, 8 Apr 2025 06:44:24 -0400 Subject: [PATCH 1/4] Optimize terminal of `armn/Gim`-derived letters under italics. --- .../font-glyphs/src/letter/armenian/upper-gim-group.ptl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/font-glyphs/src/letter/armenian/upper-gim-group.ptl b/packages/font-glyphs/src/letter/armenian/upper-gim-group.ptl index 1151483f8..83eaaa25a 100644 --- a/packages/font-glyphs/src/letter/armenian/upper-gim-group.ptl +++ b/packages/font-glyphs/src/letter/armenian/upper-gim-group.ptl @@ -28,7 +28,7 @@ glyph-block Letter-Armenian-Upper-Gim-Group : begin flatside.ld df.leftSB barPosB CAP ArchDepthA ArchDepthB arcvh flat df.middle barPosB - curl (df.rightSB + jut * [if SLAB 1.5 1] - [HSwToV : 0.5 * df.mvs]) barPosB + curl (df.rightSB + jut * [if SLAB 1.5 1] - [HSwToV : 0.5 * df.mvs]) barPosB [heading Rightward] if SLAB : begin local sf : SerifFrame.fromDf df CAP 0 include sf.rb.full @@ -44,7 +44,7 @@ glyph-block Letter-Armenian-Upper-Gim-Group : begin flatside.lu df.leftSB 0 highBarPos ArchDepthA ArchDepthB arcvh flat df.middle highBarPos - curl (df.rightSB + jut * [if SLAB 1.5 1] - [HSwToV : 0.5 * df.mvs]) highBarPos + curl (df.rightSB + jut * [if SLAB 1.5 1] - [HSwToV : 0.5 * df.mvs]) highBarPos [heading Rightward] if SLAB : begin local sf : SerifFrame.fromDf df CAP 0 include sf.rt.full @@ -60,7 +60,7 @@ glyph-block Letter-Armenian-Upper-Gim-Group : begin flatside.lu df.leftSB 0 highBarPos SmallArchDepthA SmallArchDepthB arcvh flat df.middle highBarPos - curl (df.rightSB + jut * [if SLAB 1.5 1] - [HSwToV : 0.5 * df.mvs]) highBarPos + curl (df.rightSB + jut * [if SLAB 1.5 1] - [HSwToV : 0.5 * df.mvs]) highBarPos [heading Rightward] if SLAB : begin local sf : SerifFrame.fromDf df Ascender 0 include sf.rt.inner From a151f07a2a8ff5fc8ca453d1e1779cd4b72ed99a Mon Sep 17 00:00:00 2001 From: John McWilliams Date: Tue, 8 Apr 2025 06:48:24 -0400 Subject: [PATCH 2/4] Refine glyph shape of Armenian Capital/Lower To. --- changes/33.2.1.md | 3 +++ .../font-glyphs/src/letter/armenian/to.ptl | 25 ++++++++++--------- 2 files changed, 16 insertions(+), 12 deletions(-) create mode 100644 changes/33.2.1.md diff --git a/changes/33.2.1.md b/changes/33.2.1.md new file mode 100644 index 000000000..f5c6fb14f --- /dev/null +++ b/changes/33.2.1.md @@ -0,0 +1,3 @@ +* Refine shape of the following characters: + - ARMENIAN CAPITAL LETTER TO (`U+0539`). + - ARMENIAN SMALL LETTER TO (`U+0569`). diff --git a/packages/font-glyphs/src/letter/armenian/to.ptl b/packages/font-glyphs/src/letter/armenian/to.ptl index ec0f32def..d37432010 100644 --- a/packages/font-glyphs/src/letter/armenian/to.ptl +++ b/packages/font-glyphs/src/letter/armenian/to.ptl @@ -18,8 +18,9 @@ glyph-block Letter-Armenian-To : begin do "T'o" create-glyph 'armn/To' 0x539 : glyph-proc local df : include : DivFrame para.advanceScaleT - local fine : df.adviceStroke2 6 3 CAP - local barPosT : barPos + df.mvs / 2 + include : df.markSet.capital + local fine : df.adviceStroke2 3 3 XH + local barPosT : barPos + fine / 2 include : dispiro widths.rhs df.mvs flat df.leftSB 0 [heading Upward] @@ -27,30 +28,30 @@ glyph-block Letter-Armenian-To : begin arch.rhs CAP (sw -- df.mvs) flatside.rd df.rightSB 0 CAP df.archDepthA df.archDepthB 0 arch.rhs 0 (sw -- df.mvs) (swAfter -- fine) - g4 (df.middle - [HSwToV : 0.5 * fine]) [mix 0 barPosT 0.5] [widths.rhs fine] + g4 (df.middle - [HSwToV : 0.5 * fine]) [mix 0 barPosT (df.archDepthB / (df.archDepthA + df.archDepthB))] [widths.rhs fine] arcvh - flat [mix df.leftSB df.rightSB 0.7] barPosT [widths.rhs df.mvs] - curl (df.rightSB + jut - [HSwToV : 0.5 * df.mvs]) barPosT + flat [mix (df.middle - [HSwToV : 0.5 * fine]) df.rightSB 0.5] barPosT + curl (df.rightSB + jut * [if SLAB 1.5 1] - [HSwToV : 0.5 * df.mvs]) barPosT [heading Rightward] if SLAB : begin local sf : SerifFrame.fromDf df CAP 0 include sf.lb.full create-glyph 'armn/to' 0x569 : glyph-proc local df : include : DivFrame para.advanceScaleT - local fine : df.adviceStroke2 6 3 XH include : df.markSet.p + local fine : df.adviceStroke2 3 3 XH + local barPosT : barPos + fine / 2 include : VBar.l df.leftSB Descender XH df.mvs - local barPosT : barPos + df.mvs / 2 include : dispiro - flat (df.leftSB + [HSwToV : df.mvs - df.shoulderFine]) (XH - df.smallArchDepthA - TINY) [widths.rhs df.shoulderFine] - curl (df.leftSB + [HSwToV : df.mvs - df.shoulderFine]) (XH - df.smallArchDepthA) + widths.rhs df.shoulderFine + straight.up.start (df.leftSB + [HSwToV : df.mvs - df.shoulderFine]) [if (df.smallArchDepthA + df.smallArchDepthB < XH) (XH - df.smallArchDepthA) : mix XH 0 (df.smallArchDepthA / (df.smallArchDepthA + df.smallArchDepthB))] [heading Upward] arch.rhs XH (sw -- df.mvs) (swBefore -- df.shoulderFine) flatside.rd df.rightSB 0 XH df.smallArchDepthA df.smallArchDepthB 0 [widths.rhs df.mvs] arch.rhs 0 (sw -- df.mvs) (swAfter -- fine) - g4 (df.middle - [HSwToV : 0.5 * fine]) [mix 0 barPosT 0.5] [widths.rhs fine] + g4 (df.middle - [HSwToV : 0.5 * fine]) [mix 0 barPosT (df.smallArchDepthB / (df.smallArchDepthA + df.smallArchDepthB))] [widths.rhs fine] arcvh - flat [mix df.leftSB df.rightSB 0.7] barPosT [widths.rhs df.mvs] - curl (df.rightSB + jut - [HSwToV : 0.5 * df.mvs]) barPosT + flat [mix (df.middle - [HSwToV : 0.5 * fine]) df.rightSB 0.5] barPosT + curl (df.rightSB + jut * [if SLAB 1.5 1] - [HSwToV : 0.5 * df.mvs]) barPosT [heading Rightward] if SLAB : begin local sf : SerifFrame.fromDf df XH Descender include : composite-proc sf.lt.outer sf.lb.fullSide From b7e186ec781119cb0de293b41f1573520dc50762 Mon Sep 17 00:00:00 2001 From: John McWilliams Date: Tue, 8 Apr 2025 06:48:54 -0400 Subject: [PATCH 3/4] Doc. --- changes/33.2.1.md | 1 + 1 file changed, 1 insertion(+) diff --git a/changes/33.2.1.md b/changes/33.2.1.md index f5c6fb14f..bcbaa2120 100644 --- a/changes/33.2.1.md +++ b/changes/33.2.1.md @@ -1,3 +1,4 @@ * Refine shape of the following characters: - ARMENIAN CAPITAL LETTER TO (`U+0539`). - ARMENIAN SMALL LETTER TO (`U+0569`). + - MATHEMATICAL DOUBLE-STRUCK DIGIT TWO (`U+1D7DA`) (#2728). From 7e2470a05539c7503f8faae7ca79fcd8f6dd0715 Mon Sep 17 00:00:00 2001 From: John McWilliams Date: Tue, 8 Apr 2025 08:38:52 -0400 Subject: [PATCH 4/4] Optimize inner stroke width under monospace. --- packages/font-glyphs/src/letter/armenian/to.ptl | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/font-glyphs/src/letter/armenian/to.ptl b/packages/font-glyphs/src/letter/armenian/to.ptl index d37432010..2f11ee890 100644 --- a/packages/font-glyphs/src/letter/armenian/to.ptl +++ b/packages/font-glyphs/src/letter/armenian/to.ptl @@ -20,6 +20,7 @@ glyph-block Letter-Armenian-To : begin local df : include : DivFrame para.advanceScaleT include : df.markSet.capital local fine : df.adviceStroke2 3 3 XH + local cofine : Math.min fine : VSwToH : (df.rightSB - df.leftSB) / 2 - [HSwToV df.mvs] local barPosT : barPos + fine / 2 include : dispiro widths.rhs df.mvs @@ -27,10 +28,10 @@ glyph-block Letter-Armenian-To : begin curl df.leftSB [if (df.archDepthA + df.archDepthB < CAP) (CAP - df.archDepthA) : mix CAP 0 (df.archDepthA / (df.archDepthA + df.archDepthB))] arch.rhs CAP (sw -- df.mvs) flatside.rd df.rightSB 0 CAP df.archDepthA df.archDepthB 0 - arch.rhs 0 (sw -- df.mvs) (swAfter -- fine) - g4 (df.middle - [HSwToV : 0.5 * fine]) [mix 0 barPosT (df.archDepthB / (df.archDepthA + df.archDepthB))] [widths.rhs fine] + arch.rhs 0 (sw -- df.mvs) (swAfter -- cofine) + g4 (df.middle - [HSwToV : 0.5 * cofine]) [mix 0 barPosT (df.archDepthB / (df.archDepthA + df.archDepthB))] [widths.rhs cofine] arcvh - flat [mix (df.middle - [HSwToV : 0.5 * fine]) df.rightSB 0.5] barPosT + flat [mix (df.middle - [HSwToV : 0.5 * cofine]) df.rightSB 0.5] barPosT [widths.rhs fine] curl (df.rightSB + jut * [if SLAB 1.5 1] - [HSwToV : 0.5 * df.mvs]) barPosT [heading Rightward] if SLAB : begin local sf : SerifFrame.fromDf df CAP 0 @@ -40,6 +41,7 @@ glyph-block Letter-Armenian-To : begin local df : include : DivFrame para.advanceScaleT include : df.markSet.p local fine : df.adviceStroke2 3 3 XH + local cofine : Math.min fine : VSwToH : (df.rightSB - df.leftSB) / 2 - [HSwToV df.mvs] local barPosT : barPos + fine / 2 include : VBar.l df.leftSB Descender XH df.mvs include : dispiro @@ -47,10 +49,10 @@ glyph-block Letter-Armenian-To : begin straight.up.start (df.leftSB + [HSwToV : df.mvs - df.shoulderFine]) [if (df.smallArchDepthA + df.smallArchDepthB < XH) (XH - df.smallArchDepthA) : mix XH 0 (df.smallArchDepthA / (df.smallArchDepthA + df.smallArchDepthB))] [heading Upward] arch.rhs XH (sw -- df.mvs) (swBefore -- df.shoulderFine) flatside.rd df.rightSB 0 XH df.smallArchDepthA df.smallArchDepthB 0 [widths.rhs df.mvs] - arch.rhs 0 (sw -- df.mvs) (swAfter -- fine) - g4 (df.middle - [HSwToV : 0.5 * fine]) [mix 0 barPosT (df.smallArchDepthB / (df.smallArchDepthA + df.smallArchDepthB))] [widths.rhs fine] + arch.rhs 0 (sw -- df.mvs) (swAfter -- cofine) + g4 (df.middle - [HSwToV : 0.5 * cofine]) [mix 0 barPosT (df.smallArchDepthB / (df.smallArchDepthA + df.smallArchDepthB))] [widths.rhs cofine] arcvh - flat [mix (df.middle - [HSwToV : 0.5 * fine]) df.rightSB 0.5] barPosT + flat [mix (df.middle - [HSwToV : 0.5 * cofine]) df.rightSB 0.5] barPosT [widths.rhs fine] curl (df.rightSB + jut * [if SLAB 1.5 1] - [HSwToV : 0.5 * df.mvs]) barPosT [heading Rightward] if SLAB : begin local sf : SerifFrame.fromDf df XH Descender