Merge pull request #2719 from jmcwilliams403/composites-cleanup-cont

Cleanup/Continuation of #2709 .
This commit is contained in:
Belleve 2025-03-22 03:30:11 -10:00 committed by GitHub
commit 532639a68b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 164 additions and 45 deletions

View file

@ -1,7 +1,13 @@
* Add `flat-top` variants for `curly`, `straight-vertical-sides`, and `rounded-vertical-sides` forms of `W` and `w` (#2146).
* Add `almost-flat-top` variants for `curly` forms of `W` and `w`.
* Refine shape of the following characters:
- GREEK CAPITAL LETTER HETA (`U+0370`).
- GREEK SMALL LETTER HETA (`U+0371`).
- ARMENIAN SMALL LIGATURE ECH YIWN (`U+0587`).
- LATIN CAPITAL LETTER HALF H (`U+2C75`).
- LATIN SMALL LETTER HALF H (`U+2C76`).
- LATIN CAPITAL LETTER AU (`U+A736`).
- LATIN CAPITAL LETTER REVERSED HALF H (`U+A7F5`).
- LATIN SMALL LETTER REVERSED HALF H (`U+A7F6`).
- LATIN SMALL LIGATURE FFI (`U+FB03`).
* Fix variant application of `cv38` on `U+1DF0F`.

View file

@ -423,11 +423,10 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
do "Ew"
create-glyph 'armn/ew' 0x587 : glyph-proc
local adws : Math.max para.advanceScaleM
local df : include : DivFrame : Math.max para.advanceScaleM
[mix 1 para.advanceScaleF 0.5] * para.advanceScaleMM
local df : include : DivFrame adws
include : df.markSet.b
local subDf : DivFrame [Math.min 1 : (8/11) * adws] 2
local subDf : DivFrame (0.75 * para.advanceScaleM) 2
include : uBowl.shape
top -- Ascender
bottom -- 0

View file

@ -14,11 +14,10 @@ glyph-block Letter-Greek-Phi : begin
define [VarPhiRing fFlatTB df y2 y3 ada adb] : glyph-proc
include : VBar.m df.middle y2 y3 df.mvs
include : if fFlatTB
OShapeFlatTB y3 y2 df.leftSB df.rightSB df.mvs ada adb
Math.max
(df.rightSB - df.leftSB) - (y3 - y2)
(df.rightSB - df.leftSB) * 0.25
HSwToV df.mvs
OShapeFlatTB y3 y2 df.leftSB df.rightSB df.mvs ada adb : Math.max
(df.rightSB - df.leftSB) - (y3 - y2)
(df.rightSB - df.leftSB) * 0.25
HSwToV df.mvs
OShape y3 y2 df.leftSB df.rightSB df.mvs ada adb
define [CyrlEfSplitRing fFlatTB df y2 y3 ada adb] : glyph-proc

View file

@ -38,7 +38,7 @@ glyph-block Letter-Latin-Upper-H : begin
[Just SLAB-ALL-BGR] : composite-proc sf.lt.outer sf.rt.inner sf.lb.full sf.rb.full
[Just SLAB-TAILED-CYRILLIC-BGR] : composite-proc sf.lt.outer sf.rt.inner sf.lb.full
define [LeftHalfSerifs slabType t b l r sw] : begin
define [LeftHalfHSerifs slabType t b l r sw] : begin
local sf : SerifFrame t b l r (swRef -- [fallback sw Stroke])
return : match slabType
[Just SLAB-NONE] : glyph-proc
@ -49,7 +49,7 @@ glyph-block Letter-Latin-Upper-H : begin
[Just SLAB-ALL-BGR] : composite-proc sf.lt.outer sf.lb.fullSide
[Just SLAB-TAILED-CYRILLIC-BGR] : composite-proc sf.lt.outer sf.lb.fullSide
define [RightHalfSerifs slabType t b l r sw] : begin
define [RightHalfHSerifs slabType t b l r sw] : begin
local sf : SerifFrame t b l r (swRef -- [fallback sw Stroke])
return : match slabType
[Just SLAB-NONE] : glyph-proc
@ -60,7 +60,7 @@ glyph-block Letter-Latin-Upper-H : begin
[Just SLAB-ALL-BGR] : composite-proc sf.rt.inner sf.rb.fullSide
[Just SLAB-TAILED-CYRILLIC-BGR] : begin sf.rt.inner
define [TurnedSerifs slabType t b l r sw] : begin
define [TurnedHSerifs slabType t b l r sw] : begin
local sf : SerifFrame t b l r (swRef -- [fallback sw Stroke])
return : match slabType
[Just SLAB-NONE] : glyph-proc
@ -89,14 +89,14 @@ glyph-block Letter-Latin-Upper-H : begin
include : LeaningAnchor.Above.VBar.l l
include : LeaningAnchor.Below.VBar.l l
include : tagged 'strokeL' : VBar.l l 0 top sw
include : HBar.m (l - O) (r + O) (top * HBarPos) sw
include : HBar.m (l - O) r (top * HBarPos) sw
define [RightHalfHShape l r top _sw] : glyph-proc
local sw : fallback _sw Stroke
include : LeaningAnchor.Above.VBar.r r
include : LeaningAnchor.Below.VBar.r r
include : tagged 'strokeR' : VBar.r r 0 top sw
include : HBar.m (l - O) (r + O) (top * HBarPos) sw
include : HBar.m l (r + O) (top * HBarPos) sw
define [TailedHShape l r top _sw] : glyph-proc
local sw : fallback _sw Stroke
@ -159,21 +159,19 @@ glyph-block Letter-Latin-Upper-H : begin
topRightSerifed true
foreach { suffix { Body TurnedBody LeftHalfBody RightHalfBody slabType } } [Object.entries HConfig] : do
define fSlab : slabType !== SLAB-NONE
create-glyph "H.\(suffix)" : glyph-proc
include : MarkSet.capital
include : Body SB RightSB CAP
include : Body SB RightSB CAP
include : HSerifs slabType CAP 0 SB RightSB
create-glyph "grek/Eta.\(suffix)" : glyph-proc
include [refer-glyph "H.\(suffix)"] AS_BASE ALSO_METRICS
include : SetGrekUpperTonos [if fSlab (-SideJut) 0]
include : SetGrekUpperTonos [if (slabType === SLAB-NONE) 0 (-SideJut)]
create-glyph "HTurned.\(suffix)" : glyph-proc
include : MarkSet.capital
include : TurnedBody SB RightSB CAP
include : TurnedSerifs slabType CAP 0 SB RightSB
include : TurnedBody SB RightSB CAP
include : TurnedHSerifs slabType CAP 0 SB RightSB
create-glyph "smcpH.\(suffix)" : glyph-proc
include : MarkSet.e
@ -183,42 +181,42 @@ glyph-block Letter-Latin-Upper-H : begin
create-glyph "leftHalfH.\(suffix)" : glyph-proc
include : MarkSet.capital
local xMockLeft : SB * 1.5
local xMockRight : RightSB - [xMidBarShrink fSlab]
local shift : Math.abs : Middle - [mix (xMockLeft - [if fSlab SideJut 0]) xMockRight 0.5]
local xMockRight : RightSB - [xMidBarShrink (slabType === SLAB-ALL)]
local shift : Math.abs : Middle - [mix (xMockLeft - [if (slabType === SLAB-NONE) 0 SideJut]) xMockRight 0.5]
local xLeft : xMockLeft + shift
local xRight : xMockRight + shift
include : LeftHalfBody xLeft xRight CAP
include : LeftHalfSerifs slabType CAP 0 xLeft xRight
include : LeftHalfHSerifs slabType CAP 0 xLeft xRight
create-glyph "rightHalfH.\(suffix)" : glyph-proc
include : MarkSet.capital
local xMockLeft : SB + [xMidBarShrink fSlab]
local xMockLeft : SB + [xMidBarShrink (slabType === SLAB-ALL)]
local xMockRight : Width - SB * 1.5
local shift : Math.abs : Middle - [mix xMockLeft (xMockRight + [if fSlab SideJut 0]) 0.5]
local shift : Math.abs : Middle - [mix xMockLeft (xMockRight + [if (slabType === SLAB-NONE) 0 SideJut]) 0.5]
local xLeft : xMockLeft - shift
local xRight : xMockRight - shift
include : RightHalfBody xLeft xRight CAP
include : RightHalfSerifs slabType CAP 0 xLeft xRight
include : RightHalfHSerifs slabType CAP 0 xLeft xRight
create-glyph "leftHalfSmcpH.\(suffix)" : glyph-proc
include : MarkSet.e
local xMockLeft : SB * 1.5
local xMockRight : RightSB - [xMidBarShrink fSlab]
local shift : Math.abs : Middle - [mix (xMockLeft - [if fSlab SideJut 0]) xMockRight 0.5]
local xMockRight : RightSB - [xMidBarShrink (slabType === SLAB-ALL)]
local shift : Math.abs : Middle - [mix (xMockLeft - [if (slabType === SLAB-NONE) 0 SideJut]) xMockRight 0.5]
local xLeft : xMockLeft + shift
local xRight : xMockRight + shift
include : LeftHalfBody xLeft xRight XH
include : LeftHalfSerifs slabType XH 0 xLeft xRight
include : LeftHalfHSerifs slabType XH 0 xLeft xRight
create-glyph "rightHalfSmcpH.\(suffix)" : glyph-proc
include : MarkSet.e
local xMockLeft : SB + [xMidBarShrink fSlab]
local xMockLeft : SB + [xMidBarShrink (slabType === SLAB-ALL)]
local xMockRight : Width - SB * 1.5
local shift : Math.abs : Middle - [mix xMockLeft (xMockRight + [if fSlab SideJut 0]) 0.5]
local shift : Math.abs : Middle - [mix xMockLeft (xMockRight + [if (slabType === SLAB-NONE) 0 SideJut]) 0.5]
local xLeft : xMockLeft - shift
local xRight : xMockRight - shift
include : RightHalfBody xLeft xRight XH
include : RightHalfSerifs slabType XH 0 xLeft xRight
include : RightHalfHSerifs slabType XH 0 xLeft xRight
define enGheDf : DivFrame para.advanceScaleM 3

View file

@ -116,7 +116,9 @@ glyph-block Letter-Latin-Upper-P : begin
set PShape.SlabMotion : function [top df sw mul] : glyph-proc
include : tagged 'serifLT' : HSerif.lt (df.leftSB * mul) top SideJut sw
set PShape.SlabFullSymmetric : function [top df sw mul] : glyph-proc
include : tagged 'serifLT' : HSerif.mt (df.leftSB * mul + [HSwToV : 0.5 * sw]) top Jut sw
include : tagged 'serifLT' : union
HSerif.lt (df.leftSB * mul) top SideJut sw
HSerif.rt (df.leftSB * mul + [HSwToV : 0.5 * sw]) top MidJutSide sw
include : tagged 'serifLB' : HSerif.mb (df.leftSB * mul + [HSwToV : 0.5 * sw]) 0 Jut sw
set PShape.SlabSymmetric : function [top df sw mul] : glyph-proc
include : PShape.SlabMotion top df sw mul

View file

@ -150,7 +150,7 @@ glyph-block Letter-Latin-Upper-R : begin
if open [RevPShape.OpenGap (df -- df) (mul -- mul) (bp -- bp) (top -- top) (bot -- [if fSlabBot sw 0])] [glyph-proc]
include : difference
RevRLegShapes.(legShape) [RLegTop top sw bp] 0 left df.middle top legSlab sw 0
if open [RevPShape.OpenGap (df -- df) (mul -- mul) (bp -- bp) (top -- top) (bot -- 0) ] [glyph-proc]
if open [RevPShape.OpenGap (df -- df) (mul -- mul) (bp -- bp) (top -- top) (bot -- 0)] [glyph-proc]
if tailedShape : begin
eject-contour 'strokeR'
eject-contour 'serifRB'
@ -245,7 +245,7 @@ glyph-block Letter-Latin-Upper-R : begin
define bp : RBarPos CAP 0
include : intersection
Rect CAP 0 SB Width
with-transform [Translate (-Width / 8) 0]
with-transform [Translate ((-Width) / 8) 0]
PShape CAP (bp -- bp) (withBar -- false)
local right : RightSB - O - [if legShape 0 (Width / 16)]
include : RLegShapes.(legShape) [RLegTop CAP Stroke bp] 0 (Width * 0.375) right CAP doLegSlab Stroke 0

View file

@ -83,7 +83,7 @@ glyph-block Symbol-Currency : begin
select-variant 'currency/turkishLiraSign' 0x20BA
create-glyph 'currency/sheqelSign' 0x20AA : glyph-proc
local df : include : DivFrame para.advanceScaleM 4
local df : include : DivFrame [mix 1 para.advanceScaleMM 0.5] 4
include : df.markSet.e
define pX 0.7
@ -203,11 +203,10 @@ glyph-block Symbol-Letter : begin
glyph-block-import Letter-Shared-Shapes : FlatHookDepth
alias 'eulerConst' 0x2107 'latn/Epsilon'
alias 'scruple' 0x2108 'cyrl/E'
alias 'scruple' 0x2108 'cyrl/E'
alias 'Ohm' 0x2126 'grek/Omega'
turned 'Mho' 0x2127 'Ohm' Middle (CAP / 2)
alias 'Mho' 0x2127 'latn/Upsilon'
alias 'letterLike/kelvinSign' 0x212A 'K'
@ -235,7 +234,7 @@ glyph-block Symbol-Letter : begin
# Center of inner round corner, as well as the limit X for the inner circle edge
local xLargeRc : sw + r2
local yLargeRc : cy - [Math.sqrt ((r1 - r2) * (r1 - r2) - (cx - sw - r2) * (cx - sw - r2))]
local yLargeRc : cy - [Math.sqrt : (r1 - r2) * (r1 - r2) - (cx - sw - r2) * (cx - sw - r2)]
local xInnerCircleLimit : cx - (cx - xLargeRc) * (r1 / (r1 - r2))
include : ForceUpright
@ -265,7 +264,7 @@ glyph-block Symbol-Letter : begin
Rect cy (cy - r3 - 1) (sw + r3) cx
# Bottom-right opening
Rect cy (cy - yGapSize) (cx - 1) (2 * cx)
Rect cy (cy - yGapSize) (cx - 1) (2 * cx)
include tfm

View file

@ -1847,7 +1847,7 @@ rank = 2
groupRank = 1
descriptionAffix = "straight body shape that the middle is almost aligned to the top"
selectorAffix.W = "straightAlmostFlatTop"
selectorAffix."W/sansSerif" = "straightAlmostFlatTop"
selectorAffix."W/sansSerif" = "straightFlatTop"
selectorAffix.WHookTop = "straightAlmostFlatTop"
[prime.capital-w.variants-buildup.stages.body.straight-flat-top]
@ -1922,7 +1922,7 @@ groupRank = 3
nonBreakingVariantAdditionPriority = 100
descriptionAffix = "curly body with a middle stem almost aligned to the top"
selectorAffix.W = "curlyAlmostFlatTop"
selectorAffix."W/sansSerif" = "curlyAlmostFlatTop"
selectorAffix."W/sansSerif" = "curlyFlatTop"
selectorAffix.WHookTop = "curlyAlmostFlatTop"
[prime.capital-w.variants-buildup.stages.body.curly-flat-top]
@ -4856,7 +4856,7 @@ rank = 2
groupRank = 1
descriptionAffix = "straight body shape that the middle is almost aligned to the top"
selectorAffix.w = "straightAlmostFlatTop"
selectorAffix."w/sansSerif" = "straightAlmostFlatTop"
selectorAffix."w/sansSerif" = "straightFlatTop"
selectorAffix.wHookTop = "straightAlmostFlatTop"
[prime.w.variants-buildup.stages.body.straight-flat-top]
@ -4931,7 +4931,7 @@ groupRank = 3
nonBreakingVariantAdditionPriority = 100
descriptionAffix = "curly body with a middle stem almost aligned to the top"
selectorAffix.w = "curlyAlmostFlatTop"
selectorAffix."w/sansSerif" = "curlyAlmostFlatTop"
selectorAffix."w/sansSerif" = "curlyFlatTop"
selectorAffix.wHookTop = "curlyAlmostFlatTop"
[prime.w.variants-buildup.stages.body.curly-flat-top]
@ -9454,6 +9454,9 @@ capital-d = "more-rounded-serifless"
capital-g = "toothless-corner-serifless-hooked"
capital-i = "short-serifed"
capital-j = "serifless"
capital-m = "hanging-serifless"
capital-v = "straight-serifless"
capital-w = "straight-serifless"
a = "double-storey-serifless"
d = "toothed-serifless"
e = "flat-crossbar"
@ -9465,6 +9468,8 @@ k = "straight-serifless"
l = "zshaped"
t = "bent-hook-short-neck"
u = "toothed-serifless"
v = "straight-serifless"
w = "straight-serifless"
y = "straight-turn-serifless"
long-s = "flat-hook-middle-serifed-xh"
eszet = "longs-s-lig-serifless"
@ -9509,8 +9514,11 @@ micro-sign = "toothed-serifless"
[composite.ss01.slab-override.design]
capital-d = "more-rounded-bilateral-serifed"
capital-j = "serifed-symmetric"
capital-g = "toothless-corner-serifed-hooked"
capital-j = "serifed-symmetric"
capital-m = "hanging-serifed"
capital-v = "straight-serifed"
capital-w = "straight-serifed"
a = "double-storey-serifed"
b = "toothed-serifed"
c = "unilateral-serifed"
@ -9563,6 +9571,8 @@ capital-j = "serifless"
capital-m = "hanging-serifless"
capital-s = "bilateral-serifed"
capital-t = "serifed"
capital-v = "straight-serifless"
capital-w = "straight-serifless"
capital-x = "straight-serifed"
capital-y = "straight-serifed"
capital-z = "straight-serifed"
@ -9577,6 +9587,7 @@ k = "straight-serifless"
l = "serifed"
r = "serifed"
u = "toothed-serifless"
v = "straight-serifless"
w = "straight-flat-top-serifless"
x = "straight-serifed"
y = "straight-turn-serifless"
@ -9626,6 +9637,8 @@ micro-sign = "toothed-serifless"
[composite.ss02.slab-override.design]
capital-j = "serifed-symmetric"
capital-m = "hanging-serifed"
capital-v = "straight-serifed"
capital-w = "straight-serifed"
a = "double-storey-serifed"
b = "toothed-serifed"
d = "toothed-serifed"
@ -9668,6 +9681,8 @@ capital-i = "serifed"
capital-j = "serifed"
capital-k = "symmetric-touching-serifless"
capital-m = "slanted-sides-hanging-serifless"
capital-v = "straight-serifless"
capital-w = "straight-serifless"
a = "double-storey-serifless"
b = "toothless-corner-serifless"
d = "toothed-serifless"
@ -9680,6 +9695,8 @@ l = "serifed"
q = "top-cut-straight-serifless"
t = "bent-hook-short-neck"
u = "toothed-serifless"
v = "straight-serifless"
w = "straight-serifless"
y = "straight-turn-serifless"
capital-eszet = "rounded-serifless"
long-s = "flat-hook-serifless"
@ -9745,6 +9762,8 @@ capital-d = "more-rounded-bilateral-serifed"
capital-g = "toothless-corner-serifed-hooked"
capital-k = "symmetric-touching-serifed"
capital-m = "slanted-sides-hanging-serifed"
capital-v = "straight-serifed"
capital-w = "straight-serifed"
a = "double-storey-serifed"
b = "toothless-corner-serifed"
d = "toothed-serifed"
@ -9752,6 +9771,8 @@ f = "flat-hook-serifed"
k = "symmetric-touching-serifed"
q = "top-cut-straight-serifed"
u = "toothed-serifed"
v = "straight-serifed"
w = "straight-serifed"
x = "straight-serifed"
y = "straight-turn-serifed"
z = "straight-serifed"
@ -9778,6 +9799,8 @@ f = "flat-hook-tailed"
k = "cursive-top-left-and-bottom-right-serifed"
l = "tailed-serifed"
u = "toothed-motion-serifed"
v = "straight-motion-serifed"
w = "straight-motion-serifed"
x = "straight-bilateral-motion-serifed"
y = "straight-turn-motion-serifed"
long-s = "flat-hook-descending"
@ -9803,6 +9826,8 @@ capital-i = "serifed"
capital-j = "serifed"
capital-m = "hanging-serifless"
capital-q = "straight"
capital-v = "straight-serifless"
capital-w = "straight-serifless"
a = "double-storey-serifless"
e = "flat-crossbar"
d = "toothed-serifless"
@ -9813,6 +9838,8 @@ k = "straight-serifless"
l = "serifed-flat-tailed"
t = "flat-hook-short-neck"
u = "toothed-serifless"
v = "straight-serifless"
w = "straight-serifless"
y = "straight-turn-serifless"
capital-eszet = "rounded-serifless"
long-s = "flat-hook-middle-serifed-xh"
@ -9864,6 +9891,8 @@ micro-sign = "tailed-serifless"
capital-d = "more-rounded-bilateral-serifed"
capital-g = "toothless-corner-serifed-hooked"
capital-m = "hanging-serifed"
capital-v = "straight-serifed"
capital-w = "straight-serifed"
a = "double-storey-serifed"
b = "toothed-serifed"
c = "unilateral-serifed"
@ -9917,6 +9946,8 @@ capital-i = "serifed"
capital-j = "serifed"
capital-k = "symmetric-touching-serifless"
capital-m = "slanted-sides-hanging-serifless"
capital-v = "straight-serifless"
capital-w = "straight-serifless"
a = "double-storey-tailed"
d = "toothed-serifless"
e = "flat-crossbar"
@ -9929,6 +9960,8 @@ l = "serifed-semi-tailed"
r = "corner-hooked-serifed"
t = "bent-hook-short-neck"
u = "toothed-serifless"
v = "straight-serifless"
w = "straight-serifless"
y = "straight-turn-serifless"
capital-eszet = "rounded-serifless"
long-s = "bent-hook-serifless"
@ -9976,6 +10009,8 @@ capital-d = "more-rounded-bilateral-serifed"
capital-g = "toothless-corner-serifed-hooked"
capital-k = "symmetric-touching-serifed"
capital-m = "slanted-sides-hanging-serifed"
capital-v = "straight-serifed"
capital-w = "straight-serifed"
b = "toothed-serifed"
c = "unilateral-serifed"
d = "toothed-serifed"
@ -10022,6 +10057,9 @@ capital-d = "more-rounded-serifless"
capital-g = "toothless-corner-serifless-hooked"
capital-i = "serifed"
capital-j = "serifed"
capital-m = "hanging-serifless"
capital-v = "straight-serifless"
capital-w = "straight-serifless"
a = "double-storey-tailed"
d = "toothed-serifless"
e = "flat-crossbar"
@ -10033,6 +10071,8 @@ l = "serifed-flat-tailed"
r = "hookless-serifless"
t = "bent-hook-short-neck"
u = "toothed-serifless"
v = "straight-serifless"
w = "straight-serifless"
y = "straight-turn-serifless"
capital-eszet = "rounded-serifless"
long-s = "flat-hook-serifless"
@ -10074,6 +10114,9 @@ micro-sign = "toothed-serifless"
[composite.ss06.slab-override.design]
capital-d = "more-rounded-bilateral-serifed"
capital-g = "toothless-corner-serifed-hooked"
capital-m = "hanging-serifed"
capital-v = "straight-serifed"
capital-w = "straight-serifed"
b = "toothed-serifed"
c = "unilateral-serifed"
d = "toothed-serifed"
@ -10122,6 +10165,8 @@ capital-g = "toothless-corner-serifless-hooked"
capital-i = "serifed"
capital-j = "serifed"
capital-k = "symmetric-touching-serifless"
capital-m = "hanging-serifless"
capital-v = "straight-serifless"
capital-w = "straight-flat-top-serifless"
a = "single-storey-earless-corner-serifless"
b = "toothless-corner-serifless"
@ -10137,6 +10182,7 @@ q = "earless-corner-straight-serifless"
r = "corner-hooked-serifless"
t = "bent-hook-short-neck"
u = "toothed-serifless"
v = "straight-serifless"
w = "straight-flat-top-serifless"
y = "straight-turn-serifless"
long-s = "bent-hook-middle-serifed"
@ -10174,6 +10220,8 @@ micro-sign = "toothed-serifless"
capital-d = "more-rounded-bilateral-serifed"
capital-g = "toothless-corner-serifed-hooked"
capital-k = "symmetric-touching-serifed"
capital-m = "hanging-serifed"
capital-v = "straight-serifed"
capital-w = "straight-flat-top-serifed"
a = "single-storey-earless-corner-serifed"
b = "toothless-corner-serifed"
@ -10363,6 +10411,9 @@ capital-d = "more-rounded-serifless"
capital-g = "toothless-corner-serifless-hooked"
capital-i = "serifed"
capital-j = "serifed"
capital-m = "hanging-serifless"
capital-v = "straight-serifless"
capital-w = "straight-serifless"
a = "double-storey-serifless"
d = "toothed-serifless"
e = "flat-crossbar"
@ -10375,6 +10426,7 @@ l = "serifed-semi-tailed"
r = "hookless-serifless"
t = "bent-hook-short-neck"
u = "toothed-serifless"
v = "straight-serifless"
w = "straight-flat-top-serifless"
y = "straight-turn-serifless"
capital-eszet = "rounded-serifless"
@ -10419,6 +10471,9 @@ l = "tailed-serifed"
[composite.ss09.slab-override.design]
capital-d = "more-rounded-bilateral-serifed"
capital-g = "toothless-corner-serifed-hooked"
capital-m = "hanging-serifed"
capital-v = "straight-serifed"
capital-w = "straight-serifed"
a = "double-storey-serifed"
d = "toothed-serifed"
f = "serifed"
@ -10426,6 +10481,7 @@ i = "serifed"
k = "straight-serifed"
r = "hookless-serifed"
u = "toothed-serifed"
v = "straight-serifed"
w = "straight-flat-top-serifed"
x = "straight-serifed"
y = "straight-turn-serifed"
@ -10452,6 +10508,7 @@ i = "tailed-serifed"
k = "straight-top-left-and-bottom-right-serifed"
r = "hookless-top-serifed"
u = "toothed-motion-serifed"
v = "straight-motion-serifed"
w = "straight-flat-top-motion-serifed"
x = "straight-bilateral-motion-serifed"
y = "straight-turn-motion-serifed"
@ -10472,7 +10529,9 @@ capital-a = "round-top-serifless"
capital-i = "serifed"
capital-j = "serifless"
capital-k = "symmetric-touching-serifless"
capital-m = "hanging-serifless"
capital-q = "crossing"
capital-v = "straight-serifless"
capital-w = "straight-vertical-sides-serifless"
a = "double-storey-toothless-corner"
b = "toothed-serifless"
@ -10484,6 +10543,7 @@ k = "symmetric-connected-serifless"
l = "hooky"
q = "straight-serifless"
t = "flat-hook"
v = "straight-serifless"
w = "rounded-vertical-sides-serifless"
y = "cursive-flat-hook-serifless"
long-s = "flat-hook-middle-serifed"
@ -10528,6 +10588,8 @@ cyrl-u = "cursive-flat-hook-serifless"
capital-a = "round-top-base-serifed"
capital-j = "serifed"
capital-k = "symmetric-touching-serifed"
capital-m = "hanging-serifed"
capital-v = "straight-serifed"
capital-w = "straight-vertical-sides-serifed"
b = "toothed-serifed"
f = "flat-hook-serifed"
@ -10536,6 +10598,7 @@ i = "serifed"
k = "symmetric-connected-serifed"
l = "serifed"
q = "straight-serifed"
v = "straight-serifed"
w = "rounded-vertical-sides-serifed"
x = "straight-serifed"
y = "cursive-flat-hook-serifed"
@ -10558,6 +10621,7 @@ i = "serifed-flat-tailed"
k = "symmetric-connected-top-left-and-bottom-right-serifed"
l = "serifed-flat-tailed"
q = "top-cut-straight-serifed"
v = "straight-motion-serifed"
w = "rounded-vertical-sides-motion-serifed"
x = "straight-bilateral-motion-serifed"
y = "cursive-flat-hook-motion-serifed"
@ -10617,6 +10681,8 @@ capital-i = "serifed"
capital-j = "serifed"
capital-k = "symmetric-touching-serifless"
capital-m = "slanted-sides-hanging-serifless"
capital-v = "straight-serifless"
capital-w = "straight-serifless"
a = "double-storey-toothless-corner"
b = "toothless-corner-serifless"
d = "toothless-corner-serifless"
@ -10633,6 +10699,8 @@ q = "earless-corner-straight-serifless"
r = "earless-corner-serifless"
t = "bent-hook-short-neck"
u = "toothless-corner-serifless"
v = "straight-serifless"
w = "straight-serifless"
y = "straight-turn-serifless"
capital-eszet = "rounded-serifless"
long-s = "bent-hook-serifless"
@ -10699,6 +10767,8 @@ capital-d = "more-rounded-bilateral-serifed"
capital-g = "toothless-corner-serifed-hookless"
capital-k = "symmetric-touching-serifed"
capital-m = "slanted-sides-hanging-serifed"
capital-v = "straight-serifed"
capital-w = "straight-serifed"
b = "toothless-corner-serifed"
d = "toothless-corner-serifed"
f = "serifed"
@ -10709,6 +10779,8 @@ p = "earless-corner-serifed"
q = "earless-corner-straight-serifed"
r = "earless-corner-serifed"
u = "toothless-corner-serifed"
v = "straight-serifed"
w = "straight-serifed"
x = "straight-serifed"
y = "straight-turn-serifed"
z = "straight-serifed"
@ -10739,6 +10811,8 @@ m = "earless-corner-double-arch-short-leg-bottom-right-serifed"
n = "earless-corner-straight-motion-serifed"
r = "earless-corner-serifless"
u = "tailed-motion-serifed"
v = "straight-motion-serifed"
w = "straight-motion-serifed"
x = "straight-bilateral-motion-serifed"
y = "straight-turn-motion-serifed"
long-s = "bent-hook-tailed"
@ -10761,6 +10835,9 @@ capital-g = "toothless-corner-serifless-hooked"
capital-i = "serifed"
capital-j = "serifed"
capital-k = "symmetric-touching-serifless"
capital-m = "hanging-serifless"
capital-v = "straight-serifless"
capital-w = "straight-serifless"
a = "double-storey-tailed"
d = "toothed-serifless"
e = "flat-crossbar"
@ -10772,6 +10849,8 @@ l = "hooky"
r = "corner-hooked-serifless"
t = "bent-hook-short-neck2"
u = "toothed-serifless"
v = "straight-serifless"
w = "straight-serifless"
y = "straight-turn-serifless"
long-s = "bent-hook-middle-serifed"
eszet = "longs-s-lig-serifless"
@ -10813,6 +10892,9 @@ micro-sign = "toothed-serifless"
capital-d = "more-rounded-bilateral-serifed"
capital-g = "toothless-corner-serifed-hooked"
capital-k = "symmetric-touching-serifed"
capital-m = "hanging-serifed"
capital-v = "straight-serifed"
capital-w = "straight-serifed"
b = "toothed-serifed"
c = "unilateral-serifed"
d = "toothed-serifed"
@ -10862,6 +10944,7 @@ capital-j = "serifless"
capital-k = "symmetric-connected-serifless"
capital-m = "hanging-serifless"
capital-q = "straight"
capital-v = "straight-serifless"
capital-w = "straight-flat-top-serifless"
a = "double-storey-serifless"
d = "toothed-serifless"
@ -10873,6 +10956,7 @@ k = "symmetric-connected-serifless"
l = "serifed-flat-tailed"
t = "flat-hook-short-neck"
u = "toothless-rounded-serifless"
v = "straight-serifless"
w = "straight-flat-top-serifless"
y = "straight-serifless"
long-s = "flat-hook-serifless"
@ -10936,6 +11020,7 @@ capital-g = "toothless-rounded-serifed-hooked"
capital-j = "serifed"
capital-k = "symmetric-connected-serifed"
capital-m = "hanging-serifed"
capital-v = "straight-serifed"
capital-w = "straight-flat-top-serifed"
a = "double-storey-serifed"
d = "toothed-serifed"
@ -10943,6 +11028,7 @@ f = "flat-hook-serifed"
g = "single-storey-flat-hook-serifed"
k = "symmetric-connected-serifed"
u = "toothless-rounded-serifed"
v = "straight-serifed"
w = "straight-flat-top-serifed"
x = "straight-serifed"
y = "straight-serifed"
@ -10972,6 +11058,7 @@ f = "flat-hook-tailed"
g = "single-storey-flat-hook-serifless"
k = "symmetric-connected-top-left-and-bottom-right-serifed"
u = "toothless-rounded-motion-serifed"
v = "straight-motion-serifed"
w = "straight-flat-top-motion-serifed"
x = "straight-bilateral-motion-serifed"
y = "cursive-flat-hook-motion-serifed"
@ -10996,6 +11083,8 @@ description = "IBM Plex Mono Style"
capital-i = "serifed"
capital-j = "serifed"
capital-m = "hanging-serifless"
capital-v = "straight-serifless"
capital-w = "straight-serifless"
a = "double-storey-tailed"
d = "toothed-serifless"
f = "flat-hook-serifed-crossbar-at-x-height"
@ -11007,6 +11096,7 @@ l = "serifed"
r = "hookless-serifed"
t = "flat-hook-short-neck"
u = "toothed-serifless"
v = "straight-serifless"
w = "straight-flat-top-serifless"
x = "straight-serifless"
y = "straight-turn-serifless"
@ -11081,9 +11171,12 @@ ampersand = "closed"
[composite.ss15.slab-override.design]
capital-m = "hanging-serifed"
capital-v = "straight-serifed"
capital-w = "straight-serifed"
d = "toothed-serifed"
k = "straight-serifed"
u = "toothed-serifed"
v = "straight-serifed"
w = "straight-flat-top-serifed"
x = "straight-serifed"
y = "straight-turn-serifed"
@ -11107,6 +11200,7 @@ micro-sign = "toothed-serifed"
[composite.ss15.slab-override.italic]
k = "diagonal-tailed-cursive-top-left-serifed"
u = "toothed-motion-serifed"
v = "cursive-serifed"
w = "cursive-serifed"
x = "cursive"
y = "cursive-motion-serifed"
@ -11133,6 +11227,8 @@ capital-l = "motion-serifed"
capital-m = "hanging-serifless"
capital-s = "bilateral-inward-serifed"
capital-t = "serifed"
capital-v = "straight-serifless"
capital-w = "straight-serifless"
a = "double-storey-serifed"
b = "toothless-corner-serifed"
c = "unilateral-inward-serifed"
@ -11151,6 +11247,8 @@ q = "earless-corner-straight-serifless"
r = "serifed"
t = "bent-hook-short-neck2"
u = "toothed-serifed"
v = "straight-serifless"
w = "straight-serifless"
y = "straight-turn-serifless"
capital-eszet = "rounded-serifless"
long-s = "bent-hook-middle-serifed"
@ -11202,6 +11300,8 @@ capital-d = "more-rounded-bilateral-serifed"
capital-k = "symmetric-connected-serifed"
capital-l = "serifed"
capital-m = "hanging-serifed"
capital-v = "straight-serifed"
capital-w = "straight-serifed"
a = "double-storey-hook-inward-serifed-serifed"
h = "straight-serifed"
k = "straight-serifed"
@ -11254,10 +11354,13 @@ capital-i = "serifed"
capital-j = "serifed"
capital-k = "straight-bottom-right-serifed"
capital-l = "motion-serifed"
capital-m = "hanging-serifless"
capital-p = "closed-motion-serifed"
capital-r = "straight-top-left-and-bottom-right-serifed"
capital-s = "unilateral-inward-serifed"
capital-u = "toothed-serifless"
capital-v = "straight-serifless"
capital-w = "straight-serifless"
capital-z = "straight-top-serifed"
a = "double-storey-tailed"
b = "toothed-serifless"
@ -11361,10 +11464,13 @@ capital-e = "serifed"
capital-f = "serifed"
capital-k = "straight-serifed"
capital-l = "serifed"
capital-m = "hanging-serifed"
capital-p = "closed-serifed"
capital-r = "straight-serifed"
capital-s = "bilateral-inward-serifed"
capital-u = "toothed-serifed"
capital-w = "straight-serifed"
capital-v = "straight-serifed"
capital-z = "straight-serifed"
a = "double-storey-hook-inward-serifed-tailed"
b = "toothed-serifed"
@ -11434,6 +11540,8 @@ capital-i = "serifed"
capital-j = "serifed"
capital-k = "symmetric-connected-serifless"
capital-m = "hanging-serifless"
capital-v = "straight-serifless"
capital-w = "straight-serifless"
a = "double-storey-tailed"
b = "toothless-corner-serifless"
d = "toothed-serifless"
@ -11445,6 +11553,8 @@ k = "symmetric-connected-serifless"
l = "serifed"
q = "earless-corner-straight-serifless"
u = "toothed-serifless"
v = "straight-serifless"
w = "straight-serifless"
y = "straight-turn-serifless"
long-s = "bent-hook-middle-serifed-xh"
eszet = "longs-s-lig-serifless"
@ -11492,12 +11602,16 @@ eszet = "longs-s-lig-descending-serifless"
capital-g = "toothless-rounded-serifed-hooked"
capital-k = "symmetric-connected-serifed"
capital-m = "hanging-serifed"
capital-v = "straight-serifed"
capital-w = "straight-serifed"
b = "toothless-corner-serifed"
d = "toothed-serifed"
f = "serifed-crossbar-at-x-height"
k = "symmetric-connected-serifed"
q = "earless-corner-straight-serifed"
u = "toothed-serifed"
v = "straight-serifed"
w = "straight-serifed"
x = "straight-serifed"
y = "straight-turn-serifed"
z = "straight-serifed"
@ -11522,6 +11636,8 @@ micro-sign = "tailed-serifed"
f = "extended-crossbar-at-x-height"
k = "symmetric-connected-top-left-and-bottom-right-serifed"
u = "toothed-motion-serifed"
v = "straight-motion-serifed"
w = "straight-motion-serifed"
x = "straight-bilateral-motion-serifed"
y = "straight-turn-motion-serifed"
long-s = "bent-hook-descending-middle-serifed-xh"