Make the top serif of Yogh (U+021C
, U+021D
) to follow Cyrillic Ze's variant selector (#1908).
This commit is contained in:
parent
e09bf21b14
commit
3dae50b429
4 changed files with 77 additions and 33 deletions
|
@ -7,6 +7,7 @@
|
|||
* Drop APL form for `U+220D` as it is not used by any APL languages (#1901).
|
||||
* Add XH-height middle-serifed and dual-serifed variants for Eszet (#1904).
|
||||
* Remove duplicate variant glyphs for `U+0272` (#1905).
|
||||
* Make the top serif of Yogh (`U+021C`, `U+021D`) to follow Cyrillic Ze's variant selector (#1908).
|
||||
* Merge duplicate variants of t with retroflex hook (`U+0288`, `U+1DF09`) (#1909).
|
||||
* Fix detached palatal hook on `U+01AB`` when t is both hookless/tailless and asymmetric (#1910).
|
||||
* Fix `cv36`, `cv46`, `cv47`, `cv48`, `cv49`, `cv50`, `cv61`, and `cv74` under Curly Slab.
|
||||
|
|
|
@ -119,7 +119,7 @@ glyph-block Letter-Greek-Lower-Epsilon : begin
|
|||
local stemFine : stroke * (ShoulderFine / Stroke)
|
||||
return : object stroke midx midy ada adb fine stemFine
|
||||
|
||||
define [CyrZeUpperShapeT sink] : begin
|
||||
define [UpperShapeT sink] : begin
|
||||
define [object stroke midx midy ada adb fine stemFine] : Dim
|
||||
local middle : (left + right) / 2
|
||||
return : sink
|
||||
|
@ -143,7 +143,7 @@ glyph-block Letter-Greek-Lower-Epsilon : begin
|
|||
flat middle (midy - (fine - stroke / 2)) [widths.heading 0 fine Leftward]
|
||||
curl midx (midy - (fine - stroke / 2)) [heading Leftward]
|
||||
|
||||
define [CyrZeLowerShapeT sink] : begin
|
||||
define [LowerShapeT sink] : begin
|
||||
define [object stroke midx midy ada adb fine stemFine] : Dim
|
||||
local middle : (left + right) / 2
|
||||
return : sink
|
||||
|
@ -167,11 +167,11 @@ glyph-block Letter-Greek-Lower-Epsilon : begin
|
|||
[Just CLOSED-STEM] : OBarLeft.arcEnd bot left right stroke stemFine ada2 adb2 midy
|
||||
__ : list [hookend (bot + O) (sw -- stroke)] [g4 (left + xo) (bot + hook)]
|
||||
|
||||
export : define [UpperShape] : CyrZeUpperShapeT dispiro
|
||||
export : define [UpperShape] : UpperShapeT dispiro
|
||||
|
||||
export : define [LowerShape] : CyrZeLowerShapeT dispiro
|
||||
export : define [LowerShape] : LowerShapeT dispiro
|
||||
|
||||
define [CyrZeLowerShapeTailed] : begin
|
||||
define [LowerShapeTailed] : begin
|
||||
define [object stroke midx midy ada adb fine] : Dim
|
||||
local middle : (left + right) / 2
|
||||
return : dispiro
|
||||
|
@ -188,16 +188,16 @@ glyph-block Letter-Greek-Lower-Epsilon : begin
|
|||
curl midx (midy + (fine - stroke / 2)) [heading Leftward]
|
||||
|
||||
export : define [Shape] : union
|
||||
CyrZeUpperShapeT dispiro
|
||||
CyrZeLowerShapeT dispiro
|
||||
UpperShapeT dispiro
|
||||
LowerShapeT dispiro
|
||||
|
||||
export : define [ShapeMask] : union
|
||||
CyrZeUpperShapeT spiro-outline
|
||||
CyrZeLowerShapeT spiro-outline
|
||||
UpperShapeT spiro-outline
|
||||
LowerShapeT spiro-outline
|
||||
|
||||
export : define [KsiBaseShape] : union
|
||||
CyrZeUpperShapeT dispiro
|
||||
CyrZeLowerShapeTailed
|
||||
UpperShapeT dispiro
|
||||
LowerShapeTailed
|
||||
|
||||
export : define [AutoStartSerifL] : begin
|
||||
define [object stroke] : Dim
|
||||
|
|
|
@ -8,29 +8,62 @@ glyph-module
|
|||
glyph-block Letter-Latin-Yogh : begin
|
||||
glyph-block-import CommonShapes
|
||||
glyph-block-import Common-Derivatives
|
||||
glyph-block-import Letter-Shared-Shapes : SerifedArcStart ArcStartSerif
|
||||
glyph-block-import Letter-Shared-Shapes : SerifedArcStart InwardSlabArcStart ArcStartSerif
|
||||
|
||||
define [YoghShape top bot] : glyph-proc
|
||||
include : dispiro
|
||||
if SLAB
|
||||
then : SerifedArcStart.LtrRhs SB Middle top Stroke Hook
|
||||
else : list [g4 SB (top - Hook) [widths.rhs]] [hookstart (top - O)]
|
||||
g4 RightSB (top - ArchDepthB)
|
||||
alsoThruThem {{0.5 0.75}}
|
||||
g4 ([mix SB RightSB 0.1] + Stroke * 0.25) ([mix bot top 0.425] - HalfStroke)
|
||||
include : dispiro
|
||||
widths.rhs
|
||||
g4 [mix SB RightSB 0.75] ([mix bot (top - ArchDepthB) 0.758] + HalfStroke)
|
||||
g4 RightSB ([mix bot (top - ArchDepthB) 0.475])
|
||||
alsoThruThem {{0.25 0.6} {0.5 0.81}}
|
||||
g4 SB (bot + O)
|
||||
define SLAB-NONE 0
|
||||
define SLAB-CLASSICAL 1
|
||||
define SLAB-INWARD 2
|
||||
|
||||
if SLAB : include : ArcStartSerif.L SB top Stroke Hook
|
||||
define [PhantomBotYOfUpperHalf top bot] : [mix bot top OverlayPos] - 0.25 * Stroke
|
||||
define [TopYOfLowerHalf top bot] : [mix bot top OverlayPos] + 0.06 * Stroke
|
||||
|
||||
create-glyph 'Yogh' 0x21C : glyph-proc
|
||||
include : MarkSet.capital
|
||||
include : YoghShape CAP 0
|
||||
define [UpperHalfT sink slab offset top bot] : begin
|
||||
local py : PhantomBotYOfUpperHalf top bot
|
||||
local yRightHalf : YSmoothMidR top py
|
||||
local yBottomTerminal : mix top py 1.2
|
||||
return : sink
|
||||
match slab
|
||||
[Just SLAB-CLASSICAL] : SerifedArcStart.LtrRhs SB Middle (top - offset) Stroke Hook
|
||||
[Just SLAB-INWARD] : InwardSlabArcStart.LtrRhs SB Middle (top - offset) Stroke Hook
|
||||
__ : list [g4 SB (top - Hook) [widths.rhs]] [hookstart (top - offset - O)]
|
||||
g4 (RightSB - offset) yRightHalf
|
||||
alsoThruThem {{0.5 0.8} {0.75 0.92}} important
|
||||
[if (sink == dispiro) g4 corner] ([mix SB RightSB 0.1] + Stroke * 0.25) yBottomTerminal
|
||||
|
||||
create-glyph 'yogh' 0x21D : glyph-proc
|
||||
include : MarkSet.p
|
||||
include : YoghShape XH Descender
|
||||
define [LowerHalfT sink top bot] : begin
|
||||
local pyt : mix bot [TopYOfLowerHalf top bot] 1.2
|
||||
local pyb : mix bot [TopYOfLowerHalf top bot] 0.2
|
||||
|
||||
return : sink
|
||||
g4 (Middle - CorrectionOMidS) pyt [widths.rhs]
|
||||
archv
|
||||
g4 RightSB [YSmoothMidR pyt pyb]
|
||||
alsoThruThem {{0.25 [StrokeWidthBlend 0.63 0.66]} {0.5 [StrokeWidthBlend 0.84 0.85]}} important
|
||||
g4 (SB + 0.1 * HVContrast * Stroke) (bot + O)
|
||||
|
||||
define [YoghShape slab top bot] : glyph-proc
|
||||
include : UpperHalfT dispiro slab 0 top bot
|
||||
include : difference
|
||||
LowerHalfT dispiro top bot
|
||||
UpperHalfT spiro-outline slab 0.1 top bot
|
||||
|
||||
include : match slab
|
||||
[Just SLAB-CLASSICAL] : ArcStartSerif.L SB top Stroke Hook
|
||||
[Just SLAB-INWARD] : ArcStartSerif.InwardL SB top Stroke Hook
|
||||
__ : no-shape
|
||||
|
||||
define Config : object
|
||||
serifless { SLAB-NONE }
|
||||
unilateralSerifed { SLAB-CLASSICAL }
|
||||
unilateralInwardSerifed { SLAB-INWARD }
|
||||
|
||||
foreach { suffix { slabTop } } [Object.entries Config] : do
|
||||
create-glyph "Yogh.\(suffix)" : glyph-proc
|
||||
include : MarkSet.capital
|
||||
include : YoghShape slabTop CAP 0
|
||||
create-glyph "yogh.\(suffix)" : glyph-proc
|
||||
include : MarkSet.capital
|
||||
include : YoghShape slabTop XH Descender
|
||||
|
||||
select-variant 'Yogh' 0x21C
|
||||
select-variant 'yogh' 0x21D
|
||||
|
|
|
@ -4669,6 +4669,7 @@ description = "Serifless Cyrillic Capital Ze (`З`)"
|
|||
selector."latn/Epsilon" = "serifless"
|
||||
selector."cyrl/Ze" = "serifless"
|
||||
selector."cyrl/Ksi" = "serifless"
|
||||
selector."Yogh" = "serifless"
|
||||
|
||||
[prime.cyrl-capital-ze.variants.unilateral-serifed]
|
||||
rank = 2
|
||||
|
@ -4676,6 +4677,7 @@ description = "Cyrillic Capital Ze (`З`) with serif at top"
|
|||
selector."latn/Epsilon" = "unilateralSerifed"
|
||||
selector."cyrl/Ze" = "unilateralSerifed"
|
||||
selector."cyrl/Ksi" = "unilateralSerifed"
|
||||
selector."Yogh" = "unilateralSerifed"
|
||||
|
||||
[prime.cyrl-capital-ze.variants.bilateral-serifed]
|
||||
rank = 3
|
||||
|
@ -4683,6 +4685,7 @@ description = "Cyrillic Capital Ze (`З`) with serif at both top and bottom"
|
|||
selector."latn/Epsilon" = "bilateralSerifed"
|
||||
selector."cyrl/Ze" = "bilateralSerifed"
|
||||
selector."cyrl/Ksi" = "unilateralSerifed"
|
||||
selector."Yogh" = "unilateralSerifed"
|
||||
|
||||
[prime.cyrl-capital-ze.variants.unilateral-inward-serifed]
|
||||
rank = 4
|
||||
|
@ -4690,6 +4693,7 @@ description = "Cyrillic Capital Ze (`З`) with inward serif at top"
|
|||
selector."latn/Epsilon" = "unilateralInwardSerifed"
|
||||
selector."cyrl/Ze" = "unilateralInwardSerifed"
|
||||
selector."cyrl/Ksi" = "unilateralInwardSerifed"
|
||||
selector."Yogh" = "unilateralInwardSerifed"
|
||||
|
||||
[prime.cyrl-capital-ze.variants.bilateral-inward-serifed]
|
||||
rank = 5
|
||||
|
@ -4697,6 +4701,7 @@ description = "Cyrillic Capital Ze (`З`) with inward serif at both top and bott
|
|||
selector."latn/Epsilon" = "bilateralInwardSerifed"
|
||||
selector."cyrl/Ze" = "bilateralInwardSerifed"
|
||||
selector."cyrl/Ksi" = "unilateralInwardSerifed"
|
||||
selector."Yogh" = "unilateralInwardSerifed"
|
||||
|
||||
|
||||
|
||||
|
@ -4713,6 +4718,7 @@ selector."latn/epsilon/descBase" = "seriflessDesc"
|
|||
selector."cyrl/ze" = "serifless"
|
||||
selector."cyrl/ze/topAttached" = "serifless"
|
||||
selector."cyrl/ksi" = "serifless"
|
||||
selector."yogh" = "serifless"
|
||||
|
||||
[prime.cyrl-ze.variants.unilateral-serifed]
|
||||
rank = 2
|
||||
|
@ -4722,6 +4728,7 @@ selector."latn/epsilon/descBase" = "bilateralSerifed"
|
|||
selector."cyrl/ze" = "unilateralSerifed"
|
||||
selector."cyrl/ze/topAttached" = "serifless"
|
||||
selector."cyrl/ksi" = "unilateralSerifed"
|
||||
selector."yogh" = "unilateralSerifed"
|
||||
|
||||
[prime.cyrl-ze.variants.bilateral-serifed]
|
||||
rank = 3
|
||||
|
@ -4731,6 +4738,7 @@ selector."latn/epsilon/descBase" = "bilateralSerifed"
|
|||
selector."cyrl/ze" = "bilateralSerifed"
|
||||
selector."cyrl/ze/topAttached" = "bilateralSerifed"
|
||||
selector."cyrl/ksi" = "unilateralSerifed"
|
||||
selector."yogh" = "unilateralSerifed"
|
||||
|
||||
[prime.cyrl-ze.variants.unilateral-inward-serifed]
|
||||
rank = 4
|
||||
|
@ -4740,6 +4748,7 @@ selector."latn/epsilon/descBase" = "unilateralInwardSerifedDesc"
|
|||
selector."cyrl/ze" = "unilateralInwardSerifed"
|
||||
selector."cyrl/ze/topAttached" = "serifless"
|
||||
selector."cyrl/ksi" = "unilateralInwardSerifed"
|
||||
selector."yogh" = "unilateralInwardSerifed"
|
||||
|
||||
[prime.cyrl-ze.variants.bilateral-inward-serifed]
|
||||
rank = 5
|
||||
|
@ -4749,6 +4758,7 @@ selector."latn/epsilon/descBase" = "unilateralInwardSerifedDesc"
|
|||
selector."cyrl/ze" = "bilateralInwardSerifed"
|
||||
selector."cyrl/ze/topAttached" = "bilateralInwardSerifed"
|
||||
selector."cyrl/ksi" = "unilateralInwardSerifed"
|
||||
selector."yogh" = "unilateralInwardSerifed"
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue