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`). - Helm symbol (`U+2388`).
- Heavy Black Heart (`U+2764`) (#920). - Heavy Black Heart (`U+2764`) (#920).
- Squared Three D ... Squared VOD (`U+1F19B` ... `U+1F1AC`). - Squared Three D ... Squared VOD (`U+1F19B` ... `U+1F1AC`).
* Add variants and stylistic sets:
* Add tailed variants for Cyrillic El, En, Che, Yery and Ya (#972). - 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 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 top-left serifed variant for `m` (#1052).
* Add SS18 to represent Input Mono (#990). - Add SS18 to represent Input Mono (#990).
* Fix misplaced descender on `U+04AD` (#1005). * Fixes of variant selector application on derived letters or letter forms, including:
* Fix inconsistent serif on italic variants of Cyrillic En (#1006). - Cyrillic En (#1006).
* Fix inconsistent serifs on letters with retroflex hooks, like `U+1D99` and `U+01AE` (#1008). - Small U with Retroflex Hook (`U+1D99`) and Capital T with Retroflex Hook (`U+01AE`) (#1008).
* Balance stroke width of curly W/w in bold weights (#1011). - Derivatives of Latin Small Letter L (#1015).
* Fix gap in the curly variant of `U+A75A` and `U+A75B` (#1012). - Latin Small Ligature Fi (`U+FB01`), Latin Small Ligature Fl (`U+FB02`) (#1015).
* Make CV feature for `l` effective on more derived letters (#1015). - Latin Small Letter Ue (`U+1D6B`) (#1022).
* Fix wrong serifs on italic `U+1D2B` (#1014). - Latin Capital Letter AE (`U+00C6`), Latin Capital Letter OE (`U+0152`) and derivatives (#1031).
* Fix missing serifs on `U+018E` and `U+1D32` (#1016). - Polytonic Greek letters with dual-diacritics (#1031).
* Fix wrong serifs on italic `U+1D78` (#1017). - Latin Capital B with Stroke (`U+0243`) and derivatives (#1033).
* Increase visibility of Cyrillic Descender (#1018). - Latin Capital Letter F With Hook (`U+0191`) (#1038).
* Fix wrong serifs on italic `U+2141` (#1019). - Latin Capital Letter K With Hook (`U+0198`), Latin Small Letter K with Hook (`U+0199`) (#1042).
* Fix missing serif on `U+1D6B` (#1022). - Naira Sign (`U+20A6`) (#1045).
* Increase oval size of Cyrillic Be (`U+0431`) (#1023). - Greek Lunate Sigma (`U+03F9`) and derivatives (#1046).
* Fix shape of `U+A7F8` (#1024). - P with Hook (`U+01A4`), Ruble sign (`U+20BD`) (#1047).
* Fix inconsistent serif on `U+00B5` (#1025). - Yr (`U+01A6`), R-rotunda (`U+A75A`, `U+A75B`) (#1049).
* Make lowercase Cyrillic Em wider (Aile/Etoile) (#1028). - Hwair (`U+01F6`), Cyrillic Capital Nje (`U+040A`) (#1059).
* Force all variants of mathematical sans-serif characters to remove all serifs, including motion serifs (#1030). - Cyrillic Izhitsa (`U+0474`) (#1061).
* Fix broken variant selectors for Polytonic Greek letters with dual-diacritics (#1031). - Latin Capital Letter W with Hook (`U+2C72`), Latin Small Letter W with Hook (`U+2C73`) (#1062).
* Make variant selectors of `A` and `E` able to influence AE and OE letters (#1031). - Latin Capital Letter Z with Swash Tail (`U+2C7F`), Latin Small Letter Z with Swash Tail (`U+0240`) (#1064).
* Make combining parentheses more significant (#1032). * Fix incorrect or inconsistent serifs for Slab, including:
* Make `cv02` apply to B with bar (#1033). - Cyrillic Small Capital El (`U+1D2B`) (#1014).
* Fix shape of Copyleft Symbol `U+1F12F` (#1034). - Latin Capital Reversed E (`U+018E`) and Modifier Capital Reversed E (`U+1D32`) (#1016).
* Fix incorrect mapping of `U+037B` and `U+03FD` (#1036). - Modifier Cyrillic En (`U+1D78`) under Italic (#1017).
* Correct glyph of `U+2411` (#1037). - Turned Sans-Serif Capital G (`U+2141`) (#1019).
* Make `cv06` able to influence `U+0191` (#1038). - Micro Sign (`U+00B5`) (#1025).
* Fix incorrect glyph shape mapping of `U+22F0` and `U+22F1` (#1039). - All mathematical sans-serif letters under any CV/SS application (#1030).
* Fix missing serifs on `U+0198` and `U+0199` (#1042). * Geometry fixes:
* Fix missing dot on `U+1DA4` (#1043). - Fix misplaced descender on Cyrillic Small Letter Te With Descender (`U+04AD`) (#1005).
* Fix missing variants of `U+20A6` (#1045). - Fix gap in the curly variant of R-rotunda (`U+A75A`, `U+A75B`) (#1012).
* Fix missing serifs on capital Greek lunate sigmas (#1046). - Fix incorrect shape of Modifier Letter Capital H with Stroke (`U+A7F8`) (#1024).
* Make `cv15` able to influence P with Hook (`U+01A4`) and Ruble sign (`U+20BD`) (#1047, #1056). - Fix shape of Copyleft Symbol (`U+1F12F`) (#1034).
* Make `cv17` able to influence Yr (`U+01A6`) and R-rotunda (`U+A75A`, `U+A75B`) (#1049). - Fix incorrect mapping of Greek Small Reversed Lunate Sigma Symbol (`U+037B`) and Greek Capital Reversed Lunate Sigma Symbol (`U+03FD`) (#1036).
* Fix incorrect slope of Circled Italic Latin Capital Letter C (`U+1F12B`) and Circled Italic Latin Capital Letter R (`U+1F12C`) (#1051). - Fix incorrect shape of Symbol For Device Control One (`U+2411`) (#1037).
* Make `cv08` able to influence Hwair (`U+01F6`) and Cyrillic Capital Letter Nje (`U+040A`) (#1059). - Fix incorrect glyph shape mapping of Up Right Diagonal Ellipsis (`U+22F0`) and Down Right Diagonal Ellipsis (`U+22F1`) (#1039).
* Fix missing serifs of Cyrillic Izhitsa (#1061). - Fix missing dot on Modifier Letter Small I With Stroke (`U+1DA4`) (#1043).
* Fix incomplete variants of `U+2C72` (#1062). - 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 ###### Automatic builds
$$include '../../meta/macros.ptl' $$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' import [fallback] from '../../support/utils'
glyph-module glyph-module
@ -32,11 +32,6 @@ glyph-block AutoBuild-Accents : begin
set parts.(j) [query-glyph 'ogonekTR'] set parts.(j) [query-glyph 'ogonekTR']
define [subParts parts] : begin 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 # Handle dotless
local hasMarkAbove false local hasMarkAbove false
foreach p [items-of parts] : if [isAboveMark p] : set hasMarkAbove true 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 define stdShrink : clamp 0.75 0.9 : StrokeWidthBlend 0.78 0.9
createPhoneticLigatures 'phonetic' para.diversityM stdShrink stdShrink 1 1 : list 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 0x02A4 { 'd/phoneticLeft' 'ezh' } 'if'
list 0x02A5 { 'd/phoneticLeft' 'zCurlyTail' } 'if' list 0x02A5 { 'd/phoneticLeft' 'zCurlyTail' } 'if'
list 0x02A6 { 't.phoneticLeft' 's/phoneticRight' } 'b' list 0x02A6 { 't.phoneticLeft' 's/phoneticRight' } 'b'
@ -1203,7 +1203,7 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin
list 0x02A8 { 't.phoneticLeft' 'cCurlyTail' } 'b' list 0x02A8 { 't.phoneticLeft' 'cCurlyTail' } 'b'
list 0x02A9 { 'f/phoneticLeft' 'eng.straightTopLeftSerifed' } 'if' list 0x02A9 { 'f/phoneticLeft' 'eng.straightTopLeftSerifed' } 'if'
list 0x02AA { 'l/phoneticLeft' 's/phoneticRight' } 'b' 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 0xAB66 { 'd/phoneticLeft' 'zRTailBR' } 'if'
list 0xAB67 { 't.phoneticLeft' 'sRTail' } null 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-Blackboard : BBS BBD
glyph-block-import Letter-Latin-X : XStrand 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 [ZSerifless top] : glyph-proc
define [ZStdSerifs top] : glyph-proc define [ZStdSerifs top] : glyph-proc
@ -26,40 +33,40 @@ glyph-block Letter-Latin-Z : begin
define [ZMotionSerifsT top] : glyph-proc define [ZMotionSerifsT top] : glyph-proc
include : tagged 'serifLT' : DownwardLeftSerif SB top VJut include : tagged 'serifLT' : DownwardLeftSerif SB top VJut
define [ZBaseShape] : glyph-proc define [ZBaseShape mode] : glyph-proc
local cor : 1.15 * HVContrast local cor : 1.15 * HVContrast
include : tagged 'strokeTop' : HBarTop SB RightSB CAP include : tagged 'strokeTop' : HBarTop SB RightSB CAP
include : spiro-outline include : spiro-outline
corner SB Stroke corner SB [if (mode === MODE-ZSWASH) 0 Stroke]
corner (RightSB - Stroke * cor) (CAP - Stroke) corner (RightSB - Stroke * cor) (CAP - Stroke)
corner RightSB (CAP - Stroke) corner RightSB (CAP - Stroke)
corner (SB + Stroke * cor) Stroke corner (SB + Stroke * cor) [if (mode === MODE-ZSWASH) 0 Stroke]
include : tagged 'strokeBottom' : HBarBottom SB RightSB 0 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 : tagged 'strokeTop' : HBarTop SB (RightSB - Stroke * HVContrast) CAP
include : XStrand false SLAB SB 0 RightSB CAP 0.125 0.4 0.32 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 [HBarOver] : refer-glyph 'barOver'
define [DBarOver] : refer-glyph 'antiSlashOver' define [DBarOver] : refer-glyph 'antiSlashOver'
define [SmallZBaseShape] : glyph-proc define [SmallZBaseShape mode] : glyph-proc
local cor : 1.2 * HVContrast local cor : 1.2 * HVContrast
include : tagged 'strokeTop' : HBarTop SB RightSB XH include : tagged 'strokeTop' : HBarTop SB RightSB XH
include : spiro-outline include : spiro-outline
corner SB Stroke corner SB [if (mode === MODE-ZSWASH) 0 Stroke]
corner (RightSB - Stroke * cor) (XH - Stroke) corner (RightSB - Stroke * cor) (XH - Stroke)
corner RightSB (XH - Stroke) corner RightSB (XH - Stroke)
corner (SB + Stroke * cor) Stroke corner (SB + Stroke * cor) [if (mode === MODE-ZSWASH) 0 Stroke]
include : tagged 'strokeBottom' : HBarBottom SB RightSB 0 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 : tagged 'strokeTop' : HBarTop SB (RightSB - Stroke * HVContrast) XH
include : XStrand false SLAB SB 0 RightSB XH 0.125 0.4 0.36 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 hookTerminalWidth : AdviceStroke 3.5
define xDiagWidth : 1 * Stroke define xDiagWidth : 1 * Stroke
define yFootHeight : Math.max (0.15 * top) (Stroke * 0.625) define yFootHeight : Math.max (0.15 * top) (Stroke * 0.625)
@ -87,7 +94,15 @@ glyph-block Letter-Latin-Z : begin
flat [mix (SB + xMockTailDepth) RightSB kTop] (top - kTop * yTailDepth) flat [mix (SB + xMockTailDepth) RightSB kTop] (top - kTop * yTailDepth)
curl RightSB (top - yTailDepth) curl RightSB (top - yTailDepth)
include : spiro-outline include : match mode
[Just MODE-ZSWASH] : spiro-outline
corner SB 0
corner (RightSB - xDiagWidth) (top - yFootHeight)
corner (RightSB - xDiagWidth) top
corner RightSB top
corner RightSB (top - kFoot * yFootHeight)
corner (SB + xDiagWidth) 0
__ : spiro-outline
corner SB 0 corner SB 0
corner SB (kFoot * yFootHeight) corner SB (kFoot * yFootHeight)
corner (RightSB - xDiagWidth) (top - yFootHeight) corner (RightSB - xDiagWidth) (top - yFootHeight)
@ -97,7 +112,24 @@ glyph-block Letter-Latin-Z : begin
corner (SB + xDiagWidth) yFootHeight corner (SB + xDiagWidth) yFootHeight
corner (SB + xDiagWidth) 0 corner (SB + xDiagWidth) 0
if [not fRTB] : include : tagged 'strokeBottom' : intersection 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 spiro-outline
corner (SB + xDiagWidth) yFootHeight corner (SB + xDiagWidth) yFootHeight
corner (SB + xDiagWidth) (-top) corner (SB + xDiagWidth) (-top)
@ -113,25 +145,8 @@ glyph-block Letter-Latin-Z : begin
flat [mix (RightSB - xHookDepth) SB kBot] (kBot * yTailDepth) flat [mix (RightSB - xHookDepth) SB kBot] (kBot * yTailDepth)
curl SB (yTailDepth) curl SB (yTailDepth)
if fRTB : include : tagged 'strokeBottom' : intersection define [ZCursiveShape mode] : ZCursiveShapeImpl CAP mode
spiro-outline define [SmallZCursiveShape mode] : ZCursiveShapeImpl XH mode
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)
define [ZCursiveShape] : ZCursiveShapeImpl CAP
define [SmallZCursiveShape] : ZCursiveShapeImpl XH
define [SmallZCursiveRTB] : ZCursiveShapeImpl XH 1
define [NoBottomStrokeMask top] : glyph-proc define [NoBottomStrokeMask top] : glyph-proc
define [CurlyBottomStrokeMask top] : spiro-outline define [CurlyBottomStrokeMask top] : spiro-outline
@ -147,6 +162,13 @@ glyph-block Letter-Latin-Z : begin
archv archv
straight.down.end RightSB (-Hook) [widths.heading 0 Stroke Downward] 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 define ZConfig : object
straightSerifless { ZBaseShape SmallZBaseShape ZSerifless null NoBottomStrokeMask } straightSerifless { ZBaseShape SmallZBaseShape ZSerifless null NoBottomStrokeMask }
straightSeriflessWithCrossBar { ZBaseShape SmallZBaseShape ZSerifless DBarOver NoBottomStrokeMask } straightSeriflessWithCrossBar { ZBaseShape SmallZBaseShape ZSerifless DBarOver NoBottomStrokeMask }
@ -175,12 +197,11 @@ glyph-block Letter-Latin-Z : begin
cursive { ZCursiveShape SmallZCursiveShape ZSerifless null NoBottomStrokeMask } cursive { ZCursiveShape SmallZCursiveShape ZSerifless null NoBottomStrokeMask }
cursiveWithCrossBar { ZCursiveShape SmallZCursiveShape ZSerifless DBarOver NoBottomStrokeMask } cursiveWithCrossBar { ZCursiveShape SmallZCursiveShape ZSerifless DBarOver NoBottomStrokeMask }
cursiveWithHorizontalCrossBar { ZCursiveShape SmallZCursiveShape ZSerifless HBarOver NoBottomStrokeMask } cursiveWithHorizontalCrossBar { ZCursiveShape SmallZCursiveShape ZSerifless HBarOver NoBottomStrokeMask }
cursiveRTBase { ZCursiveShape SmallZCursiveRTB ZSerifless null NoBottomStrokeMask }
foreach { suffix { capital small serifs slash bsMask } } [Object.entries ZConfig] : do foreach { suffix { capital small serifs slash bsMask } } [Object.entries ZConfig] : do
create-glyph "Z.\(suffix)" : glyph-proc create-glyph "Z.\(suffix)" : glyph-proc
include : MarkSet.capital include : MarkSet.capital
include : capital include : capital MODE-Z
if serifs : include : serifs CAP if serifs : include : serifs CAP
if slash : include : slash 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 include : VBarRight [mix SB RightSB 1.05] (HalfStroke - LongJut) Stroke
create-glyph "ZDTail.\(suffix)" : glyph-proc create-glyph "ZDTail.\(suffix)" : glyph-proc
include [refer-glyph "Z.\(suffix)"] AS_BASE ALSO_METRICS include : MarkSet.capital
eject-contour 'strokeBottom' include : capital MODE-ZDESC
if serifs : include : serifs CAP
if slash : include : slash CAP
eject-contour 'serifRB' eject-contour 'serifRB'
include : difference [DTailBottomStroke] [bsMask CAP] 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 create-glyph "z.\(suffix)" : glyph-proc
include : MarkSet.e include : MarkSet.e
include : small include : small MODE-Z
if serifs : include : serifs XH if serifs : include : serifs XH
if slash : include : slash XH if slash : include : slash XH
@ -206,15 +236,33 @@ glyph-block Letter-Latin-Z : begin
eject-contour 'serifRB' eject-contour 'serifRB'
include : VBarRight [mix SB RightSB 1.05] (HalfStroke - LongJut) Stroke 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 create-glyph "zDTail.\(suffix)" : glyph-proc
include [refer-glyph "z.\(suffix)"] AS_BASE ALSO_METRICS include : MarkSet.e
eject-contour 'strokeBottom' include : small MODE-ZDESC
if serifs : include : serifs XH
if slash : include : slash XH
eject-contour 'serifRB' eject-contour 'serifRB'
include : difference [DTailBottomStroke] [bsMask XH] 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 create-glyph "zCurlyTail.\(suffix)" : glyph-proc
include [refer-glyph "z.\(suffix)"] AS_BASE ALSO_METRICS include : MarkSet.e
eject-contour 'strokeBottom' include : small MODE-ZDESC
if serifs : include : serifs XH
if slash : include : slash XH
eject-contour 'serifRB' eject-contour 'serifRB'
local fine : AdviceStroke2 5 4 XH local fine : AdviceStroke2 5 4 XH
local rinner : Math.max (XH * 0.04) (fine * 0.1) 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 'smcpZ' 0x1D22 (shapeFrom -- 'z') (follow -- 'Z')
select-variant 'Z/reduced' (shapeFrom -- 'Z') select-variant 'Z/reduced' (shapeFrom -- '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'
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' 0x2C6B
select-variant 'zDesc' 0x2C6C select-variant 'zDesc' 0x2C6C
select-variant 'ZDTail' 0x224 (follow -- 'ZDesc') select-variant 'ZDTail' 0x224 (follow -- 'ZDesc')
select-variant 'zDTail' 0x225 (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 '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 define [BBZShape top] : glyph-proc
include : HBarTop SB RightSB top BBS 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' 0x2124 : composite-proc [MarkSet.capital] [BBZShape CAP]
create-glyph 'mathbb/z' 0x1D56B : composite-proc [MarkSet.e] [BBZShape XH] 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' 0x1B5 'Z/reduced' 'barOver'
CreateAccentedComposition 'zBar' 0x1B6 'z/reduced' 'barOver' CreateAccentedComposition 'zBar' 0x1B6 'z/reduced' 'barOver'
CreateAccentedComposition 'ZCaron' 0x17D 'Z/reduced' 'caronAbove' CreateAccentedComposition 'ZCaron' 0x17D 'Z' 'caronAbove'
CreateAccentedComposition 'zCaron' 0x17E 'z/reduced' 'caronAbove' CreateAccentedComposition 'zCaron' 0x17E 'z' 'caronAbove'
CreateAccentedComposition 'zRTailBR' 0x290 'z/reduced/rtailBase' 'rtailBR' CreateAccentedComposition 'zRTailBR' 0x290 'z/rtailBase' 'rtailBR'

View file

@ -1442,7 +1442,7 @@ selector.Z = "straightSeriflessWithCrossBar"
selector."Z/sansSerif" = "straightSeriflessWithCrossBar" selector."Z/sansSerif" = "straightSeriflessWithCrossBar"
selector."Z/reduced" = "straightSerifless" selector."Z/reduced" = "straightSerifless"
selector."Z/reduced/sansSerif" = "straightSerifless" selector."Z/reduced/sansSerif" = "straightSerifless"
selector.ZDesc = "straightSerifless" selector.ZDesc = "straightSeriflessWithCrossBar"
[prime.capital-z.variants.straight-serifless-with-horizontal-crossbar] [prime.capital-z.variants.straight-serifless-with-horizontal-crossbar]
rank = 3 rank = 3
@ -1451,7 +1451,7 @@ selector.Z = "straightSeriflessWithHorizontalCrossBar"
selector."Z/sansSerif" = "straightSeriflessWithHorizontalCrossBar" selector."Z/sansSerif" = "straightSeriflessWithHorizontalCrossBar"
selector."Z/reduced" = "straightSerifless" selector."Z/reduced" = "straightSerifless"
selector."Z/reduced/sansSerif" = "straightSerifless" selector."Z/reduced/sansSerif" = "straightSerifless"
selector.ZDesc = "straightSerifless" selector.ZDesc = "straightSeriflessWithHorizontalCrossBar"
[prime.capital-z.variants.curly-serifless] [prime.capital-z.variants.curly-serifless]
rank = 4 rank = 4
@ -1469,7 +1469,7 @@ selector.Z = "curlySeriflessWithCrossBar"
selector."Z/sansSerif" = "curlySeriflessWithCrossBar" selector."Z/sansSerif" = "curlySeriflessWithCrossBar"
selector."Z/reduced" = "curlySerifless" selector."Z/reduced" = "curlySerifless"
selector."Z/reduced/sansSerif" = "curlySerifless" selector."Z/reduced/sansSerif" = "curlySerifless"
selector.ZDesc = "curlySerifless" selector.ZDesc = "curlySeriflessWithCrossBar"
[prime.capital-z.variants.curly-serifless-with-horizontal-crossbar] [prime.capital-z.variants.curly-serifless-with-horizontal-crossbar]
rank = 6 rank = 6
@ -1478,7 +1478,7 @@ selector.Z = "curlySeriflessWithHorizontalCrossBar"
selector."Z/sansSerif" = "curlySeriflessWithHorizontalCrossBar" selector."Z/sansSerif" = "curlySeriflessWithHorizontalCrossBar"
selector."Z/reduced" = "curlySerifless" selector."Z/reduced" = "curlySerifless"
selector."Z/reduced/sansSerif" = "curlySerifless" selector."Z/reduced/sansSerif" = "curlySerifless"
selector.ZDesc = "curlySerifless" selector.ZDesc = "curlySeriflessWithHorizontalCrossBar"
[prime.capital-z.variants.straight-serifed] [prime.capital-z.variants.straight-serifed]
rank = 7 rank = 7
@ -1496,7 +1496,7 @@ selector.Z = "straightSerifedWithCrossBar"
selector."Z/sansSerif" = "straightSeriflessWithCrossBar" selector."Z/sansSerif" = "straightSeriflessWithCrossBar"
selector."Z/reduced" = "straightSerifed" selector."Z/reduced" = "straightSerifed"
selector."Z/reduced/sansSerif" = "straightSerifless" selector."Z/reduced/sansSerif" = "straightSerifless"
selector.ZDesc = "straightTopSerifed" selector.ZDesc = "straightTopSerifedWithCrossbar"
[prime.capital-z.variants.straight-serifed-with-horizontal-crossbar] [prime.capital-z.variants.straight-serifed-with-horizontal-crossbar]
rank = 9 rank = 9
@ -1505,7 +1505,7 @@ selector.Z = "straightSerifedWithHorizontalCrossBar"
selector."Z/sansSerif" = "straightSeriflessWithHorizontalCrossBar" selector."Z/sansSerif" = "straightSeriflessWithHorizontalCrossBar"
selector."Z/reduced" = "straightSerifed" selector."Z/reduced" = "straightSerifed"
selector."Z/reduced/sansSerif" = "straightSerifless" selector."Z/reduced/sansSerif" = "straightSerifless"
selector.ZDesc = "straightTopSerifed" selector.ZDesc = "straightTopSerifedWithHorizontalCrossBar"
[prime.capital-z.variants.curly-serifed] [prime.capital-z.variants.curly-serifed]
rank = 10 rank = 10
@ -1523,7 +1523,7 @@ selector.Z = "curlySerifedWithCrossBar"
selector."Z/sansSerif" = "curlySeriflessWithCrossBar" selector."Z/sansSerif" = "curlySeriflessWithCrossBar"
selector."Z/reduced" = "curlySerifed" selector."Z/reduced" = "curlySerifed"
selector."Z/reduced/sansSerif" = "curlySerifless" selector."Z/reduced/sansSerif" = "curlySerifless"
selector.ZDesc = "curlyTopSerifed" selector.ZDesc = "curlyTopSerifedWithCrossbar"
[prime.capital-z.variants.curly-serifed-with-horizontal-crossbar] [prime.capital-z.variants.curly-serifed-with-horizontal-crossbar]
rank = 12 rank = 12
@ -1532,7 +1532,7 @@ selector.Z = "curlySerifedWithHorizontalCrossBar"
selector."Z/sansSerif" = "curlySeriflessWithHorizontalCrossBar" selector."Z/sansSerif" = "curlySeriflessWithHorizontalCrossBar"
selector."Z/reduced" = "curlySerifed" selector."Z/reduced" = "curlySerifed"
selector."Z/reduced/sansSerif" = "curlySerifless" selector."Z/reduced/sansSerif" = "curlySerifless"
selector.ZDesc = "curlyTopSerifed" selector.ZDesc = "curlyTopSerifedWithHorizontalCrossBar"
[prime.capital-z.variants.straight-bottom-serifed] [prime.capital-z.variants.straight-bottom-serifed]
rank = 13 rank = 13
@ -1550,7 +1550,7 @@ selector.Z = "straightBottomSerifedWithCrossbar"
selector."Z/sansSerif" = "straightSeriflessWithCrossBar" selector."Z/sansSerif" = "straightSeriflessWithCrossBar"
selector."Z/reduced" = "straightBottomSerifed" selector."Z/reduced" = "straightBottomSerifed"
selector."Z/reduced/sansSerif" = "straightSerifless" selector."Z/reduced/sansSerif" = "straightSerifless"
selector.ZDesc = "straightSerifless" selector.ZDesc = "straightSeriflessWithCrossBar"
[prime.capital-z.variants.straight-bottom-serifed-with-horizontal-crossbar] [prime.capital-z.variants.straight-bottom-serifed-with-horizontal-crossbar]
rank = 15 rank = 15
@ -1559,7 +1559,7 @@ selector.Z = "straightBottomSerifedWithHorizontalCrossBar"
selector."Z/sansSerif" = "straightSeriflessWithHorizontalCrossBar" selector."Z/sansSerif" = "straightSeriflessWithHorizontalCrossBar"
selector."Z/reduced" = "straightBottomSerifed" selector."Z/reduced" = "straightBottomSerifed"
selector."Z/reduced/sansSerif" = "straightSerifless" selector."Z/reduced/sansSerif" = "straightSerifless"
selector.ZDesc = "straightSerifless" selector.ZDesc = "straightSeriflessWithHorizontalCrossBar"
[prime.capital-z.variants.curly-bottom-serifed-with-crossbar] [prime.capital-z.variants.curly-bottom-serifed-with-crossbar]
rank = 16 rank = 16
@ -1577,7 +1577,7 @@ selector.Z = "curlyBottomSerifedWithCrossbar"
selector."Z/sansSerif" = "curlySeriflessWithCrossBar" selector."Z/sansSerif" = "curlySeriflessWithCrossBar"
selector."Z/reduced" = "curlyBottomSerifed" selector."Z/reduced" = "curlyBottomSerifed"
selector."Z/reduced/sansSerif" = "curlySerifless" selector."Z/reduced/sansSerif" = "curlySerifless"
selector.ZDesc = "curlySerifless" selector.ZDesc = "curlySeriflessWithCrossBar"
[prime.capital-z.variants.curly-bottom-serifed] [prime.capital-z.variants.curly-bottom-serifed]
rank = 18 rank = 18
@ -1586,7 +1586,7 @@ selector.Z = "curlyBottomSerifedWithHorizontalCrossBar"
selector."Z/sansSerif" = "curlySeriflessWithHorizontalCrossBar" selector."Z/sansSerif" = "curlySeriflessWithHorizontalCrossBar"
selector."Z/reduced" = "curlyBottomSerifed" selector."Z/reduced" = "curlyBottomSerifed"
selector."Z/reduced/sansSerif" = "curlySerifless" selector."Z/reduced/sansSerif" = "curlySerifless"
selector.ZDesc = "curlySerifless" selector.ZDesc = "curlySeriflessWithHorizontalCrossBar"
[prime.capital-z.variants.straight-top-serifed] [prime.capital-z.variants.straight-top-serifed]
rank = 19 rank = 19
@ -1604,7 +1604,7 @@ selector.Z = "straightTopSerifedWithCrossbar"
selector."Z/sansSerif" = "straightSeriflessWithCrossBar" selector."Z/sansSerif" = "straightSeriflessWithCrossBar"
selector."Z/reduced" = "straightTopSerifed" selector."Z/reduced" = "straightTopSerifed"
selector."Z/reduced/sansSerif" = "straightSerifless" selector."Z/reduced/sansSerif" = "straightSerifless"
selector.ZDesc = "straightTopSerifed" selector.ZDesc = "straightTopSerifedWithCrossbar"
[prime.capital-z.variants.straight-top-serifed-with-horizontal-crossbar] [prime.capital-z.variants.straight-top-serifed-with-horizontal-crossbar]
rank = 21 rank = 21
@ -1613,7 +1613,7 @@ selector.Z = "straightTopSerifedWithHorizontalCrossBar"
selector."Z/sansSerif" = "straightSeriflessWithHorizontalCrossBar" selector."Z/sansSerif" = "straightSeriflessWithHorizontalCrossBar"
selector."Z/reduced" = "straightTopSerifed" selector."Z/reduced" = "straightTopSerifed"
selector."Z/reduced/sansSerif" = "straightSerifless" selector."Z/reduced/sansSerif" = "straightSerifless"
selector.ZDesc = "straightTopSerifed" selector.ZDesc = "straightTopSerifedWithHorizontalCrossBar"
[prime.capital-z.variants.curly-top-serifed] [prime.capital-z.variants.curly-top-serifed]
rank = 22 rank = 22
@ -1631,7 +1631,7 @@ selector.Z = "curlyTopSerifedWithCrossbar"
selector."Z/sansSerif" = "curlySeriflessWithCrossBar" selector."Z/sansSerif" = "curlySeriflessWithCrossBar"
selector."Z/reduced" = "curlyTopSerifed" selector."Z/reduced" = "curlyTopSerifed"
selector."Z/reduced/sansSerif" = "curlySerifless" selector."Z/reduced/sansSerif" = "curlySerifless"
selector.ZDesc = "curlyTopSerifed" selector.ZDesc = "curlyTopSerifedWithCrossbar"
[prime.capital-z.variants.curly-top-serifed-with-horizontal-crossbar] [prime.capital-z.variants.curly-top-serifed-with-horizontal-crossbar]
rank = 24 rank = 24
@ -1640,7 +1640,7 @@ selector.Z = "curlyTopSerifedWithHorizontalCrossBar"
selector."Z/sansSerif" = "curlySeriflessWithHorizontalCrossBar" selector."Z/sansSerif" = "curlySeriflessWithHorizontalCrossBar"
selector."Z/reduced" = "curlyTopSerifed" selector."Z/reduced" = "curlyTopSerifed"
selector."Z/reduced/sansSerif" = "curlySerifless" selector."Z/reduced/sansSerif" = "curlySerifless"
selector.ZDesc = "curlyTopSerifed" selector.ZDesc = "curlyTopSerifedWithHorizontalCrossBar"
[prime.capital-z.variants.cursive] [prime.capital-z.variants.cursive]
rank = 25 rank = 25
@ -1658,7 +1658,7 @@ selector.Z = "cursiveWithCrossBar"
selector."Z/sansSerif" = "cursiveWithCrossBar" selector."Z/sansSerif" = "cursiveWithCrossBar"
selector."Z/reduced" = "cursive" selector."Z/reduced" = "cursive"
selector."Z/reduced/sansSerif" = "cursive" selector."Z/reduced/sansSerif" = "cursive"
selector.ZDesc = "cursive" selector.ZDesc = "cursiveWithCrossBar"
[prime.capital-z.variants.cursive-with-horizontal-crossbar] [prime.capital-z.variants.cursive-with-horizontal-crossbar]
rank = 27 rank = 27
@ -1667,7 +1667,7 @@ selector.Z = "cursiveWithHorizontalCrossBar"
selector."Z/sansSerif" = "cursiveWithHorizontalCrossBar" selector."Z/sansSerif" = "cursiveWithHorizontalCrossBar"
selector."Z/reduced" = "cursive" selector."Z/reduced" = "cursive"
selector."Z/reduced/sansSerif" = "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 = "straightSerifless"
selector."z/sansSerif" = "straightSerifless" selector."z/sansSerif" = "straightSerifless"
selector."z/reduced" = "straightSerifless" selector."z/reduced" = "straightSerifless"
selector."z/reduced/rtailBase" = "straightSerifless"
selector.zDesc = "straightSerifless" selector.zDesc = "straightSerifless"
[prime.z.variants.straight-serifless-with-crossbar] [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 = "straightSeriflessWithCrossBar"
selector."z/sansSerif" = "straightSeriflessWithCrossBar" selector."z/sansSerif" = "straightSeriflessWithCrossBar"
selector."z/reduced" = "straightSerifless" selector."z/reduced" = "straightSerifless"
selector."z/reduced/rtailBase" = "straightSerifless" selector.zDesc = "straightSeriflessWithCrossBar"
selector.zDesc = "straightSerifless"
[prime.z.variants.straight-serifless-with-horizontal-crossbar] [prime.z.variants.straight-serifless-with-horizontal-crossbar]
rank = 3 rank = 3
@ -4052,8 +4050,7 @@ description = "Straight `z` with a horizontal crossbar, and without serifs"
selector.z = "straightSeriflessWithHorizontalCrossBar" selector.z = "straightSeriflessWithHorizontalCrossBar"
selector."z/sansSerif" = "straightSeriflessWithHorizontalCrossBar" selector."z/sansSerif" = "straightSeriflessWithHorizontalCrossBar"
selector."z/reduced" = "straightSerifless" selector."z/reduced" = "straightSerifless"
selector."z/reduced/rtailBase" = "straightSerifless" selector.zDesc = "straightSeriflessWithHorizontalCrossBar"
selector.zDesc = "straightSerifless"
[prime.z.variants.curly-serifless] [prime.z.variants.curly-serifless]
rank = 4 rank = 4
@ -4061,7 +4058,6 @@ description = "Curly `z` without serifs"
selector.z = "curlySerifless" selector.z = "curlySerifless"
selector."z/sansSerif" = "curlySerifless" selector."z/sansSerif" = "curlySerifless"
selector."z/reduced" = "curlySerifless" selector."z/reduced" = "curlySerifless"
selector."z/reduced/rtailBase" = "curlySerifless"
selector.zDesc = "curlySerifless" selector.zDesc = "curlySerifless"
[prime.z.variants.curly-serifless-with-crossbar] [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 = "curlySeriflessWithCrossBar"
selector."z/sansSerif" = "curlySeriflessWithCrossBar" selector."z/sansSerif" = "curlySeriflessWithCrossBar"
selector."z/reduced" = "curlySerifless" selector."z/reduced" = "curlySerifless"
selector."z/reduced/rtailBase" = "curlySerifless" selector.zDesc = "curlySeriflessWithCrossBar"
selector.zDesc = "curlySerifless"
[prime.z.variants.curly-serifless-with-horizontal-crossbar] [prime.z.variants.curly-serifless-with-horizontal-crossbar]
rank = 6 rank = 6
@ -4079,8 +4074,7 @@ description = "Curly `z` with a horizontal crossbar, and without serifs"
selector.z = "curlySeriflessWithHorizontalCrossBar" selector.z = "curlySeriflessWithHorizontalCrossBar"
selector."z/sansSerif" = "curlySeriflessWithHorizontalCrossBar" selector."z/sansSerif" = "curlySeriflessWithHorizontalCrossBar"
selector."z/reduced" = "curlySerifless" selector."z/reduced" = "curlySerifless"
selector."z/reduced/rtailBase" = "curlySerifless" selector.zDesc = "curlySeriflessWithHorizontalCrossBar"
selector.zDesc = "curlySerifless"
[prime.z.variants.straight-serifed] [prime.z.variants.straight-serifed]
rank = 7 rank = 7
@ -4088,7 +4082,6 @@ description = "Straight `z` with top and bottom serifs"
selector.z = "straightSerifed" selector.z = "straightSerifed"
selector."z/sansSerif" = "straightSerifless" selector."z/sansSerif" = "straightSerifless"
selector."z/reduced" = "straightSerifed" selector."z/reduced" = "straightSerifed"
selector."z/reduced/rtailBase" = "straightSerifed"
selector.zDesc = "straightTopSerifed" selector.zDesc = "straightTopSerifed"
[prime.z.variants.straight-serifed-with-crossbar] [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 = "straightSerifedWithCrossBar"
selector."z/sansSerif" = "straightSeriflessWithCrossBar" selector."z/sansSerif" = "straightSeriflessWithCrossBar"
selector."z/reduced" = "straightSerifed" selector."z/reduced" = "straightSerifed"
selector."z/reduced/rtailBase" = "straightSerifed" selector.zDesc = "straightTopSerifedWithCrossbar"
selector.zDesc = "straightTopSerifed"
[prime.z.variants.straight-serifed-with-horizontal-crossbar] [prime.z.variants.straight-serifed-with-horizontal-crossbar]
rank = 9 rank = 9
@ -4106,8 +4098,7 @@ description = "Straight `z` with a horizontal crossbar and serifs"
selector.z = "straightSerifedWithHorizontalCrossBar" selector.z = "straightSerifedWithHorizontalCrossBar"
selector."z/sansSerif" = "straightSeriflessWithHorizontalCrossBar" selector."z/sansSerif" = "straightSeriflessWithHorizontalCrossBar"
selector."z/reduced" = "straightSerifed" selector."z/reduced" = "straightSerifed"
selector."z/reduced/rtailBase" = "straightSerifed" selector.zDesc = "straightTopSerifedWithHorizontalCrossBar"
selector.zDesc = "straightTopSerifed"
[prime.z.variants.curly-serifed] [prime.z.variants.curly-serifed]
rank = 10 rank = 10
@ -4115,7 +4106,6 @@ description = "Curly `z` woth top and bottom serifs"
selector.z = "curlySerifed" selector.z = "curlySerifed"
selector."z/sansSerif" = "curlySerifless" selector."z/sansSerif" = "curlySerifless"
selector."z/reduced" = "curlySerifed" selector."z/reduced" = "curlySerifed"
selector."z/reduced/rtailBase" = "curlySerifed"
selector.zDesc = "curlyTopSerifed" selector.zDesc = "curlyTopSerifed"
[prime.z.variants.curly-serifed-with-crossbar] [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 = "curlySerifedWithCrossBar"
selector."z/sansSerif" = "curlySeriflessWithCrossBar" selector."z/sansSerif" = "curlySeriflessWithCrossBar"
selector."z/reduced" = "curlySerifed" selector."z/reduced" = "curlySerifed"
selector."z/reduced/rtailBase" = "curlySerifed" selector.zDesc = "curlyTopSerifedWithCrossbar"
selector.zDesc = "curlyTopSerifed"
[prime.z.variants.curly-serifed-with-horizontal-crossbar] [prime.z.variants.curly-serifed-with-horizontal-crossbar]
rank = 12 rank = 12
@ -4133,8 +4122,7 @@ description = "Curly `z` with a horizontal crossbar and serifs"
selector.z = "curlySerifedWithHorizontalCrossBar" selector.z = "curlySerifedWithHorizontalCrossBar"
selector."z/sansSerif" = "curlySeriflessWithHorizontalCrossBar" selector."z/sansSerif" = "curlySeriflessWithHorizontalCrossBar"
selector."z/reduced" = "curlySerifed" selector."z/reduced" = "curlySerifed"
selector."z/reduced/rtailBase" = "curlySerifed" selector.zDesc = "curlyTopSerifedWithHorizontalCrossBar"
selector.zDesc = "curlyTopSerifed"
[prime.z.variants.straight-bottom-serifed] [prime.z.variants.straight-bottom-serifed]
rank = 13 rank = 13
@ -4142,7 +4130,6 @@ description = "Standard `z` with serif at bottom"
selector.z = "straightBottomSerifed" selector.z = "straightBottomSerifed"
selector."z/sansSerif" = "straightSerifless" selector."z/sansSerif" = "straightSerifless"
selector."z/reduced" = "straightBottomSerifed" selector."z/reduced" = "straightBottomSerifed"
selector."z/reduced/rtailBase" = "straightBottomSerifed"
selector.zDesc = "straightSerifless" selector.zDesc = "straightSerifless"
[prime.z.variants.straight-bottom-serifed-with-crossbar] [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 = "straightBottomSerifedWithCrossbar"
selector."z/sansSerif" = "straightSeriflessWithCrossBar" selector."z/sansSerif" = "straightSeriflessWithCrossBar"
selector."z/reduced" = "straightBottomSerifed" selector."z/reduced" = "straightBottomSerifed"
selector."z/reduced/rtailBase" = "straightBottomSerifed" selector.zDesc = "straightSeriflessWithCrossBar"
selector.zDesc = "straightSerifless"
[prime.z.variants.straight-bottom-serifed-with-horizontal-crossbar] [prime.z.variants.straight-bottom-serifed-with-horizontal-crossbar]
rank = 15 rank = 15
@ -4160,8 +4146,7 @@ description = "Standard `z` with a horizontal crossbar and serif at bottom"
selector.z = "straightBottomSerifedWithHorizontalCrossBar" selector.z = "straightBottomSerifedWithHorizontalCrossBar"
selector."z/sansSerif" = "straightSeriflessWithHorizontalCrossBar" selector."z/sansSerif" = "straightSeriflessWithHorizontalCrossBar"
selector."z/reduced" = "straightBottomSerifed" selector."z/reduced" = "straightBottomSerifed"
selector."z/reduced/rtailBase" = "straightBottomSerifed" selector.zDesc = "straightSeriflessWithHorizontalCrossBar"
selector.zDesc = "straightSerifless"
[prime.z.variants.curly-bottom-serifed-with-crossbar] [prime.z.variants.curly-bottom-serifed-with-crossbar]
rank = 16 rank = 16
@ -4169,7 +4154,6 @@ description = "Curly `z` with serif at bottom"
selector.z = "curlyBottomSerifed" selector.z = "curlyBottomSerifed"
selector."z/sansSerif" = "curlySerifless" selector."z/sansSerif" = "curlySerifless"
selector."z/reduced" = "curlyBottomSerifed" selector."z/reduced" = "curlyBottomSerifed"
selector."z/reduced/rtailBase" = "curlyBottomSerifed"
selector.zDesc = "curlySerifless" selector.zDesc = "curlySerifless"
[prime.z.variants.curly-bottom-serifed-with-horizontal-crossbar] [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 = "curlyBottomSerifedWithCrossbar"
selector."z/sansSerif" = "curlySeriflessWithCrossBar" selector."z/sansSerif" = "curlySeriflessWithCrossBar"
selector."z/reduced" = "curlyBottomSerifed" selector."z/reduced" = "curlyBottomSerifed"
selector."z/reduced/rtailBase" = "curlyBottomSerifed" selector.zDesc = "curlySeriflessWithCrossBar"
selector.zDesc = "curlySerifless"
[prime.z.variants.curly-bottom-serifed] [prime.z.variants.curly-bottom-serifed]
rank = 18 rank = 18
@ -4187,8 +4170,7 @@ description = "Curly `z` with a horizontal crossbar and serif at bottom"
selector.z = "curlyBottomSerifedWithHorizontalCrossBar" selector.z = "curlyBottomSerifedWithHorizontalCrossBar"
selector."z/sansSerif" = "curlySeriflessWithHorizontalCrossBar" selector."z/sansSerif" = "curlySeriflessWithHorizontalCrossBar"
selector."z/reduced" = "curlyBottomSerifed" selector."z/reduced" = "curlyBottomSerifed"
selector."z/reduced/rtailBase" = "curlyBottomSerifed" selector.zDesc = "curlySeriflessWithHorizontalCrossBar"
selector.zDesc = "curlySerifless"
[prime.z.variants.straight-top-serifed] [prime.z.variants.straight-top-serifed]
rank = 19 rank = 19
@ -4196,7 +4178,6 @@ description = "Standard `z` with serif at top"
selector.z = "straightTopSerifed" selector.z = "straightTopSerifed"
selector."z/sansSerif" = "straightSerifless" selector."z/sansSerif" = "straightSerifless"
selector."z/reduced" = "straightTopSerifed" selector."z/reduced" = "straightTopSerifed"
selector."z/reduced/rtailBase" = "straightTopSerifed"
selector.zDesc = "straightTopSerifed" selector.zDesc = "straightTopSerifed"
[prime.z.variants.straight-top-serifed-with-crossbar] [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 = "straightTopSerifedWithCrossbar"
selector."z/sansSerif" = "straightSeriflessWithCrossBar" selector."z/sansSerif" = "straightSeriflessWithCrossBar"
selector."z/reduced" = "straightTopSerifed" selector."z/reduced" = "straightTopSerifed"
selector."z/reduced/rtailBase" = "straightTopSerifed" selector.zDesc = "straightTopSerifedWithCrossbar"
selector.zDesc = "straightTopSerifed"
[prime.z.variants.straight-top-serifed-with-horizontal-crossbar] [prime.z.variants.straight-top-serifed-with-horizontal-crossbar]
rank = 21 rank = 21
@ -4214,8 +4194,7 @@ description = "Standard `z` with a horizontal crossbar and serif at top"
selector.z = "straightTopSerifedWithHorizontalCrossBar" selector.z = "straightTopSerifedWithHorizontalCrossBar"
selector."z/sansSerif" = "straightSeriflessWithHorizontalCrossBar" selector."z/sansSerif" = "straightSeriflessWithHorizontalCrossBar"
selector."z/reduced" = "straightTopSerifed" selector."z/reduced" = "straightTopSerifed"
selector."z/reduced/rtailBase" = "straightTopSerifed" selector.zDesc = "straightTopSerifedWithHorizontalCrossBar"
selector.zDesc = "straightTopSerifed"
[prime.z.variants.curly-top-serifed] [prime.z.variants.curly-top-serifed]
rank = 22 rank = 22
@ -4223,7 +4202,6 @@ description = "Curly `z` with serif at top"
selector.z = "curlyTopSerifed" selector.z = "curlyTopSerifed"
selector."z/sansSerif" = "curlySerifless" selector."z/sansSerif" = "curlySerifless"
selector."z/reduced" = "curlyTopSerifed" selector."z/reduced" = "curlyTopSerifed"
selector."z/reduced/rtailBase" = "curlyTopSerifed"
selector.zDesc = "curlyTopSerifed" selector.zDesc = "curlyTopSerifed"
[prime.z.variants.curly-top-serifed-with-crossbar] [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 = "curlyTopSerifedWithCrossbar"
selector."z/sansSerif" = "curlySeriflessWithCrossBar" selector."z/sansSerif" = "curlySeriflessWithCrossBar"
selector."z/reduced" = "curlyTopSerifed" selector."z/reduced" = "curlyTopSerifed"
selector."z/reduced/rtailBase" = "curlyTopSerifed" selector.zDesc = "curlyTopSerifedWithCrossbar"
selector.zDesc = "curlyTopSerifed"
[prime.z.variants.curly-top-serifed-with-horizontal-crossbar] [prime.z.variants.curly-top-serifed-with-horizontal-crossbar]
rank = 24 rank = 24
@ -4241,8 +4218,7 @@ description = "Curly `z` with a horizontal crossbar and serif at top"
selector.z = "curlyTopSerifedWithHorizontalCrossBar" selector.z = "curlyTopSerifedWithHorizontalCrossBar"
selector."z/sansSerif" = "curlySeriflessWithHorizontalCrossBar" selector."z/sansSerif" = "curlySeriflessWithHorizontalCrossBar"
selector."z/reduced" = "curlyTopSerifed" selector."z/reduced" = "curlyTopSerifed"
selector."z/reduced/rtailBase" = "curlyTopSerifed" selector.zDesc = "curlyTopSerifedWithHorizontalCrossBar"
selector.zDesc = "curlyTopSerifed"
[prime.z.variants.cursive] [prime.z.variants.cursive]
rank = 25 rank = 25
@ -4250,7 +4226,6 @@ description = "Cursive `z`"
selector.z = "cursive" selector.z = "cursive"
selector."z/sansSerif" = "cursive" selector."z/sansSerif" = "cursive"
selector."z/reduced" = "cursive" selector."z/reduced" = "cursive"
selector."z/reduced/rtailBase" = "cursiveRTBase"
selector.zDesc = "cursive" selector.zDesc = "cursive"
[prime.z.variants.cursive-with-crossbar] [prime.z.variants.cursive-with-crossbar]
@ -4259,8 +4234,7 @@ description = "Cursive `z` with a diagonal cross bar"
selector.z = "cursiveWithCrossBar" selector.z = "cursiveWithCrossBar"
selector."z/sansSerif" = "cursiveWithCrossBar" selector."z/sansSerif" = "cursiveWithCrossBar"
selector."z/reduced" = "cursive" selector."z/reduced" = "cursive"
selector."z/reduced/rtailBase" = "cursiveRTBase" selector.zDesc = "cursiveWithCrossBar"
selector.zDesc = "cursive"
[prime.z.variants.cursive-with-horizontal-crossbar] [prime.z.variants.cursive-with-horizontal-crossbar]
rank = 27 rank = 27
@ -4268,8 +4242,7 @@ description = "Cursive `z` with a horizontal cross bar"
selector.z = "cursiveWithHorizontalCrossBar" selector.z = "cursiveWithHorizontalCrossBar"
selector."z/sansSerif" = "cursiveWithHorizontalCrossBar" selector."z/sansSerif" = "cursiveWithHorizontalCrossBar"
selector."z/reduced" = "cursive" selector."z/reduced" = "cursive"
selector."z/reduced/rtailBase" = "cursiveRTBase" selector.zDesc = "cursiveWithHorizontalCrossBar"
selector.zDesc = "cursive"