U+04B3 refinements
This commit is contained in:
parent
3fd19b0014
commit
e03208e25f
3 changed files with 34 additions and 43 deletions
|
@ -112,7 +112,7 @@ glyph-block Letter-Latin-X : begin
|
||||||
include : LowerXBase false
|
include : LowerXBase false
|
||||||
include : XMotionSerifs XH
|
include : XMotionSerifs XH
|
||||||
|
|
||||||
define [XCursiveHalfShape top fFlatEnd] : begin
|
define [XCursiveHalfShape top] : glyph-proc
|
||||||
local ada : ArchDepthAOf (ArchDepth * 0.8) (Width / 2)
|
local ada : ArchDepthAOf (ArchDepth * 0.8) (Width / 2)
|
||||||
local adb : ArchDepthBOf (ArchDepth * 0.8) (Width / 2)
|
local adb : ArchDepthBOf (ArchDepth * 0.8) (Width / 2)
|
||||||
|
|
||||||
|
@ -131,27 +131,23 @@ glyph-block Letter-Latin-X : begin
|
||||||
define rIn : Math.max (0.2 * (RightSB - SB) - 0.7 * Stroke * HVContrast) [AdviceStroke 16]
|
define rIn : Math.max (0.2 * (RightSB - SB) - 0.7 * Stroke * HVContrast) [AdviceStroke 16]
|
||||||
define flatHookDepth : 0.7 * (RightSB - SB) - swEnd - 1.5 * rIn
|
define flatHookDepth : 0.7 * (RightSB - SB) - swEnd - 1.5 * rIn
|
||||||
|
|
||||||
return : union
|
define upperHalf : include : dispiro
|
||||||
dispiro
|
curl (RightSB - OX) (top - hook1Depth) [widths.lhs.heading swEnd Upward]
|
||||||
curl (RightSB - OX) (top - hook1Depth) [widths.lhs.heading swEnd Upward]
|
flat (RightSB - OX) (top - hook1Depth + hook1StraightDepth) [heading Upward]
|
||||||
flat (RightSB - OX) (top - hook1Depth + hook1StraightDepth) [heading Upward]
|
arcvh 16
|
||||||
arcvh 16
|
ShoulderMidKnotLhsRev (xTurn) (top - O) fineMid swEnd (-1) (-1)
|
||||||
ShoulderMidKnotLhsRev (xTurn) (top - O) fineMid swEnd (-1) (-1)
|
archv 16
|
||||||
archv 16
|
flat (xCenterRight - HVContrast * fineMid) (top - ada) [widths.lhs fineMid]
|
||||||
flat (xCenterRight - HVContrast * fineMid) (top - ada) [widths.lhs fineMid]
|
curl (xCenterRight - HVContrast * fineMid) (top / 2 + O)
|
||||||
curl (xCenterRight - HVContrast * fineMid) (top / 2 + O)
|
|
||||||
if fFlatEnd
|
define lowerHalf : include : dispiro
|
||||||
: then : dispiro
|
flat (xCenterRight - 0.5 * HVContrast * fineMid) (top / 2 - O) [widths.center fineMid]
|
||||||
flat (xCenterRight - 0.5 * HVContrast * fineMid) (top / 2 - O) [widths.center fineMid]
|
curl (xCenterRight - 0.5 * HVContrast * fineMid) [Math.min adb (swMid + rIn)]
|
||||||
curl (xCenterRight - 0.5 * HVContrast * fineMid) adb
|
arcvh 16
|
||||||
arcvh 16
|
DiagonalTailF 1 [DivFrame 1] (xCenterRight - 0.5 * HVContrast * Stroke + TanSlope * rIn) 0 rIn 50 flatHookDepth Stroke
|
||||||
flat [mix xCenterRight RightSB 0.5] HalfStroke [widths.center.heading Stroke Rightward]
|
|
||||||
curl RightSB HalfStroke [heading Rightward]
|
define lowerHalfLastKnot lowerHalf.rhsKnots.(lowerHalf.rhsKnots.length - 1)
|
||||||
: else : dispiro
|
set-base-anchor 'cyrlDescenderAttach' lowerHalfLastKnot.x lowerHalfLastKnot.y
|
||||||
flat (xCenterRight - 0.5 * HVContrast * fineMid) (top / 2 - O) [widths.center fineMid]
|
|
||||||
curl (xCenterRight - 0.5 * HVContrast * fineMid) [Math.min adb (swMid + rIn)]
|
|
||||||
arcvh 16
|
|
||||||
DiagonalTailF 1 [DivFrame 1] (xCenterRight - 0.5 * HVContrast * Stroke + TanSlope * rIn) 0 rIn 50 flatHookDepth Stroke
|
|
||||||
|
|
||||||
create-glyph 'x.cursive' : glyph-proc
|
create-glyph 'x.cursive' : glyph-proc
|
||||||
include : MarkSet.e
|
include : MarkSet.e
|
||||||
|
@ -159,12 +155,6 @@ glyph-block Letter-Latin-X : begin
|
||||||
include : FlipAround Middle (XH / 2)
|
include : FlipAround Middle (XH / 2)
|
||||||
include : XCursiveHalfShape XH
|
include : XCursiveHalfShape XH
|
||||||
|
|
||||||
create-glyph 'x.cursiveCyrlHaDescenderBase' : glyph-proc
|
|
||||||
include : MarkSet.e
|
|
||||||
include : XCursiveHalfShape XH
|
|
||||||
include : FlipAround Middle (XH / 2)
|
|
||||||
include : XCursiveHalfShape XH true
|
|
||||||
|
|
||||||
define [ChiBase fStraight] : union
|
define [ChiBase fStraight] : union
|
||||||
XStrand fStraight false SB Descender RightSB XH 0.05 0.4 0.11
|
XStrand fStraight false SB Descender RightSB XH 0.05 0.4 0.11
|
||||||
XStrand fStraight false SB XH RightSB Descender 0.05 0.4 0.11
|
XStrand fStraight false SB XH RightSB Descender 0.05 0.4 0.11
|
||||||
|
@ -205,17 +195,16 @@ glyph-block Letter-Latin-X : begin
|
||||||
|
|
||||||
select-variant 'x' 'x'
|
select-variant 'x' 'x'
|
||||||
link-reduced-variant 'x/sansSerif' 'x' MathSansSerif
|
link-reduced-variant 'x/sansSerif' 'x' MathSansSerif
|
||||||
select-variant 'xCyrlHaDescenderBase' nothing (shapeFrom -- 'x')
|
|
||||||
select-variant 'cyrl/ha' 0x445 (shapeFrom -- 'x')
|
select-variant 'cyrl/ha' 0x445 (shapeFrom -- 'x')
|
||||||
|
|
||||||
select-variant 'grek/chi' 0x3C7 (shapeFrom -- 'latn/chi')
|
select-variant 'grek/chi' 0x3C7 (shapeFrom -- 'latn/chi')
|
||||||
select-variant 'latn/chi' 0xAB53 (follow -- 'x')
|
select-variant 'latn/chi' 0xAB53 (follow -- 'x')
|
||||||
|
|
||||||
derive-composites 'cyrl/HaDescender' 0x4B2 'cyrl/Ha' [CyrDescender RightSB]
|
derive-composites 'cyrl/HaDescender' 0x4B2 'cyrl/Ha' [CyrDescender RightSB]
|
||||||
derive-composites 'cyrl/haDescender' 0x4B3 'xCyrlHaDescenderBase' [CyrDescender RightSB]
|
derive-composites 'cyrl/haDescender' 0x4B3 'cyrl/ha' [CyrDescender RightSB]
|
||||||
|
|
||||||
derive-composites 'cyrl/HaHook' 0x4FC 'cyrl/Ha' [CyrHookDescender RightSB]
|
derive-composites 'cyrl/HaHook' 0x4FC 'cyrl/Ha' [CyrHookDescender RightSB]
|
||||||
derive-composites 'cyrl/haHook' 0x4FD 'xCyrlHaDescenderBase' [CyrHookDescender RightSB]
|
derive-composites 'cyrl/haHook' 0x4FD 'cyrl/ha' [CyrHookDescender RightSB]
|
||||||
|
|
||||||
define [CyrlHaBarShape top] : HOverlayBar [mix SB RightSB 0.08] [mix SB RightSB 0.92] (top / 2)
|
define [CyrlHaBarShape top] : HOverlayBar [mix SB RightSB 0.08] [mix SB RightSB 0.92] (top / 2)
|
||||||
derive-composites 'cyrl/HaBar' 0x4FE 'cyrl/Ha' [CyrlHaBarShape CAP]
|
derive-composites 'cyrl/HaBar' 0x4FE 'cyrl/Ha' [CyrlHaBarShape CAP]
|
||||||
|
|
|
@ -464,11 +464,20 @@ glyph-block Letter-Shared-Shapes : begin
|
||||||
define VJutSw : AdviceStroke 3.5
|
define VJutSw : AdviceStroke 3.5
|
||||||
|
|
||||||
glyph-block-export CyrDescender
|
glyph-block-export CyrDescender
|
||||||
define [CyrDescender] : params [x [connex 0.5] [overflow nothing]] : begin
|
define [CyrDescender] : params [x [connex 0.5] [overflow nothing]] : glyph-proc
|
||||||
local descenderOverflow : fallback overflow SideJut
|
local attachAnchor currentGlyph.baseAnchors.cyrlDescenderAttach
|
||||||
return : union
|
if attachAnchor
|
||||||
VBarRight (x + descenderOverflow + 0.125 * Stroke) (HalfStroke - LongJut) Stroke VJutSw
|
: then : begin
|
||||||
HBarTop (x - connex * Stroke * HVContrast) (x + descenderOverflow) Stroke
|
local attach : currentGlyph.gizmo.unapply attachAnchor
|
||||||
|
local descenderOverflow : fallback overflow SideJut
|
||||||
|
include : union
|
||||||
|
VBarRight attach.x (HalfStroke - LongJut) attach.y VJutSw
|
||||||
|
HBarTop (attach.x - connex * Stroke * HVContrast) attach.x attach.y
|
||||||
|
: else : begin
|
||||||
|
local descenderOverflow : fallback overflow SideJut
|
||||||
|
include : union
|
||||||
|
VBarRight (x + descenderOverflow + 0.125 * Stroke) (HalfStroke - LongJut) Stroke VJutSw
|
||||||
|
HBarTop (x - connex * Stroke * HVContrast) (x + descenderOverflow) Stroke
|
||||||
|
|
||||||
glyph-block-export CyrHookDescender
|
glyph-block-export CyrHookDescender
|
||||||
define [CyrHookDescender] : params [x [connex 0.5] [overflow nothing]] : begin
|
define [CyrHookDescender] : params [x [connex 0.5] [overflow nothing]] : begin
|
||||||
|
|
|
@ -4212,7 +4212,6 @@ rank = 1
|
||||||
description = "Serifless, straight `x`"
|
description = "Serifless, straight `x`"
|
||||||
selector.x = "straightSerifless"
|
selector.x = "straightSerifless"
|
||||||
selector."x/sansSerif" = "straightSerifless"
|
selector."x/sansSerif" = "straightSerifless"
|
||||||
selector.xCyrlHaDescenderBase = "straightSerifless"
|
|
||||||
selector."cyrl/ha" = "straightSerifless"
|
selector."cyrl/ha" = "straightSerifless"
|
||||||
selector."grek/chi" = "straightSerifless"
|
selector."grek/chi" = "straightSerifless"
|
||||||
|
|
||||||
|
@ -4221,7 +4220,6 @@ rank = 2
|
||||||
description = "Serifless, slightly curly `x`, like Iosevka 2.x"
|
description = "Serifless, slightly curly `x`, like Iosevka 2.x"
|
||||||
selector.x = "curlySerifless"
|
selector.x = "curlySerifless"
|
||||||
selector."x/sansSerif" = "curlySerifless"
|
selector."x/sansSerif" = "curlySerifless"
|
||||||
selector.xCyrlHaDescenderBase = "curlySerifless"
|
|
||||||
selector."cyrl/ha" = "curlySerifless"
|
selector."cyrl/ha" = "curlySerifless"
|
||||||
selector."grek/chi" = "curlySerifless"
|
selector."grek/chi" = "curlySerifless"
|
||||||
|
|
||||||
|
@ -4230,7 +4228,6 @@ rank = 3
|
||||||
description = "Straight `x` with motion serifs"
|
description = "Straight `x` with motion serifs"
|
||||||
selector.x = "straightMotionSerifed"
|
selector.x = "straightMotionSerifed"
|
||||||
selector."x/sansSerif" = "straightSerifless"
|
selector."x/sansSerif" = "straightSerifless"
|
||||||
selector.xCyrlHaDescenderBase = "straightMotionSerifed"
|
|
||||||
selector."cyrl/ha" = "straightMotionSerifed"
|
selector."cyrl/ha" = "straightMotionSerifed"
|
||||||
selector."grek/chi" = "straightMotionSerifed"
|
selector."grek/chi" = "straightMotionSerifed"
|
||||||
|
|
||||||
|
@ -4239,7 +4236,6 @@ rank = 4
|
||||||
description = "Slightly curly `x`, like Iosevka 2.x, with motion serifs"
|
description = "Slightly curly `x`, like Iosevka 2.x, with motion serifs"
|
||||||
selector.x = "curlyMotionSerifed"
|
selector.x = "curlyMotionSerifed"
|
||||||
selector."x/sansSerif" = "curlySerifless"
|
selector."x/sansSerif" = "curlySerifless"
|
||||||
selector.xCyrlHaDescenderBase = "curlyMotionSerifed"
|
|
||||||
selector."cyrl/ha" = "curlyMotionSerifed"
|
selector."cyrl/ha" = "curlyMotionSerifed"
|
||||||
selector."grek/chi" = "curlyMotionSerifed"
|
selector."grek/chi" = "curlyMotionSerifed"
|
||||||
|
|
||||||
|
@ -4248,7 +4244,6 @@ rank = 5
|
||||||
description = "Straight `x` with full serifs"
|
description = "Straight `x` with full serifs"
|
||||||
selector.x = "straightSerifed"
|
selector.x = "straightSerifed"
|
||||||
selector."x/sansSerif" = "straightSerifless"
|
selector."x/sansSerif" = "straightSerifless"
|
||||||
selector.xCyrlHaDescenderBase = "straightSerifed"
|
|
||||||
selector."cyrl/ha" = "straightSerifed"
|
selector."cyrl/ha" = "straightSerifed"
|
||||||
selector."grek/chi" = "straightBilateralMotionSerifed"
|
selector."grek/chi" = "straightBilateralMotionSerifed"
|
||||||
|
|
||||||
|
@ -4257,7 +4252,6 @@ rank = 6
|
||||||
description = "Slightly curly `x`, like Iosevka 2.x, with full serifs"
|
description = "Slightly curly `x`, like Iosevka 2.x, with full serifs"
|
||||||
selector.x = "curlySerifed"
|
selector.x = "curlySerifed"
|
||||||
selector."x/sansSerif" = "curlySerifless"
|
selector."x/sansSerif" = "curlySerifless"
|
||||||
selector.xCyrlHaDescenderBase = "curlySerifed"
|
|
||||||
selector."cyrl/ha" = "curlySerifed"
|
selector."cyrl/ha" = "curlySerifed"
|
||||||
selector."grek/chi" = "curlyBilateralMotionSerifed"
|
selector."grek/chi" = "curlyBilateralMotionSerifed"
|
||||||
|
|
||||||
|
@ -4266,7 +4260,6 @@ rank = 7
|
||||||
description = "Cursive `x`"
|
description = "Cursive `x`"
|
||||||
selector.x = "cursive"
|
selector.x = "cursive"
|
||||||
selector."x/sansSerif" = "cursive"
|
selector."x/sansSerif" = "cursive"
|
||||||
selector.xCyrlHaDescenderBase = "cursiveCyrlHaDescenderBase"
|
|
||||||
selector."cyrl/ha" = "cursive"
|
selector."cyrl/ha" = "cursive"
|
||||||
selector."grek/chi" = "curlySerifless"
|
selector."grek/chi" = "curlySerifless"
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue