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,8 +131,7 @@ 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
@ -140,31 +139,22 @@ glyph-block Letter-Latin-X : begin
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
: then : dispiro define lowerHalf : include : 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] 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) [Math.min adb (swMid + rIn)]
arcvh 16 arcvh 16
DiagonalTailF 1 [DivFrame 1] (xCenterRight - 0.5 * HVContrast * Stroke + TanSlope * rIn) 0 rIn 50 flatHookDepth Stroke 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 create-glyph 'x.cursive' : glyph-proc
include : MarkSet.e include : MarkSet.e
include : XCursiveHalfShape XH include : XCursiveHalfShape XH
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,9 +464,18 @@ 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 attachAnchor currentGlyph.baseAnchors.cyrlDescenderAttach
if attachAnchor
: then : begin
local attach : currentGlyph.gizmo.unapply attachAnchor
local descenderOverflow : fallback overflow SideJut local descenderOverflow : fallback overflow SideJut
return : union 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 VBarRight (x + descenderOverflow + 0.125 * Stroke) (HalfStroke - LongJut) Stroke VJutSw
HBarTop (x - connex * Stroke * HVContrast) (x + descenderOverflow) Stroke HBarTop (x - connex * Stroke * HVContrast) (x + descenderOverflow) Stroke

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"