diff --git a/changes/33.2.0.md b/changes/33.2.0.md index fadac53dc..ed4bebbc8 100644 --- a/changes/33.2.0.md +++ b/changes/33.2.0.md @@ -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`. diff --git a/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl b/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl index a55557bdb..96b002363 100644 --- a/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl +++ b/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl @@ -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 diff --git a/packages/font-glyphs/src/letter/greek/phi.ptl b/packages/font-glyphs/src/letter/greek/phi.ptl index 95bb7de2e..7aea43324 100644 --- a/packages/font-glyphs/src/letter/greek/phi.ptl +++ b/packages/font-glyphs/src/letter/greek/phi.ptl @@ -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 diff --git a/packages/font-glyphs/src/letter/latin/upper-h.ptl b/packages/font-glyphs/src/letter/latin/upper-h.ptl index 5c4e15306..bee4f80f3 100644 --- a/packages/font-glyphs/src/letter/latin/upper-h.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-h.ptl @@ -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 diff --git a/packages/font-glyphs/src/letter/latin/upper-p.ptl b/packages/font-glyphs/src/letter/latin/upper-p.ptl index 8f748bfd8..a16fc11dd 100644 --- a/packages/font-glyphs/src/letter/latin/upper-p.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-p.ptl @@ -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 diff --git a/packages/font-glyphs/src/letter/latin/upper-r.ptl b/packages/font-glyphs/src/letter/latin/upper-r.ptl index 26e5a6096..0ea2771fb 100644 --- a/packages/font-glyphs/src/letter/latin/upper-r.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-r.ptl @@ -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 diff --git a/packages/font-glyphs/src/symbol/letter.ptl b/packages/font-glyphs/src/symbol/letter.ptl index 61170d65a..cc927f606 100644 --- a/packages/font-glyphs/src/symbol/letter.ptl +++ b/packages/font-glyphs/src/symbol/letter.ptl @@ -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 diff --git a/params/variants.toml b/params/variants.toml index 80641c221..e5348f21b 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -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"