U+04B3 refinements

This commit is contained in:
be5invis 2022-08-28 00:26:17 -07:00
parent 3fd19b0014
commit e03208e25f
3 changed files with 34 additions and 43 deletions

View file

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

View file

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

View file

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