From d6a49822d3ae9006f6ee76b3c3b7dba2ab6959fd Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Mon, 20 May 2024 18:02:25 -0400 Subject: [PATCH] Add 4 chars from Cyrl Ext.B and 2 from Latn Ext.E (#2337) --- changes/30.1.0.md | 6 ++ .../font-glyphs/src/letter/cyrillic/che.ptl | 74 ++++++++++++++++--- .../font-glyphs/src/letter/latin/lower-h.ptl | 1 + .../font-glyphs/src/letter/latin/lower-m.ptl | 1 + packages/font-glyphs/src/letter/latin/u.ptl | 34 ++++++--- .../font-glyphs/src/letter/latin/upper-h.ptl | 4 +- .../font-glyphs/src/letter/latin/upper-n.ptl | 15 ++-- .../src/meta/unicode-knowledge.ptl | 11 +-- params/variants.toml | 16 +++- 9 files changed, 127 insertions(+), 35 deletions(-) diff --git a/changes/30.1.0.md b/changes/30.1.0.md index ee100feea..fafbc93a5 100644 --- a/changes/30.1.0.md +++ b/changes/30.1.0.md @@ -1,6 +1,12 @@ * Reduce fully-serifed variants of turned m (`U+019C`, `U+026F`, `U+0270`) and Cyrillic Italic Lower {Sha|Scha} (`U+0448`, `U+0449`) under monospace. * Add characters: - SQUAT BLACK RIGHTWARDS ARROW (`U+27A7`). + - CYRILLIC CAPITAL LETTER CCHE (`U+A686`). + - CYRILLIC SMALL LETTER CCHE (`U+A687`). + - CYRILLIC CAPITAL LETTER HWE (`U+A694`). + - CYRILLIC SMALL LETTER HWE (`U+A695`). + - LATIN SMALL LETTER U WITH SHORT RIGHT LEG (`U+AB4E`). + - LATIN SMALL LETTER U BAR WITH SHORT RIGHT LEG (`U+AB4F`). - LATIN SMALL LETTER DEZH DIGRAPH WITH PALATAL HOOK (`U+1DF12`). - LATIN SMALL LETTER TESH DIGRAPH WITH PALATAL HOOK (`U+1DF17`). - LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD (`U+1F800`) ... DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD (`U+1F80B`). diff --git a/packages/font-glyphs/src/letter/cyrillic/che.ptl b/packages/font-glyphs/src/letter/cyrillic/che.ptl index 7b266a777..024a7bba0 100644 --- a/packages/font-glyphs/src/letter/cyrillic/che.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/che.ptl @@ -10,7 +10,8 @@ glyph-block Letter-Cyrillic-Che : begin glyph-block-import Mark-Adjustment : LeaningAnchor glyph-block-import Letter-Shared : CreateTurnedLetter glyph-block-import Letter-Shared-Shapes : SerifFrame RightwardTailedBar DToothlessRise - glyph-block-import Letter-Shared-Shapes : CyrDescender BottomExtension + glyph-block-import Letter-Shared-Shapes : TopHook CyrDescender BottomExtension + glyph-block-import Letter-Latin-Lower-M : EarlessCornerDoubleArchSmallMShape glyph-block-export BODY define BODY : object @@ -31,7 +32,7 @@ glyph-block Letter-Cyrillic-Che : begin glyph-block-export CyrCheShape define [CyrCheShape] : with-params [df top pyBar bodyType slabType [sw df.mvs] [yBarOffset DToothlessRise]] : glyph-proc local bar : top * [fallback pyBar 0.5] + yBarOffset - include : match bodyType + include : tagged 'strokeR' : match bodyType [Just BODY.TAILED] : RightwardTailedBar df.rightSB 0 top (sw -- sw) __ : VBar.r df.rightSB 0 top sw include : dispiro @@ -63,19 +64,57 @@ glyph-block Letter-Cyrillic-Che : begin [Just SERIFS.BR] sf.rb.outer __ : glyph-proc + define [CyrCcheShape] : with-params [df top pyBar bodyType slabType [sw df.mvs] [yBarOffset DToothlessRise]] : glyph-proc + local bar : top * [fallback pyBar 0.5] + include : EarlessCornerDoubleArchSmallMShape df (top - bar + HalfStroke) 0 0 0 + eject-contour 'barL' + include : FlipAround df.middle (top / 2) + + include : match bodyType + [Just BODY.TAILED] : RightwardTailedBar df.rightSB 0 top (sw -- sw) + __ : VBar.r df.rightSB 0 top sw + + local sf : SerifFrame.fromDf df top 0 + include : tagged 'serifLT' : match slabType + [Just SERIFS.ALL] [if sf.enoughSpaceForFullSerifs sf.lt.full sf.lt.outer] + [Just SERIFS.TOP] [if sf.enoughSpaceForFullSerifs sf.lt.full sf.lt.outer] + [Just SERIFS.TL-BR] sf.lt.outer + [Just SERIFS.TL] sf.lt.outer + __ : glyph-proc + include : tagged 'serifMT' : match slabType + [Just SERIFS.ALL] [if sf.enoughSpaceForFullSerifs sf.mt.full [glyph-proc]] + [Just SERIFS.TOP] [if sf.enoughSpaceForFullSerifs sf.mt.full [glyph-proc]] + __ : glyph-proc + include : tagged 'SerifRT' : match slabType + [Just SERIFS.ALL] [if sf.enoughSpaceForFullSerifs sf.rt.full sf.rt.outer] + [Just SERIFS.TOP] [if sf.enoughSpaceForFullSerifs sf.rt.full sf.rt.outer] + __ : glyph-proc + include : tagged 'SerifRB' : match slabType + [Just SERIFS.ALL] sf.rb.fullSide + [Just SERIFS.TL-BR] sf.rb.outer + [Just SERIFS.BR] sf.rb.outer + __ : glyph-proc + create-glyph 'cyrl/Che' 0x427 : glyph-proc include : MarkSet.capital include : LeaningAnchor.Below.VBar.r RightSB include : CyrCheShape [DivFrame 1] CAP [if SLAB 0.45 0.35] BODY.STRAIGHT if SLAB SERIFS.ALL SERIFS.NONE - create-glyph 0x4B6 : composite-proc + create-glyph 'cyrl/CheDescender' 0x4B6 : composite-proc refer-glyph 'cyrl/Che' CyrDescender.rSideJut RightSB 0 - create-glyph 0x4CB : composite-proc + create-glyph 'cyrl/kjh/Che' 0x4CB : composite-proc refer-glyph 'cyrl/Che' CyrDescender.lSideJut (RightSB - [HSwToV Stroke]) 0 (jut -- MidJutSide) + create-glyph 'cyrl/Cche' 0xA686 : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.capital + include : LeaningAnchor.Below.VBar.r df.rightSB + include : CyrCcheShape df CAP [if SLAB 0.45 0.35] BODY.STRAIGHT + if SLAB SERIFS.ALL SERIFS.NONE + glyph-block-export ItalicConfig define ItalicConfig : object standard { BODY.STRAIGHT SERIFS.ALL SERIFS.ALL-BGR SERIFS.TL-BR } @@ -94,23 +133,32 @@ glyph-block Letter-Cyrillic-Che : begin include : CyrCheShape [DivFrame 1] XH [if SLAB 0.45 0.4] body if SLAB [if para.isItalic slabItalic slabUprightBGR] SERIFS.NONE + create-glyph "cyrl/cche.\(suffix)" : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.e + include : LeaningAnchor.Below.VBar.r df.rightSB + include : CyrCcheShape df XH [if SLAB 0.45 0.4] body + if SLAB [if para.isItalic slabItalic slabUpright] SERIFS.NONE + select-variant 'cyrl/che' 0x447 select-variant 'cyrl/che.BGR' (follow -- 'cyrl/che') - create-glyph 0x4B7 : composite-proc + create-glyph 'cyrl/cheDescender' 0x4B7 : composite-proc refer-glyph 'cyrl/che.standard' CyrDescender.rSideJut RightSB 0 - create-glyph 0x4CC : composite-proc + create-glyph 'cyrl/kjh/che' 0x4CC : composite-proc refer-glyph 'cyrl/che.standard' CyrDescender.lSideJut (RightSB - [HSwToV Stroke]) 0 (jut -- MidJutSide) - define [ChrVBar top pyBar] : begin + select-variant 'cyrl/cche' 0xA687 (follow -- 'cyrl/che') + + define [CheVBarBarShape top pyBar] : begin local SwCheVBar : Math.min OverlayStroke (0.625 * (RightSB - SB - [HSwToV : 2 * Stroke]) / HVContrast) local yc : top * [fallback pyBar 0.5] + Stroke * 0.1 return : VBar.m Middle (yc + LongJut * 0.8) (yc - LongJut * 0.8) SwCheVBar - derive-composites 'cyrl/CheVBar' 0x4B8 'cyrl/Che' [ChrVBar CAP [if SLAB 0.45 0.35]] - derive-composites 'cyrl/cheVBar' 0x4B9 'cyrl/che' [ChrVBar XH [if SLAB 0.45 0.4 ]] + derive-composites 'cyrl/CheVBar' 0x4B8 'cyrl/Che' [CheVBarBarShape CAP [if SLAB 0.45 0.35]] + derive-composites 'cyrl/cheVBar' 0x4B9 'cyrl/che' [CheVBarBarShape XH [if SLAB 0.45 0.4 ]] define ShhaConfig : object serifless SERIFS.NONE @@ -126,7 +174,15 @@ glyph-block Letter-Cyrillic-Che : begin yBarOffset -- [HSwToV : Math.pow Stroke 2] / (RightSB - SB) include : FlipAround Middle (CAP / 2) + create-glyph "cyrl/Hwe.\(suffix)" : glyph-proc + include [refer-glyph "cyrl/Shha.\(suffix)"] AS_BASE ALSO_METRICS + eject-contour 'strokeR' + eject-contour 'serifRB' + include : TopHook.lBarInner SB 0 CAP + include : LeaningAnchor.Above.VBar.l SB + select-variant 'cyrl/Shha' 0x4BA (follow -- 'H') select-variant 'cyrl/Shha/descBase' (shapeFrom -- 'cyrl/Shha') (follow -- 'H/descBase') + select-variant 'cyrl/Hwe' 0xA694 (follow -- 'HHookTop') derive-composites 'cyrl/ShhaDescender' 0x526 'cyrl/Shha/descBase' [CyrDescender.rSideJut RightSB 0] diff --git a/packages/font-glyphs/src/letter/latin/lower-h.ptl b/packages/font-glyphs/src/letter/latin/lower-h.ptl index c34c5653d..c7a21c2b1 100644 --- a/packages/font-glyphs/src/letter/latin/lower-h.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-h.ptl @@ -123,6 +123,7 @@ glyph-block Letter-Latin-Lower-H : begin alias 'cyrl/shha' 0x4BB 'h' alias 'cyrl/tshe' 0x45B 'hStroke' + alias 'cyrl/hwe' 0xA695 'hHookTop' derive-composites 'hPalatalHook' 0xA795 'h/descBase' [PalatalHook.rSideJut RightSB 0] derive-composites 'hDescender' 0x2C68 'h/descBase' [CyrDescender.rSideJut RightSB 0] diff --git a/packages/font-glyphs/src/letter/latin/lower-m.ptl b/packages/font-glyphs/src/letter/latin/lower-m.ptl index c1e1ecc76..704c92f5d 100644 --- a/packages/font-glyphs/src/letter/latin/lower-m.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-m.ptl @@ -152,6 +152,7 @@ glyph-block Letter-Latin-Lower-M : begin define [SmallMShortLegHeight top df] : (top - df.mvs) * 0.45 define [SmallMSmoothHeight top df] : top - [SmallMSmooth df] - TanSlope * Stroke + glyph-block-export EarlessCornerDoubleArchSmallMShape define [EarlessCornerDoubleArchSmallMShape df top lbot mbot rbot _mid] : glyph-proc local mid : fallback _mid df.middle diff --git a/packages/font-glyphs/src/letter/latin/u.ptl b/packages/font-glyphs/src/letter/latin/u.ptl index 611e44da6..aaffa31d4 100644 --- a/packages/font-glyphs/src/letter/latin/u.ptl +++ b/packages/font-glyphs/src/letter/latin/u.ptl @@ -37,7 +37,7 @@ glyph-block Letter-Latin-U : begin glyph-block-export UShapeGroup define [UShapeGroup ada adb] : namespace - export : define [Toothed df top sw fHookLeft] : glyph-proc + export : define [Toothed df top sw fHookLeft fShortLeg] : glyph-proc set-base-anchor 'trailing' df.rightSB 0 include : nShoulder top -- top @@ -50,9 +50,9 @@ glyph-block Letter-Latin-U : begin adb -- adb if fHookLeft : include : RetroflexHook.rExt df.rightSB (TailY + HalfStroke) (sw -- sw) include : FlipAround df.middle (top / 2) - include : tagged 'strokeR' : VBar.r df.rightSB 0 top sw + include : tagged 'strokeR' : VBar.r df.rightSB 0 [if fShortLeg [mix ada top 0.5] top] sw - export : define [Tailed df top sw fHookLeft] : glyph-proc + export : define [Tailed df top sw fHookLeft fShortLeg] : glyph-proc set-base-anchor 'trailing' (df.rightSB + SideJut) 0 include : nShoulder top -- top @@ -65,23 +65,31 @@ glyph-block Letter-Latin-U : begin adb -- adb if fHookLeft : include : RetroflexHook.rExt df.rightSB (TailY + HalfStroke) (sw -- sw) include : FlipAround df.middle (top / 2) - include : tagged 'strokeR' : RightwardTailedBar df.rightSB 0 top (sw -- sw) + include : tagged 'strokeR' : RightwardTailedBar df.rightSB 0 [if fShortLeg [mix ada top 0.5] top] (sw -- sw) - export : define [ToothlessRounded df top sw fHookLeft] : glyph-proc + export : define [ToothlessRounded df top sw fHookLeft fShortLeg] : glyph-proc if fHookLeft : begin include : dispiro widths.rhs sw - flat df.leftSB 0 [heading Upward] + flat df.leftSB [if fShortLeg [mix (top - ada) 0 0.5] 0] [heading Upward] curl df.leftSB (top - ada) arch.rhs top flat df.rightSB (top - adb) curl df.rightSB (TailY + HalfStroke) [heading Downward] include : RetroflexHook.rExt df.rightSB (TailY + HalfStroke) (sw -- sw) include : FlipAround df.middle (top / 2) - : else : include : UShape df top 0 (stroke -- sw) (ada -- ada) (adb -- adb) + : else : begin + if fShortLeg : include : dispiro + widths.lhs sw + flat df.leftSB top [heading Downward] + curl df.leftSB adb + arch.lhs 0 (sw -- sw) + flat df.rightSB ada + curl df.rightSB [mix ada top 0.5] [heading Upward] + : else : include : UShape df top 0 (stroke -- sw) (ada -- ada) (adb -- adb) - export : define [ToothlessCorner df top sw fHookLeft] : glyph-proc - include : VBar.l df.leftSB 0 (top - DToothlessRise) sw + export : define [ToothlessCorner df top sw fHookLeft fShortLeg] : glyph-proc + include : VBar.l df.leftSB [if fShortLeg [mix (top - ada) 0 0.5] 0] (top - DToothlessRise) sw include : dispiro widths.rhs sw g4 df.leftSB (top - DToothlessRise) @@ -243,6 +251,13 @@ glyph-block Letter-Latin-U : begin include sf.rb.fullSide include : LeaningAnchor.Below.VBar.r df.rightSB + create-glyph "uShortLeg.\(suffix)" : glyph-proc + local df : DivFrame 1 + include : df.markSet.e + include : Base df XH Stroke false true + include : Slabs df XH + eject-contour 'serifRT' + create-glyph "uHookLeft.\(suffix)" : glyph-proc local df : DivFrame 1 include : df.markSet.e @@ -299,6 +314,7 @@ glyph-block Letter-Latin-U : begin select-variant 'u' 'u' link-reduced-variant 'u/sansSerif' 'u' MathSansSerif select-variant 'u/uRTailBase' (shapeFrom -- 'u') + select-variant 'uShortLeg' 0xAB4E select-variant 'uHookLeft' 0xAB52 select-variant 'grek/mu' 0x3BC diff --git a/packages/font-glyphs/src/letter/latin/upper-h.ptl b/packages/font-glyphs/src/letter/latin/upper-h.ptl index 7845e1769..09c643f13 100644 --- a/packages/font-glyphs/src/letter/latin/upper-h.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-h.ptl @@ -205,7 +205,7 @@ glyph-block Letter-Latin-Upper-H : begin include : df.markSet.e include : HwairShape df XH (XH / 2) slabType - create-glyph "HHookLeft.\(suffix)" : glyph-proc + create-glyph "HHookTop.\(suffix)" : glyph-proc include [refer-glyph "H.\(suffix)"] AS_BASE ALSO_METRICS eject-contour "serifLT" include : LeftHook SB CAP @@ -269,7 +269,7 @@ glyph-block Letter-Latin-Upper-H : begin CreateSelectorVariants 'cyrl/enghe' 0x4A5 [Object.keys HConfig] (follow -- 'cyrl/en') select-variant 'Hwair' 0x1F6 - select-variant 'HHookLeft' 0xA7AA + select-variant 'HHookTop' 0xA7AA select-variant 'HStroke' 0x126 (follow -- 'H') select-variant 'smcpHStroke' null (follow -- 'H') diff --git a/packages/font-glyphs/src/letter/latin/upper-n.ptl b/packages/font-glyphs/src/letter/latin/upper-n.ptl index f0874b322..fe431f8d8 100644 --- a/packages/font-glyphs/src/letter/latin/upper-n.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-n.ptl @@ -35,8 +35,8 @@ glyph-block Letter-Latin-Upper-N : begin [Just BODY-SYMMETRIC] : dispiro flat left 0 [widths.heading 0 stroke Upward] curl left (top * 0.4) [heading Upward] - straight.up.end left top [widths.heading 0 swDiag Upward] - [Just BODY-ASYMMETRIC] : VBar.l left 0 top stroke + straight.up.end left top [widths.heading 0 swEnd Upward] + [Just BODY-ASYMMETRIC] : VBar.l left 0 top swEnd match bodyType [Just BODY-SYMMETRIC] : dispiro flat right top [widths.heading 0 stroke Downward] @@ -61,20 +61,23 @@ glyph-block Letter-Latin-Upper-N : begin local yEnd : match bodyType [Just BODY-SYMMETRIC] 0 [Just BODY-ASYMMETRIC] : top * 0.375 + local swEnd : match bodyType + [Just BODY-SYMMETRIC] swDiag + [Just BODY-ASYMMETRIC] stroke include : union match bodyType [Just BODY-SYMMETRIC] : dispiro flat left top [widths.lhs.heading stroke Downward] curl left (top * 0.6) [heading Downward] - straight.down.end left 0 [widths.lhs.heading swDiag Downward] - [Just BODY-ASYMMETRIC] : VBar.l left 0 top stroke + straight.down.end left 0 [widths.lhs.heading swEnd Downward] + [Just BODY-ASYMMETRIC] : VBar.l left 0 top swEnd match bodyType [Just BODY-SYMMETRIC] : dispiro flat right 0 [widths.lhs.heading stroke Upward] curl right (top * 0.4) [heading Upward] - straight.up.end right top [widths.lhs.heading swDiag Upward] - [Just BODY-ASYMMETRIC] : VBar.r right 0 top stroke + straight.up.end right top [widths.lhs.heading swEnd Upward] + [Just BODY-ASYMMETRIC] : VBar.r right 0 top swEnd intersection [Rect top 0 left right] ExtLineCenter 2 swDiag (left + swDiag) yEnd (right - swDiag) top diff --git a/packages/font-glyphs/src/meta/unicode-knowledge.ptl b/packages/font-glyphs/src/meta/unicode-knowledge.ptl index 4f6dd472f..cb2a73b77 100644 --- a/packages/font-glyphs/src/meta/unicode-knowledge.ptl +++ b/packages/font-glyphs/src/meta/unicode-knowledge.ptl @@ -158,7 +158,7 @@ export : define decompOverrides : object 0x1D75 { 't' 'tildeOver' } 0x1D76 { 'z/reduced' 'tildeStrike2' } 0x1D7C { 'latn/iota' 'barOver' } - 0x1D7D { 'p' 'hStrike' } + 0x1D7D { 'p' 'hStrike' } 0x1D7F { 'latn/upsilon' 'hStrike' } 0x1E08 { 'CCedilla' 'acuteAbove' } @@ -209,11 +209,12 @@ export : define decompOverrides : object 0xA7A8 { 'S' 'oblStrike' } 0xA7A9 { 's' 'oblStrike' } - 0xAB30 { 'scripta' 'hStrike' } - 0xAB3F { 'turnc' 'shortSlash' } + 0xAB30 { 'scripta' 'hStrike' } + 0xAB3F { 'turnc' 'shortSlash' } + 0xAB4F { 'uShortLeg' 'hStrike' } - 0x1DF0B { 'esh' 'dblBarOver' } - 0x1DF0C { 'eshCurlyTail' 'dblBarOver' } + 0x1DF0B { 'esh' 'dblBarOver' } + 0x1DF0C { 'eshCurlyTail' 'dblBarOver' } 0x1DF1A { 'iRetroflexHook' 'barOver' } diff --git a/params/variants.toml b/params/variants.toml index bb8dd030b..492cc47d8 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -400,7 +400,7 @@ selector.rightHalfH = "serifless" selector."grek/Heta" = "serifless" selector."grek/heta" = "serifless" selector.Hwair = "serifless" -selector.HHookLeft = "serifless" +selector.HHookTop = "serifless" selector."cyrl/Nje/leftHalf" = "serifless" selector."cyrl/Nje/leftHalf/reduced" = "serifless" @@ -415,7 +415,7 @@ selector.rightHalfH = "serifless" selector."grek/Heta" = "topLeftSerifed" selector."grek/heta" = "topLeftSerifed" selector.Hwair = "topLeftSerifed" -selector.HHookLeft = "serifless" +selector.HHookTop = "serifless" selector."cyrl/Nje/leftHalf" = "topLeftSerifed" selector."cyrl/Nje/leftHalf/reduced" = "topLeftSerifed" @@ -430,7 +430,7 @@ selector.rightHalfH = "topLeftBottomRightSerifed" selector."grek/Heta" = "topLeftSerifed" selector."grek/heta" = "topLeftSerifed" selector.Hwair = "topLeftSerifed" -selector.HHookLeft = "topLeftBottomRightSerifed" +selector.HHookTop = "topLeftBottomRightSerifed" selector."cyrl/Nje/leftHalf" = "topLeftSerifed" selector."cyrl/Nje/leftHalf/reduced" = "topLeftSerifed" @@ -445,7 +445,7 @@ selector.rightHalfH = "serifed" selector."grek/Heta" = "serifed" selector."grek/heta" = "topLeftSerifed" selector.Hwair = "serifedExceptBottomRight" -selector.HHookLeft = "serifed" +selector.HHookTop = "serifed" selector."cyrl/Nje/leftHalf" = "serifed" selector."cyrl/Nje/leftHalf/reduced" = "serifedExceptBottomRight" @@ -3740,6 +3740,7 @@ descriptionAffix = "toothed shape" selectorAffix.u = "toothed" selectorAffix."u/sansSerif" = "toothed" selectorAffix."u/uRTailBase" = "urtBase" +selectorAffix.uShortLeg = "toothed" selectorAffix.uHookLeft = "toothed" selectorAffix.turnh = "toothed" selectorAffix.turnhHookLeft = "toothed" @@ -3767,6 +3768,7 @@ descriptionAffix = "tailed shape" selectorAffix.u = "tailed" selectorAffix."u/sansSerif" = "tailed" selectorAffix."u/uRTailBase" = "urtBase" +selectorAffix.uShortLeg = "tailed" selectorAffix.uHookLeft = "tailed" selectorAffix.turnh = "toothed" selectorAffix.turnhHookLeft = "toothed" @@ -3794,6 +3796,7 @@ descriptionAffix = "toothless (corner bottom-right) shape" selectorAffix.u = "toothlessCorner" selectorAffix."u/sansSerif" = "toothlessCorner" selectorAffix."u/uRTailBase" = "urtBase" +selectorAffix.uShortLeg = "toothlessCorner" selectorAffix.uHookLeft = "toothlessCorner" selectorAffix.turnh = "toothlessCorner" selectorAffix.turnhHookLeft = "toothlessCorner" @@ -3821,6 +3824,7 @@ descriptionAffix = "toothless (rounded) shape" selectorAffix.u = "toothlessRounded" selectorAffix."u/sansSerif" = "toothlessRounded" selectorAffix."u/uRTailBase" = "urtBase" +selectorAffix.uShortLeg = "toothlessRounded" selectorAffix.uHookLeft = "toothlessRounded" selectorAffix.turnh = "toothed" selectorAffix.turnhHookLeft = "toothed" @@ -3849,6 +3853,7 @@ descriptionJoiner = "without" selectorAffix.u = "serifless" selectorAffix."u/sansSerif" = "serifless" selectorAffix."u/uRTailBase" = "serifless" +selectorAffix.uShortLeg = "serifless" selectorAffix.uHookLeft = "serifless" selectorAffix.turnh = "serifless" selectorAffix.turnhHookLeft = "serifless" @@ -3877,6 +3882,7 @@ descriptionAffix = "serif at bottom-right" selectorAffix.u = "bottomRightSerifed" selectorAffix."u/sansSerif" = "serifless" selectorAffix."u/uRTailBase" = "serifless" +selectorAffix.uShortLeg = "bottomRightSerifed" selectorAffix.uHookLeft = "bottomRightSerifed" selectorAffix.turnh = "serifless" selectorAffix.turnhHookLeft = "serifless" @@ -3904,6 +3910,7 @@ descriptionAffix = "motion serifs at top-left and bottom-right" selectorAffix.u = "motionSerifed" selectorAffix."u/sansSerif" = "serifless" selectorAffix."u/uRTailBase" = "motionSerifed" +selectorAffix.uShortLeg = "motionSerifed" selectorAffix.uHookLeft = {if = [{body = "toothed"}], then = "bottomRightSerifed", else = "serifless"} selectorAffix.turnh = "motionSerifed" selectorAffix.turnhHookLeft = "bottomRightSerifed" @@ -3931,6 +3938,7 @@ descriptionAffix = "serifs" selectorAffix.u = "serifed" selectorAffix."u/sansSerif" = "serifless" selectorAffix."u/uRTailBase" = "serifed" +selectorAffix.uShortLeg = "motionSerifed" selectorAffix.uHookLeft = "serifed" selectorAffix.turnh = "serifed" selectorAffix.turnhHookLeft = "serifed"