Make Cyrillic Abkhasian Che respond to C's serifs (#1898).

This commit is contained in:
be5invis 2023-08-07 18:10:17 -07:00
parent 934981003e
commit 94b072c1ec
4 changed files with 79 additions and 64 deletions

View file

@ -1 +1,2 @@
* Make Cyrillic Abkhasian Che respond to C's serifs (#1898).
* Drop APL form for `U+220D` as it is not used by any APL languages (#1901).

View file

@ -8,7 +8,7 @@ glyph-module
glyph-block Letter-Latin-Lower-E : begin
glyph-block-import CommonShapes
glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared : CreateDependentComposite
glyph-block-import Letter-Shared : CreateSelectorVariants DefineSelectorGlyph
glyph-block-import Letter-Shared-Shapes : FlatHookDepth RetroflexHook
glyph-block-import Letter-Shared-Shapes : SerifedArcEnd ArcEndSerif DToothlessRise
glyph-block-import Mark-Shared-Metrics : markExtend markStroke markStress markFine
@ -131,15 +131,11 @@ glyph-block Letter-Latin-Lower-E : begin
hookend O (sw -- stroke)
g4 (df.width - [xTerminalR df]) [HookHeight top stroke]
define SmallEConfig : object
flatCrossbar { SmallEShape RevSmallEShape }
rounded { SmallERoundedShape RevSmallERoundedShape }
define [AbkCheShape Body df top fDesc] : glyph-proc
define [AbkCheShape] : with-params [fDesc Body df top tailSlab] : glyph-proc
local gap : (df.width - 2 * df.leftSB - 2.5 * df.mvs) * 0.375 - [HSwToV : 0.25 * df.mvs]
define divSub : (df.width - gap - df.mvs) / Width
define dfSub : DivFrame divSub 2
include : Body dfSub top df.mvs
include : Body dfSub top df.mvs (tailSlab -- tailSlab)
if fDesc : begin
include : ExtendBelowBaseAnchors (-LongJut + 0.5 * Stroke)
include : difference
@ -156,6 +152,10 @@ glyph-block Letter-Latin-Lower-E : begin
flat [Math.min (df.leftSB + hd.x - [HSwToV : 0.5 * df.mvs]) (dfSub.leftSB + Width * (df.div - divSub))] yBar
curl (dfSub.middle + Width * (df.div - divSub)) yBar
define SmallEConfig : object
flatCrossbar { SmallEShape RevSmallEShape }
rounded { SmallERoundedShape RevSmallERoundedShape }
foreach { suffix { Body RevBody } } [Object.entries SmallEConfig] : do
create-glyph "e.\(suffix)" : glyph-proc
include : MarkSet.e
@ -215,27 +215,6 @@ glyph-block Letter-Latin-Lower-E : begin
y -- 0
yAttach -- lastKnot.y
create-glyph "Schwa/selector.\(suffix)" : glyph-proc
include : MarkSet.capital
set-base-anchor 'cvDecompose' 0 0
DependentSelector.set currentGlyph suffix
create-glyph "schwa/selector.\(suffix)" : glyph-proc
include : MarkSet.e
set-base-anchor 'cvDecompose' 0 0
DependentSelector.set currentGlyph suffix
foreach { suffixSerif { styTop styBot } } [Object.entries CConfig] : do
create-glyph "Schwa.\(suffix).\(suffixSerif)" : glyph-proc
set-mark-anchor 'cvDecompose' 0 0
include : Body [DivFrame 1] CAP [AdviceStroke2 2 3 CAP] (tailSlab -- styTop)
include : FlipAround Middle (CAP / 2)
create-glyph "schwa.\(suffix).\(suffixSerif)" : glyph-proc
set-mark-anchor 'cvDecompose' 0 0
include : Body [DivFrame 1] XH [AdviceStroke2 2 3 XH] (tailSlab -- styTop)
include : FlipAround Middle (XH / 2)
select-variant "Schwa.\(suffix)" (follow -- "CTopSerifOnly")
select-variant "schwa.\(suffix)" (follow -- "cTopSerifOnly")
create-glyph "eRev.\(suffix)" : glyph-proc
include : MarkSet.e
include : RevBody [DivFrame 1] XH [AdviceStroke2 2 3 XH]
@ -245,29 +224,51 @@ glyph-block Letter-Latin-Lower-E : begin
include : HBar.m [mix SB 0 0.7] [mix RightSB Width 0.7] (XH * 0.25 + Stroke * 0.25)
Math.min [AdviceStroke 5] (0.25 * (XH - 3 * Stroke))
create-glyph "cyrl/abk/Che.\(suffix)" : glyph-proc
local df : DivFrame para.diversityM 2.5
set-width df.width
include : df.markSet.capital
include : AbkCheShape Body df CAP 0
DefineSelectorGlyph "Schwa" suffix [MarkSet.capital]
DefineSelectorGlyph "schwa" suffix [MarkSet.e]
create-glyph "cyrl/abk/che.\(suffix)" : glyph-proc
local df : DivFrame para.diversityM 2.5
set-width df.width
include : df.markSet.e
include : AbkCheShape Body df XH 0
define abkCheDf : DivFrame para.diversityM 3
create-glyph "cyrl/abk/CheDescender.\(suffix)" : glyph-proc
local df : DivFrame para.diversityM 2.5
set-width df.width
include : df.markSet.capital
include : AbkCheShape Body df CAP 1
DefineSelectorGlyph "cyrl/abk/Che" suffix [abkCheDf.markSet.capital]
DefineSelectorGlyph "cyrl/abk/che" suffix [abkCheDf.markSet.e]
DefineSelectorGlyph "cyrl/abk/CheDescender" suffix [abkCheDf.markSet.capDesc]
DefineSelectorGlyph "cyrl/abk/cheDescender" suffix [abkCheDf.markSet.p]
create-glyph "cyrl/abk/cheDescender.\(suffix)" : glyph-proc
local df : DivFrame para.diversityM 2.5
set-width df.width
include : df.markSet.e
include : AbkCheShape Body df XH 1
foreach { suffixSerif { styTop styBot } } [Object.entries CConfig] : do
create-glyph "Schwa.\(suffix).\(suffixSerif)" : glyph-proc
set-width 0
set-mark-anchor 'cvDecompose' 0 0
include : Body [DivFrame 1] CAP [AdviceStroke2 2 3 CAP] (tailSlab -- styTop)
include : FlipAround Middle (CAP / 2)
create-glyph "schwa.\(suffix).\(suffixSerif)" : glyph-proc
set-width 0
set-mark-anchor 'cvDecompose' 0 0
include : Body [DivFrame 1] XH [AdviceStroke2 2 3 XH] (tailSlab -- styTop)
include : FlipAround Middle (XH / 2)
create-glyph "cyrl/abk/Che.\(suffix).\(suffixSerif)" : glyph-proc
set-width 0
set-mark-anchor 'cvDecompose' 0 0
include : AbkCheShape 0 Body abkCheDf CAP (tailSlab -- styBot)
create-glyph "cyrl/abk/che.\(suffix).\(suffixSerif)" : glyph-proc
set-width 0
set-mark-anchor 'cvDecompose' 0 0
include : AbkCheShape 0 Body abkCheDf XH (tailSlab -- styBot)
create-glyph "cyrl/abk/CheDescender.\(suffix).\(suffixSerif)" : glyph-proc
set-width 0
set-mark-anchor 'cvDecompose' 0 0
include : AbkCheShape 1 Body abkCheDf CAP (tailSlab -- styBot)
create-glyph "cyrl/abk/cheDescender.\(suffix).\(suffixSerif)" : glyph-proc
set-width 0
set-mark-anchor 'cvDecompose' 0 0
include : AbkCheShape 1 Body abkCheDf XH (tailSlab -- styBot)
select-variant "Schwa.\(suffix)" (follow -- "CTopSerifOnly")
select-variant "schwa.\(suffix)" (follow -- "cTopSerifOnly")
select-variant "cyrl/abk/Che.\(suffix)" (follow -- 'CBottomSerifOnly')
select-variant "cyrl/abk/che.\(suffix)" (follow -- 'cBottomSerifOnly')
select-variant "cyrl/abk/CheDescender.\(suffix)" (follow -- 'CBottomSerifOnly')
select-variant "cyrl/abk/cheDescender.\(suffix)" (follow -- 'cBottomSerifOnly')
select-variant 'e' 'e'
alias 'cyrl/ie' 0x435 'e'
@ -277,26 +278,20 @@ glyph-block Letter-Latin-Lower-E : begin
select-variant 'eRetroflexHook' 0x1D92 (follow -- 'e')
select-variant 'eWithNotch' 0x2C78 (follow -- 'e')
select-variant "Schwa/selector" (follow -- "Schwa")
CreateDependentComposite 'Schwa' 0x18F "Schwa/selector" : object
flatCrossbar "Schwa.flatCrossbar"
rounded "Schwa.rounded"
alias 'cyrl/Schwa' 0x4D8 'Schwa'
select-variant "schwa/selector" (follow -- "schwa")
CreateDependentComposite 'schwa' 0x259 "schwa/selector" : object
flatCrossbar "schwa.flatCrossbar"
rounded "schwa.rounded"
alias 'cyrl/schwa' 0x4D9 'schwa'
select-variant 'eRev' 0x258 (follow -- 'e')
select-variant 'eBar' 0xAB33 (follow -- 'e')
select-variant 'cyrl/abk/Che' 0x4BC (follow -- 'e')
select-variant 'cyrl/abk/che' 0x4BD (follow -- 'e')
select-variant 'cyrl/abk/CheDescender' 0x4BE (follow -- 'e')
select-variant 'cyrl/abk/cheDescender' 0x4BF (follow -- 'e')
CreateSelectorVariants "Schwa" 0x18F [Object.keys SmallEConfig]
alias 'cyrl/Schwa' 0x4D8 'Schwa'
CreateSelectorVariants "schwa" 0x259 [Object.keys SmallEConfig]
alias 'cyrl/schwa' 0x4D9 'schwa'
CreateSelectorVariants 'cyrl/abk/Che' 0x4BC [Object.keys SmallEConfig] (follow -- 'e')
CreateSelectorVariants 'cyrl/abk/che' 0x4BD [Object.keys SmallEConfig] (follow -- 'e')
CreateSelectorVariants 'cyrl/abk/CheDescender' 0x4BE [Object.keys SmallEConfig] (follow -- 'e')
CreateSelectorVariants 'cyrl/abk/cheDescender' 0x4BF [Object.keys SmallEConfig] (follow -- 'e')
glyph-block-import Letter-Blackboard : BBS BBD
create-glyph 'mathbb/e' 0x1D556 : glyph-proc

View file

@ -60,6 +60,20 @@ glyph-block Letter-Shared : begin
include [refer-glyph a] AS_BASE ALSO_METRICS
include [refer-glyph b]
glyph-block-export CreateSelectorVariants
define [CreateSelectorVariants] : with-params [name code selectors [follow name]] : begin
select-variant "\(name)/selector" (follow -- follow)
local obj {.}
foreach item [items-of selectors] : set obj.(item) "\(name).\(item)"
CreateDependentComposite name code "\(name)/selector" obj
glyph-block-export DefineSelectorGlyph
define [DefineSelectorGlyph name selector marks] : begin
create-glyph "\(name)/selector.\(selector)" : glyph-proc
include marks
set-base-anchor 'cvDecompose' 0 0
DependentSelector.set currentGlyph selector
glyph-block-export SetGrekUpperTonos
define [SetGrekUpperTonos kern] : glyph-proc
set-base-anchor 'grekUpperTonos' kern (CAP - 0.75 * AccentStackOffset)

View file

@ -133,6 +133,7 @@ selector."C/descBase" = "serifless"
selector."C/sansSerif" = "serifless"
selector.CHookTop = "unilateralSerifed"
selector.CTopSerifOnly = "serifless"
selector.CBottomSerifOnly = "serifless"
[prime.capital-c.variants.unilateral-serifed]
rank = 2
@ -142,6 +143,7 @@ selector."C/descBase" = "bilateralSerifed"
selector."C/sansSerif" = "serifless"
selector.CHookTop = "unilateralSerifed"
selector.CTopSerifOnly = "unilateralSerifed"
selector.CBottomSerifOnly = "serifless"
[prime.capital-c.variants.bilateral-serifed]
rank = 3
@ -151,6 +153,7 @@ selector."C/descBase" = "bilateralSerifed"
selector."C/sansSerif" = "serifless"
selector.CHookTop = "bilateralSerifed"
selector.CTopSerifOnly = "unilateralSerifed"
selector.CBottomSerifOnly = "bilateralSerifed"
[prime.capital-c.variants.unilateral-inward-serifed]
rank = 4
@ -160,6 +163,7 @@ selector."C/descBase" = "hybridSerifed1"
selector."C/sansSerif" = "serifless"
selector.CHookTop = "unilateralInwardSerifed"
selector.CTopSerifOnly = "unilateralInwardSerifed"
selector.CBottomSerifOnly = "serifless"
[prime.capital-c.variants.bilateral-inward-serifed]
rank = 5
@ -169,6 +173,7 @@ selector."C/descBase" = "bilateralInwardSerifed"
selector."C/sansSerif" = "serifless"
selector.CHookTop = "bilateralInwardSerifed"
selector.CTopSerifOnly = "unilateralInwardSerifed"
selector.CBottomSerifOnly = "bilateralInwardSerifed"
[prime.capital-d]