Add motion-serifed variants for H, K, M, N, X, x, Y (#818).
This commit is contained in:
parent
c02aa741e8
commit
721f39a53e
13 changed files with 461 additions and 243 deletions
|
@ -3,7 +3,7 @@
|
||||||
* **Breaking** Reorder `cv##` features and variant assignments for better organization.
|
* **Breaking** Reorder `cv##` features and variant assignments for better organization.
|
||||||
* **Breaking** Spilt out variant selector for `A`, `V`, `W`, `Z` (#806).
|
* **Breaking** Spilt out variant selector for `A`, `V`, `W`, `Z` (#806).
|
||||||
* Add diagonal-tailed variants of `f`, `i`, `j`, `k`, `l`, `q`, `t` (#795).
|
* Add diagonal-tailed variants of `f`, `i`, `j`, `k`, `l`, `q`, `t` (#795).
|
||||||
* Add motion-serifed variants of `A`, `B`, `D`, `E`, `F`, `P`, `R`, `T`, `V`, `W`, `Z`, `v`, `w`, `y`, `z` (#806, #815).
|
* Add motion-serifed variants of `A`, `B`, `D`, `E`, `F`, `H`, `K`, `M`, `N`, `P`, `R`, `T`, `V`, `W`, `X`, `Y`, `Z`, `v`, `w`, `x`, `y`, `z` (#806, #815, #818).
|
||||||
* Add symmetric-legged variants of `K` and `k` (#807).
|
* Add symmetric-legged variants of `K` and `k` (#807).
|
||||||
* Add horizontal-tailed and detach-tailed variants of `Q` (#808).
|
* Add horizontal-tailed and detach-tailed variants of `Q` (#808).
|
||||||
* Add hookless and capped variants of `G` (#809).
|
* Add hookless and capped variants of `G` (#809).
|
||||||
|
|
|
@ -372,16 +372,6 @@ glyph-block CommonShapes : begin
|
||||||
CenterBottomSerifAsymmetric (left + Stroke * sideSerifK * HVContrast) 0 Jut jutIn
|
CenterBottomSerifAsymmetric (left + Stroke * sideSerifK * HVContrast) 0 Jut jutIn
|
||||||
include : tagged 'serifRB'
|
include : tagged 'serifRB'
|
||||||
CenterBottomSerifAsymmetric (right - Stroke * sideSerifK * HVContrast) 0 jutIn Jut
|
CenterBottomSerifAsymmetric (right - Stroke * sideSerifK * HVContrast) 0 jutIn Jut
|
||||||
define [AINSerifs top _left _right sw xn] : glyph-proc
|
|
||||||
local left : fallback _left SB
|
|
||||||
local right : fallback _right RightSB
|
|
||||||
local jut : Jut * [fallback xn 1]
|
|
||||||
if SLAB : begin
|
|
||||||
include : LeftwardTopSerif (left + sw * (sideSerifK - 0.5) * HVContrast) top (jut - sw / 2 * HVContrast)
|
|
||||||
include : tagged 'serifRB'
|
|
||||||
CenterTopSerif (right - sw * sideSerifK * HVContrast) top jut
|
|
||||||
include : tagged 'serifLB'
|
|
||||||
CenterBottomSerif (left + sw * sideSerifK * HVContrast) 0 jut
|
|
||||||
define [AICyrISerifs top _left _right] : glyph-proc
|
define [AICyrISerifs top _left _right] : glyph-proc
|
||||||
local left : fallback _left SB
|
local left : fallback _left SB
|
||||||
local right : fallback _right RightSB
|
local right : fallback _right RightSB
|
||||||
|
@ -686,4 +676,4 @@ glyph-block CommonShapes : begin
|
||||||
corner [mix x1 x2 (-k)] [mix y1 y2 (-k)]
|
corner [mix x1 x2 (-k)] [mix y1 y2 (-k)]
|
||||||
corner [mix x1 x2 (1+k)] [mix y1 y2 (1+k)]
|
corner [mix x1 x2 (1+k)] [mix y1 y2 (1+k)]
|
||||||
|
|
||||||
glyph-block-export Rect SquareAt Ring RingAt DotAt RingStroke RingStrokeAt DotStrokeAt CircleRing CircleRingAt CircleDotAt OShape OShapeOutline OBarLeftShape OBarRightShape LeftwardTopSerif LeftwardBottomSerif RightwardTopSerif RightwardBottomSerif CenterTopSerif CenterBottomSerif DownwardRightSerif UpwardRightSerif DownwardLeftSerif UpwardLeftSerif AIVSerifs AIHSerifs AINSerifs AICyrISerifs AIMSerifs HBar HBarTop HBarBottom HOverlayBar VBar VBarLeft VBarRight VerticalHook LegShape LeftHook HooktopLeftBar FlatSlashShape hookstart hookend CyrDescender CyrLeftDescender FlipAround ScaleAround Realign ForceUpright DiagCor CreateWaveShape NameUni PointingTo WithAIHSerifsMask WithTransform clear-anchors OBarLeftToothlessShape OBarLeftRoundedShape OBarRightToothlessShape OBarRightRoundedShape AsRadical ExtLineCenter DiagCorDs HCrossBar VERY-FAR MaskAbove MaskBelow MaskLeft MaskRight
|
glyph-block-export Rect SquareAt Ring RingAt DotAt RingStroke RingStrokeAt DotStrokeAt CircleRing CircleRingAt CircleDotAt OShape OShapeOutline OBarLeftShape OBarRightShape LeftwardTopSerif LeftwardBottomSerif RightwardTopSerif RightwardBottomSerif CenterTopSerif CenterBottomSerif DownwardRightSerif UpwardRightSerif DownwardLeftSerif UpwardLeftSerif AIVSerifs AIHSerifs AICyrISerifs AIMSerifs HBar HBarTop HBarBottom HOverlayBar VBar VBarLeft VBarRight VerticalHook LegShape LeftHook HooktopLeftBar FlatSlashShape hookstart hookend CyrDescender CyrLeftDescender FlipAround ScaleAround Realign ForceUpright DiagCor CreateWaveShape NameUni PointingTo WithAIHSerifsMask WithTransform clear-anchors OBarLeftToothlessShape OBarLeftRoundedShape OBarRightToothlessShape OBarRightRoundedShape AsRadical ExtLineCenter DiagCorDs HCrossBar VERY-FAR MaskAbove MaskBelow MaskLeft MaskRight
|
||||||
|
|
|
@ -184,7 +184,7 @@ glyph-block Letter-Latin-K : begin
|
||||||
curl (xDTEnd + 0.125 * [DiagonalTailInnerRadius]) (0.9 * swDiagTail + 0.5 *[DiagonalTailInnerRadius])
|
curl (xDTEnd + 0.125 * [DiagonalTailInnerRadius]) (0.9 * swDiagTail + 0.5 *[DiagonalTailInnerRadius])
|
||||||
DiagonalTailF 1 [DivFrame 1] xDTEnd 0 (Hook - swDiagTail * 0.375) swDiagTail
|
DiagonalTailF 1 [DivFrame 1] xDTEnd 0 (Hook - swDiagTail * 0.375) swDiagTail
|
||||||
else : intersection
|
else : intersection
|
||||||
Rect XH 0 0 [if SLAB (dim.slabStartX + SideJut) (Width * 2)]
|
Rect XH 0 0 [if slab (dim.slabStartX + SideJut) (Width * 2)]
|
||||||
dispiro
|
dispiro
|
||||||
flat dim.arcTerminalX dim.arcTerminalY [widths.lhs]
|
flat dim.arcTerminalX dim.arcTerminalY [widths.lhs]
|
||||||
curl dim.kshRight 0 [widths.rhs]
|
curl dim.kshRight 0 [widths.rhs]
|
||||||
|
@ -220,57 +220,67 @@ glyph-block Letter-Latin-K : begin
|
||||||
VerticalHook (SB + [KBalance slab straightBar] + HalfStroke * HVContrast) (CAP - Hook - HalfStroke) HookX (-Hook)
|
VerticalHook (SB + [KBalance slab straightBar] + HalfStroke * HVContrast) (CAP - Hook - HalfStroke) HookX (-Hook)
|
||||||
|
|
||||||
define UpperKConfig : object
|
define UpperKConfig : object
|
||||||
straight { KNormalLegs KStraightLegShapeImpl }
|
straight { KNormalLegs KStraightLegShapeImpl [if SLAB 1 0] [if SLAB 1 0] }
|
||||||
curly { KCurlyLegs KCurlyLegShapeImpl }
|
curly { KCurlyLegs KCurlyLegShapeImpl [if SLAB 1 0] [if SLAB 1 0] }
|
||||||
symmetricDisconnected { KSymmetricDisconnectedLegs [KSymmetricLegsImpl false] }
|
symmetricDisconnected { KSymmetricDisconnectedLegs [KSymmetricLegsImpl false] [if SLAB 1 0] [if SLAB 1 0] }
|
||||||
symmetricConnected { KSymmetricConnectedLegs [KSymmetricLegsImpl true] }
|
symmetricConnected { KSymmetricConnectedLegs [KSymmetricLegsImpl true] [if SLAB 1 0] [if SLAB 1 0] }
|
||||||
|
straightMotionSerifed { KNormalLegs KStraightLegShapeImpl 2 0 }
|
||||||
|
curlyMotionSerifed { KCurlyLegs KCurlyLegShapeImpl 2 0 }
|
||||||
|
symmetricDisconnectedMotionSerifed { KSymmetricDisconnectedLegs [KSymmetricLegsImpl false] 2 0 }
|
||||||
|
symmetricConnectedMotionSerifed { KSymmetricConnectedLegs [KSymmetricLegsImpl true] 2 0 }
|
||||||
|
|
||||||
foreach { suffix { Legs BashkirKaLegs } } [Object.entries UpperKConfig] : do
|
define [UpperKLTSerif slabTop top straightBar] : match slabTop
|
||||||
|
2 : LeftwardTopSerif (SB + [KBalance slabTop straightBar]) top SideJut
|
||||||
|
1 : CenterTopSerif (SB + [KBalance slabTop straightBar] + HalfStroke * HVContrast) top Jut
|
||||||
|
_ : glyph-proc
|
||||||
|
|
||||||
|
define [UpperKLBSerif slabTop top straightBar] : match slabTop
|
||||||
|
2 : LeftwardBottomSerif (SB + [KBalance slabTop straightBar]) 0 SideJut
|
||||||
|
1 : CenterBottomSerif (SB + [KBalance slabTop straightBar] + HalfStroke * HVContrast) 0 Jut
|
||||||
|
_ : glyph-proc
|
||||||
|
|
||||||
|
foreach { suffix { Legs BashkirKaLegs slabTop slabBot } } [Object.entries UpperKConfig] : do
|
||||||
local straightBar : Legs !== KCurlyLegs
|
local straightBar : Legs !== KCurlyLegs
|
||||||
|
|
||||||
create-glyph "K.\(suffix)" : glyph-proc
|
create-glyph "K.\(suffix)" : glyph-proc
|
||||||
include : MarkSet.capital
|
include : MarkSet.capital
|
||||||
include : VBarLeft (SB + [KBalance SLAB straightBar]) 0 CAP
|
include : VBarLeft (SB + [KBalance slabTop straightBar]) 0 CAP
|
||||||
include : Legs CAP SLAB SLAB
|
include : Legs CAP slabTop slabBot
|
||||||
if SLAB : begin
|
if slabTop : include : UpperKLTSerif slabTop CAP straightBar
|
||||||
include : CenterTopSerif (SB + [KBalance SLAB straightBar] + HalfStroke * HVContrast) CAP Jut
|
if slabBot : include : UpperKLBSerif slabTop CAP straightBar
|
||||||
include : CenterBottomSerif (SB + [KBalance SLAB straightBar] + HalfStroke * HVContrast) 0 Jut
|
create-derived "KDescender.\(suffix)" : KCyrlNormalDescender CAP straightBar slabTop slabBot
|
||||||
create-derived "KDescender.\(suffix)" : KCyrlNormalDescender CAP straightBar SLAB SLAB
|
|
||||||
|
|
||||||
create-glyph "grek/kappa.\(suffix)" : glyph-proc
|
create-glyph "grek/kappa.\(suffix)" : glyph-proc
|
||||||
include : MarkSet.e
|
include : MarkSet.e
|
||||||
include : VBarLeft (SB + [KBalance SLAB straightBar]) 0 XH
|
include : VBarLeft (SB + [KBalance slabTop straightBar]) 0 XH
|
||||||
include : Legs XH SLAB false
|
include : Legs XH slabTop false
|
||||||
if SLAB : include : LeftwardTopSerif (SB + [KBalance SLAB straightBar]) XH SideJut
|
if slabTop : include : LeftwardTopSerif (SB + [KBalance slabTop straightBar]) XH SideJut
|
||||||
|
|
||||||
create-glyph "cyrl/ka.\(suffix)" : glyph-proc
|
create-glyph "cyrl/ka.\(suffix)" : glyph-proc
|
||||||
include : MarkSet.e
|
include : MarkSet.e
|
||||||
include : VBarLeft (SB + [KBalance SLAB straightBar]) 0 XH
|
include : VBarLeft (SB + [KBalance slabTop straightBar]) 0 XH
|
||||||
include : Legs XH SLAB SLAB
|
include : Legs XH slabTop slabBot
|
||||||
if SLAB : begin
|
if slabTop : include : UpperKLTSerif slabTop XH straightBar
|
||||||
include : CenterBottomSerif (SB + [KBalance SLAB straightBar] + HalfStroke * HVContrast) 0 Jut
|
if slabBot : include : UpperKLBSerif slabTop XH straightBar
|
||||||
include : CenterTopSerif (SB + [KBalance SLAB straightBar] + HalfStroke * HVContrast) XH Jut
|
create-derived "cyrl/kaDescender.\(suffix)" : KCyrlNormalDescender XH straightBar slabTop slabBot
|
||||||
create-derived "cyrl/kaDescender.\(suffix)" : KCyrlNormalDescender XH straightBar SLAB SLAB
|
|
||||||
|
|
||||||
create-glyph "Khooktop.\(suffix)" : glyph-proc
|
create-glyph "Khooktop.\(suffix)" : glyph-proc
|
||||||
include : MarkSet.e
|
include : MarkSet.e
|
||||||
include : Legs CAP SLAB SLAB
|
include : Legs CAP slabTop slabBot
|
||||||
include : KHookTopBar SLAB straightBar
|
include : KHookTopBar slabTop straightBar
|
||||||
if SLAB : begin
|
if slabBot : include : UpperKLBSerif slabTop CAP straightBar
|
||||||
include : CenterBottomSerif (SB + [KBalance SLAB straightBar] + HalfStroke * HVContrast) 0 Jut
|
|
||||||
|
|
||||||
define [BashkirKaShape top] : glyph-proc
|
define [BashkirKaShape top] : glyph-proc
|
||||||
local left : if SLAB ([mix SB RightSB 0.35] - MVertStroke / 2 * HVContrast) [mix SB RightSB 0.2]
|
local left : if slabTop ([mix SB RightSB 0.35] - MVertStroke / 2 * HVContrast) [mix SB RightSB 0.2]
|
||||||
local leftNB : left - [KBalance SLAB straightBar]
|
local leftNB : left - [KBalance slabTop straightBar]
|
||||||
local barLeft : mix 0 SB [if SLAB 0.25 0.375]
|
local barLeft : mix 0 SB [if slabTop 0.25 0.375]
|
||||||
local sw : AdviceStroke 3
|
local sw : AdviceStroke 3
|
||||||
|
|
||||||
include : HBarTop barLeft (Stroke * 0.1 + left) top
|
include : HBarTop barLeft (Stroke * 0.1 + left) top
|
||||||
include : VBarLeft left 0 top sw
|
include : VBarLeft left 0 top sw
|
||||||
include : BashkirKaLegs leftNB RightSB Stroke top SLAB SLAB
|
include : BashkirKaLegs leftNB RightSB Stroke top slabTop slabBot
|
||||||
if SLAB : begin
|
if slabBot : include : CenterBottomSerif (left + HalfStroke * HVContrast) 0 Jut
|
||||||
include : CenterBottomSerif (left + HalfStroke * HVContrast) 0 Jut
|
if slabTop : include : DownwardLeftSerif barLeft top VJut (MVertStroke / HVContrast)
|
||||||
include : DownwardLeftSerif barLeft top VJut (MVertStroke / HVContrast)
|
|
||||||
|
|
||||||
create-glyph "cyrl/BashkirUpperKa.\(suffix)" : glyph-proc
|
create-glyph "cyrl/BashkirUpperKa.\(suffix)" : glyph-proc
|
||||||
include : MarkSet.capital
|
include : MarkSet.capital
|
||||||
|
@ -330,8 +340,8 @@ glyph-block Letter-Latin-K : begin
|
||||||
alias 'latinkappa' 0x138 'cyrl/ka'
|
alias 'latinkappa' 0x138 'cyrl/ka'
|
||||||
select-variant 'cyrl/kaDescender' 0x49B (follow -- 'K')
|
select-variant 'cyrl/kaDescender' 0x49B (follow -- 'K')
|
||||||
|
|
||||||
select-variant 'Khooktop' 0x198 (follow -- 'K')
|
select-variant 'Khooktop' 0x198
|
||||||
select-variant 'khooktop' 0x199 (follow -- 'k')
|
select-variant 'khooktop' 0x199
|
||||||
|
|
||||||
turned 'turnK' 0xA7B0 'K' Middle (CAP / 2)
|
turned 'turnK' 0xA7B0 'K' Middle (CAP / 2)
|
||||||
turned 'turnk' 0x29E 'k' Middle (CAP / 2)
|
turned 'turnk' 0x29E 'k' Middle (CAP / 2)
|
||||||
|
|
|
@ -11,19 +11,47 @@ glyph-block Letter-Latin-Upper-H : begin
|
||||||
glyph-block-import Common-Derivatives
|
glyph-block-import Common-Derivatives
|
||||||
glyph-block-import Letter-Blackboard : BBS BBD
|
glyph-block-import Letter-Blackboard : BBS BBD
|
||||||
|
|
||||||
define [HShape top] : glyph-proc
|
define SLAB-AUTO 1
|
||||||
|
define SLAB-MOTION 2
|
||||||
|
|
||||||
|
define [HShape top slabType] : glyph-proc
|
||||||
include : tagged 'strokeL' : VBarLeft SB 0 top
|
include : tagged 'strokeL' : VBarLeft SB 0 top
|
||||||
include : tagged 'strokeR' : VBarRight RightSB 0 top
|
include : tagged 'strokeR' : VBarRight RightSB 0 top
|
||||||
include : HBar (SB - O) (RightSB + O) (top * HBarPos)
|
include : HBar (SB - O) (RightSB + O) (top * HBarPos)
|
||||||
include : AIHSerifs top
|
include : match slabType
|
||||||
|
[Just SLAB-AUTO] : AIHSerifs top
|
||||||
|
[Just SLAB-MOTION] : tagged 'serifLT' : LeftwardTopSerif SB top SideJut
|
||||||
|
|
||||||
create-glyph 'H' 'H' : glyph-proc
|
create-glyph 'H.standard' : glyph-proc
|
||||||
include : MarkSet.capital
|
include : MarkSet.capital
|
||||||
include : HShape CAP
|
include : HShape CAP SLAB-AUTO
|
||||||
|
|
||||||
|
create-glyph 'H.motionSerifed' : glyph-proc
|
||||||
|
include : MarkSet.capital
|
||||||
|
include : HShape CAP SLAB-MOTION
|
||||||
|
|
||||||
|
select-variant 'H' 'H'
|
||||||
|
|
||||||
|
create-glyph 'smcpH.standard' : glyph-proc
|
||||||
|
include : MarkSet.e
|
||||||
|
include : HShape XH SLAB-AUTO
|
||||||
|
|
||||||
|
create-glyph 'smcpH.motionSerifed' : glyph-proc
|
||||||
|
include : MarkSet.e
|
||||||
|
include : HShape XH SLAB-AUTO
|
||||||
|
|
||||||
|
select-variant 'smcpH' 0x29C (follow -- 'H')
|
||||||
|
|
||||||
create-glyph 'halfH' 0x2C75 : glyph-proc
|
create-glyph 'halfH' 0x2C75 : glyph-proc
|
||||||
include : MarkSet.capital
|
include : MarkSet.capital
|
||||||
include : HShape CAP
|
include : HShape CAP SLAB-AUTO
|
||||||
|
eject-contour 'strokeR'
|
||||||
|
eject-contour 'serifRT'
|
||||||
|
eject-contour 'serifRB'
|
||||||
|
|
||||||
|
create-glyph 'halfSmcpH' 0x2C76 : glyph-proc
|
||||||
|
include : MarkSet.e
|
||||||
|
include : HShape XH SLAB-AUTO
|
||||||
eject-contour 'strokeR'
|
eject-contour 'strokeR'
|
||||||
eject-contour 'serifRT'
|
eject-contour 'serifRT'
|
||||||
eject-contour 'serifRB'
|
eject-contour 'serifRB'
|
||||||
|
@ -31,6 +59,11 @@ glyph-block Letter-Latin-Upper-H : begin
|
||||||
alias 'grek/Eta' 0x397 'H'
|
alias 'grek/Eta' 0x397 'H'
|
||||||
alias 'cyrl/En' 0x41D 'H'
|
alias 'cyrl/En' 0x41D 'H'
|
||||||
|
|
||||||
|
alias 'cyrl/en' 0x43D 'smcpH'
|
||||||
|
|
||||||
|
create-glyph 0x4A2 : composite-proc [refer-glyph 'cyrl/En'] [CyrDescender RightSB]
|
||||||
|
create-glyph 0x4A3 : composite-proc [refer-glyph 'cyrl/en'] [CyrDescender RightSB]
|
||||||
|
|
||||||
create-glyph 'mathbb/H' 0x210D : glyph-proc
|
create-glyph 'mathbb/H' 0x210D : glyph-proc
|
||||||
include : MarkSet.capital
|
include : MarkSet.capital
|
||||||
include : VBarLeft SB 0 CAP BBS
|
include : VBarLeft SB 0 CAP BBS
|
||||||
|
@ -43,21 +76,6 @@ glyph-block Letter-Latin-Upper-H : begin
|
||||||
include : HBarBottom SB (SB + BBD) 0 BBS
|
include : HBarBottom SB (SB + BBD) 0 BBS
|
||||||
include : HBarBottom (RightSB - BBD) RightSB 0 BBS
|
include : HBarBottom (RightSB - BBD) RightSB 0 BBS
|
||||||
|
|
||||||
create-glyph 'smcpH' 0x29C : glyph-proc
|
|
||||||
include : MarkSet.e
|
|
||||||
include : HShape XH
|
|
||||||
|
|
||||||
create-glyph 'halfSmcpH' 0x2C76 : glyph-proc
|
|
||||||
include : MarkSet.e
|
|
||||||
include : HShape XH
|
|
||||||
eject-contour 'strokeR'
|
|
||||||
eject-contour 'serifRT'
|
|
||||||
eject-contour 'serifRB'
|
|
||||||
|
|
||||||
alias 'cyrl/en' 0x43D 'smcpH'
|
|
||||||
|
|
||||||
create-glyph 0x4A2 : composite-proc [refer-glyph 'cyrl/En'] [CyrDescender RightSB]
|
|
||||||
create-glyph 0x4A3 : composite-proc [refer-glyph 'cyrl/en'] [CyrDescender RightSB]
|
|
||||||
|
|
||||||
define [EnGheShape top] : glyph-proc
|
define [EnGheShape top] : glyph-proc
|
||||||
local right : if SLAB ([mix RightSB SB 0.35] + MVertStroke / 2 * HVContrast) [mix RightSB SB 0.2]
|
local right : if SLAB ([mix RightSB SB 0.35] + MVertStroke / 2 * HVContrast) [mix RightSB SB 0.2]
|
||||||
|
|
|
@ -10,7 +10,13 @@ glyph-block Letter-Latin-Upper-M : begin
|
||||||
glyph-block-import CommonShapes
|
glyph-block-import CommonShapes
|
||||||
glyph-block-import Common-Derivatives
|
glyph-block-import Common-Derivatives
|
||||||
|
|
||||||
define [MShape top df fHanging] : glyph-proc
|
define FORM-FLAT 0
|
||||||
|
define FORM-HANGING 1
|
||||||
|
|
||||||
|
define SLAB-AUTO 1
|
||||||
|
define SLAB-MOTION 2
|
||||||
|
|
||||||
|
define [MShape top df fHanging slabType] : glyph-proc
|
||||||
local swSideBot : if fHanging Stroke : AdviceStroke 3.5 df.div
|
local swSideBot : if fHanging Stroke : AdviceStroke 3.5 df.div
|
||||||
local swSideTop : AdviceStroke [if fHanging 5 4] df.div
|
local swSideTop : AdviceStroke [if fHanging 5 4] df.div
|
||||||
local halfSwMiddle : swSideTop / 2
|
local halfSwMiddle : swSideTop / 2
|
||||||
|
@ -32,23 +38,28 @@ glyph-block Letter-Latin-Upper-M : begin
|
||||||
include : dispiro
|
include : dispiro
|
||||||
flat (df.rightSB - halfSwMiddle) top [widths.heading 0 swSideTop Downward]
|
flat (df.rightSB - halfSwMiddle) top [widths.heading 0 swSideTop Downward]
|
||||||
curl df.middle middleY [widths.heading (swSideTop / 2) (swSideTop / 2) Downward]
|
curl df.middle middleY [widths.heading (swSideTop / 2) (swSideTop / 2) Downward]
|
||||||
include : AIMSerifs top df.leftSB df.rightSB
|
|
||||||
|
|
||||||
create-glyph : glyph-proc
|
include : match slabType
|
||||||
local df : DivFrame para.diversityM 3
|
[Just SLAB-AUTO] : AIMSerifs top df.leftSB df.rightSB
|
||||||
include : df.markSet.capital
|
[Just SLAB-MOTION] : tagged 'serifLT' : LeftwardTopSerif df.leftSB top SideJut
|
||||||
set-width df.width
|
|
||||||
|
|
||||||
create-derived 'M.hanging' : MShape CAP df true
|
define MConfig : object
|
||||||
create-derived 'M.flatBottom' : MShape CAP df false
|
hanging { FORM-HANGING SLAB-AUTO }
|
||||||
|
flatBottom { FORM-FLAT SLAB-AUTO }
|
||||||
|
hangingMotionSerifed { FORM-HANGING SLAB-MOTION }
|
||||||
|
flatBottomMotionSerifed { FORM-FLAT SLAB-MOTION }
|
||||||
|
|
||||||
create-glyph : glyph-proc
|
foreach { suffix { form slab } } [Object.entries MConfig] : do
|
||||||
local df : DivFrame para.diversityM 3
|
create-glyph "M.\(suffix)" : glyph-proc
|
||||||
include : df.markSet.e
|
local df : DivFrame para.diversityM 3
|
||||||
set-width df.width
|
set-width df.width
|
||||||
|
include : df.markSet.capital
|
||||||
create-derived 'smcpM.hanging' : MShape XH df true
|
include : MShape CAP df form slab
|
||||||
create-derived 'smcpM.flatBottom' : MShape XH df false
|
create-glyph "smcpM.\(suffix)" : glyph-proc
|
||||||
|
local df : DivFrame para.diversityM 3
|
||||||
|
set-width df.width
|
||||||
|
include : df.markSet.e
|
||||||
|
include : MShape XH df form slab
|
||||||
|
|
||||||
select-variant 'M' 'M'
|
select-variant 'M' 'M'
|
||||||
select-variant 'smcpM' 0x1D0D (follow -- 'M')
|
select-variant 'smcpM' 0x1D0D (follow -- 'M')
|
||||||
|
|
|
@ -10,50 +10,72 @@ glyph-block Letter-Latin-Upper-N : begin
|
||||||
glyph-block-import CommonShapes
|
glyph-block-import CommonShapes
|
||||||
glyph-block-import Common-Derivatives
|
glyph-block-import Common-Derivatives
|
||||||
glyph-block-import Marks : markHalfStroke
|
glyph-block-import Marks : markHalfStroke
|
||||||
glyph-block-export NShape
|
|
||||||
|
|
||||||
define [NShape top left right crowd diagcrowd xn] : glyph-proc
|
define SLAB-AUTO 1
|
||||||
local topstroke : AdviceStroke [fallback diagcrowd 4]
|
define SLAB-MOTION 2
|
||||||
local stroke : AdviceStroke [fallback crowd 1]
|
|
||||||
local halftopstroke : topstroke / 2
|
define [StdNSerifs top left right sw xn] : glyph-proc
|
||||||
|
include : tagged 'serifLT'
|
||||||
|
LeftwardTopSerif left top (xn * Jut - 0.5 * sw * HVContrast)
|
||||||
|
include : tagged 'serifRB'
|
||||||
|
CenterTopSerif (right - 0.5 * sw * HVContrast) top (xn * Jut)
|
||||||
|
include : tagged 'serifLB'
|
||||||
|
CenterBottomSerif (left + 0.5 * sw * HVContrast) 0 (xn * Jut)
|
||||||
|
|
||||||
|
define [NShape] : params [slabType top left right [crowd 2] [crDiag 4] [xn 1]] : glyph-proc
|
||||||
|
local swDiag : AdviceStroke crDiag
|
||||||
|
local stroke : AdviceStroke crowd
|
||||||
|
|
||||||
include : union
|
include : union
|
||||||
AINSerifs top left right stroke xn
|
|
||||||
dispiro
|
dispiro
|
||||||
flat left 0 [widths.heading 0 stroke Upward]
|
flat left 0 [widths.heading 0 stroke Upward]
|
||||||
curl left (top * 0.4) [heading Upward]
|
curl left (top * 0.4) [heading Upward]
|
||||||
straight.up.end left top [widths.heading 0 topstroke Upward]
|
straight.up.end left top [widths.heading 0 swDiag Upward]
|
||||||
dispiro
|
dispiro
|
||||||
flat right top [widths.heading 0 stroke Downward]
|
flat right top [widths.heading 0 stroke Downward]
|
||||||
curl right (top * 0.6) [heading Downward]
|
curl right (top * 0.6) [heading Downward]
|
||||||
straight.down.end right 0 [widths.heading 0 topstroke Downward]
|
straight.down.end right 0 [widths.heading 0 swDiag Downward]
|
||||||
dispiro
|
dispiro
|
||||||
flat (left + halftopstroke) top [widths.heading topstroke 0 Downward]
|
flat (left + swDiag / 2) top [widths.heading swDiag 0 Downward]
|
||||||
curl (right - halftopstroke) 0 [widths.heading 0 topstroke Downward]
|
curl (right - swDiag / 2) 0 [widths.heading 0 swDiag Downward]
|
||||||
|
|
||||||
create-glyph 'N' 'N' : glyph-proc
|
include : match slabType
|
||||||
include : MarkSet.capital
|
[Just SLAB-AUTO] : if SLAB [StdNSerifs top left right stroke xn] [glyph-proc]
|
||||||
include : NShape CAP SB RightSB
|
[Just SLAB-MOTION] : tagged 'serifLT' : LeftwardTopSerif left top SideJut
|
||||||
set-base-anchor 'trailing' (RightSB - markHalfStroke) 0
|
|
||||||
|
|
||||||
|
define NConfig : object
|
||||||
|
standard { SLAB-AUTO }
|
||||||
|
motionSerifed { SLAB-MOTION }
|
||||||
|
|
||||||
|
do : foreach { suffix { slabType } } [Object.entries NConfig] : do
|
||||||
|
create-glyph "N.\(suffix)" : glyph-proc
|
||||||
|
include : MarkSet.capital
|
||||||
|
include : NShape slabType CAP SB RightSB
|
||||||
|
set-base-anchor 'trailing' (RightSB - markHalfStroke) 0
|
||||||
|
|
||||||
|
create-glyph "Nltail.\(suffix)" : glyph-proc
|
||||||
|
include [refer-glyph "N.\(suffix)"] AS_BASE ALSO_METRICS
|
||||||
|
eject-contour 'serifLB'
|
||||||
|
include : VerticalHook (SB + HalfStroke * HVContrast) 0 (-HookX) Hook
|
||||||
|
|
||||||
|
create-glyph "smcpN.\(suffix)" : glyph-proc
|
||||||
|
include : MarkSet.e
|
||||||
|
include : NShape slabType XH SB RightSB
|
||||||
|
set-base-anchor 'trailing' (RightSB - markHalfStroke) 0
|
||||||
|
|
||||||
|
|
||||||
|
select-variant 'N' 'N'
|
||||||
alias 'grek/Nu' 0x39D 'N'
|
alias 'grek/Nu' 0x39D 'N'
|
||||||
|
select-variant 'smcpN' 0x274 (follow -- 'N')
|
||||||
create-glyph 'smcpN' 0x274 : glyph-proc
|
select-variant 'Nltail' 0x19D (follow -- 'N')
|
||||||
include : MarkSet.e
|
|
||||||
include : NShape XH SB RightSB 3 3.5
|
|
||||||
|
|
||||||
create-glyph 'currency/nairaSign' 0x20A6 : glyph-proc
|
create-glyph 'currency/nairaSign' 0x20A6 : glyph-proc
|
||||||
include : NShape CAP (SB * 1.25) (Width - SB * 1.25) 3.5 4
|
include : NShape SLAB-AUTO CAP (SB * 1.25) (Width - SB * 1.25) 3.5 4
|
||||||
define sw : AdviceStroke2 2 4 CAP
|
define sw : AdviceStroke2 2 4 CAP
|
||||||
define gap : Math.max (CAP / 6) sw
|
define gap : Math.max (CAP / 6) sw
|
||||||
include : HBarBottom [mix 0 SB 0.5] [mix Width RightSB 0.5] (CAP / 2 + gap / 2) sw
|
include : HBarBottom [mix 0 SB 0.5] [mix Width RightSB 0.5] (CAP / 2 + gap / 2) sw
|
||||||
include : HBarTop [mix 0 SB 0.5] [mix Width RightSB 0.5] (CAP / 2 - gap / 2) sw
|
include : HBarTop [mix 0 SB 0.5] [mix Width RightSB 0.5] (CAP / 2 - gap / 2) sw
|
||||||
|
|
||||||
create-glyph 'Nltail' 0x19D : glyph-proc
|
|
||||||
include [refer-glyph 'N'] AS_BASE
|
|
||||||
eject-contour 'serifLB'
|
|
||||||
include : VerticalHook (SB + HalfStroke * HVContrast) 0 (-HookX) Hook
|
|
||||||
|
|
||||||
glyph-block-import Letter-Blackboard : BBS BBD
|
glyph-block-import Letter-Blackboard : BBS BBD
|
||||||
create-glyph 'mathbb/N' 0x2115 : glyph-proc
|
create-glyph 'mathbb/N' 0x2115 : glyph-proc
|
||||||
include : MarkSet.capital
|
include : MarkSet.capital
|
||||||
|
@ -69,4 +91,10 @@ glyph-block Letter-Latin-Upper-N : begin
|
||||||
dispiro
|
dispiro
|
||||||
widths.center BBS
|
widths.center BBS
|
||||||
corner (SB + BBS * HVContrast / 2) (CAP - (CAP / 5))
|
corner (SB + BBS * HVContrast / 2) (CAP - (CAP / 5))
|
||||||
corner (RightSB - BBS * HVContrast) 0
|
corner (RightSB - BBS * HVContrast) 0
|
||||||
|
|
||||||
|
create-glyph 'numero' 0x2116 : glyph-proc
|
||||||
|
local fine : AdviceStroke 4.5
|
||||||
|
include : OShape XH [Math.max (fine * 2) (CAP * 0.1)] (Middle + [Math.max (fine / 2) ((RightSB - SB) * 0.1)]) [mix RightSB Width 0.5] fine (SmoothA * fine / Stroke) (SmoothB * fine / Stroke)
|
||||||
|
include : NShape SLAB-AUTO CAP (SB / 2) Middle (crowd -- 4.5) (crDiag -- 5.5) (xn -- 0.7)
|
||||||
|
include : HBarBottom (Middle + fine / 2) [mix RightSB Width 0.5] 0 fine
|
||||||
|
|
|
@ -253,13 +253,14 @@ glyph-block Letter-Latin-Upper-R : begin
|
||||||
include : PShape top (mul -- 1) (bp -- bp) (slab -- [if SLAB PShape.SlabSymmetric])
|
include : PShape top (mul -- 1) (bp -- bp) (slab -- [if SLAB PShape.SlabSymmetric])
|
||||||
include : VBarLeft SB (top - 1) CAP
|
include : VBarLeft SB (top - 1) CAP
|
||||||
|
|
||||||
|
local legTop : RLegTop top Stroke bp
|
||||||
local right (RightSB - O - [if SLAB (Jut / 8) 0])
|
local right (RightSB - O - [if SLAB (Jut / 8) 0])
|
||||||
create-derived 'Yr.straight'
|
create-derived 'Yr.straight'
|
||||||
RLegShape-Straight ((top - Stroke) * bp + Stroke / 2) Descender Middle right (top - Descender) SLAB Stroke 0
|
RLegShape-Straight legTop Descender Middle right (top - Descender) SLAB Stroke 0
|
||||||
create-derived 'Yr.curly'
|
create-derived 'Yr.curly'
|
||||||
RLegShape-Curly ((top - Stroke) * bp + Stroke / 2) Descender Middle right (top - Descender) SLAB Stroke 0
|
RLegShape-Curly legTop Descender Middle right (top - Descender) SLAB Stroke 0
|
||||||
create-derived 'Yr.standing'
|
create-derived 'Yr.standing'
|
||||||
RLegShape-Standing ((top - Stroke) * bp + Stroke / 2) Descender Middle right (top - Descender) SLAB Stroke 0
|
RLegShape-Standing legTop Descender Middle right (top - Descender) SLAB Stroke 0
|
||||||
|
|
||||||
select-variant 'Yr' 0x1A6 (follow -- 'Rrotunda')
|
select-variant 'Yr' 0x1A6 (follow -- 'Rrotunda')
|
||||||
|
|
||||||
|
|
|
@ -11,29 +11,33 @@ glyph-block Letter-Latin-Upper-Y : begin
|
||||||
glyph-block-import Common-Derivatives
|
glyph-block-import Common-Derivatives
|
||||||
glyph-block-import Letter-Latin-X : HalfXStrand
|
glyph-block-import Letter-Latin-X : HalfXStrand
|
||||||
|
|
||||||
define [YShape straightBar top bot] : glyph-proc
|
define BODY-CURLY 0
|
||||||
|
define BODY-STRAIGHT 1
|
||||||
|
|
||||||
|
define SLAB-AUTO 1
|
||||||
|
define SLAB-MOTION 2
|
||||||
|
|
||||||
|
define [YShape bodyType slabType top bot] : glyph-proc
|
||||||
local cross : mix [fallback bot 0] top 0.4
|
local cross : mix [fallback bot 0] top 0.4
|
||||||
include : WithAIHSerifsMask CAP 0 SB RightSB
|
include : WithAIHSerifsMask CAP 0 SB RightSB
|
||||||
HalfXStrand straightBar SLAB SB top Middle cross 0.1 0.4 0.28
|
HalfXStrand bodyType SLAB SB top Middle cross 0.1 0.4 0.28
|
||||||
include : tagged 'strokeRT' : WithAIHSerifsMask CAP 0 SB RightSB
|
include : tagged 'strokeRT' : WithAIHSerifsMask CAP 0 SB RightSB
|
||||||
HalfXStrand straightBar SLAB RightSB top Middle cross 0.1 0.4 0.28
|
HalfXStrand bodyType SLAB RightSB top Middle cross 0.1 0.4 0.28
|
||||||
include : VBar Middle [fallback bot 0] (cross + HalfStroke)
|
include : VBar Middle [fallback bot 0] (cross + HalfStroke)
|
||||||
set-base-anchor 'overlay' Middle cross
|
set-base-anchor 'overlay' Middle cross
|
||||||
if SLAB : begin
|
|
||||||
include : AIVSerifs top
|
match slabType
|
||||||
include : CenterBottomSerif Middle [fallback bot 0] MidJutSide
|
[Just SLAB-AUTO] : if SLAB : begin
|
||||||
|
include : AIVSerifs top
|
||||||
|
include : CenterBottomSerif Middle [fallback bot 0] MidJutSide
|
||||||
|
[Just SLAB-MOTION] : include : tagged 'serifLT' : LeftwardTopSerif SB top SideJut
|
||||||
|
|
||||||
define [YOverlayShape] : glyph-proc
|
define [YOverlayShape] : glyph-proc
|
||||||
include : HOverlayBar SB RightSB (CAP * 0.45)
|
include : HOverlayBar SB RightSB (CAP * 0.45)
|
||||||
include : HOverlayBar SB RightSB (CAP * 0.25)
|
include : HOverlayBar SB RightSB (CAP * 0.25)
|
||||||
|
|
||||||
create-glyph : glyph-proc
|
define [YHookTopShape bodyType slabType] : glyph-proc
|
||||||
include : MarkSet.capital
|
include : YShape bodyType slabType CAP
|
||||||
create-derived 'Y.straight' : YShape true CAP
|
|
||||||
create-derived 'Y.curly' : YShape false CAP
|
|
||||||
|
|
||||||
define [YHookTopShape straightBar] : glyph-proc
|
|
||||||
include : YShape straightBar CAP
|
|
||||||
eject-contour 'strokeRT'
|
eject-contour 'strokeRT'
|
||||||
eject-contour 'serifRT'
|
eject-contour 'serifRT'
|
||||||
|
|
||||||
|
@ -45,20 +49,29 @@ glyph-block Letter-Latin-Upper-Y : begin
|
||||||
quadcontrols 0.55 0.7 32 unimportant
|
quadcontrols 0.55 0.7 32 unimportant
|
||||||
g4 (Middle + Stroke / 2 * HVContrast) cross
|
g4 (Middle + Stroke / 2 * HVContrast) cross
|
||||||
|
|
||||||
create-glyph : glyph-proc
|
|
||||||
include : MarkSet.capital
|
|
||||||
create-derived 'Yhooktop.straight' : YHookTopShape true
|
|
||||||
create-derived 'Yhooktop.curly' : YHookTopShape false
|
|
||||||
|
|
||||||
create-glyph : glyph-proc
|
define YConfig : object
|
||||||
include : MarkSet.p
|
straight { BODY-STRAIGHT SLAB-AUTO }
|
||||||
create-derived 'cyrl/ue.straight' : YShape true XH Descender
|
curly { BODY-CURLY SLAB-AUTO }
|
||||||
create-derived 'cyrl/ue.curly' : YShape false XH Descender
|
straightMotionSerifed { BODY-STRAIGHT SLAB-MOTION }
|
||||||
|
curlyMotionSerifed { BODY-CURLY SLAB-MOTION }
|
||||||
|
|
||||||
create-glyph : glyph-proc
|
foreach { suffix { bodyType slabType } } [Object.entries YConfig] : do
|
||||||
include : MarkSet.e
|
create-glyph "Y.\(suffix)" : glyph-proc
|
||||||
create-derived 'smcpY.straight' : YShape true XH
|
include : MarkSet.capital
|
||||||
create-derived 'smcpY.curly' : YShape true XH
|
include : YShape bodyType slabType CAP
|
||||||
|
|
||||||
|
create-glyph "smcpY.\(suffix)" : glyph-proc
|
||||||
|
include : MarkSet.e
|
||||||
|
include : YShape bodyType slabType XH
|
||||||
|
|
||||||
|
create-glyph "Yhooktop.\(suffix)" : glyph-proc
|
||||||
|
include : MarkSet.capital
|
||||||
|
include : YHookTopShape bodyType slabType
|
||||||
|
|
||||||
|
create-glyph "cyrl/ue.\(suffix)" : glyph-proc
|
||||||
|
include : MarkSet.p
|
||||||
|
include : YShape bodyType slabType XH Descender
|
||||||
|
|
||||||
select-variant 'Y' 'Y'
|
select-variant 'Y' 'Y'
|
||||||
select-variant 'Yhooktop' 0x1B3 (follow -- 'Y')
|
select-variant 'Yhooktop' 0x1B3 (follow -- 'Y')
|
||||||
|
|
|
@ -150,14 +150,14 @@ glyph-block Letter-Latin-W : begin
|
||||||
|
|
||||||
include : match slabType
|
include : match slabType
|
||||||
[Just SERIFS-AUTO] : AIVSerifs top df.leftSB df.rightSB
|
[Just SERIFS-AUTO] : AIVSerifs top df.leftSB df.rightSB
|
||||||
[Just SERIFS-MOTION] : tagged 'serifLT' : LeftwardTopSerif df.leftSB top SideJut
|
[Just SERIFS-MOTION] : tagged 'serifLT' : LeftwardTopSerif (df.leftSB + O * 2) top SideJut
|
||||||
[Just SERIFS-DOUBLE-V] : glyph-proc
|
[Just SERIFS-DOUBLE-V] : glyph-proc
|
||||||
if SLAB : include : tagged 'serifLT' : LeftwardTopSerif df.leftSB top SideJut
|
if SLAB : include : tagged 'serifLT' : LeftwardTopSerif (df.leftSB + O * 2) top SideJut
|
||||||
if SLAB : include : tagged 'serifRT' : RightwardTopSerif df.rightSB top SideJut
|
if SLAB : include : tagged 'serifRT' : RightwardTopSerif (df.rightSB - O * 2) top SideJut
|
||||||
[Just SERIFS-ASYMMETRIC] : glyph-proc
|
[Just SERIFS-ASYMMETRIC] : glyph-proc
|
||||||
include : AIVSerifs top df.leftSB df.rightSB
|
include : AIVSerifs top df.leftSB df.rightSB
|
||||||
eject-contour 'serifLT'
|
eject-contour 'serifLT'
|
||||||
if SLAB : include : tagged 'serifLT' : LeftwardTopSerif df.leftSB top SideJut
|
if SLAB : include : tagged 'serifLT' : LeftwardTopSerif (df.leftSB + O * 2) top SideJut
|
||||||
|
|
||||||
define [WonOverlay df] : glyph-proc
|
define [WonOverlay df] : glyph-proc
|
||||||
include : HOverlayBar [mix SB 0 0.7] [mix df.rightSB df.width 0.7] (CAP * 0.6)
|
include : HOverlayBar [mix SB 0 0.7] [mix df.rightSB df.width 0.7] (CAP * 0.6)
|
||||||
|
|
|
@ -45,45 +45,64 @@ glyph-block Letter-Latin-X : begin
|
||||||
include : HalfXStrand stb slab _leftx lefty middlex middley turn pStraight tension
|
include : HalfXStrand stb slab _leftx lefty middlex middley turn pStraight tension
|
||||||
include : HalfXStrand stb slab _rightx righty middlex middley turn pStraight tension
|
include : HalfXStrand stb slab _rightx righty middlex middley turn pStraight tension
|
||||||
|
|
||||||
|
define [UpperXBase] : union
|
||||||
|
XStrand true SLAB SB 0 RightSB CAP 0.1 0.4 0.28
|
||||||
|
XStrand true SLAB SB CAP RightSB 0 0.1 0.4 0.28
|
||||||
|
|
||||||
|
define [XMotionSerifs top] : glyph-proc
|
||||||
|
include : tagged 'serifLT' : LeftwardTopSerif SB top SideJut
|
||||||
|
|
||||||
create-glyph 'X.straight' : glyph-proc
|
create-glyph 'X.straight' : glyph-proc
|
||||||
include : MarkSet.capital
|
include : MarkSet.capital
|
||||||
include : WithAIHSerifsMask CAP 0 SB RightSB : union
|
include : WithAIHSerifsMask CAP 0 SB RightSB : UpperXBase
|
||||||
XStrand true SLAB SB 0 RightSB CAP 0.1 0.4 0.28
|
|
||||||
XStrand true SLAB SB CAP RightSB 0 0.1 0.4 0.28
|
|
||||||
include : AIHSerifs CAP
|
include : AIHSerifs CAP
|
||||||
|
|
||||||
create-glyph 'X.curly' : glyph-proc
|
create-glyph 'X.curly' : glyph-proc
|
||||||
include : MarkSet.capital
|
include : MarkSet.capital
|
||||||
include : WithAIHSerifsMask CAP 0 SB RightSB : union
|
include : WithAIHSerifsMask CAP 0 SB RightSB : UpperXBase
|
||||||
XStrand false SLAB SB 0 RightSB CAP 0.1 0.4 0.28
|
|
||||||
XStrand false SLAB SB CAP RightSB 0 0.1 0.4 0.28
|
|
||||||
include : AIHSerifs CAP
|
include : AIHSerifs CAP
|
||||||
|
create-glyph 'X.straightMotionSerifed' : glyph-proc
|
||||||
|
include : MarkSet.capital
|
||||||
|
include : UpperXBase
|
||||||
|
include : XMotionSerifs CAP
|
||||||
|
create-glyph 'X.curlyMotionSerifed' : glyph-proc
|
||||||
|
include : MarkSet.capital
|
||||||
|
include : UpperXBase
|
||||||
|
include : XMotionSerifs CAP
|
||||||
|
|
||||||
|
define [LowerXBase] : begin
|
||||||
|
local turn : if SLAB 0.1 0.1
|
||||||
|
local tension : if SLAB 0.24 0.24
|
||||||
|
union
|
||||||
|
XStrand true SLAB SB 0 RightSB XH turn 0.4 tension
|
||||||
|
XStrand true SLAB SB XH RightSB 0 turn 0.4 tension
|
||||||
|
|
||||||
local LowerXTurn : if SLAB 0.1 0.1
|
|
||||||
local LowerXTension : if SLAB 0.24 0.24
|
|
||||||
create-glyph 'x.straight' : glyph-proc
|
create-glyph 'x.straight' : glyph-proc
|
||||||
include : MarkSet.e
|
include : MarkSet.e
|
||||||
include : WithAIHSerifsMask XH 0 SB RightSB : union
|
include : WithAIHSerifsMask XH 0 SB RightSB : LowerXBase
|
||||||
XStrand true SLAB SB 0 RightSB XH LowerXTurn 0.4 LowerXTension
|
|
||||||
XStrand true SLAB SB XH RightSB 0 LowerXTurn 0.4 LowerXTension
|
|
||||||
include : AIHSerifs XH
|
include : AIHSerifs XH
|
||||||
create-glyph 'x.curly' : glyph-proc
|
create-glyph 'x.curly' : glyph-proc
|
||||||
include : MarkSet.e
|
include : MarkSet.e
|
||||||
include : WithAIHSerifsMask XH 0 SB RightSB : union
|
include : WithAIHSerifsMask XH 0 SB RightSB : LowerXBase
|
||||||
XStrand false SLAB SB 0 RightSB XH LowerXTurn 0.4 LowerXTension
|
|
||||||
XStrand false SLAB SB XH RightSB 0 LowerXTurn 0.4 LowerXTension
|
|
||||||
include : AIHSerifs XH
|
include : AIHSerifs XH
|
||||||
|
create-glyph 'x.straightMotionSerifed' : glyph-proc
|
||||||
|
include : MarkSet.e
|
||||||
|
include : LowerXBase
|
||||||
|
include : XMotionSerifs XH
|
||||||
|
create-glyph 'x.curlyMotionSerifed' : glyph-proc
|
||||||
|
include : MarkSet.e
|
||||||
|
include : LowerXBase
|
||||||
|
include : XMotionSerifs XH
|
||||||
|
|
||||||
create-glyph 'grek/chi.straight' : composite-proc [MarkSet.p] : union
|
define [ChiBase] : union
|
||||||
XStrand true false SB Descender RightSB XH 0.05 0.4 0.11
|
XStrand true false SB Descender RightSB XH 0.05 0.4 0.11
|
||||||
XStrand true false SB XH RightSB Descender 0.05 0.4 0.11
|
XStrand true false SB XH RightSB Descender 0.05 0.4 0.11
|
||||||
create-glyph 'grek/chi.curly' : composite-proc [MarkSet.p] : union
|
|
||||||
XStrand false false SB Descender RightSB XH 0.05 0.4 0.11
|
create-glyph 'grek/chi.straight' : composite-proc [MarkSet.p] [ChiBase]
|
||||||
XStrand false false SB XH RightSB Descender 0.05 0.4 0.11
|
create-glyph 'grek/chi.curly' : composite-proc [MarkSet.p] [ChiBase]
|
||||||
|
|
||||||
select-variant 'X' 'X'
|
select-variant 'X' 'X'
|
||||||
select-variant 'x' 'x'
|
select-variant 'x' 'x'
|
||||||
select-variant 'grek/chi' 0x3C7 (follow -- 'x')
|
select-variant 'grek/chi' 0x3C7
|
||||||
|
|
||||||
alias 'grek/Chi' 0x3A7 'X'
|
alias 'grek/Chi' 0x3A7 'X'
|
||||||
alias 'cyrl/Ha' 0x425 'X'
|
alias 'cyrl/Ha' 0x425 'X'
|
||||||
|
|
|
@ -50,15 +50,8 @@ glyph-block Symbol-Letter : begin
|
||||||
|
|
||||||
glyph-block-import CommonShapes
|
glyph-block-import CommonShapes
|
||||||
glyph-block-import Common-Derivatives
|
glyph-block-import Common-Derivatives
|
||||||
glyph-block-import Letter-Latin-Upper-N : NShape
|
|
||||||
glyph-block-import Letter-Latin-X : XStrand
|
glyph-block-import Letter-Latin-X : XStrand
|
||||||
|
|
||||||
create-glyph 'numero' 0x2116 : glyph-proc
|
|
||||||
local fine : AdviceStroke 4.5
|
|
||||||
include : OShape XH [Math.max (fine * 2) (CAP * 0.1)] (Middle + [Math.max (fine / 2) ((RightSB - SB) * 0.1)]) [mix RightSB Width 0.5] fine (SmoothA * fine / Stroke) (SmoothB * fine / Stroke)
|
|
||||||
include : NShape CAP (SB / 2) Middle 4.5 5.5 0.7
|
|
||||||
include : HBarBottom (Middle + fine / 2) [mix RightSB Width 0.5] 0 fine
|
|
||||||
|
|
||||||
alias 'Ohm' 0x2126 'grek/Omega'
|
alias 'Ohm' 0x2126 'grek/Omega'
|
||||||
turned 'Mho' 0x2127 'Ohm' Middle (CAP / 2)
|
turned 'Mho' 0x2127 'Ohm' Middle (CAP / 2)
|
||||||
|
|
||||||
|
|
|
@ -135,7 +135,7 @@ define-macro glyph-block-import : syntax-rules
|
||||||
CircleRing CircleRingAt CircleDotAt OShape OShapeOutline OBarLeftShape OBarRightShape
|
CircleRing CircleRingAt CircleDotAt OShape OShapeOutline OBarLeftShape OBarRightShape
|
||||||
LeftwardTopSerif LeftwardBottomSerif RightwardTopSerif RightwardBottomSerif
|
LeftwardTopSerif LeftwardBottomSerif RightwardTopSerif RightwardBottomSerif
|
||||||
CenterTopSerif CenterBottomSerif DownwardRightSerif UpwardRightSerif DownwardLeftSerif
|
CenterTopSerif CenterBottomSerif DownwardRightSerif UpwardRightSerif DownwardLeftSerif
|
||||||
UpwardLeftSerif AIVSerifs AIHSerifs AINSerifs AICyrISerifs AIMSerifs HBar
|
UpwardLeftSerif AIVSerifs AIHSerifs AICyrISerifs AIMSerifs HBar
|
||||||
HBarTop HBarBottom HOverlayBar VBar VBarLeft VBarRight VerticalHook LegShape LeftHook
|
HBarTop HBarBottom HOverlayBar VBar VBarLeft VBarRight VerticalHook LegShape LeftHook
|
||||||
HooktopLeftBar FlatSlashShape hookstart hookend CyrDescender CyrLeftDescender FlipAround
|
HooktopLeftBar FlatSlashShape hookstart hookend CyrDescender CyrLeftDescender FlipAround
|
||||||
ScaleAround Realign ForceUpright DiagCor CreateWaveShape NameUni PointingTo
|
ScaleAround Realign ForceUpright DiagCor CreateWaveShape NameUni PointingTo
|
||||||
|
|
|
@ -186,9 +186,25 @@ selector.G = "toothlessRoundedCapped"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[prime.capital-h]
|
||||||
|
sampler = 'H'
|
||||||
|
tag = 'cv07'
|
||||||
|
|
||||||
|
[prime.capital-h.variants.standard]
|
||||||
|
rank = 1
|
||||||
|
description = "Standard H"
|
||||||
|
selector.H = "standard"
|
||||||
|
|
||||||
|
[prime.capital-h.variants.motion-serifed]
|
||||||
|
rank = 2
|
||||||
|
description = "Motion-Serifed H"
|
||||||
|
selector.H = "motionSerifed"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[prime.capital-i]
|
[prime.capital-i]
|
||||||
sampler = 'I'
|
sampler = 'I'
|
||||||
tag = 'cv07'
|
tag = 'cv08'
|
||||||
|
|
||||||
[prime.capital-i.variants.serifed]
|
[prime.capital-i.variants.serifed]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -209,7 +225,7 @@ selector.I = "shortSerifed"
|
||||||
|
|
||||||
[prime.capital-j]
|
[prime.capital-j]
|
||||||
sampler = 'J'
|
sampler = 'J'
|
||||||
tag = 'cv08'
|
tag = 'cv09'
|
||||||
|
|
||||||
[prime.capital-j.variants.serifless]
|
[prime.capital-j.variants.serifless]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -235,33 +251,61 @@ selector.J = 'serifedSymmetric'
|
||||||
|
|
||||||
[prime.capital-k]
|
[prime.capital-k]
|
||||||
sampler = 'K'
|
sampler = 'K'
|
||||||
tag = 'cv09'
|
tag = 'cv10'
|
||||||
|
|
||||||
[prime.capital-k.variants.straight]
|
[prime.capital-k.variants.straight]
|
||||||
rank = 1
|
rank = 1
|
||||||
description = '`K` with standard shape'
|
description = '`K` with standard shape'
|
||||||
selector.K = 'straight'
|
selector.K = 'straight'
|
||||||
|
selector.Khooktop = 'straight'
|
||||||
|
|
||||||
[prime.capital-k.variants.curly]
|
[prime.capital-k.variants.curly]
|
||||||
rank = 2
|
rank = 2
|
||||||
description = 'Slightly curly `K`, like Iosevka 2.x'
|
description = 'Slightly curly `K`, like Iosevka 2.x'
|
||||||
selector.K = 'curly'
|
selector.K = 'curly'
|
||||||
|
selector.Khooktop = 'curly'
|
||||||
|
|
||||||
[prime.capital-k.variants.symmetric-disconnected]
|
[prime.capital-k.variants.symmetric-disconnected]
|
||||||
rank = 3
|
rank = 3
|
||||||
description = '`K` with symmetric legs disconnected with the vertical bar'
|
description = '`K` with symmetric legs disconnected to the vertical bar'
|
||||||
selector.K = 'symmetricDisconnected'
|
selector.K = 'symmetricDisconnected'
|
||||||
|
selector.Khooktop = 'symmetricDisconnected'
|
||||||
|
|
||||||
[prime.capital-k.variants.symmetric-connected]
|
[prime.capital-k.variants.symmetric-connected]
|
||||||
rank = 4
|
rank = 4
|
||||||
description = '`K` with symmetric legs connected with the vertical bar'
|
description = '`K` with symmetric legs connected to the vertical bar'
|
||||||
selector.K = 'symmetricConnected'
|
selector.K = 'symmetricConnected'
|
||||||
|
selector.Khooktop = 'symmetricConnected'
|
||||||
|
|
||||||
|
[prime.capital-k.variants.straight-motion-serifed]
|
||||||
|
rank = 5
|
||||||
|
description = '`K` with standard shape and motion serifs'
|
||||||
|
selector.K = 'straightMotionSerifed'
|
||||||
|
selector.Khooktop = 'straight'
|
||||||
|
|
||||||
|
[prime.capital-k.variants.curly-motion-serifed]
|
||||||
|
rank = 6
|
||||||
|
description = 'Slightly curly `K`, like Iosevka 2.x, with motion serifs'
|
||||||
|
selector.K = 'curlyMotionSerifed'
|
||||||
|
selector.Khooktop = 'curly'
|
||||||
|
|
||||||
|
[prime.capital-k.variants.symmetric-disconnected-motion-serifed]
|
||||||
|
rank = 7
|
||||||
|
description = '`K` with symmetric legs disconnected to the vertical bar, and motion serifs'
|
||||||
|
selector.K = 'symmetricDisconnectedMotionSerifed'
|
||||||
|
selector.Khooktop = 'symmetricDisconnected'
|
||||||
|
|
||||||
|
[prime.capital-k.variants.symmetric-connected-motion-serifed]
|
||||||
|
rank = 8
|
||||||
|
description = '`K` with symmetric legs connected to the vertical bar, and motion serifs'
|
||||||
|
selector.K = 'symmetricConnectedMotionSerifed'
|
||||||
|
selector.Khooktop = 'symmetricConnected'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[prime.capital-l]
|
[prime.capital-l]
|
||||||
sampler = 'L'
|
sampler = 'L'
|
||||||
tag = 'cv10'
|
tag = 'cv11'
|
||||||
|
|
||||||
[prime.capital-l.variants.standard]
|
[prime.capital-l.variants.standard]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -278,7 +322,7 @@ selector.L = 'motionSerifed'
|
||||||
|
|
||||||
[prime.capital-m]
|
[prime.capital-m]
|
||||||
sampler = 'M'
|
sampler = 'M'
|
||||||
tag = 'cv11'
|
tag = 'cv12'
|
||||||
|
|
||||||
[prime.capital-m.variants.hanging]
|
[prime.capital-m.variants.hanging]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -290,11 +334,37 @@ rank = 2
|
||||||
description = '`M` with middle aligned to baseline'
|
description = '`M` with middle aligned to baseline'
|
||||||
selector.M = 'flatBottom'
|
selector.M = 'flatBottom'
|
||||||
|
|
||||||
|
[prime.capital-m.variants.hanging-motion-serifed]
|
||||||
|
rank = 3
|
||||||
|
description = '`M` with middle being hanging off baseline and motion serifs'
|
||||||
|
selector.M = 'hangingMotionSerifed'
|
||||||
|
|
||||||
|
[prime.capital-m.variants.flat-bottom-motion-serifed]
|
||||||
|
rank = 4
|
||||||
|
description = '`M` with middle aligned to baseline and motion serifs'
|
||||||
|
selector.M = 'flatBottomMotionSerifed'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[prime.capital-n]
|
||||||
|
sampler = 'N'
|
||||||
|
tag = 'cv13'
|
||||||
|
|
||||||
|
[prime.capital-n.variants.standard]
|
||||||
|
rank = 1
|
||||||
|
description = "Standard N"
|
||||||
|
selector.N = "standard"
|
||||||
|
|
||||||
|
[prime.capital-n.variants.motion-serifed]
|
||||||
|
rank = 2
|
||||||
|
description = "Motion-Serifed N"
|
||||||
|
selector.N = "motionSerifed"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[prime.capital-p]
|
[prime.capital-p]
|
||||||
sampler = 'P'
|
sampler = 'P'
|
||||||
tag = 'cv12'
|
tag = 'cv14'
|
||||||
|
|
||||||
[prime.capital-p.variants.closed]
|
[prime.capital-p.variants.closed]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -320,7 +390,7 @@ selector.P = "openMotionSerifed"
|
||||||
|
|
||||||
[prime.capital-q]
|
[prime.capital-q]
|
||||||
sampler = 'Q'
|
sampler = 'Q'
|
||||||
tag = 'cv13'
|
tag = 'cv15'
|
||||||
|
|
||||||
[prime.capital-q.variants.curly-tailed]
|
[prime.capital-q.variants.curly-tailed]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -361,7 +431,7 @@ selector.Q = 'detachedObliqueTailed'
|
||||||
|
|
||||||
[prime.capital-r]
|
[prime.capital-r]
|
||||||
sampler = 'R'
|
sampler = 'R'
|
||||||
tag = 'cv14'
|
tag = 'cv16'
|
||||||
|
|
||||||
[prime.capital-r.variants.straight]
|
[prime.capital-r.variants.straight]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -451,7 +521,7 @@ selector.Rrotunda = "standing"
|
||||||
|
|
||||||
[prime.capital-t]
|
[prime.capital-t]
|
||||||
sampler = 'T'
|
sampler = 'T'
|
||||||
tag = 'cv15'
|
tag = 'cv17'
|
||||||
|
|
||||||
[prime.capital-t.variants.standard]
|
[prime.capital-t.variants.standard]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -467,7 +537,7 @@ selector.T = "motionSerifed"
|
||||||
|
|
||||||
[prime.capital-u]
|
[prime.capital-u]
|
||||||
sampler = 'u'
|
sampler = 'u'
|
||||||
tag = 'cv16'
|
tag = 'cv18'
|
||||||
|
|
||||||
[prime.capital-u.variants.toothed]
|
[prime.capital-u.variants.toothed]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -523,7 +593,7 @@ selector.U = "toothlessRoundedBilateralMotionSerifed"
|
||||||
|
|
||||||
[prime.capital-v]
|
[prime.capital-v]
|
||||||
sampler = 'V'
|
sampler = 'V'
|
||||||
tag = 'cv17'
|
tag = 'cv19'
|
||||||
|
|
||||||
[prime.capital-v.variants.straight]
|
[prime.capital-v.variants.straight]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -553,7 +623,7 @@ selector.Vhooktop = "curly"
|
||||||
|
|
||||||
[prime.capital-w]
|
[prime.capital-w]
|
||||||
sampler = 'W'
|
sampler = 'W'
|
||||||
tag = 'cv18'
|
tag = 'cv20'
|
||||||
|
|
||||||
[prime.capital-w.variants.straight]
|
[prime.capital-w.variants.straight]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -617,9 +687,35 @@ selector.Whooktop = "straightFlatTop"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[prime.capital-x]
|
||||||
|
sampler = 'X'
|
||||||
|
tag = 'cv21'
|
||||||
|
|
||||||
|
[prime.capital-x.variants.straight]
|
||||||
|
rank = 1
|
||||||
|
description = 'Standard, straight `X`'
|
||||||
|
selector.X = "straight"
|
||||||
|
|
||||||
|
[prime.capital-x.variants.curly]
|
||||||
|
rank = 2
|
||||||
|
description = 'Slightly curly `X`, like Iosevka 2.x'
|
||||||
|
selector.X = "curly"
|
||||||
|
|
||||||
|
[prime.capital-x.variants.straight-motion-serifed]
|
||||||
|
rank = 3
|
||||||
|
description = 'Standard, straight `X` with motion serifs'
|
||||||
|
selector.X = "straightMotionSerifed"
|
||||||
|
|
||||||
|
[prime.capital-x.variants.curly-motion-serifed]
|
||||||
|
rank = 4
|
||||||
|
description = 'Slightly curly `X`, like Iosevka 2.x, with motion serifs'
|
||||||
|
selector.X = "curlyMotionSerifed"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[prime.capital-y]
|
[prime.capital-y]
|
||||||
sampler = 'Y'
|
sampler = 'Y'
|
||||||
tag = 'cv19'
|
tag = 'cv22'
|
||||||
|
|
||||||
[prime.capital-y.variants.straight]
|
[prime.capital-y.variants.straight]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -631,11 +727,21 @@ rank = 2
|
||||||
description = 'Slightly curly `Y`, like Iosevka 2.x'
|
description = 'Slightly curly `Y`, like Iosevka 2.x'
|
||||||
selector.Y = "curly"
|
selector.Y = "curly"
|
||||||
|
|
||||||
|
[prime.capital-y.variants.straight-motion-serifed]
|
||||||
|
rank = 3
|
||||||
|
description = 'Standard, straight `Y`, with motion serifs'
|
||||||
|
selector.Y = "straightMotionSerifed"
|
||||||
|
|
||||||
|
[prime.capital-y.variants.curly-motion-serifed]
|
||||||
|
rank = 4
|
||||||
|
description = 'Slightly curly `Y`, like Iosevka 2.x, with motion serifs'
|
||||||
|
selector.Y = "curlyMotionSerifed"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[prime.capital-z]
|
[prime.capital-z]
|
||||||
sampler = 'Z'
|
sampler = 'Z'
|
||||||
tag = 'cv20'
|
tag = 'cv23'
|
||||||
|
|
||||||
[prime.capital-z.variants.standard]
|
[prime.capital-z.variants.standard]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -695,7 +801,7 @@ selector.Z = 'curlyTopMotionSerifed'
|
||||||
|
|
||||||
[prime.a]
|
[prime.a]
|
||||||
sampler = 'a'
|
sampler = 'a'
|
||||||
tag = 'cv21'
|
tag = 'cv24'
|
||||||
|
|
||||||
[prime.a.variants.double-storey]
|
[prime.a.variants.double-storey]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -770,7 +876,7 @@ selector.a = 'singleStoreyEarlessRoundedMotionSerifed'
|
||||||
|
|
||||||
[prime.b]
|
[prime.b]
|
||||||
sampler = 'b'
|
sampler = 'b'
|
||||||
tag = 'cv22'
|
tag = 'cv25'
|
||||||
|
|
||||||
[prime.b.variants.toothed]
|
[prime.b.variants.toothed]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -812,7 +918,7 @@ selector.bhooktop = "toothlessRounded"
|
||||||
|
|
||||||
[prime.d]
|
[prime.d]
|
||||||
sampler = 'd'
|
sampler = 'd'
|
||||||
tag = 'cv23'
|
tag = 'cv26'
|
||||||
|
|
||||||
[prime.d.variants.toothed]
|
[prime.d.variants.toothed]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -866,7 +972,7 @@ selector.dhooktop = "tailed"
|
||||||
|
|
||||||
[prime.e]
|
[prime.e]
|
||||||
sampler = 'e'
|
sampler = 'e'
|
||||||
tag = 'cv24'
|
tag = 'cv27'
|
||||||
|
|
||||||
[prime.e.variants.flat-crossbar]
|
[prime.e.variants.flat-crossbar]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -882,7 +988,7 @@ selector.e = 'rounded'
|
||||||
|
|
||||||
[prime.f]
|
[prime.f]
|
||||||
sampler = 'f'
|
sampler = 'f'
|
||||||
tag = 'cv25'
|
tag = 'cv28'
|
||||||
|
|
||||||
[prime.f.variants.serifless]
|
[prime.f.variants.serifless]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -986,7 +1092,7 @@ selector.f = "flatHookDiagonalTailedCrossbarAtXHeight"
|
||||||
|
|
||||||
[prime.g]
|
[prime.g]
|
||||||
sampler = 'g'
|
sampler = 'g'
|
||||||
tag = 'cv26'
|
tag = 'cv29'
|
||||||
|
|
||||||
[prime.g.variants.double-storey]
|
[prime.g.variants.double-storey]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -1042,7 +1148,7 @@ selector.g = 'singleStoreyMotionSerifedFlatHook'
|
||||||
|
|
||||||
[prime.h]
|
[prime.h]
|
||||||
sampler = 'h'
|
sampler = 'h'
|
||||||
tag = 'cv27'
|
tag = 'cv30'
|
||||||
|
|
||||||
[prime.h.variants.straight]
|
[prime.h.variants.straight]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -1076,7 +1182,7 @@ selector.heng = 'straightMotionSerifed'
|
||||||
|
|
||||||
[prime.i]
|
[prime.i]
|
||||||
sampler = 'i'
|
sampler = 'i'
|
||||||
tag = 'cv28'
|
tag = 'cv31'
|
||||||
|
|
||||||
[prime.i.variants.serifed]
|
[prime.i.variants.serifed]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -1142,7 +1248,7 @@ selector.dotlessi = 'serifedDiagonalTailed'
|
||||||
|
|
||||||
[prime.j]
|
[prime.j]
|
||||||
sampler = 'j'
|
sampler = 'j'
|
||||||
tag = 'cv29'
|
tag = 'cv32'
|
||||||
|
|
||||||
[prime.j.variants.serifed]
|
[prime.j.variants.serifed]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -1183,84 +1289,96 @@ selector.dotlessj = 'diagonalTailedSerifed'
|
||||||
|
|
||||||
[prime.k]
|
[prime.k]
|
||||||
sampler = 'k'
|
sampler = 'k'
|
||||||
tag = 'cv30'
|
tag = 'cv33'
|
||||||
|
|
||||||
[prime.k.variants.straight]
|
[prime.k.variants.straight]
|
||||||
rank = 1
|
rank = 1
|
||||||
description = '`k` with standard shape'
|
description = '`k` with standard shape'
|
||||||
selector.k = 'straight'
|
selector.k = 'straight'
|
||||||
|
selector.khooktop = 'straight'
|
||||||
selector.kDescender = 'straight'
|
selector.kDescender = 'straight'
|
||||||
|
|
||||||
[prime.k.variants.curly]
|
[prime.k.variants.curly]
|
||||||
rank = 2
|
rank = 2
|
||||||
description = 'Slightly curly `k`, like Iosevka 2.x'
|
description = 'Slightly curly `k`, like Iosevka 2.x'
|
||||||
selector.k = 'curly'
|
selector.k = 'curly'
|
||||||
|
selector.khooktop = 'curly'
|
||||||
selector.kDescender = 'curly'
|
selector.kDescender = 'curly'
|
||||||
|
|
||||||
[prime.k.variants.cursive]
|
[prime.k.variants.cursive]
|
||||||
rank = 3
|
rank = 3
|
||||||
description = '`k` with a cursive loop'
|
description = '`k` with a cursive loop'
|
||||||
selector.k = 'cursive'
|
selector.k = 'cursive'
|
||||||
|
selector.khooktop = 'cursive'
|
||||||
selector.kDescender = 'cursive'
|
selector.kDescender = 'cursive'
|
||||||
|
|
||||||
[prime.k.variants.diagonal-tailed-cursive]
|
[prime.k.variants.diagonal-tailed-cursive]
|
||||||
rank = 4
|
rank = 4
|
||||||
description = '`k` with a cursive loop and diagonal tail'
|
description = '`k` with a cursive loop and diagonal tail'
|
||||||
selector.k = 'diagonalTailedSerifedCursive'
|
selector.k = 'diagonalTailedSerifedCursive'
|
||||||
|
selector.khooktop = 'diagonalTailedSerifedCursive'
|
||||||
selector.kDescender = 'cursive'
|
selector.kDescender = 'cursive'
|
||||||
|
|
||||||
[prime.k.variants.symmetric-disconnected]
|
[prime.k.variants.symmetric-disconnected]
|
||||||
rank = 5
|
rank = 5
|
||||||
description = '`k` with symmetric legs disconnected with the vertical bar'
|
description = '`k` with symmetric legs disconnected to the vertical bar'
|
||||||
selector.k = 'symmetricDisconnected'
|
selector.k = 'symmetricDisconnected'
|
||||||
|
selector.khooktop = 'symmetricDisconnected'
|
||||||
selector.kDescender = 'symmetricDisconnected'
|
selector.kDescender = 'symmetricDisconnected'
|
||||||
|
|
||||||
[prime.k.variants.symmetric-connected]
|
[prime.k.variants.symmetric-connected]
|
||||||
rank = 6
|
rank = 6
|
||||||
description = '`k` with symmetric legs connected with the vertical bar'
|
description = '`k` with symmetric legs connected to the vertical bar'
|
||||||
selector.k = 'symmetricConnected'
|
selector.k = 'symmetricConnected'
|
||||||
|
selector.khooktop = 'symmetricConnected'
|
||||||
selector.kDescender = 'symmetricConnected'
|
selector.kDescender = 'symmetricConnected'
|
||||||
|
|
||||||
[prime.k.variants.straight-motion-serifed]
|
[prime.k.variants.straight-motion-serifed]
|
||||||
rank = 7
|
rank = 7
|
||||||
description = '`k` with motion serifs'
|
description = '`k` with motion serifs'
|
||||||
selector.k = 'straightMotionSerifed'
|
selector.k = 'straightMotionSerifed'
|
||||||
|
selector.khooktop = 'straight'
|
||||||
selector.kDescender = 'straightMotionSerifed'
|
selector.kDescender = 'straightMotionSerifed'
|
||||||
|
|
||||||
[prime.k.variants.curly-motion-serifed]
|
[prime.k.variants.curly-motion-serifed]
|
||||||
rank = 8
|
rank = 8
|
||||||
description = 'Slightly curly `k`, like Iosevka 2.x, with motion serifs'
|
description = 'Slightly curly `k`, like Iosevka 2.x, with motion serifs'
|
||||||
selector.k = 'curlyMotionSerifed'
|
selector.k = 'curlyMotionSerifed'
|
||||||
|
selector.khooktop = 'curly'
|
||||||
selector.kDescender = 'curlyMotionSerifed'
|
selector.kDescender = 'curlyMotionSerifed'
|
||||||
|
|
||||||
[prime.k.variants.cursive-motion-serifed]
|
[prime.k.variants.cursive-motion-serifed]
|
||||||
rank = 9
|
rank = 9
|
||||||
description = '`k` with a cursive loop and motion serifs'
|
description = '`k` with a cursive loop and motion serifs'
|
||||||
selector.k = 'cursiveMotionSerifed'
|
selector.k = 'cursiveMotionSerifed'
|
||||||
|
selector.khooktop = 'cursive'
|
||||||
selector.kDescender = 'cursiveMotionSerifed'
|
selector.kDescender = 'cursiveMotionSerifed'
|
||||||
|
|
||||||
[prime.k.variants.diagonal-tailed-cursive-motion-serifed]
|
[prime.k.variants.diagonal-tailed-cursive-motion-serifed]
|
||||||
rank = 10
|
rank = 10
|
||||||
description = '`k` with a cursive loop, motion serifs and diagonal tail'
|
description = '`k` with a cursive loop, motion serifs and diagonal tail'
|
||||||
selector.k = 'diagonalTailedSerifedCursiveMotionSerifed'
|
selector.k = 'diagonalTailedSerifedCursiveMotionSerifed'
|
||||||
|
selector.khooktop = 'diagonalTailedSerifedCursive'
|
||||||
selector.kDescender = 'cursiveMotionSerifed'
|
selector.kDescender = 'cursiveMotionSerifed'
|
||||||
|
|
||||||
[prime.k.variants.symmetric-disconnected-motion-serifed]
|
[prime.k.variants.symmetric-disconnected-motion-serifed]
|
||||||
rank = 11
|
rank = 11
|
||||||
description = '`k` with symmetric legs disconnected with the vertical bar and motion serifs'
|
description = '`k` with symmetric legs disconnected to the vertical bar and motion serifs'
|
||||||
selector.k = 'symmetricDisconnectedMotionSerifed'
|
selector.k = 'symmetricDisconnectedMotionSerifed'
|
||||||
|
selector.khooktop = 'symmetricDisconnected'
|
||||||
selector.kDescender = 'symmetricDisconnectedMotionSerifed'
|
selector.kDescender = 'symmetricDisconnectedMotionSerifed'
|
||||||
|
|
||||||
[prime.k.variants.symmetric-connected-motion-serifed]
|
[prime.k.variants.symmetric-connected-motion-serifed]
|
||||||
rank = 12
|
rank = 12
|
||||||
description = '`k` with symmetric legs connected with the vertical bar and motion serifs'
|
description = '`k` with symmetric legs connected to the vertical bar and motion serifs'
|
||||||
selector.k = 'symmetricConnectedMotionSerifed'
|
selector.k = 'symmetricConnectedMotionSerifed'
|
||||||
|
selector.khooktop = 'symmetricConnected'
|
||||||
selector.kDescender = 'symmetricConnectedMotionSerifed'
|
selector.kDescender = 'symmetricConnectedMotionSerifed'
|
||||||
|
|
||||||
|
|
||||||
[prime.l]
|
[prime.l]
|
||||||
sampler = 'l'
|
sampler = 'l'
|
||||||
tag = 'cv31'
|
tag = 'cv34'
|
||||||
|
|
||||||
[prime.l.variants.serifed]
|
[prime.l.variants.serifed]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -1325,7 +1443,7 @@ selector.l = 'serifedDiagonalTailed'
|
||||||
|
|
||||||
[prime.m]
|
[prime.m]
|
||||||
sampler = 'm'
|
sampler = 'm'
|
||||||
tag = 'cv32'
|
tag = 'cv35'
|
||||||
|
|
||||||
[prime.m.variants.normal]
|
[prime.m.variants.normal]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -1451,7 +1569,7 @@ selector."cyrl/te.italic" = "motionSerifedTailed"
|
||||||
|
|
||||||
[prime.n]
|
[prime.n]
|
||||||
sampler = 'n'
|
sampler = 'n'
|
||||||
tag = 'cv33'
|
tag = 'cv36'
|
||||||
|
|
||||||
[prime.n.variants.straight]
|
[prime.n.variants.straight]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -1513,7 +1631,7 @@ selector."cyrl/pe.italic" = "motionSerifedTailed"
|
||||||
|
|
||||||
[prime.p]
|
[prime.p]
|
||||||
sampler = 'p'
|
sampler = 'p'
|
||||||
tag = 'cv34'
|
tag = 'cv37'
|
||||||
|
|
||||||
[prime.p.variants.eared]
|
[prime.p.variants.eared]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -1542,7 +1660,7 @@ selector."cyrl/er" = "motionSerifed"
|
||||||
|
|
||||||
[prime.q]
|
[prime.q]
|
||||||
sampler = 'q'
|
sampler = 'q'
|
||||||
tag = 'cv35'
|
tag = 'cv38'
|
||||||
|
|
||||||
[prime.q.variants.straight]
|
[prime.q.variants.straight]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -1607,7 +1725,7 @@ selector.q = 'motionSerifedDiagonalTailed'
|
||||||
|
|
||||||
[prime.r]
|
[prime.r]
|
||||||
sampler = 'r'
|
sampler = 'r'
|
||||||
tag = 'cv36'
|
tag = 'cv39'
|
||||||
|
|
||||||
[prime.r.variants.serifless]
|
[prime.r.variants.serifless]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -1677,7 +1795,7 @@ selector."rflap" = "compact"
|
||||||
|
|
||||||
[prime.t]
|
[prime.t]
|
||||||
sampler = 't'
|
sampler = 't'
|
||||||
tag = 'cv37'
|
tag = 'cv40'
|
||||||
|
|
||||||
[prime.t.variants.standard]
|
[prime.t.variants.standard]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -1718,7 +1836,7 @@ selector.t = 'diagonalTailed'
|
||||||
|
|
||||||
[prime.u]
|
[prime.u]
|
||||||
sampler = 'u'
|
sampler = 'u'
|
||||||
tag = 'cv38'
|
tag = 'cv41'
|
||||||
|
|
||||||
[prime.u.variants.toothed]
|
[prime.u.variants.toothed]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -1796,7 +1914,7 @@ selector."cyrl/tse.italic" = "motionSerifed"
|
||||||
|
|
||||||
[prime.v]
|
[prime.v]
|
||||||
sampler = 'v'
|
sampler = 'v'
|
||||||
tag = 'cv39'
|
tag = 'cv42'
|
||||||
|
|
||||||
[prime.v.variants.straight]
|
[prime.v.variants.straight]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -1826,7 +1944,7 @@ selector.vhooktop = "curly"
|
||||||
|
|
||||||
[prime.w]
|
[prime.w]
|
||||||
sampler = 'w'
|
sampler = 'w'
|
||||||
tag = 'cv40'
|
tag = 'cv43'
|
||||||
|
|
||||||
[prime.w.variants.straight]
|
[prime.w.variants.straight]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -1891,26 +2009,38 @@ selector.whooktop = "straightFlatTop"
|
||||||
|
|
||||||
|
|
||||||
[prime.x]
|
[prime.x]
|
||||||
sampler = 'xX'
|
sampler = 'x'
|
||||||
tag = 'cv41'
|
tag = 'cv44'
|
||||||
|
|
||||||
[prime.x.variants.straight]
|
[prime.x.variants.straight]
|
||||||
rank = 1
|
rank = 1
|
||||||
description = 'Standard, straight `X` and `x`'
|
description = 'Standard, straight `X`'
|
||||||
selector.X = "straight"
|
|
||||||
selector.x = "straight"
|
selector.x = "straight"
|
||||||
|
selector."grek/chi" = "straight"
|
||||||
|
|
||||||
[prime.x.variants.curly]
|
[prime.x.variants.curly]
|
||||||
rank = 2
|
rank = 2
|
||||||
description = 'Slightly curly `X` and `x`, like Iosevka 2.x'
|
description = 'Slightly curly `X`, like Iosevka 2.x'
|
||||||
selector.X = "curly"
|
|
||||||
selector.x = "curly"
|
selector.x = "curly"
|
||||||
|
selector."grek/chi" = "curly"
|
||||||
|
|
||||||
|
[prime.x.variants.straight-motion-serifed]
|
||||||
|
rank = 3
|
||||||
|
description = 'Standard, straight `X` with motion serifs'
|
||||||
|
selector.x = "straightMotionSerifed"
|
||||||
|
selector."grek/chi" = "straight"
|
||||||
|
|
||||||
|
[prime.x.variants.curly-motion-serifed]
|
||||||
|
rank = 4
|
||||||
|
description = 'Slightly curly `X`, like Iosevka 2.x, with motion serifs'
|
||||||
|
selector.x = "curlyMotionSerifed"
|
||||||
|
selector."grek/chi" = "curly"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[prime.y]
|
[prime.y]
|
||||||
sampler = 'y'
|
sampler = 'y'
|
||||||
tag = 'cv42'
|
tag = 'cv45'
|
||||||
|
|
||||||
[prime.y.variants.straight]
|
[prime.y.variants.straight]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -1986,7 +2116,7 @@ selector.yhooktop = "cursiveFlatHook"
|
||||||
|
|
||||||
[prime.z]
|
[prime.z]
|
||||||
sampler = 'z'
|
sampler = 'z'
|
||||||
tag = 'cv43'
|
tag = 'cv46'
|
||||||
|
|
||||||
[prime.z.variants.standard]
|
[prime.z.variants.standard]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2047,7 +2177,7 @@ selector.z = 'curlyTopMotionSerifed'
|
||||||
[prime.eszet]
|
[prime.eszet]
|
||||||
sampler = 'ß'
|
sampler = 'ß'
|
||||||
samplerExplain = 'Eszet'
|
samplerExplain = 'Eszet'
|
||||||
tag = 'cv44'
|
tag = 'cv47'
|
||||||
|
|
||||||
[prime.eszet.variants.traditional]
|
[prime.eszet.variants.traditional]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2068,7 +2198,7 @@ selector.eszet = 'longsslig'
|
||||||
|
|
||||||
[prime.turn-v]
|
[prime.turn-v]
|
||||||
sampler = 'ΛΔ'
|
sampler = 'ΛΔ'
|
||||||
tag = 'cv45'
|
tag = 'cv48'
|
||||||
|
|
||||||
[prime.turn-v.variants.straight]
|
[prime.turn-v.variants.straight]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2087,7 +2217,7 @@ selector."grek/Delta" = "curly"
|
||||||
[prime.lambda]
|
[prime.lambda]
|
||||||
sampler = 'λ'
|
sampler = 'λ'
|
||||||
samplerExplain = 'Greek small Lambda'
|
samplerExplain = 'Greek small Lambda'
|
||||||
tag = 'cv46'
|
tag = 'cv49'
|
||||||
|
|
||||||
[prime.lambda.variants.straight]
|
[prime.lambda.variants.straight]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2104,7 +2234,7 @@ selector."grek/lambda" = "curly"
|
||||||
[prime.cyrl-capital-u]
|
[prime.cyrl-capital-u]
|
||||||
sampler = 'У'
|
sampler = 'У'
|
||||||
samplerExplain = 'Cyrillic Capital U'
|
samplerExplain = 'Cyrillic Capital U'
|
||||||
tag = 'cv47'
|
tag = 'cv50'
|
||||||
|
|
||||||
[prime.cyrl-capital-u.variants.straight]
|
[prime.cyrl-capital-u.variants.straight]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2140,7 +2270,7 @@ selector."cyrl/U" = "cursiveFlatHook"
|
||||||
|
|
||||||
[prime.zero]
|
[prime.zero]
|
||||||
sampler = '0'
|
sampler = '0'
|
||||||
tag = 'cv48'
|
tag = 'cv51'
|
||||||
|
|
||||||
[prime.zero.variants.slashed]
|
[prime.zero.variants.slashed]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2171,7 +2301,7 @@ selector.zero = 'longDotted'
|
||||||
|
|
||||||
[prime.one]
|
[prime.one]
|
||||||
sampler = '1'
|
sampler = '1'
|
||||||
tag = 'cv49'
|
tag = 'cv52'
|
||||||
|
|
||||||
[prime.one.variants.nobase]
|
[prime.one.variants.nobase]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2202,7 +2332,7 @@ selector.one = "baseLongTopSerif"
|
||||||
|
|
||||||
[prime.two]
|
[prime.two]
|
||||||
sampler = '2'
|
sampler = '2'
|
||||||
tag = 'cv50'
|
tag = 'cv53'
|
||||||
|
|
||||||
[prime.two.variants.straight-neck]
|
[prime.two.variants.straight-neck]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2218,7 +2348,7 @@ selector.two = "curlyNeck"
|
||||||
|
|
||||||
[prime.three]
|
[prime.three]
|
||||||
sampler = '3'
|
sampler = '3'
|
||||||
tag = 'cv51'
|
tag = 'cv54'
|
||||||
|
|
||||||
[prime.three.variants.flattop]
|
[prime.three.variants.flattop]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2234,7 +2364,7 @@ selector.three = 'twoarcs'
|
||||||
|
|
||||||
[prime.four]
|
[prime.four]
|
||||||
sampler = '4'
|
sampler = '4'
|
||||||
tag = 'cv52'
|
tag = 'cv55'
|
||||||
|
|
||||||
[prime.four.variants.closed]
|
[prime.four.variants.closed]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2270,7 +2400,7 @@ selector.four = 'openNonCrossing'
|
||||||
|
|
||||||
[prime.six]
|
[prime.six]
|
||||||
sampler = '6'
|
sampler = '6'
|
||||||
tag = 'cv53'
|
tag = 'cv56'
|
||||||
|
|
||||||
[prime.six.variants.closed-contour]
|
[prime.six.variants.closed-contour]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2291,7 +2421,7 @@ selector.six = "straightBar"
|
||||||
|
|
||||||
[prime.seven]
|
[prime.seven]
|
||||||
sampler = '7'
|
sampler = '7'
|
||||||
tag = 'cv54'
|
tag = 'cv57'
|
||||||
|
|
||||||
[prime.seven.variants.noserif]
|
[prime.seven.variants.noserif]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2317,7 +2447,7 @@ selector.seven = "crossbarSerifed"
|
||||||
|
|
||||||
[prime.eight]
|
[prime.eight]
|
||||||
sampler = '8'
|
sampler = '8'
|
||||||
tag = 'cv55'
|
tag = 'cv58'
|
||||||
|
|
||||||
[prime.eight.variants.crossing]
|
[prime.eight.variants.crossing]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2333,7 +2463,7 @@ selector.eight = 'twoCircles'
|
||||||
|
|
||||||
[prime.nine]
|
[prime.nine]
|
||||||
sampler = '9'
|
sampler = '9'
|
||||||
tag = 'cv56'
|
tag = 'cv59'
|
||||||
|
|
||||||
[prime.nine.variants.closed-contour]
|
[prime.nine.variants.closed-contour]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2354,7 +2484,7 @@ selector.nine = "straightBar"
|
||||||
|
|
||||||
[prime.tilde]
|
[prime.tilde]
|
||||||
sampler = '~'
|
sampler = '~'
|
||||||
tag = 'cv57'
|
tag = 'cv60'
|
||||||
|
|
||||||
[prime.tilde.variants.high]
|
[prime.tilde.variants.high]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2370,7 +2500,7 @@ selector.asciiTilde = 'low'
|
||||||
|
|
||||||
[prime.asterisk]
|
[prime.asterisk]
|
||||||
sampler = '*'
|
sampler = '*'
|
||||||
tag = 'cv58'
|
tag = 'cv61'
|
||||||
|
|
||||||
[prime.asterisk.variants.high]
|
[prime.asterisk.variants.high]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2412,7 +2542,7 @@ selector."asterisk/lowered" = 'turnPentaLow'
|
||||||
|
|
||||||
[prime.underscore]
|
[prime.underscore]
|
||||||
sampler = '_'
|
sampler = '_'
|
||||||
tag = 'cv59'
|
tag = 'cv62'
|
||||||
|
|
||||||
[prime.underscore.variants.high]
|
[prime.underscore.variants.high]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2433,7 +2563,7 @@ selector.underscore = 'aboveBaseline'
|
||||||
|
|
||||||
[prime.paragraph-sign]
|
[prime.paragraph-sign]
|
||||||
sampler = '¶'
|
sampler = '¶'
|
||||||
tag = 'cv60'
|
tag = 'cv63'
|
||||||
|
|
||||||
[prime.paragraph-sign.variants.high]
|
[prime.paragraph-sign.variants.high]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2451,7 +2581,7 @@ selector.revertParagraph = 'low'
|
||||||
|
|
||||||
[prime.caret]
|
[prime.caret]
|
||||||
sampler = '^'
|
sampler = '^'
|
||||||
tag = 'cv61'
|
tag = 'cv64'
|
||||||
|
|
||||||
[prime.caret.variants.high]
|
[prime.caret.variants.high]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2467,7 +2597,7 @@ selector.asciiCaret = 'low'
|
||||||
|
|
||||||
[prime.paren]
|
[prime.paren]
|
||||||
sampler = '( )'
|
sampler = '( )'
|
||||||
tag = 'cv62'
|
tag = 'cv65'
|
||||||
|
|
||||||
[prime.paren.variants.normal]
|
[prime.paren.variants.normal]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2485,7 +2615,7 @@ selector.parenRight = 'largeContour'
|
||||||
|
|
||||||
[prime.brace]
|
[prime.brace]
|
||||||
sampler = '{ }'
|
sampler = '{ }'
|
||||||
tag = 'cv63'
|
tag = 'cv66'
|
||||||
|
|
||||||
[prime.brace.variants.straight]
|
[prime.brace.variants.straight]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2503,7 +2633,7 @@ selector.braceRight = 'curly'
|
||||||
|
|
||||||
[prime.number-sign]
|
[prime.number-sign]
|
||||||
sampler = '#'
|
sampler = '#'
|
||||||
tag = 'cv64'
|
tag = 'cv67'
|
||||||
|
|
||||||
[prime.number-sign.variants.upright]
|
[prime.number-sign.variants.upright]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2529,7 +2659,7 @@ selector.numberSign = 'slantedOpen'
|
||||||
|
|
||||||
[prime.ampersand]
|
[prime.ampersand]
|
||||||
sampler = '&'
|
sampler = '&'
|
||||||
tag = 'cv65'
|
tag = 'cv68'
|
||||||
|
|
||||||
[prime.ampersand.variants.closed]
|
[prime.ampersand.variants.closed]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2570,7 +2700,7 @@ selector.ampersand = 'flatTop'
|
||||||
|
|
||||||
[prime.at]
|
[prime.at]
|
||||||
sampler = '@'
|
sampler = '@'
|
||||||
tag = 'cv66'
|
tag = 'cv69'
|
||||||
|
|
||||||
[prime.at.variants.threefold]
|
[prime.at.variants.threefold]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2591,7 +2721,7 @@ selector.at = 'short'
|
||||||
|
|
||||||
[prime.dollar]
|
[prime.dollar]
|
||||||
sampler = '$'
|
sampler = '$'
|
||||||
tag = 'cv67'
|
tag = 'cv70'
|
||||||
|
|
||||||
[prime.dollar.variants.open]
|
[prime.dollar.variants.open]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2617,7 +2747,7 @@ selector.dollar = "throughcap"
|
||||||
|
|
||||||
[prime.percent]
|
[prime.percent]
|
||||||
sampler = '%'
|
sampler = '%'
|
||||||
tag = 'cv68'
|
tag = 'cv71'
|
||||||
|
|
||||||
[prime.percent.variants.dots]
|
[prime.percent.variants.dots]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2638,7 +2768,7 @@ selector.percent = "ringsConnected"
|
||||||
|
|
||||||
[prime.bar]
|
[prime.bar]
|
||||||
sampler = '|'
|
sampler = '|'
|
||||||
tag = 'cv69'
|
tag = 'cv72'
|
||||||
slopeDependent = true
|
slopeDependent = true
|
||||||
|
|
||||||
[prime.bar.variants.natural-slope]
|
[prime.bar.variants.natural-slope]
|
||||||
|
@ -2655,7 +2785,7 @@ selector."bar.italic" = "forceUpright"
|
||||||
|
|
||||||
[prime.lig-ltgteq]
|
[prime.lig-ltgteq]
|
||||||
sampler = '<= >='
|
sampler = '<= >='
|
||||||
tag = 'cv70'
|
tag = 'cv73'
|
||||||
|
|
||||||
[prime.lig-ltgteq.variants.flat]
|
[prime.lig-ltgteq.variants.flat]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2673,7 +2803,7 @@ selector."eq.at-gteq.lig2" = "slanted"
|
||||||
|
|
||||||
[prime.ascii-single-quote]
|
[prime.ascii-single-quote]
|
||||||
sampler = "'"
|
sampler = "'"
|
||||||
tag = 'cv71'
|
tag = 'cv74'
|
||||||
|
|
||||||
[prime.ascii-single-quote.variants.straight]
|
[prime.ascii-single-quote.variants.straight]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2689,7 +2819,7 @@ selector.asciiSingleQuote = 'raisedComma'
|
||||||
|
|
||||||
[prime.ascii-grave]
|
[prime.ascii-grave]
|
||||||
sampler = '`'
|
sampler = '`'
|
||||||
tag = 'cv72'
|
tag = 'cv75'
|
||||||
|
|
||||||
[prime.ascii-grave.variants.straight]
|
[prime.ascii-grave.variants.straight]
|
||||||
rank = 1
|
rank = 1
|
||||||
|
@ -2725,11 +2855,13 @@ capital-d = 'standard'
|
||||||
capital-e = 'standard'
|
capital-e = 'standard'
|
||||||
capital-f = 'standard'
|
capital-f = 'standard'
|
||||||
capital-g = 'toothed-hooked'
|
capital-g = 'toothed-hooked'
|
||||||
|
capital-h = 'standard'
|
||||||
capital-i = 'serifed'
|
capital-i = 'serifed'
|
||||||
capital-j = 'serifed'
|
capital-j = 'serifed'
|
||||||
capital-k = 'straight'
|
capital-k = 'straight'
|
||||||
capital-l = 'standard'
|
capital-l = 'standard'
|
||||||
capital-m = 'hanging'
|
capital-m = 'hanging'
|
||||||
|
capital-n = 'standard'
|
||||||
capital-p = 'closed'
|
capital-p = 'closed'
|
||||||
capital-q = 'curly-tailed'
|
capital-q = 'curly-tailed'
|
||||||
capital-r = 'straight'
|
capital-r = 'straight'
|
||||||
|
@ -2737,6 +2869,7 @@ capital-t = 'standard'
|
||||||
capital-u = 'toothless-rounded'
|
capital-u = 'toothless-rounded'
|
||||||
capital-v = 'straight'
|
capital-v = 'straight'
|
||||||
capital-w = 'straight'
|
capital-w = 'straight'
|
||||||
|
capital-x = 'straight'
|
||||||
capital-y = 'straight'
|
capital-y = 'straight'
|
||||||
capital-z = 'standard'
|
capital-z = 'standard'
|
||||||
# Lowers
|
# Lowers
|
||||||
|
@ -3040,6 +3173,7 @@ v = 'curly'
|
||||||
turn-v = 'curly'
|
turn-v = 'curly'
|
||||||
capital-w = 'curly'
|
capital-w = 'curly'
|
||||||
w = 'curly'
|
w = 'curly'
|
||||||
|
capital-x = 'curly'
|
||||||
x = 'curly'
|
x = 'curly'
|
||||||
capital-a = 'curly'
|
capital-a = 'curly'
|
||||||
capital-y = 'curly'
|
capital-y = 'curly'
|
||||||
|
@ -3291,6 +3425,7 @@ v = 'curly'
|
||||||
turn-v = 'curly'
|
turn-v = 'curly'
|
||||||
capital-w = 'curly'
|
capital-w = 'curly'
|
||||||
w = 'curly'
|
w = 'curly'
|
||||||
|
capital-x = 'curly'
|
||||||
x = 'curly'
|
x = 'curly'
|
||||||
z = 'curly'
|
z = 'curly'
|
||||||
capital-y = 'curly'
|
capital-y = 'curly'
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue