Cleanup/Optimize glyph shape of Latin Small Letter Script R (U+AB4B). (#2680)

* Optimize stroke width of Lower Script r with Bowl.

* Treat top-left serif as tooth instead of serif.

* Cleanup.
This commit is contained in:
John McWilliams 2025-02-15 19:16:50 -05:00 committed by GitHub
parent 397245ec33
commit 24dbed6a77
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -15,17 +15,17 @@ glyph-block Letter-Latin-Script-R : begin
define [ScriptRShape top left right fTailed sw] : glyph-proc
include : tagged 'strokeR' : if fTailed
RightwardTailedBar right 0 (top - 0.5 * sw) (sw -- sw)
VBar.r right 0 (top - 0.5 * sw) sw
include : dispiro
widths.rhs sw
g4 left (top - O) [heading Rightward]
g4 [mix left right 0.5] (top + O)
g4 right (top - O) [heading Rightward]
if SLAB : begin
include : VSerif.dl left (top - 0.5 * sw) (VJut - 0.5 * sw) (VJutStroke * (sw / Stroke))
if [not fTailed] : include : if para.isItalic [HSerif.rb right 0 SideJut] : composite-proc
HSerif.rb (right - [HSwToV : 0.5 * sw]) 0 Jut
HSerif.lb (right - [HSwToV : 0.5 * sw]) 0 MidJutSide
VBar.r right 0 (top - 0.5 * sw) sw
include : union
VBar.l left (top - VJut) (top - 0.5 * sw) (VJutStroke * (sw / Stroke))
dispiro
widths.rhs sw
g4 left (top - O) [heading Rightward]
g4 [mix left right 0.5] (top + O)
g4 right (top - O) [heading Rightward]
if (SLAB && !fTailed) : include : if para.isItalic [HSerif.rb right 0 SideJut] : composite-proc
HSerif.rb (right - [HSwToV : 0.5 * sw]) 0 Jut
HSerif.lb (right - [HSwToV : 0.5 * sw]) 0 MidJutSide
define ScriptRConfig : object
standard false
@ -48,19 +48,19 @@ glyph-block Letter-Latin-Script-R : begin
include : ScriptRShape XH SB [xBarRight subDf] true subDf.mvs
eject-contour 'strokeR'
local swBowl : [AdviceStroke 2.75] * (subDf.mvs / Stroke)
local swBowl : [AdviceStroke 3] * (subDf.mvs / Stroke)
local fineBowl : ShoulderFine * (swBowl / Stroke)
local yBar : 0.5 * XH + 0.5 * swBowl
local ada : ArchDepthAOf ArchDepth : df.rightSB - ([xBarRight subDf] - [HSwToV subDf.mvs]) + SB * 2
local adb : ArchDepthBOf ArchDepth : df.rightSB - ([xBarRight subDf] - [HSwToV subDf.mvs]) + SB * 2
local ada : ArchDepthAOf SmallArchDepth : df.width - ([xBarRight subDf] - subDf.leftSB) + [HSwToV subDf.mvs]
local adb : ArchDepthBOf SmallArchDepth : df.width - ([xBarRight subDf] - subDf.leftSB) + [HSwToV subDf.mvs]
include : dispiro
flat ([xBarRight subDf] - [HSwToV subDf.mvs]) (XH - 0.5 * subDf.mvs) [widths.lhs.heading subDf.mvs Downward]
curl ([xBarRight subDf] - [HSwToV subDf.mvs]) [YSmoothMidL yBar 0 ada adb]
arch.lhs 0 (sw -- subDf.mvs) (swAfter -- swBowl)
g4 (df.rightSB - OX) [YSmoothMidR yBar 0 ada adb]
g4 (df.rightSB - OX) [YSmoothMidR yBar 0 ada adb] [widths.lhs swBowl]
arch.lhs yBar (sw -- swBowl) (swAfter -- fineBowl)
g4.down.end ([xBarRight subDf] - [HSwToV fineBowl]) [YSmoothMidL yBar 0 ada adb] [widths.lhs.heading fineBowl Downward]