Make Greek Archaic Sampi (Ͳ/ͳ) slightly narrower under QP. (#2785)

This commit is contained in:
John McWilliams 2025-05-30 07:29:47 -04:00 committed by GitHub
parent 80470d26eb
commit 6fefad3158
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 65 additions and 58 deletions

View file

@ -1,4 +1,5 @@
* Refine shape of the following characters:
- GREEK CAPITAL LETTER ARCHAIC SAMPI (`U+0372`) ... GREEK SMALL LETTER ARCHAIC SAMPI (`U+0373`).
- GREEK CAPITAL LETTER GAMMA (`U+0393`).
- GREEK LETTER DIGAMMA (`U+03DC`) ... GREEK SMALL LETTER DIGAMMA (`U+03DD`).
- CYRILLIC CAPITAL LETTER GHE (`U+0413`).
@ -14,8 +15,6 @@
- NUMERO SIGN (`U+2116`).
- DOUBLE STRUCK CAPITAL GAMMA (`U+213E`).
- TILDE WITH RING ABOVE (`U+2E18`).
- TILDE WITH DOT ABOVE (`U+2E1E`).
- TILDE WITH DOT BELOW (`U+2E1F`).
- TILDE WITH DOT ABOVE (`U+2E1E`) ... TILDE WITH DOT BELOW (`U+2E1F`).
- LATIN CAPITAL LETTER LAMBDA WITH STROKE (`U+A7DC`).
- LATIN SMALL LETTER SCRIPT R (`U+AB4B`).
- LATIN SMALL LETTER SCRIPT R WITH RING (`U+AB4C`).
- LATIN SMALL LETTER SCRIPT R (`U+AB4B`) ... LATIN SMALL LETTER SCRIPT R WITH RING (`U+AB4C`).

View file

@ -5,27 +5,6 @@ import [DesignParameters] from "../../meta/aesthetics.mjs"
glyph-module
glyph-block Letter-Greek-Arachaic-Sampi : begin
glyph-block-import CommonShapes
define KSampiDepth 0.45
define [SampiShape df top bottom fDoSerifs] : glyph-proc
include : VBar.l df.leftSB top [mix (top - Stroke) bottom KSampiDepth] df.mvs
include : VBar.r df.rightSB top [mix (top - Stroke) bottom KSampiDepth] df.mvs
include : VBar.m df.middle top bottom df.mvs
include : HBar.t df.leftSB df.rightSB top
if (fDoSerifs && SLAB) : include : HSerif.mb df.middle 0 MidJutSide
create-glyph 'grek/SampiArchaic' 0x372 : glyph-proc
local df : include : DivFrame para.advanceScaleM 3
include : df.markSet.capital
include : SampiShape df CAP 0 true
create-glyph 'grek/sampiArchaic' 0x373 : glyph-proc
local df : include : DivFrame para.advanceScaleM 3
include : df.markSet.p
include : SampiShape df XH Descender false
glyph-block Letter-Greek-Sampi : begin
glyph-block-import CommonShapes
@ -38,8 +17,8 @@ glyph-block Letter-Greek-Sampi : begin
define [LeftSideMask] : spiro-outline
corner (RightSB - [HSwToV HalfStroke] + O) 0
corner Middle CAP
corner (-2 * Width) CAP
corner (-2 * Width) 0
corner ((-2) * Width) CAP
corner ((-2) * Width) 0
include : intersection
MaskBelow CAP
MaskAbove 0

View file

@ -15,13 +15,14 @@ glyph-block Letter-Latin-Upper-T : begin
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay UpwardHookShape
glyph-block-import Letter-Shared-Shapes : CyrDescender SerifFrame FlatHookDepth LeftHook RetroflexHook
define ox : 0.75 * OX
define [TLeftX df] : df.leftSB + 0.75 * OX
define [TRightX df] : df.rightSB - 0.75 * OX
define [TShape df top doTopSerifs doBottomSerifs] : glyph-proc
include : tagged 'strokeV' : VBar.m df.middle 0 top
local l : TLeftX df
local r : TRightX df
include : tagged 'strokeLT' : HBar.t l df.middle top
include : tagged 'strokeRT' : HBar.t df.middle r top
@ -39,8 +40,10 @@ glyph-block Letter-Latin-Upper-T : begin
local xTopBarLeft : df.leftSB - SideJut
local xTopBarRightSym : 2 * left + [HSwToV df.mvs] - xTopBarLeft
local xTopBarRight : Math.max xTopBarRightSym : mix left df.rightSB 0.475
include : tagged 'strokeLT' : HBar.t xTopBarLeft mid top df.mvs
include : tagged 'strokeRT' : HBar.t mid xTopBarRight top df.mvs
include : UpwardHookShape
left -- left
right -- df.rightSB
@ -57,7 +60,7 @@ glyph-block Letter-Latin-Upper-T : begin
local sf2 : [SerifFrame.fromDf df (top / 2 + HalfStroke) 0].slice 1 2
if SLAB : include sf2.rt.full
define [TweUpperShape df top doTopSerifs] : glyph-proc
define [TweUpperShape df top doTopSerifs doBottomSerifs] : glyph-proc
include : TShape df top doTopSerifs false
eject-contour 'strokeV'
@ -116,12 +119,37 @@ glyph-block Letter-Latin-Upper-T : begin
eject-contour 'strokeLT'
include : LeftHook (df.leftSB + LeftHook.extension) CAP df.middle
create-glyph "TRTail.\(suffix)" : glyph-proc
local df : DivFrame adws
include [refer-glyph "T.\(suffix)"] AS_BASE ALSO_METRICS
include : df.markSet.capital
include : RetroflexHook.mExt df.middle 0
create-glyph "smcpT.\(suffix)" : glyph-proc
local df : include : DivFrame adws
include : df.markSet.e
set-base-anchor 'bottomRight' (df.middle + [HSwToV HalfStroke]) 0
include : TShape df XH doST doSB
create-glyph "cyrl/teDescender.upright.\(suffix)" : glyph-proc
local df : include : DivFrame adws
include : df.markSet.e
include : TShape df XH doST doSB
include : CyrDescender.rSideJut
x -- (df.middle + [HSwToV HalfStroke])
y -- 0
jut -- [if doSB MidJutCenter Jut]
create-glyph "cyrl/TjeKomi.\(suffix)" : glyph-proc
local df : include : DivFrame adws 3
include : df.markSet.capital
include : TjeShape df CAP doST
create-glyph "cyrl/tjeKomi.upright.\(suffix)" : glyph-proc
local df : include : DivFrame adws 3
include : df.markSet.e
include : TjeShape df XH doST
create-glyph "cyrl/Twe/upper.\(suffix)" : glyph-proc
local df : include : DivFrame adws
include : df.markSet.capital
@ -141,31 +169,6 @@ glyph-block Letter-Latin-Upper-T : begin
include : HBar.t [TLeftX df] [TRightX df] CAP OverlayStroke
include : TShape df (CAP - OverlayStroke - gap) doST doSB
create-glyph "cyrl/teDescender.upright.\(suffix)" : glyph-proc
local df : include : DivFrame adws
include : df.markSet.e
include : TShape df XH doST doSB
include : CyrDescender.rSideJut
x -- (df.middle + [HSwToV HalfStroke])
y -- 0
jut -- [if doSB MidJutCenter Jut]
create-glyph "TRTail.\(suffix)" : glyph-proc
local df : DivFrame adws
include [refer-glyph "T.\(suffix)"] AS_BASE ALSO_METRICS
include : df.markSet.capital
include : RetroflexHook.mExt df.middle 0
create-glyph "cyrl/TjeKomi.\(suffix)" : glyph-proc
local df : include : DivFrame adws 3
include : df.markSet.capital
include : TjeShape df CAP doST
create-glyph "cyrl/tjeKomi.upright.\(suffix)" : glyph-proc
local df : include : DivFrame adws 3
include : df.markSet.e
include : TjeShape df XH doST
create-glyph "cyrl/teTall.\(suffix)" : glyph-proc
local df : include : DivFrame 1
include : df.markSet.b
@ -191,6 +194,7 @@ glyph-block Letter-Latin-Upper-T : begin
select-variant 'cyrl/TjeKomi' 0x50E (follow -- 'T/rtailBase')
select-variant 'cyrl/tjeKomi.upright' null (follow -- 'T/rtailBase')
select-variant 'cyrl/Twe/upper' (follow -- 'T/rtailBase')
select-variant 'cyrl/twe/upper' (follow -- 'T/rtailBase')
derive-composites 'cyrl/Twe' 0xA68C 'cyrl/Twe/upper' 'cyrl/Twe/middle'
@ -206,6 +210,7 @@ glyph-block Letter-Latin-Upper-T : begin
create-glyph 'capitalSmcpI' 0xA7AE : glyph-proc
local df : include : DivFrame : if SLAB para.advanceScaleT 1
include : df.markSet.capital
local l : TLeftX df
local r : TRightX df
@ -219,6 +224,30 @@ glyph-block Letter-Latin-Upper-T : begin
include : tagged 'serifRB' : VSerif.ur r 0 VJut
include : tagged 'serifLB' : VSerif.ul l 0 VJut
define [SampiShape df top bottom doTopSerifs doBottomSerifs] : glyph-proc
define kSampiDepth 0.45
local l : TLeftX df
local r : TRightX df
include : VBar.m df.middle top bottom
include : HBar.t l r top
include : VBar.l l top [mix (top - Stroke) bottom kSampiDepth] VJutStroke
include : VBar.r r top [mix (top - Stroke) bottom kSampiDepth] VJutStroke
if doBottomSerifs : include : HSerif.mb df.middle bottom MidJutSide
create-glyph 'grek/SampiArchaic' 0x372 : glyph-proc
local df : include : DivFrame para.advanceScaleT
include : df.markSet.capital
include : SampiShape df CAP 0 true SLAB
create-glyph 'grek/sampiArchaic' 0x373 : glyph-proc
local df : include : DivFrame para.advanceScaleT
include : df.markSet.p
include : SampiShape df XH Descender true false
create-glyph 'mathbb/T' 0x1D54B : glyph-proc
local df : include : DivFrame 1
include : df.markSet.capital