Optimize glyphs for Ի/Կ/Վ (Armenian). (#2574)

* Cleanup of #2571 .

* Optimize glyphs for `Ի`/`Կ`/`Վ`.

* Cleanup of #2573 .
This commit is contained in:
John McWilliams 2024-11-06 21:56:26 -05:00 committed by GitHub
parent 71ef1de1a4
commit 3f20b14e5a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 47 additions and 39 deletions

View file

@ -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`).

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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