Combining Es-te, Monographic Uk (#1721)
* Combining Es-te, Monographic Uk * separate variant?
This commit is contained in:
parent
db1d8c38d3
commit
2fffa76d54
10 changed files with 84 additions and 9 deletions
|
@ -1,6 +1,8 @@
|
|||
Add Characters:
|
||||
- CYRILLIC SMALL LETTER NARROW O (`U+1C82`) (#1517).
|
||||
- CYRILLIC SMALL LETTER UNBLENDED UK (`U+1C88`) (#1517).
|
||||
- COMBINING CYRILLIC LETTER ES-TE (`U+2DF5`) (#1720).
|
||||
- COMBINING CYRILLIC LETTER MONOGRAPH UK (`U+2DF9`) (#1720).
|
||||
- CYRILLIC CAPITAL LETTER MONOGRAPH UK (`U+A64A`) (#1517).
|
||||
- CYRILLIC SMALL LETTER MONOGRAPH UK (`U+A64B`) (#1517).
|
||||
- CYRILLIC CAPITAL LETTER YN (`U+A65E`) (#1142, #1517).
|
||||
|
|
|
@ -616,9 +616,11 @@ glyph-block Autobuild-Transformed : begin
|
|||
list 0x2DF2 'cyrl/sha'
|
||||
list 0x2DF3 'cyrl/shcha'
|
||||
list 0x2DF4 'cyrl/fita'
|
||||
list 0x2DF5 'cyrl/este'
|
||||
list 0x2DF6 'cyrl/a'
|
||||
list 0x2DF7 'cyrl/ie'
|
||||
list 0x2DF8 'cyrl/djerv'
|
||||
list 0x2DF9 'cyrl/uk'
|
||||
list 0x2DFB 'cyrl/yu'
|
||||
list 0x2DFC 'cyrl/aIotified'
|
||||
list 0x2DFD 'cyrl/smallYus'
|
||||
|
|
|
@ -153,7 +153,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin
|
|||
set-base-anchor 'cvDecompose' 0 0
|
||||
include : ueUPart df fSlab
|
||||
|
||||
do "open o subglyphs"
|
||||
do "c subglyphs"
|
||||
glyph-block-import Letter-Latin-C : CLetterForm CConfig
|
||||
|
||||
define [openOShape df sty styBot] : new-glyph : glyph-proc
|
||||
|
@ -168,6 +168,18 @@ glyph-block Letter-Latin-Lower-AE-OE : begin
|
|||
include : lf.full
|
||||
include : FlipAround (subDf.width / 2) (XH / 2)
|
||||
|
||||
define SLAB-FLAT 3
|
||||
define [EsTeLeftShape df styBot] : new-glyph : glyph-proc
|
||||
local subDf : df.sliceFine 3 2 (1/3)
|
||||
local ada : subDf.archDepthA SmallArchDepth df.mvs
|
||||
local adb : subDf.archDepthB SmallArchDepth df.mvs
|
||||
|
||||
local lf : CLetterForm subDf SLAB-FLAT styBot XH 0
|
||||
ada -- [subDf.archDepthA SmallArchDepth df.mvs]
|
||||
adb -- [subDf.archDepthB SmallArchDepth df.mvs]
|
||||
sw -- df.mvs
|
||||
include : lf.full
|
||||
|
||||
foreach { suffix { sty styBot } } [Object.entries CConfig] : do
|
||||
create-glyph "oeOpenO/left.\(suffix)" : glyph-proc
|
||||
local df : DivFrame para.diversityM 3
|
||||
|
@ -176,6 +188,43 @@ glyph-block Letter-Latin-Lower-AE-OE : begin
|
|||
set-base-anchor 'cvDecompose' 0 0
|
||||
include : openOShape df sty styBot
|
||||
|
||||
create-glyph "cyrl/este/left.\(suffix)" : glyph-proc
|
||||
local df : DivFrame para.diversityM 3
|
||||
include : df.markSet.e
|
||||
set-width df.width
|
||||
set-base-anchor 'cvDecompose' 0 0
|
||||
include : EsTeLeftShape df styBot
|
||||
|
||||
do "other subglyphs"
|
||||
define [EsTeRightShape df doTopSerifs doBottomSerifs] : new-glyph : glyph-proc
|
||||
local subDf : df.sliceFine 3 2 (1/3)
|
||||
# local shift : df.rightSB - subDf.rightSB
|
||||
local l subDf.rightSB
|
||||
local m : mix df.rightSB subDf.rightSB 0.5
|
||||
local r : df.rightSB - 0.75 * OX
|
||||
|
||||
include : VBar.m m 0 XH df.mvs
|
||||
include : HBar.t l r XH df.mvs
|
||||
|
||||
if doTopSerifs : begin
|
||||
local swVJut : Math.min df.mvs (0.625 * (r - m - 0.5 * df.mvs * HVContrast))
|
||||
include : VSerif.dr r XH VJut swVJut
|
||||
if doBottomSerifs : begin
|
||||
local midJutCenter : [Math.max Jut : mix (0.5 * df.mvs * HVContrast) LongJut 0.6] * (subDf.width / df.width)
|
||||
include : tagged 'serifMB' : HSerif.rb m 0 midJutCenter df.mvs
|
||||
|
||||
define TConfig : object
|
||||
serifless { false false }
|
||||
motionSerifed { true false }
|
||||
serifed { true true }
|
||||
|
||||
foreach { suffix { doST doSB } } [Object.entries TConfig] : do
|
||||
create-glyph "cyrl/este/right.\(suffix)" : glyph-proc
|
||||
local df : DivFrame para.diversityM 3
|
||||
set-width 0
|
||||
set-mark-anchor 'cvDecompose' 0 0
|
||||
include : EsTeRightShape df doST doSB
|
||||
|
||||
do "subglyph diacritics"
|
||||
glyph-block-import Mark-Overlay : InnerDot
|
||||
|
||||
|
@ -244,3 +293,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin
|
|||
|
||||
derive-composites 'cyrl/OOBinocular' 0xA66C 'cyrl/OO' 'OODots'
|
||||
derive-composites 'cyrl/ooBinocular' 0xA66D 'cyrl/oo' 'ooDots'
|
||||
|
||||
select-variant 'cyrl/este/left' (follow -- 'cBottomSerifOnly')
|
||||
select-variant 'cyrl/este/right' (follow -- 'T')
|
||||
derive-composites 'cyrl/este' null 'cyrl/este/left' 'cyrl/este/right'
|
||||
|
|
|
@ -21,6 +21,7 @@ glyph-block Letter-Latin-C : begin
|
|||
define SLAB-NONE 0
|
||||
define SLAB-CLASSICAL 1
|
||||
define SLAB-INWARD 2
|
||||
define SLAB-FLAT 3
|
||||
|
||||
glyph-block-export CShapeT
|
||||
define [CShapeT sink offset df st sb top bot ada adb hook sw origBar] : sink
|
||||
|
@ -31,6 +32,10 @@ glyph-block Letter-Latin-C : begin
|
|||
g4 (df.rightSB - offset) (top - DToothlessRise)
|
||||
g4 (df.middle - CorrectionOMidX * sw) (top - O - offset)
|
||||
archv
|
||||
[Just SLAB-FLAT] : list
|
||||
flat (df.rightSB - offset) (top - offset)
|
||||
curl (df.middle - CorrectionOMidX * sw) (top - offset)
|
||||
archv
|
||||
_ : list
|
||||
g4 (df.rightSB - offset) (top - [fallback hook Hook])
|
||||
hookstart (top - O - offset)
|
||||
|
@ -56,6 +61,10 @@ glyph-block Letter-Latin-C : begin
|
|||
g4 (df.leftSB + offset) (top - DToothlessRise)
|
||||
g4 (df.middle - CorrectionOMidX * sw) (top - O - offset)
|
||||
archv
|
||||
[Just SLAB-FLAT] : list
|
||||
flat (df.leftSB + offset) (top - offset)
|
||||
curl (df.middle - CorrectionOMidX * sw) (top - offset)
|
||||
archv
|
||||
_ : list
|
||||
g4 (df.leftSB + offset) (top - [fallback hook Hook])
|
||||
hookstart (top - O - offset)
|
||||
|
|
|
@ -439,11 +439,15 @@ export : define [GenDivFrame metrics] : begin
|
|||
local divisions : fallback _divisions this.hPack
|
||||
local keeps : fallback _keeps 2
|
||||
|
||||
local oneStroke : metrics.HVContrast * this.mvs
|
||||
local totalGap : this.rightSB - this.leftSB - divisions * oneStroke - 2 * o
|
||||
local oneGap : totalGap / (divisions - 1)
|
||||
return : this.sliceFine divisions keeps ((keeps - 1) / (divisions - 1)) o
|
||||
|
||||
local subDfWidth : 2 * this.leftSB + 2 * o + oneGap * (keeps - 1) + oneStroke * keeps
|
||||
public [sliceFine strokes keeps pGaps _o] : begin
|
||||
local o : fallback _o 0
|
||||
|
||||
local oneStroke : metrics.HVContrast * this.mvs
|
||||
local totalGap : this.rightSB - this.leftSB - strokes * oneStroke - 2 * o
|
||||
|
||||
local subDfWidth : 2 * this.leftSB + 2 * o + totalGap * pGaps + oneStroke * keeps
|
||||
local subDfDiv : subDfWidth / metrics.Width
|
||||
|
||||
return : new CDivFrame subDfDiv keeps (this.leftSB / metrics.SB) this.mvs o
|
||||
|
|
|
@ -2013,6 +2013,7 @@ selector."c/turnDescBase" = "unilateralSerifed"
|
|||
selector.cCurlyTail = "serifless"
|
||||
selector.cHookTop = "unilateralSerifed"
|
||||
selector.cTopSerifOnly = "serifless"
|
||||
selector.cBottomSerifOnly = "serifless"
|
||||
|
||||
[prime.c.variants.unilateral-serifed]
|
||||
rank = 2
|
||||
|
@ -2024,6 +2025,7 @@ selector."c/turnDescBase" = "unilateralSerifed"
|
|||
selector.cCurlyTail = "unilateralSerifed"
|
||||
selector.cHookTop = "unilateralSerifed"
|
||||
selector.cTopSerifOnly = "unilateralSerifed"
|
||||
selector.cBottomSerifOnly = "serifless"
|
||||
|
||||
[prime.c.variants.bilateral-serifed]
|
||||
rank = 3
|
||||
|
@ -2035,6 +2037,7 @@ selector."c/turnDescBase" = "bilateralSerifed"
|
|||
selector.cCurlyTail = "unilateralSerifed"
|
||||
selector.cHookTop = "bilateralSerifed"
|
||||
selector.cTopSerifOnly = "unilateralSerifed"
|
||||
selector.cBottomSerifOnly = "bilateralSerifed"
|
||||
|
||||
[prime.c.variants.unilateral-inward-serifed]
|
||||
rank = 4
|
||||
|
@ -2046,6 +2049,7 @@ selector."c/turnDescBase" = "unilateralInwardSerifed"
|
|||
selector.cCurlyTail = "unilateralInwardSerifed"
|
||||
selector.cHookTop = "unilateralInwardSerifed"
|
||||
selector.cTopSerifOnly = "unilateralInwardSerifed"
|
||||
selector.cBottomSerifOnly = "serifless"
|
||||
|
||||
[prime.c.variants.bilateral-inward-serifed]
|
||||
rank = 5
|
||||
|
@ -2057,6 +2061,7 @@ selector."c/turnDescBase" = "bilateralInwardSerifed"
|
|||
selector.cCurlyTail = "unilateralInwardSerifed"
|
||||
selector.cHookTop = "bilateralInwardSerifed"
|
||||
selector.cTopSerifOnly = "unilateralInwardSerifed"
|
||||
selector.cBottomSerifOnly = "bilateralInwardSerifed"
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue