Merge pull request #2736 from jmcwilliams403/armn-to

Optimize glyph shape/metrics of Armenian Capital/Lower To (`Թ`/`թ`).
This commit is contained in:
Belleve 2025-04-08 17:41:42 -10:00 committed by GitHub
commit a2bc474689
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 24 additions and 17 deletions

4
changes/33.2.1.md Normal file
View file

@ -0,0 +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).

View file

@ -18,39 +18,42 @@ 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 cofine : Math.min fine : VSwToH : (df.rightSB - df.leftSB) / 2 - [HSwToV df.mvs]
local barPosT : barPos + fine / 2
include : dispiro
widths.rhs df.mvs
flat df.leftSB 0 [heading Upward]
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 0.5] [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.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 * 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
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 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
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]
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.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 * 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
include : composite-proc sf.lt.outer sf.lb.fullSide

View file

@ -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