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 : XMotionSerifs XH
define [XCursiveHalfShape top fFlatEnd] : begin
define [XCursiveHalfShape top] : glyph-proc
local ada : ArchDepthAOf (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 flatHookDepth : 0.7 * (RightSB - SB) - swEnd - 1.5 * rIn
return : union
dispiro
curl (RightSB - OX) (top - hook1Depth) [widths.lhs.heading swEnd Upward]
flat (RightSB - OX) (top - hook1Depth + hook1StraightDepth) [heading Upward]
arcvh 16
ShoulderMidKnotLhsRev (xTurn) (top - O) fineMid swEnd (-1) (-1)
archv 16
flat (xCenterRight - HVContrast * fineMid) (top - ada) [widths.lhs fineMid]
curl (xCenterRight - HVContrast * fineMid) (top / 2 + O)
if fFlatEnd
: then : dispiro
flat (xCenterRight - 0.5 * HVContrast * fineMid) (top / 2 - O) [widths.center fineMid]
curl (xCenterRight - 0.5 * HVContrast * fineMid) adb
arcvh 16
flat [mix xCenterRight RightSB 0.5] HalfStroke [widths.center.heading Stroke Rightward]
curl RightSB HalfStroke [heading Rightward]
: else : dispiro
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
define upperHalf : include : dispiro
curl (RightSB - OX) (top - hook1Depth) [widths.lhs.heading swEnd Upward]
flat (RightSB - OX) (top - hook1Depth + hook1StraightDepth) [heading Upward]
arcvh 16
ShoulderMidKnotLhsRev (xTurn) (top - O) fineMid swEnd (-1) (-1)
archv 16
flat (xCenterRight - HVContrast * fineMid) (top - ada) [widths.lhs fineMid]
curl (xCenterRight - HVContrast * fineMid) (top / 2 + O)
define lowerHalf : include : dispiro
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
define lowerHalfLastKnot lowerHalf.rhsKnots.(lowerHalf.rhsKnots.length - 1)
set-base-anchor 'cyrlDescenderAttach' lowerHalfLastKnot.x lowerHalfLastKnot.y
create-glyph 'x.cursive' : glyph-proc
include : MarkSet.e
@ -159,12 +155,6 @@ glyph-block Letter-Latin-X : begin
include : FlipAround Middle (XH / 2)
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
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
@ -205,17 +195,16 @@ glyph-block Letter-Latin-X : begin
select-variant 'x' 'x'
link-reduced-variant 'x/sansSerif' 'x' MathSansSerif
select-variant 'xCyrlHaDescenderBase' nothing (shapeFrom -- 'x')
select-variant 'cyrl/ha' 0x445 (shapeFrom -- 'x')
select-variant 'grek/chi' 0x3C7 (shapeFrom -- 'latn/chi')
select-variant 'latn/chi' 0xAB53 (follow -- 'x')
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' 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)
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
glyph-block-export CyrDescender
define [CyrDescender] : params [x [connex 0.5] [overflow nothing]] : begin
local descenderOverflow : fallback overflow SideJut
return : union
VBarRight (x + descenderOverflow + 0.125 * Stroke) (HalfStroke - LongJut) Stroke VJutSw
HBarTop (x - connex * Stroke * HVContrast) (x + descenderOverflow) Stroke
define [CyrDescender] : params [x [connex 0.5] [overflow nothing]] : glyph-proc
local attachAnchor currentGlyph.baseAnchors.cyrlDescenderAttach
if attachAnchor
: then : begin
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
define [CyrHookDescender] : params [x [connex 0.5] [overflow nothing]] : begin

View file

@ -4212,7 +4212,6 @@ rank = 1
description = "Serifless, straight `x`"
selector.x = "straightSerifless"
selector."x/sansSerif" = "straightSerifless"
selector.xCyrlHaDescenderBase = "straightSerifless"
selector."cyrl/ha" = "straightSerifless"
selector."grek/chi" = "straightSerifless"
@ -4221,7 +4220,6 @@ rank = 2
description = "Serifless, slightly curly `x`, like Iosevka 2.x"
selector.x = "curlySerifless"
selector."x/sansSerif" = "curlySerifless"
selector.xCyrlHaDescenderBase = "curlySerifless"
selector."cyrl/ha" = "curlySerifless"
selector."grek/chi" = "curlySerifless"
@ -4230,7 +4228,6 @@ rank = 3
description = "Straight `x` with motion serifs"
selector.x = "straightMotionSerifed"
selector."x/sansSerif" = "straightSerifless"
selector.xCyrlHaDescenderBase = "straightMotionSerifed"
selector."cyrl/ha" = "straightMotionSerifed"
selector."grek/chi" = "straightMotionSerifed"
@ -4239,7 +4236,6 @@ rank = 4
description = "Slightly curly `x`, like Iosevka 2.x, with motion serifs"
selector.x = "curlyMotionSerifed"
selector."x/sansSerif" = "curlySerifless"
selector.xCyrlHaDescenderBase = "curlyMotionSerifed"
selector."cyrl/ha" = "curlyMotionSerifed"
selector."grek/chi" = "curlyMotionSerifed"
@ -4248,7 +4244,6 @@ rank = 5
description = "Straight `x` with full serifs"
selector.x = "straightSerifed"
selector."x/sansSerif" = "straightSerifless"
selector.xCyrlHaDescenderBase = "straightSerifed"
selector."cyrl/ha" = "straightSerifed"
selector."grek/chi" = "straightBilateralMotionSerifed"
@ -4257,7 +4252,6 @@ rank = 6
description = "Slightly curly `x`, like Iosevka 2.x, with full serifs"
selector.x = "curlySerifed"
selector."x/sansSerif" = "curlySerifless"
selector.xCyrlHaDescenderBase = "curlySerifed"
selector."cyrl/ha" = "curlySerifed"
selector."grek/chi" = "curlyBilateralMotionSerifed"
@ -4266,7 +4260,6 @@ rank = 7
description = "Cursive `x`"
selector.x = "cursive"
selector."x/sansSerif" = "cursive"
selector.xCyrlHaDescenderBase = "cursiveCyrlHaDescenderBase"
selector."cyrl/ha" = "cursive"
selector."grek/chi" = "curlySerifless"