Make variant selector of Z and z able to influence all derivatives (#1064).

This commit is contained in:
be5invis 2021-05-25 02:21:13 -07:00
parent e2f6de1866
commit dd19fc26ad
5 changed files with 231 additions and 246 deletions

View file

@ -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).
* 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).

View file

@ -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

View file

@ -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

View file

@ -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'

View file

@ -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"