Add cursive Zhe variant, scale back Ya variants (#1996)

This commit is contained in:
John McWilliams 2023-09-14 22:16:24 -04:00 committed by GitHub
parent 6d5bc1b635
commit a842a6589b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 81 additions and 65 deletions

View file

@ -84,9 +84,9 @@ glyph-block Letter-Cyrillic-Dzzhe-Zhwe : begin
do "zhe subglyphs"
glyph-block-import Letter-Cyrillic-Zhe : Zhe
define [CyrRightZheShape legShape fSlab df top barLeft] : glyph-proc
define [CyrRightZheShape legShape fSlab fMidSlab df top barLeft] : glyph-proc
local [object subDf shift sw] : SubDfDim 1 3 df OX
include : with-transform [ApparentTranslate shift 0] : Zhe.HalfShape legShape fSlab subDf 0 top top
include : with-transform [ApparentTranslate shift 0] : Zhe.HalfShape legShape fSlab fMidSlab subDf 0 top top
include : HBar.m barLeft (shift + subDf.middle) (0.5 * top) sw
define [DzzheLeft df] : begin
@ -94,51 +94,52 @@ glyph-block Letter-Cyrillic-Dzzhe-Zhwe : begin
local swInner : sw * [AdviceStroke 2.75] / Stroke
return : [mix subDf.leftSB subDf.rightSB : StrokeWidthBlend 0.95 0.96] - [HSwToV : 0.5 * swInner]
define [ZhweZheShape legShape fSlab df top hook] : glyph-proc
define [ZhweZheShape legShape fSlab fMidSlab df top hook] : glyph-proc
local [object subDf sw] : SubDfDim 0 2 df OX
local ze : CyrZe 0 0 top 0 subDf.leftSB subDf.rightSB 0.65 hook (0.5 * sw)
include : difference [CyrRightZheShape legShape fSlab df top subDf.middle] [ze.ShapeMask]
include : difference [CyrRightZheShape legShape fSlab fMidSlab df top subDf.middle] [ze.ShapeMask]
glyph-block-import Letter-Cyrillic-De : CyrDeItalicShapeT
define [DzzheZheItalicShape legShape fSlab df] : glyph-proc
define [DzzheZheItalicShape legShape fSlab fMidSlab df top] : glyph-proc
local [object subDf sw] : SubDfDim 0 2 df OX
include : difference
CyrRightZheShape legShape fSlab df XH subDf.middle
CyrRightZheShape legShape fSlab fMidSlab df top subDf.middle
CyrDeItalicShapeT spiro-outline subDf sw
define ZheConfig : object
straight { Zhe.StraightLegs SLAB }
curly { Zhe.CurlyLegs SLAB }
symmetricTouching { Zhe.TouchingLegs SLAB }
symmetricConnected { Zhe.ConnectingLegs SLAB }
straight { Zhe.StraightLegs SLAB SLAB }
curly { Zhe.CurlyLegs SLAB SLAB }
symmetricTouching { Zhe.TouchingLegs SLAB SLAB }
symmetricConnected { Zhe.ConnectingLegs SLAB SLAB }
cursive { Zhe.CursiveLegs false SLAB }
foreach { suffix { legShape fSlab } } [Object.entries ZheConfig] : do
foreach { suffix { legShape fSlab fMidSlab } } [Object.entries ZheConfig] : do
create-glyph "cyrl/Dzzhe/right.\(suffix)" : glyph-proc
define df : include : DivFrame para.diversityM 3.5
include : df.markSet.capital
include : CyrRightZheShape legShape fSlab df CAP : DzzheLeft df
include : CyrRightZheShape legShape fSlab fMidSlab df CAP : DzzheLeft df
create-glyph "cyrl/dzzhe.upright/right.\(suffix)" : glyph-proc
define df : include : DivFrame para.diversityM 3.5
include : df.markSet.e
include : CyrRightZheShape legShape fSlab df XH : DzzheLeft df
include : CyrRightZheShape legShape fSlab fMidSlab df XH : DzzheLeft df
create-glyph "cyrl/dzzhe.italic/right.\(suffix)" : glyph-proc
define df : include : DivFrame para.diversityM 3.5
include : df.markSet.e
include : DzzheZheItalicShape legShape fSlab df
include : DzzheZheItalicShape legShape fSlab fMidSlab df XH
create-glyph "cyrl/Zhwe/right.\(suffix)" : glyph-proc
define df : include : DivFrame para.diversityM 3.5
include : df.markSet.capital
set-base-anchor 'cvDecompose' 0 0
include : ZhweZheShape legShape fSlab df CAP Hook
include : ZhweZheShape legShape fSlab fMidSlab df CAP Hook
create-glyph "cyrl/zhwe/right.\(suffix)" : glyph-proc
define df : include : DivFrame para.diversityM 3.5
include : df.markSet.e
set-base-anchor 'cvDecompose' 0 0
include : ZhweZheShape legShape fSlab df XH SHook
include : ZhweZheShape legShape fSlab fMidSlab df XH SHook
select-variant "cyrl/Dzzhe/right" (follow -- "cyrl/Zhe")
select-variant "cyrl/dzzhe.upright/right" (follow -- "cyrl/zhe")

View file

@ -140,27 +140,51 @@ glyph-block Letter-Cyrillic-Zhe : begin
return : union fullShape : HBar.m [if fHalf df.middle midX] (df.width - midX) midY fine
export : define [Shape Legs fSlab df bot top midTop] : glyph-proc
include : CenterBar fSlab df bot midTop
export : define [CursiveLegs fSlab fHalf df bot top] : begin
define fine : ZheSw df
define midX : mix df.leftSB (df.middle - [HSwToV : 0.5 * fine]) 0.4
define midY : mix bot top 0.5
define overshoot : Overshoot fSlab df
local rightShape : dispiro
g4.left.start (df.rightSB - overshoot) (top - fine) [widths.rhs.heading fine Leftward]
archv
g4.down.mid (df.width - midX + OX) midY [heading Downward]
arcvh
g4.right.end (df.rightSB - overshoot) (bot + fine) [heading Rightward]
local fullShape : if fHalf rightShape : union rightShape
dispiro
g4.right.start (df.leftSB + overshoot) (top - fine) [widths.lhs.heading fine Rightward]
archv
g4.down.mid (midX - OX) midY [heading Downward]
arcvh
g4.left.end (df.leftSB + overshoot) (bot + fine) [heading Leftward]
return : union fullShape : HBar.m [if fHalf df.middle (midX + 0.5 * fine)] (df.width - (midX + 0.5 * fine)) midY fine
export : define [Shape Legs fSlab fMidSlab df bot top midTop] : glyph-proc
include : CenterBar fMidSlab df bot midTop
include : Legs fSlab false df bot top
include : LegSerifs fSlab false df bot top
export : define [HalfShape Legs fSlab df bot top] : glyph-proc
include : CenterBar fSlab df bot top
export : define [HalfShape Legs fSlab fMidSlab df bot top midTop] : glyph-proc
include : CenterBar fMidSlab df bot midTop
include : Legs fSlab true df bot top
include : LegSerifs fSlab true df bot top
define ZheConfig : object
straight { Zhe.StraightLegs SLAB }
curly { Zhe.CurlyLegs SLAB }
symmetricTouching { Zhe.TouchingLegs SLAB }
symmetricConnected { Zhe.ConnectingLegs SLAB }
straight { Zhe.StraightLegs SLAB SLAB }
curly { Zhe.CurlyLegs SLAB SLAB }
symmetricTouching { Zhe.TouchingLegs SLAB SLAB }
symmetricConnected { Zhe.ConnectingLegs SLAB SLAB }
cursive { Zhe.CursiveLegs false SLAB }
foreach { suffix { legShape fSlab } } [Object.entries ZheConfig] : do
foreach { suffix { legShape fSlab fMidSlab } } [Object.entries ZheConfig] : do
create-glyph "cyrl/Zhe.\(suffix)" : glyph-proc
define df : include : DivFrame para.diversityM 3
include : df.markSet.capital
include : Zhe.Shape legShape fSlab df 0 CAP CAP
include : Zhe.Shape legShape fSlab fMidSlab df 0 CAP CAP
create-glyph "cyrl/ZheDescender.\(suffix)" : glyph-proc
local df : DivFrame para.diversityM 3
@ -170,7 +194,7 @@ glyph-block Letter-Cyrillic-Zhe : begin
create-glyph "cyrl/zhe.\(suffix)" : glyph-proc
define df : include : DivFrame para.diversityM 3
include : df.markSet.e
include : Zhe.Shape legShape fSlab df 0 XH XH
include : Zhe.Shape legShape fSlab fMidSlab df 0 XH XH
create-glyph "cyrl/zheDescender.\(suffix)" : glyph-proc
local df : DivFrame para.diversityM 3
@ -180,7 +204,7 @@ glyph-block Letter-Cyrillic-Zhe : begin
create-glyph "cyrl/zhe.BGR.\(suffix)" : glyph-proc
define df : include : DivFrame para.diversityM 3
include : df.markSet.b
include : Zhe.Shape legShape fSlab df 0 XH Ascender
include : Zhe.Shape legShape fSlab fMidSlab df 0 XH Ascender
select-variant 'cyrl/Zhe' 0x416
select-variant 'cyrl/ZheDescender' 0x496 (follow -- 'cyrl/Zhe')