Make Cyrillic Abkhasian Che respond to C's serifs (#1898).
This commit is contained in:
parent
934981003e
commit
94b072c1ec
4 changed files with 79 additions and 64 deletions
|
@ -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).
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue