From dd19fc26adcf00bbb51b954745b4eee3339cf358 Mon Sep 17 00:00:00 2001 From: be5invis Date: Tue, 25 May 2021 02:21:13 -0700 Subject: [PATCH] Make variant selector of `Z` and `z` able to influence all derivatives (#1064). --- changes/7.0.0.md | 88 +++---- font-src/glyphs/auto-build/accents.ptl | 7 +- font-src/glyphs/auto-build/composite.ptl | 4 +- font-src/glyphs/letter/latin/z.ptl | 279 ++++++++++++----------- params/variants.toml | 99 +++----- 5 files changed, 231 insertions(+), 246 deletions(-) diff --git a/changes/7.0.0.md b/changes/7.0.0.md index 43d7f9c5f..d63a7ceda 100644 --- a/changes/7.0.0.md +++ b/changes/7.0.0.md @@ -55,44 +55,50 @@ - Helm symbol (`U+2388`). - Heavy Black Heart (`U+2764`) (#920). - Squared Three D ... Squared VOD (`U+1F19B` ... `U+1F1AC`). - - * Add tailed variants for Cyrillic El, En, Che, Yery and Ya (#972). - * Add more serifed variants for `K`, `k`, `n`, Cyrillic Ka (`К` and `к`) and Cyrillic Ef (`ф`) to better reproduce PT Mono (#986). - * Add top-left serifed variant for `m` (#1052). - * Add SS18 to represent Input Mono (#990). - * Fix misplaced descender on `U+04AD` (#1005). - * Fix inconsistent serif on italic variants of Cyrillic En (#1006). - * Fix inconsistent serifs on letters with retroflex hooks, like `U+1D99` and `U+01AE` (#1008). - * Balance stroke width of curly W/w in bold weights (#1011). - * Fix gap in the curly variant of `U+A75A` and `U+A75B` (#1012). - * Make CV feature for `l` effective on more derived letters (#1015). - * Fix wrong serifs on italic `U+1D2B` (#1014). - * Fix missing serifs on `U+018E` and `U+1D32` (#1016). - * Fix wrong serifs on italic `U+1D78` (#1017). - * Increase visibility of Cyrillic Descender (#1018). - * Fix wrong serifs on italic `U+2141` (#1019). - * Fix missing serif on `U+1D6B` (#1022). - * Increase oval size of Cyrillic Be (`U+0431`) (#1023). - * Fix shape of `U+A7F8` (#1024). - * Fix inconsistent serif on `U+00B5` (#1025). - * Make lowercase Cyrillic Em wider (Aile/Etoile) (#1028). - * Force all variants of mathematical sans-serif characters to remove all serifs, including motion serifs (#1030). - * Fix broken variant selectors for Polytonic Greek letters with dual-diacritics (#1031). - * Make variant selectors of `A` and `E` able to influence AE and OE letters (#1031). - * Make combining parentheses more significant (#1032). - * Make `cv02` apply to B with bar (#1033). - * Fix shape of Copyleft Symbol `U+1F12F` (#1034). - * Fix incorrect mapping of `U+037B` and `U+03FD` (#1036). - * Correct glyph of `U+2411` (#1037). - * Make `cv06` able to influence `U+0191` (#1038). - * Fix incorrect glyph shape mapping of `U+22F0` and `U+22F1` (#1039). - * Fix missing serifs on `U+0198` and `U+0199` (#1042). - * Fix missing dot on `U+1DA4` (#1043). - * Fix missing variants of `U+20A6` (#1045). - * Fix missing serifs on capital Greek lunate sigmas (#1046). - * Make `cv15` able to influence P with Hook (`U+01A4`) and Ruble sign (`U+20BD`) (#1047, #1056). - * Make `cv17` able to influence Yr (`U+01A6`) and R-rotunda (`U+A75A`, `U+A75B`) (#1049). - * Fix incorrect slope of Circled Italic Latin Capital Letter C (`U+1F12B`) and Circled Italic Latin Capital Letter R (`U+1F12C`) (#1051). - * Make `cv08` able to influence Hwair (`U+01F6`) and Cyrillic Capital Letter Nje (`U+040A`) (#1059). - * Fix missing serifs of Cyrillic Izhitsa (#1061). - * Fix incomplete variants of `U+2C72` (#1062). \ No newline at end of file + * Add variants and stylistic sets: + - Add tailed variants for Cyrillic El, En, Che, Yery and Ya (#972). + - Add more serifed variants for `K`, `k`, `n`, Cyrillic Ka (`К` and `к`) and Cyrillic Ef (`ф`) to better reproduce PT Mono (#986). + - Add top-left serifed variant for `m` (#1052). + - Add SS18 to represent Input Mono (#990). + * Fixes of variant selector application on derived letters or letter forms, including: + - Cyrillic En (#1006). + - Small U with Retroflex Hook (`U+1D99`) and Capital T with Retroflex Hook (`U+01AE`) (#1008). + - Derivatives of Latin Small Letter L (#1015). + - Latin Small Ligature Fi (`U+FB01`), Latin Small Ligature Fl (`U+FB02`) (#1015). + - Latin Small Letter Ue (`U+1D6B`) (#1022). + - Latin Capital Letter AE (`U+00C6`), Latin Capital Letter OE (`U+0152`) and derivatives (#1031). + - Polytonic Greek letters with dual-diacritics (#1031). + - Latin Capital B with Stroke (`U+0243`) and derivatives (#1033). + - Latin Capital Letter F With Hook (`U+0191`) (#1038). + - Latin Capital Letter K With Hook (`U+0198`), Latin Small Letter K with Hook (`U+0199`) (#1042). + - Naira Sign (`U+20A6`) (#1045). + - Greek Lunate Sigma (`U+03F9`) and derivatives (#1046). + - P with Hook (`U+01A4`), Ruble sign (`U+20BD`) (#1047). + - Yr (`U+01A6`), R-rotunda (`U+A75A`, `U+A75B`) (#1049). + - Hwair (`U+01F6`), Cyrillic Capital Nje (`U+040A`) (#1059). + - Cyrillic Izhitsa (`U+0474`) (#1061). + - Latin Capital Letter W with Hook (`U+2C72`), Latin Small Letter W with Hook (`U+2C73`) (#1062). + - Latin Capital Letter Z with Swash Tail (`U+2C7F`), Latin Small Letter Z with Swash Tail (`U+0240`) (#1064). + * Fix incorrect or inconsistent serifs for Slab, including: + - Cyrillic Small Capital El (`U+1D2B`) (#1014). + - Latin Capital Reversed E (`U+018E`) and Modifier Capital Reversed E (`U+1D32`) (#1016). + - Modifier Cyrillic En (`U+1D78`) under Italic (#1017). + - Turned Sans-Serif Capital G (`U+2141`) (#1019). + - Micro Sign (`U+00B5`) (#1025). + - All mathematical sans-serif letters under any CV/SS application (#1030). + * Geometry fixes: + - Fix misplaced descender on Cyrillic Small Letter Te With Descender (`U+04AD`) (#1005). + - Fix gap in the curly variant of R-rotunda (`U+A75A`, `U+A75B`) (#1012). + - Fix incorrect shape of Modifier Letter Capital H with Stroke (`U+A7F8`) (#1024). + - Fix shape of Copyleft Symbol (`U+1F12F`) (#1034). + - Fix incorrect mapping of Greek Small Reversed Lunate Sigma Symbol (`U+037B`) and Greek Capital Reversed Lunate Sigma Symbol (`U+03FD`) (#1036). + - Fix incorrect shape of Symbol For Device Control One (`U+2411`) (#1037). + - Fix incorrect glyph shape mapping of Up Right Diagonal Ellipsis (`U+22F0`) and Down Right Diagonal Ellipsis (`U+22F1`) (#1039). + - Fix missing dot on Modifier Letter Small I With Stroke (`U+1DA4`) (#1043). + - Fix incorrect slope of Circled Italic Latin Capital C (`U+1F12B`) and Circled Italic Latin Capital R (`U+1F12C`) (#1051). + * Geometry refinements: + - Balance stroke width of curly W/w in bold weights (#1011). + - Make lowercase Cyrillic Em wider (Aile/Etoile) (#1028). + - Make combining parentheses more significant (#1032). + - Increase visibility of Cyrillic Descender (#1018). + - Increase oval size of Cyrillic Be (`U+0431`) (#1023). diff --git a/font-src/glyphs/auto-build/accents.ptl b/font-src/glyphs/auto-build/accents.ptl index 6c9bad998..0c5349286 100644 --- a/font-src/glyphs/auto-build/accents.ptl +++ b/font-src/glyphs/auto-build/accents.ptl @@ -1,7 +1,7 @@ ###### Automatic builds $$include '../../meta/macros.ptl' -import [Dotless AnyDerivingCv DotlessOrNot getGrTree CvDecompose CcmpDecompose ZReduced RequireCcmpDecompose] from "../../support/gr" +import [Dotless AnyDerivingCv DotlessOrNot getGrTree CvDecompose CcmpDecompose RequireCcmpDecompose] from "../../support/gr" import [fallback] from '../../support/utils' glyph-module @@ -32,11 +32,6 @@ glyph-block AutoBuild-Accents : begin set parts.(j) [query-glyph 'ogonekTR'] define [subParts parts] : begin - # Reduce Z variants - if [ZReduced.get parts.0] : begin - local reduced : query-glyph : ZReduced.get parts.0 - if reduced : set parts.0 reduced - # Handle dotless local hasMarkAbove false foreach p [items-of parts] : if [isAboveMark p] : set hasMarkAbove true diff --git a/font-src/glyphs/auto-build/composite.ptl b/font-src/glyphs/auto-build/composite.ptl index d60e215eb..078a1f740 100644 --- a/font-src/glyphs/auto-build/composite.ptl +++ b/font-src/glyphs/auto-build/composite.ptl @@ -1195,7 +1195,7 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin define stdShrink : clamp 0.75 0.9 : StrokeWidthBlend 0.78 0.9 createPhoneticLigatures 'phonetic' para.diversityM stdShrink stdShrink 1 1 : list - list 0x02A3 { 'd/phoneticLeft' 'z/reduced' } 'b' + list 0x02A3 { 'd/phoneticLeft' 'z' } 'b' list 0x02A4 { 'd/phoneticLeft' 'ezh' } 'if' list 0x02A5 { 'd/phoneticLeft' 'zCurlyTail' } 'if' list 0x02A6 { 't.phoneticLeft' 's/phoneticRight' } 'b' @@ -1203,7 +1203,7 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin list 0x02A8 { 't.phoneticLeft' 'cCurlyTail' } 'b' list 0x02A9 { 'f/phoneticLeft' 'eng.straightTopLeftSerifed' } 'if' list 0x02AA { 'l/phoneticLeft' 's/phoneticRight' } 'b' - list 0x02AB { 'l/phoneticLeft' 'z/reduced' } 'b' + list 0x02AB { 'l/phoneticLeft' 'z' } 'b' list 0xAB66 { 'd/phoneticLeft' 'zRTailBR' } 'if' list 0xAB67 { 't.phoneticLeft' 'sRTail' } null diff --git a/font-src/glyphs/letter/latin/z.ptl b/font-src/glyphs/letter/latin/z.ptl index 85e66f11d..2cbf408cb 100644 --- a/font-src/glyphs/letter/latin/z.ptl +++ b/font-src/glyphs/letter/latin/z.ptl @@ -14,6 +14,13 @@ glyph-block Letter-Latin-Z : begin glyph-block-import Letter-Blackboard : BBS BBD glyph-block-import Letter-Latin-X : XStrand + define MODE-Z 0 + define MODE-RTAIL 1 + define MODE-ZDESC 2 + define MODE-ZSWASH 3 + + define [DisplayBottomStroke mode] : not : mode === MODE-ZDESC || mode === MODE-ZSWASH + define [ZSerifless top] : glyph-proc define [ZStdSerifs top] : glyph-proc @@ -26,40 +33,40 @@ glyph-block Letter-Latin-Z : begin define [ZMotionSerifsT top] : glyph-proc include : tagged 'serifLT' : DownwardLeftSerif SB top VJut - define [ZBaseShape] : glyph-proc + define [ZBaseShape mode] : glyph-proc local cor : 1.15 * HVContrast include : tagged 'strokeTop' : HBarTop SB RightSB CAP include : spiro-outline - corner SB Stroke + corner SB [if (mode === MODE-ZSWASH) 0 Stroke] corner (RightSB - Stroke * cor) (CAP - Stroke) corner RightSB (CAP - Stroke) - corner (SB + Stroke * cor) Stroke - include : tagged 'strokeBottom' : HBarBottom SB RightSB 0 + corner (SB + Stroke * cor) [if (mode === MODE-ZSWASH) 0 Stroke] + if [DisplayBottomStroke mode] : include : tagged 'strokeBottom' : HBarBottom SB RightSB 0 - define [ZCurlyShape] : glyph-proc + define [ZCurlyShape mode] : glyph-proc include : tagged 'strokeTop' : HBarTop SB (RightSB - Stroke * HVContrast) CAP include : XStrand false SLAB SB 0 RightSB CAP 0.125 0.4 0.32 - include : tagged 'strokeBottom' : HBarBottom (SB + Stroke * HVContrast) RightSB 0 + if [DisplayBottomStroke mode] : include : tagged 'strokeBottom' : HBarBottom (SB + Stroke * HVContrast) RightSB 0 define [HBarOver] : refer-glyph 'barOver' define [DBarOver] : refer-glyph 'antiSlashOver' - define [SmallZBaseShape] : glyph-proc + define [SmallZBaseShape mode] : glyph-proc local cor : 1.2 * HVContrast include : tagged 'strokeTop' : HBarTop SB RightSB XH include : spiro-outline - corner SB Stroke + corner SB [if (mode === MODE-ZSWASH) 0 Stroke] corner (RightSB - Stroke * cor) (XH - Stroke) corner RightSB (XH - Stroke) - corner (SB + Stroke * cor) Stroke - include : tagged 'strokeBottom' : HBarBottom SB RightSB 0 + corner (SB + Stroke * cor) [if (mode === MODE-ZSWASH) 0 Stroke] + if [DisplayBottomStroke mode] : include : tagged 'strokeBottom' : HBarBottom SB RightSB 0 - define [SmallZCurlyShape] : glyph-proc + define [SmallZCurlyShape mode] : glyph-proc include : tagged 'strokeTop' : HBarTop SB (RightSB - Stroke * HVContrast) XH include : XStrand false SLAB SB 0 RightSB XH 0.125 0.4 0.36 - include : tagged 'strokeBottom' : HBarBottom (SB + Stroke * HVContrast) RightSB 0 + if [DisplayBottomStroke mode] : include : tagged 'strokeBottom' : HBarBottom (SB + Stroke * HVContrast) RightSB 0 - define [ZCursiveShapeImpl top fRTB] : glyph-proc + define [ZCursiveShapeImpl top mode] : glyph-proc define hookTerminalWidth : AdviceStroke 3.5 define xDiagWidth : 1 * Stroke define yFootHeight : Math.max (0.15 * top) (Stroke * 0.625) @@ -87,51 +94,59 @@ glyph-block Letter-Latin-Z : begin flat [mix (SB + xMockTailDepth) RightSB kTop] (top - kTop * yTailDepth) curl RightSB (top - yTailDepth) - include : spiro-outline - corner SB 0 - corner SB (kFoot * yFootHeight) - corner (RightSB - xDiagWidth) (top - yFootHeight) - corner (RightSB - xDiagWidth) top - corner RightSB top - corner RightSB (top - kFoot * yFootHeight) - corner (SB + xDiagWidth) yFootHeight - corner (SB + xDiagWidth) 0 - - if [not fRTB] : include : tagged 'strokeBottom' : intersection - spiro-outline - corner (SB + xDiagWidth) yFootHeight - corner (SB + xDiagWidth) (-top) - corner (2 * Width) (-top) - corner (2 * Width) (top) + include : match mode + [Just MODE-ZSWASH] : spiro-outline + corner SB 0 + corner (RightSB - xDiagWidth) (top - yFootHeight) + corner (RightSB - xDiagWidth) top corner RightSB top - - dispiro - flat (RightSB - 2 * O) yHookDepth [widths.rhs.heading hookTerminalWidth Downward] - curl (RightSB - 2 * O) (yHookDepth - yHookStraightDepth) [heading Downward] - arcvh - g2.left.mid (RightSB - xHookDepth) O [widths.rhs.heading Stroke Leftward] - flat [mix (RightSB - xHookDepth) SB kBot] (kBot * yTailDepth) - curl SB (yTailDepth) - - if fRTB : include : tagged 'strokeBottom' : intersection - spiro-outline - corner (SB + xDiagWidth) yFootHeight - corner (SB + xDiagWidth) (-top) - corner (2 * Width) (-top) - corner (2 * Width) (top) + corner RightSB (top - kFoot * yFootHeight) + corner (SB + xDiagWidth) 0 + __ : spiro-outline + corner SB 0 + corner SB (kFoot * yFootHeight) + corner (RightSB - xDiagWidth) (top - yFootHeight) + corner (RightSB - xDiagWidth) top corner RightSB top + corner RightSB (top - kFoot * yFootHeight) + corner (SB + xDiagWidth) yFootHeight + corner (SB + xDiagWidth) 0 + + include : tagged 'strokeBottom' : match mode + [Just MODE-RTAIL] : intersection + spiro-outline + corner (SB + xDiagWidth) yFootHeight + corner (SB + xDiagWidth) (-top) + corner (2 * Width) (-top) + corner (2 * Width) (top) + corner RightSB top + + union + VBarRight RightSB 0 yHookDepth hookTerminalWidth + dispiro + flat RightSB O [widths.rhs.heading Stroke Leftward] + g2 (RightSB - xHookDepth) O [widths.rhs.heading Stroke Leftward] + flat [mix (RightSB - xHookDepth) SB kBot] (kBot * yTailDepth) + curl SB (yTailDepth) + ([Just MODE-ZDESC] || [Just MODE-ZSWASH]) : glyph-proc + __ : intersection + spiro-outline + corner (SB + xDiagWidth) yFootHeight + corner (SB + xDiagWidth) (-top) + corner (2 * Width) (-top) + corner (2 * Width) (top) + corner RightSB top - union - VBarRight RightSB 0 yHookDepth hookTerminalWidth dispiro - flat RightSB O [widths.rhs.heading Stroke Leftward] - g2 (RightSB - xHookDepth) O [widths.rhs.heading Stroke Leftward] + flat (RightSB - 2 * O) yHookDepth [widths.rhs.heading hookTerminalWidth Downward] + curl (RightSB - 2 * O) (yHookDepth - yHookStraightDepth) [heading Downward] + arcvh + g2.left.mid (RightSB - xHookDepth) O [widths.rhs.heading Stroke Leftward] flat [mix (RightSB - xHookDepth) SB kBot] (kBot * yTailDepth) curl SB (yTailDepth) - define [ZCursiveShape] : ZCursiveShapeImpl CAP - define [SmallZCursiveShape] : ZCursiveShapeImpl XH - define [SmallZCursiveRTB] : ZCursiveShapeImpl XH 1 + define [ZCursiveShape mode] : ZCursiveShapeImpl CAP mode + define [SmallZCursiveShape mode] : ZCursiveShapeImpl XH mode define [NoBottomStrokeMask top] : glyph-proc define [CurlyBottomStrokeMask top] : spiro-outline @@ -147,40 +162,46 @@ glyph-block Letter-Latin-Z : begin archv straight.down.end RightSB (-Hook) [widths.heading 0 Stroke Downward] + define [SwashBottomStroke] : dispiro + widths.lhs + g4 SB 0 + alsoThru 0.36 0.6 important + flat (RightSB - 1) Descender + curl RightSB Descender + define ZConfig : object - straightSerifless { ZBaseShape SmallZBaseShape ZSerifless null NoBottomStrokeMask } - straightSeriflessWithCrossBar { ZBaseShape SmallZBaseShape ZSerifless DBarOver NoBottomStrokeMask } - straightSeriflessWithHorizontalCrossBar { ZBaseShape SmallZBaseShape ZSerifless HBarOver NoBottomStrokeMask } - curlySerifless { ZCurlyShape SmallZCurlyShape ZSerifless null CurlyBottomStrokeMask } - curlySeriflessWithCrossBar { ZCurlyShape SmallZCurlyShape ZSerifless DBarOver CurlyBottomStrokeMask } - curlySeriflessWithHorizontalCrossBar { ZCurlyShape SmallZCurlyShape ZSerifless HBarOver CurlyBottomStrokeMask } - straightSerifed { ZBaseShape SmallZBaseShape ZStdSerifs null NoBottomStrokeMask } - straightSerifedWithCrossBar { ZBaseShape SmallZBaseShape ZStdSerifs DBarOver NoBottomStrokeMask } - straightSerifedWithHorizontalCrossBar { ZBaseShape SmallZBaseShape ZStdSerifs HBarOver NoBottomStrokeMask } - curlySerifed { ZCurlyShape SmallZCurlyShape ZStdSerifs null CurlyBottomStrokeMask } - curlySerifedWithCrossBar { ZCurlyShape SmallZCurlyShape ZStdSerifs DBarOver CurlyBottomStrokeMask } - curlySerifedWithHorizontalCrossBar { ZCurlyShape SmallZCurlyShape ZStdSerifs HBarOver CurlyBottomStrokeMask } - straightBottomSerifed { ZBaseShape SmallZBaseShape ZMotionSerifsB null NoBottomStrokeMask } - straightBottomSerifedWithCrossbar { ZBaseShape SmallZBaseShape ZMotionSerifsB DBarOver NoBottomStrokeMask } - straightBottomSerifedWithHorizontalCrossBar { ZBaseShape SmallZBaseShape ZMotionSerifsB HBarOver NoBottomStrokeMask } - curlyBottomSerifed { ZCurlyShape SmallZCurlyShape ZMotionSerifsB null CurlyBottomStrokeMask } - curlyBottomSerifedWithCrossbar { ZCurlyShape SmallZCurlyShape ZMotionSerifsB DBarOver CurlyBottomStrokeMask } - curlyBottomSerifedWithHorizontalCrossBar { ZCurlyShape SmallZCurlyShape ZMotionSerifsB HBarOver CurlyBottomStrokeMask } - straightTopSerifed { ZBaseShape SmallZBaseShape ZMotionSerifsT null NoBottomStrokeMask } - straightTopSerifedWithCrossbar { ZBaseShape SmallZBaseShape ZMotionSerifsT DBarOver NoBottomStrokeMask } - straightTopSerifedWithHorizontalCrossBar { ZBaseShape SmallZBaseShape ZMotionSerifsT HBarOver NoBottomStrokeMask } - curlyTopSerifed { ZCurlyShape SmallZCurlyShape ZMotionSerifsT null CurlyBottomStrokeMask } - curlyTopSerifedWithCrossbar { ZCurlyShape SmallZCurlyShape ZMotionSerifsT DBarOver CurlyBottomStrokeMask } - curlyTopSerifedWithHorizontalCrossBar { ZCurlyShape SmallZCurlyShape ZMotionSerifsT HBarOver CurlyBottomStrokeMask } - cursive { ZCursiveShape SmallZCursiveShape ZSerifless null NoBottomStrokeMask } - cursiveWithCrossBar { ZCursiveShape SmallZCursiveShape ZSerifless DBarOver NoBottomStrokeMask } - cursiveWithHorizontalCrossBar { ZCursiveShape SmallZCursiveShape ZSerifless HBarOver NoBottomStrokeMask } - cursiveRTBase { ZCursiveShape SmallZCursiveRTB ZSerifless null NoBottomStrokeMask } + straightSerifless { ZBaseShape SmallZBaseShape ZSerifless null NoBottomStrokeMask } + straightSeriflessWithCrossBar { ZBaseShape SmallZBaseShape ZSerifless DBarOver NoBottomStrokeMask } + straightSeriflessWithHorizontalCrossBar { ZBaseShape SmallZBaseShape ZSerifless HBarOver NoBottomStrokeMask } + curlySerifless { ZCurlyShape SmallZCurlyShape ZSerifless null CurlyBottomStrokeMask } + curlySeriflessWithCrossBar { ZCurlyShape SmallZCurlyShape ZSerifless DBarOver CurlyBottomStrokeMask } + curlySeriflessWithHorizontalCrossBar { ZCurlyShape SmallZCurlyShape ZSerifless HBarOver CurlyBottomStrokeMask } + straightSerifed { ZBaseShape SmallZBaseShape ZStdSerifs null NoBottomStrokeMask } + straightSerifedWithCrossBar { ZBaseShape SmallZBaseShape ZStdSerifs DBarOver NoBottomStrokeMask } + straightSerifedWithHorizontalCrossBar { ZBaseShape SmallZBaseShape ZStdSerifs HBarOver NoBottomStrokeMask } + curlySerifed { ZCurlyShape SmallZCurlyShape ZStdSerifs null CurlyBottomStrokeMask } + curlySerifedWithCrossBar { ZCurlyShape SmallZCurlyShape ZStdSerifs DBarOver CurlyBottomStrokeMask } + curlySerifedWithHorizontalCrossBar { ZCurlyShape SmallZCurlyShape ZStdSerifs HBarOver CurlyBottomStrokeMask } + straightBottomSerifed { ZBaseShape SmallZBaseShape ZMotionSerifsB null NoBottomStrokeMask } + straightBottomSerifedWithCrossbar { ZBaseShape SmallZBaseShape ZMotionSerifsB DBarOver NoBottomStrokeMask } + straightBottomSerifedWithHorizontalCrossBar { ZBaseShape SmallZBaseShape ZMotionSerifsB HBarOver NoBottomStrokeMask } + curlyBottomSerifed { ZCurlyShape SmallZCurlyShape ZMotionSerifsB null CurlyBottomStrokeMask } + curlyBottomSerifedWithCrossbar { ZCurlyShape SmallZCurlyShape ZMotionSerifsB DBarOver CurlyBottomStrokeMask } + curlyBottomSerifedWithHorizontalCrossBar { ZCurlyShape SmallZCurlyShape ZMotionSerifsB HBarOver CurlyBottomStrokeMask } + straightTopSerifed { ZBaseShape SmallZBaseShape ZMotionSerifsT null NoBottomStrokeMask } + straightTopSerifedWithCrossbar { ZBaseShape SmallZBaseShape ZMotionSerifsT DBarOver NoBottomStrokeMask } + straightTopSerifedWithHorizontalCrossBar { ZBaseShape SmallZBaseShape ZMotionSerifsT HBarOver NoBottomStrokeMask } + curlyTopSerifed { ZCurlyShape SmallZCurlyShape ZMotionSerifsT null CurlyBottomStrokeMask } + curlyTopSerifedWithCrossbar { ZCurlyShape SmallZCurlyShape ZMotionSerifsT DBarOver CurlyBottomStrokeMask } + curlyTopSerifedWithHorizontalCrossBar { ZCurlyShape SmallZCurlyShape ZMotionSerifsT HBarOver CurlyBottomStrokeMask } + cursive { ZCursiveShape SmallZCursiveShape ZSerifless null NoBottomStrokeMask } + cursiveWithCrossBar { ZCursiveShape SmallZCursiveShape ZSerifless DBarOver NoBottomStrokeMask } + cursiveWithHorizontalCrossBar { ZCursiveShape SmallZCursiveShape ZSerifless HBarOver NoBottomStrokeMask } foreach { suffix { capital small serifs slash bsMask } } [Object.entries ZConfig] : do create-glyph "Z.\(suffix)" : glyph-proc include : MarkSet.capital - include : capital + include : capital MODE-Z if serifs : include : serifs CAP if slash : include : slash CAP @@ -190,14 +211,23 @@ glyph-block Letter-Latin-Z : begin include : VBarRight [mix SB RightSB 1.05] (HalfStroke - LongJut) Stroke create-glyph "ZDTail.\(suffix)" : glyph-proc - include [refer-glyph "Z.\(suffix)"] AS_BASE ALSO_METRICS - eject-contour 'strokeBottom' + include : MarkSet.capital + include : capital MODE-ZDESC + if serifs : include : serifs CAP + if slash : include : slash CAP eject-contour 'serifRB' include : difference [DTailBottomStroke] [bsMask CAP] + create-glyph "ZSwash.\(suffix)" : glyph-proc + include : capital MODE-ZSWASH + if serifs : include : serifs CAP + if slash : include : slash CAP + eject-contour 'serifRB' + include : difference [SwashBottomStroke] [bsMask CAP] + create-glyph "z.\(suffix)" : glyph-proc include : MarkSet.e - include : small + include : small MODE-Z if serifs : include : serifs XH if slash : include : slash XH @@ -206,15 +236,33 @@ glyph-block Letter-Latin-Z : begin eject-contour 'serifRB' include : VBarRight [mix SB RightSB 1.05] (HalfStroke - LongJut) Stroke + create-glyph "z/rtailBase.\(suffix)" : glyph-proc + include : MarkSet.e + include : small MODE-RTAIL + if serifs : include : serifs XH + if slash : include : slash XH + create-glyph "zDTail.\(suffix)" : glyph-proc - include [refer-glyph "z.\(suffix)"] AS_BASE ALSO_METRICS - eject-contour 'strokeBottom' + include : MarkSet.e + include : small MODE-ZDESC + if serifs : include : serifs XH + if slash : include : slash XH eject-contour 'serifRB' include : difference [DTailBottomStroke] [bsMask XH] + create-glyph "zSwash.\(suffix)" : glyph-proc + include : MarkSet.e + include : small MODE-ZSWASH + if serifs : include : serifs XH + if slash : include : slash XH + eject-contour 'serifRB' + include : difference [SwashBottomStroke] [bsMask XH] + create-glyph "zCurlyTail.\(suffix)" : glyph-proc - include [refer-glyph "z.\(suffix)"] AS_BASE ALSO_METRICS - eject-contour 'strokeBottom' + include : MarkSet.e + include : small MODE-ZDESC + if serifs : include : serifs XH + if slash : include : slash XH eject-contour 'serifRB' local fine : AdviceStroke2 5 4 XH local rinner : Math.max (XH * 0.04) (fine * 0.1) @@ -234,16 +282,20 @@ glyph-block Letter-Latin-Z : begin select-variant 'smcpZ' 0x1D22 (shapeFrom -- 'z') (follow -- 'Z') select-variant 'Z/reduced' (shapeFrom -- 'Z') select-variant 'z/reduced' (shapeFrom -- 'z') - select-variant 'z/reduced/rtailBase' (shapeFrom -- 'z') + select-variant 'z/rtailBase' (follow -- 'z') if [query-glyph 'Z'] : ZReduced.set [query-glyph 'Z'] 'Z/reduced' if [query-glyph 'z'] : ZReduced.set [query-glyph 'z'] 'z/reduced' + select-variant 'ZDesc' 0x2C6B select-variant 'zDesc' 0x2C6C select-variant 'ZDTail' 0x224 (follow -- 'ZDesc') select-variant 'zDTail' 0x225 (follow -- 'zDesc') + select-variant 'ZSwash' 0x2C7F (follow -- 'ZDesc') + select-variant 'zSwash' 0x240 (follow -- 'zDesc') select-variant 'zCurlyTail' 0x291 (follow -- 'zDesc') - select-variant 'grek/Zeta' 0x396 (shapeFrom -- 'Z') (follow -- 'Z/reduced') - alias-reduced-variant 'grek/Zeta/sansSerif' 'grek/Zeta' 'Z/reduced/sansSerif' MathSansSerif + + alias 'grek/Zeta' 0x396 'Z' + alias-reduced-variant 'grek/Zeta/sansSerif' 'grek/Zeta' 'Z/sansSerif' MathSansSerif define [BBZShape top] : glyph-proc include : HBarTop SB RightSB top BBS @@ -273,50 +325,9 @@ glyph-block Letter-Latin-Z : begin create-glyph 'mathbb/Z' 0x2124 : composite-proc [MarkSet.capital] [BBZShape CAP] create-glyph 'mathbb/z' 0x1D56B : composite-proc [MarkSet.e] [BBZShape XH] - create-glyph 'Zswash' 0x2C7F : glyph-proc - include : MarkSet.if - local cor : 1.15 * HVContrast - - include : union - HBarTop SB RightSB CAP - spiro-outline - corner SB 0 - corner (SB + Stroke * cor) 0 - corner RightSB (CAP - Stroke) - corner (RightSB - Stroke * cor) (CAP - Stroke) - dispiro - widths.lhs - g4 SB 0 - alsoThru 0.36 0.6 important - flat (RightSB - 1) Descender - curl RightSB Descender - - if SLAB : begin - include : DownwardLeftSerif SB CAP VJut - - create-glyph 'zswash' 0x240 : glyph-proc - include : MarkSet.p - local cor : 1.2 * HVContrast - - include : union - HBarTop SB RightSB XH - spiro-outline - corner SB 0 - corner (SB + Stroke * cor) 0 - corner RightSB (XH - Stroke) - corner (RightSB - Stroke * cor) (XH - Stroke) - dispiro - widths.lhs - g4 (SB - OXHook) 0 - alsoThru 0.36 0.6 important - flat (RightSB - 1) Descender - curl RightSB Descender - - if SLAB : begin - include : DownwardLeftSerif SB XH VJut CreateAccentedComposition 'ZBar' 0x1B5 'Z/reduced' 'barOver' CreateAccentedComposition 'zBar' 0x1B6 'z/reduced' 'barOver' - CreateAccentedComposition 'ZCaron' 0x17D 'Z/reduced' 'caronAbove' - CreateAccentedComposition 'zCaron' 0x17E 'z/reduced' 'caronAbove' - CreateAccentedComposition 'zRTailBR' 0x290 'z/reduced/rtailBase' 'rtailBR' + CreateAccentedComposition 'ZCaron' 0x17D 'Z' 'caronAbove' + CreateAccentedComposition 'zCaron' 0x17E 'z' 'caronAbove' + CreateAccentedComposition 'zRTailBR' 0x290 'z/rtailBase' 'rtailBR' diff --git a/params/variants.toml b/params/variants.toml index c855032d1..efa68da5c 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -1442,7 +1442,7 @@ selector.Z = "straightSeriflessWithCrossBar" selector."Z/sansSerif" = "straightSeriflessWithCrossBar" selector."Z/reduced" = "straightSerifless" selector."Z/reduced/sansSerif" = "straightSerifless" -selector.ZDesc = "straightSerifless" +selector.ZDesc = "straightSeriflessWithCrossBar" [prime.capital-z.variants.straight-serifless-with-horizontal-crossbar] rank = 3 @@ -1451,7 +1451,7 @@ selector.Z = "straightSeriflessWithHorizontalCrossBar" selector."Z/sansSerif" = "straightSeriflessWithHorizontalCrossBar" selector."Z/reduced" = "straightSerifless" selector."Z/reduced/sansSerif" = "straightSerifless" -selector.ZDesc = "straightSerifless" +selector.ZDesc = "straightSeriflessWithHorizontalCrossBar" [prime.capital-z.variants.curly-serifless] rank = 4 @@ -1469,7 +1469,7 @@ selector.Z = "curlySeriflessWithCrossBar" selector."Z/sansSerif" = "curlySeriflessWithCrossBar" selector."Z/reduced" = "curlySerifless" selector."Z/reduced/sansSerif" = "curlySerifless" -selector.ZDesc = "curlySerifless" +selector.ZDesc = "curlySeriflessWithCrossBar" [prime.capital-z.variants.curly-serifless-with-horizontal-crossbar] rank = 6 @@ -1478,7 +1478,7 @@ selector.Z = "curlySeriflessWithHorizontalCrossBar" selector."Z/sansSerif" = "curlySeriflessWithHorizontalCrossBar" selector."Z/reduced" = "curlySerifless" selector."Z/reduced/sansSerif" = "curlySerifless" -selector.ZDesc = "curlySerifless" +selector.ZDesc = "curlySeriflessWithHorizontalCrossBar" [prime.capital-z.variants.straight-serifed] rank = 7 @@ -1496,7 +1496,7 @@ selector.Z = "straightSerifedWithCrossBar" selector."Z/sansSerif" = "straightSeriflessWithCrossBar" selector."Z/reduced" = "straightSerifed" selector."Z/reduced/sansSerif" = "straightSerifless" -selector.ZDesc = "straightTopSerifed" +selector.ZDesc = "straightTopSerifedWithCrossbar" [prime.capital-z.variants.straight-serifed-with-horizontal-crossbar] rank = 9 @@ -1505,7 +1505,7 @@ selector.Z = "straightSerifedWithHorizontalCrossBar" selector."Z/sansSerif" = "straightSeriflessWithHorizontalCrossBar" selector."Z/reduced" = "straightSerifed" selector."Z/reduced/sansSerif" = "straightSerifless" -selector.ZDesc = "straightTopSerifed" +selector.ZDesc = "straightTopSerifedWithHorizontalCrossBar" [prime.capital-z.variants.curly-serifed] rank = 10 @@ -1523,7 +1523,7 @@ selector.Z = "curlySerifedWithCrossBar" selector."Z/sansSerif" = "curlySeriflessWithCrossBar" selector."Z/reduced" = "curlySerifed" selector."Z/reduced/sansSerif" = "curlySerifless" -selector.ZDesc = "curlyTopSerifed" +selector.ZDesc = "curlyTopSerifedWithCrossbar" [prime.capital-z.variants.curly-serifed-with-horizontal-crossbar] rank = 12 @@ -1532,7 +1532,7 @@ selector.Z = "curlySerifedWithHorizontalCrossBar" selector."Z/sansSerif" = "curlySeriflessWithHorizontalCrossBar" selector."Z/reduced" = "curlySerifed" selector."Z/reduced/sansSerif" = "curlySerifless" -selector.ZDesc = "curlyTopSerifed" +selector.ZDesc = "curlyTopSerifedWithHorizontalCrossBar" [prime.capital-z.variants.straight-bottom-serifed] rank = 13 @@ -1550,7 +1550,7 @@ selector.Z = "straightBottomSerifedWithCrossbar" selector."Z/sansSerif" = "straightSeriflessWithCrossBar" selector."Z/reduced" = "straightBottomSerifed" selector."Z/reduced/sansSerif" = "straightSerifless" -selector.ZDesc = "straightSerifless" +selector.ZDesc = "straightSeriflessWithCrossBar" [prime.capital-z.variants.straight-bottom-serifed-with-horizontal-crossbar] rank = 15 @@ -1559,7 +1559,7 @@ selector.Z = "straightBottomSerifedWithHorizontalCrossBar" selector."Z/sansSerif" = "straightSeriflessWithHorizontalCrossBar" selector."Z/reduced" = "straightBottomSerifed" selector."Z/reduced/sansSerif" = "straightSerifless" -selector.ZDesc = "straightSerifless" +selector.ZDesc = "straightSeriflessWithHorizontalCrossBar" [prime.capital-z.variants.curly-bottom-serifed-with-crossbar] rank = 16 @@ -1577,7 +1577,7 @@ selector.Z = "curlyBottomSerifedWithCrossbar" selector."Z/sansSerif" = "curlySeriflessWithCrossBar" selector."Z/reduced" = "curlyBottomSerifed" selector."Z/reduced/sansSerif" = "curlySerifless" -selector.ZDesc = "curlySerifless" +selector.ZDesc = "curlySeriflessWithCrossBar" [prime.capital-z.variants.curly-bottom-serifed] rank = 18 @@ -1586,7 +1586,7 @@ selector.Z = "curlyBottomSerifedWithHorizontalCrossBar" selector."Z/sansSerif" = "curlySeriflessWithHorizontalCrossBar" selector."Z/reduced" = "curlyBottomSerifed" selector."Z/reduced/sansSerif" = "curlySerifless" -selector.ZDesc = "curlySerifless" +selector.ZDesc = "curlySeriflessWithHorizontalCrossBar" [prime.capital-z.variants.straight-top-serifed] rank = 19 @@ -1604,7 +1604,7 @@ selector.Z = "straightTopSerifedWithCrossbar" selector."Z/sansSerif" = "straightSeriflessWithCrossBar" selector."Z/reduced" = "straightTopSerifed" selector."Z/reduced/sansSerif" = "straightSerifless" -selector.ZDesc = "straightTopSerifed" +selector.ZDesc = "straightTopSerifedWithCrossbar" [prime.capital-z.variants.straight-top-serifed-with-horizontal-crossbar] rank = 21 @@ -1613,7 +1613,7 @@ selector.Z = "straightTopSerifedWithHorizontalCrossBar" selector."Z/sansSerif" = "straightSeriflessWithHorizontalCrossBar" selector."Z/reduced" = "straightTopSerifed" selector."Z/reduced/sansSerif" = "straightSerifless" -selector.ZDesc = "straightTopSerifed" +selector.ZDesc = "straightTopSerifedWithHorizontalCrossBar" [prime.capital-z.variants.curly-top-serifed] rank = 22 @@ -1631,7 +1631,7 @@ selector.Z = "curlyTopSerifedWithCrossbar" selector."Z/sansSerif" = "curlySeriflessWithCrossBar" selector."Z/reduced" = "curlyTopSerifed" selector."Z/reduced/sansSerif" = "curlySerifless" -selector.ZDesc = "curlyTopSerifed" +selector.ZDesc = "curlyTopSerifedWithCrossbar" [prime.capital-z.variants.curly-top-serifed-with-horizontal-crossbar] rank = 24 @@ -1640,7 +1640,7 @@ selector.Z = "curlyTopSerifedWithHorizontalCrossBar" selector."Z/sansSerif" = "curlySeriflessWithHorizontalCrossBar" selector."Z/reduced" = "curlyTopSerifed" selector."Z/reduced/sansSerif" = "curlySerifless" -selector.ZDesc = "curlyTopSerifed" +selector.ZDesc = "curlyTopSerifedWithHorizontalCrossBar" [prime.capital-z.variants.cursive] rank = 25 @@ -1658,7 +1658,7 @@ selector.Z = "cursiveWithCrossBar" selector."Z/sansSerif" = "cursiveWithCrossBar" selector."Z/reduced" = "cursive" selector."Z/reduced/sansSerif" = "cursive" -selector.ZDesc = "cursive" +selector.ZDesc = "cursiveWithCrossBar" [prime.capital-z.variants.cursive-with-horizontal-crossbar] rank = 27 @@ -1667,7 +1667,7 @@ selector.Z = "cursiveWithHorizontalCrossBar" selector."Z/sansSerif" = "cursiveWithHorizontalCrossBar" selector."Z/reduced" = "cursive" selector."Z/reduced/sansSerif" = "cursive" -selector.ZDesc = "cursive" +selector.ZDesc = "cursiveWithHorizontalCrossBar" @@ -4034,7 +4034,6 @@ description = "Straight `z` without serifs" selector.z = "straightSerifless" selector."z/sansSerif" = "straightSerifless" selector."z/reduced" = "straightSerifless" -selector."z/reduced/rtailBase" = "straightSerifless" selector.zDesc = "straightSerifless" [prime.z.variants.straight-serifless-with-crossbar] @@ -4043,8 +4042,7 @@ description = "Straight `z` with a diagonal crossbar, and without serifs" selector.z = "straightSeriflessWithCrossBar" selector."z/sansSerif" = "straightSeriflessWithCrossBar" selector."z/reduced" = "straightSerifless" -selector."z/reduced/rtailBase" = "straightSerifless" -selector.zDesc = "straightSerifless" +selector.zDesc = "straightSeriflessWithCrossBar" [prime.z.variants.straight-serifless-with-horizontal-crossbar] rank = 3 @@ -4052,8 +4050,7 @@ description = "Straight `z` with a horizontal crossbar, and without serifs" selector.z = "straightSeriflessWithHorizontalCrossBar" selector."z/sansSerif" = "straightSeriflessWithHorizontalCrossBar" selector."z/reduced" = "straightSerifless" -selector."z/reduced/rtailBase" = "straightSerifless" -selector.zDesc = "straightSerifless" +selector.zDesc = "straightSeriflessWithHorizontalCrossBar" [prime.z.variants.curly-serifless] rank = 4 @@ -4061,7 +4058,6 @@ description = "Curly `z` without serifs" selector.z = "curlySerifless" selector."z/sansSerif" = "curlySerifless" selector."z/reduced" = "curlySerifless" -selector."z/reduced/rtailBase" = "curlySerifless" selector.zDesc = "curlySerifless" [prime.z.variants.curly-serifless-with-crossbar] @@ -4070,8 +4066,7 @@ description = "Curly `z` with a diagonal crossbar, and without serifs" selector.z = "curlySeriflessWithCrossBar" selector."z/sansSerif" = "curlySeriflessWithCrossBar" selector."z/reduced" = "curlySerifless" -selector."z/reduced/rtailBase" = "curlySerifless" -selector.zDesc = "curlySerifless" +selector.zDesc = "curlySeriflessWithCrossBar" [prime.z.variants.curly-serifless-with-horizontal-crossbar] rank = 6 @@ -4079,8 +4074,7 @@ description = "Curly `z` with a horizontal crossbar, and without serifs" selector.z = "curlySeriflessWithHorizontalCrossBar" selector."z/sansSerif" = "curlySeriflessWithHorizontalCrossBar" selector."z/reduced" = "curlySerifless" -selector."z/reduced/rtailBase" = "curlySerifless" -selector.zDesc = "curlySerifless" +selector.zDesc = "curlySeriflessWithHorizontalCrossBar" [prime.z.variants.straight-serifed] rank = 7 @@ -4088,7 +4082,6 @@ description = "Straight `z` with top and bottom serifs" selector.z = "straightSerifed" selector."z/sansSerif" = "straightSerifless" selector."z/reduced" = "straightSerifed" -selector."z/reduced/rtailBase" = "straightSerifed" selector.zDesc = "straightTopSerifed" [prime.z.variants.straight-serifed-with-crossbar] @@ -4097,8 +4090,7 @@ description = "Straight `z` with a diagonal crossbar and serifs" selector.z = "straightSerifedWithCrossBar" selector."z/sansSerif" = "straightSeriflessWithCrossBar" selector."z/reduced" = "straightSerifed" -selector."z/reduced/rtailBase" = "straightSerifed" -selector.zDesc = "straightTopSerifed" +selector.zDesc = "straightTopSerifedWithCrossbar" [prime.z.variants.straight-serifed-with-horizontal-crossbar] rank = 9 @@ -4106,8 +4098,7 @@ description = "Straight `z` with a horizontal crossbar and serifs" selector.z = "straightSerifedWithHorizontalCrossBar" selector."z/sansSerif" = "straightSeriflessWithHorizontalCrossBar" selector."z/reduced" = "straightSerifed" -selector."z/reduced/rtailBase" = "straightSerifed" -selector.zDesc = "straightTopSerifed" +selector.zDesc = "straightTopSerifedWithHorizontalCrossBar" [prime.z.variants.curly-serifed] rank = 10 @@ -4115,7 +4106,6 @@ description = "Curly `z` woth top and bottom serifs" selector.z = "curlySerifed" selector."z/sansSerif" = "curlySerifless" selector."z/reduced" = "curlySerifed" -selector."z/reduced/rtailBase" = "curlySerifed" selector.zDesc = "curlyTopSerifed" [prime.z.variants.curly-serifed-with-crossbar] @@ -4124,8 +4114,7 @@ description = "Curly `z` with a diagonal crossbar and serifs" selector.z = "curlySerifedWithCrossBar" selector."z/sansSerif" = "curlySeriflessWithCrossBar" selector."z/reduced" = "curlySerifed" -selector."z/reduced/rtailBase" = "curlySerifed" -selector.zDesc = "curlyTopSerifed" +selector.zDesc = "curlyTopSerifedWithCrossbar" [prime.z.variants.curly-serifed-with-horizontal-crossbar] rank = 12 @@ -4133,8 +4122,7 @@ description = "Curly `z` with a horizontal crossbar and serifs" selector.z = "curlySerifedWithHorizontalCrossBar" selector."z/sansSerif" = "curlySeriflessWithHorizontalCrossBar" selector."z/reduced" = "curlySerifed" -selector."z/reduced/rtailBase" = "curlySerifed" -selector.zDesc = "curlyTopSerifed" +selector.zDesc = "curlyTopSerifedWithHorizontalCrossBar" [prime.z.variants.straight-bottom-serifed] rank = 13 @@ -4142,7 +4130,6 @@ description = "Standard `z` with serif at bottom" selector.z = "straightBottomSerifed" selector."z/sansSerif" = "straightSerifless" selector."z/reduced" = "straightBottomSerifed" -selector."z/reduced/rtailBase" = "straightBottomSerifed" selector.zDesc = "straightSerifless" [prime.z.variants.straight-bottom-serifed-with-crossbar] @@ -4151,8 +4138,7 @@ description = "Standard `z` with a diagonal crossbar and serif at bottom" selector.z = "straightBottomSerifedWithCrossbar" selector."z/sansSerif" = "straightSeriflessWithCrossBar" selector."z/reduced" = "straightBottomSerifed" -selector."z/reduced/rtailBase" = "straightBottomSerifed" -selector.zDesc = "straightSerifless" +selector.zDesc = "straightSeriflessWithCrossBar" [prime.z.variants.straight-bottom-serifed-with-horizontal-crossbar] rank = 15 @@ -4160,8 +4146,7 @@ description = "Standard `z` with a horizontal crossbar and serif at bottom" selector.z = "straightBottomSerifedWithHorizontalCrossBar" selector."z/sansSerif" = "straightSeriflessWithHorizontalCrossBar" selector."z/reduced" = "straightBottomSerifed" -selector."z/reduced/rtailBase" = "straightBottomSerifed" -selector.zDesc = "straightSerifless" +selector.zDesc = "straightSeriflessWithHorizontalCrossBar" [prime.z.variants.curly-bottom-serifed-with-crossbar] rank = 16 @@ -4169,7 +4154,6 @@ description = "Curly `z` with serif at bottom" selector.z = "curlyBottomSerifed" selector."z/sansSerif" = "curlySerifless" selector."z/reduced" = "curlyBottomSerifed" -selector."z/reduced/rtailBase" = "curlyBottomSerifed" selector.zDesc = "curlySerifless" [prime.z.variants.curly-bottom-serifed-with-horizontal-crossbar] @@ -4178,8 +4162,7 @@ description = "Curly `z` with a diagonal crossbar and serif at bottom" selector.z = "curlyBottomSerifedWithCrossbar" selector."z/sansSerif" = "curlySeriflessWithCrossBar" selector."z/reduced" = "curlyBottomSerifed" -selector."z/reduced/rtailBase" = "curlyBottomSerifed" -selector.zDesc = "curlySerifless" +selector.zDesc = "curlySeriflessWithCrossBar" [prime.z.variants.curly-bottom-serifed] rank = 18 @@ -4187,8 +4170,7 @@ description = "Curly `z` with a horizontal crossbar and serif at bottom" selector.z = "curlyBottomSerifedWithHorizontalCrossBar" selector."z/sansSerif" = "curlySeriflessWithHorizontalCrossBar" selector."z/reduced" = "curlyBottomSerifed" -selector."z/reduced/rtailBase" = "curlyBottomSerifed" -selector.zDesc = "curlySerifless" +selector.zDesc = "curlySeriflessWithHorizontalCrossBar" [prime.z.variants.straight-top-serifed] rank = 19 @@ -4196,7 +4178,6 @@ description = "Standard `z` with serif at top" selector.z = "straightTopSerifed" selector."z/sansSerif" = "straightSerifless" selector."z/reduced" = "straightTopSerifed" -selector."z/reduced/rtailBase" = "straightTopSerifed" selector.zDesc = "straightTopSerifed" [prime.z.variants.straight-top-serifed-with-crossbar] @@ -4205,8 +4186,7 @@ description = "Standard `z` with a diagonal crossbar and serif at top" selector.z = "straightTopSerifedWithCrossbar" selector."z/sansSerif" = "straightSeriflessWithCrossBar" selector."z/reduced" = "straightTopSerifed" -selector."z/reduced/rtailBase" = "straightTopSerifed" -selector.zDesc = "straightTopSerifed" +selector.zDesc = "straightTopSerifedWithCrossbar" [prime.z.variants.straight-top-serifed-with-horizontal-crossbar] rank = 21 @@ -4214,8 +4194,7 @@ description = "Standard `z` with a horizontal crossbar and serif at top" selector.z = "straightTopSerifedWithHorizontalCrossBar" selector."z/sansSerif" = "straightSeriflessWithHorizontalCrossBar" selector."z/reduced" = "straightTopSerifed" -selector."z/reduced/rtailBase" = "straightTopSerifed" -selector.zDesc = "straightTopSerifed" +selector.zDesc = "straightTopSerifedWithHorizontalCrossBar" [prime.z.variants.curly-top-serifed] rank = 22 @@ -4223,7 +4202,6 @@ description = "Curly `z` with serif at top" selector.z = "curlyTopSerifed" selector."z/sansSerif" = "curlySerifless" selector."z/reduced" = "curlyTopSerifed" -selector."z/reduced/rtailBase" = "curlyTopSerifed" selector.zDesc = "curlyTopSerifed" [prime.z.variants.curly-top-serifed-with-crossbar] @@ -4232,8 +4210,7 @@ description = "Curly `z` with a diagonal crossbar and serif at top" selector.z = "curlyTopSerifedWithCrossbar" selector."z/sansSerif" = "curlySeriflessWithCrossBar" selector."z/reduced" = "curlyTopSerifed" -selector."z/reduced/rtailBase" = "curlyTopSerifed" -selector.zDesc = "curlyTopSerifed" +selector.zDesc = "curlyTopSerifedWithCrossbar" [prime.z.variants.curly-top-serifed-with-horizontal-crossbar] rank = 24 @@ -4241,8 +4218,7 @@ description = "Curly `z` with a horizontal crossbar and serif at top" selector.z = "curlyTopSerifedWithHorizontalCrossBar" selector."z/sansSerif" = "curlySeriflessWithHorizontalCrossBar" selector."z/reduced" = "curlyTopSerifed" -selector."z/reduced/rtailBase" = "curlyTopSerifed" -selector.zDesc = "curlyTopSerifed" +selector.zDesc = "curlyTopSerifedWithHorizontalCrossBar" [prime.z.variants.cursive] rank = 25 @@ -4250,7 +4226,6 @@ description = "Cursive `z`" selector.z = "cursive" selector."z/sansSerif" = "cursive" selector."z/reduced" = "cursive" -selector."z/reduced/rtailBase" = "cursiveRTBase" selector.zDesc = "cursive" [prime.z.variants.cursive-with-crossbar] @@ -4259,8 +4234,7 @@ description = "Cursive `z` with a diagonal cross bar" selector.z = "cursiveWithCrossBar" selector."z/sansSerif" = "cursiveWithCrossBar" selector."z/reduced" = "cursive" -selector."z/reduced/rtailBase" = "cursiveRTBase" -selector.zDesc = "cursive" +selector.zDesc = "cursiveWithCrossBar" [prime.z.variants.cursive-with-horizontal-crossbar] rank = 27 @@ -4268,8 +4242,7 @@ description = "Cursive `z` with a horizontal cross bar" selector.z = "cursiveWithHorizontalCrossBar" selector."z/sansSerif" = "cursiveWithHorizontalCrossBar" selector."z/reduced" = "cursive" -selector."z/reduced/rtailBase" = "cursiveRTBase" -selector.zDesc = "cursive" +selector.zDesc = "cursiveWithHorizontalCrossBar"