Add XH-height middle-serifed and dual-serifed variants for Eszet. As a result, current variants are reordered (#1904).
This commit is contained in:
parent
8190f81a04
commit
30a050e307
7 changed files with 54 additions and 24 deletions
|
@ -1,3 +1,4 @@
|
|||
* \[**Breaking**\] Add XH-height middle-serifed and dual-serifed variants for Eszet. As a result, current variants are reordered (#1904).
|
||||
* 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).
|
||||
* Fix `cv36`, `cv46`, `cv47`, `cv48`, `cv49`, `cv50`, `cv61`, and `cv74` under Curly Slab.
|
|
@ -2,6 +2,7 @@ $$include '../../../meta/macros.ptl'
|
|||
|
||||
import [mix fallback SuffixCfg] from"../../../support/utils.mjs"
|
||||
import [Dotless CvDecompose] from"../../../support/gr.mjs"
|
||||
import [maskBits] from"../../../support/util/mask-bit.mjs"
|
||||
|
||||
glyph-module
|
||||
|
||||
|
@ -10,24 +11,28 @@ glyph-block Letter-Latin-Lower-Eszet : begin
|
|||
glyph-block-import Common-Derivatives
|
||||
glyph-block-import Letter-Shared-Shapes : FlatHookDepth PalatalHook CyrDescender SerifFrame
|
||||
glyph-block-import Letter-Latin-S : AdviceSArchDepth
|
||||
glyph-block-import Letter-Latin-Lower-F : fbar
|
||||
|
||||
define NO-TAIL 0
|
||||
define DESCENDING 1
|
||||
define TAILED 2
|
||||
|
||||
define SERIF-NONE 0
|
||||
define SERIF-BOT 1
|
||||
define SERIF-MID 2
|
||||
define SERIF-DUAL 3
|
||||
define SERIF-NONE 0
|
||||
define SERIF-BOT 1
|
||||
define SERIF-MID 2
|
||||
define SERIF-MID-XH 4
|
||||
|
||||
define [EszetSerifs df fTraditional slab] : begin
|
||||
local sf : SerifFrame.fromDf [DivFrame 1] XH 0
|
||||
define SERIF-DUAL : SERIF-BOT + SERIF-MID
|
||||
define SERIF-DUAL-XH : SERIF-BOT + SERIF-MID-XH
|
||||
|
||||
define [EszetSerifs df fTraditional slab] : glyph-proc
|
||||
local sf : SerifFrame.fromDf [DivFrame 1] fbar 0
|
||||
local lb : if fTraditional sf.lb.full sf.lb.outer
|
||||
return : match slab
|
||||
[Just SERIF-BOT] : composite-proc lb
|
||||
[Just SERIF-MID] : composite-proc sf.lt.outer
|
||||
[Just SERIF-DUAL] : composite-proc lb sf.lt.outer
|
||||
__ : no-shape
|
||||
if [maskBits slab SERIF-BOT] : include lb
|
||||
if [maskBits slab SERIF-MID] : include sf.lt.outer
|
||||
|
||||
local sfXH : SerifFrame.fromDf [DivFrame 1] XH 0
|
||||
if [maskBits slab SERIF-MID-XH] : include sfXH.lt.outer
|
||||
|
||||
define [Traditional fFlathook] : function [slab tail] : glyph-proc
|
||||
include : MarkSet.bp
|
||||
|
@ -158,10 +163,12 @@ glyph-block Letter-Latin-Lower-Eszet : begin
|
|||
'descending' DESCENDING
|
||||
'tailed' TAILED
|
||||
object # serifs
|
||||
serifless 0
|
||||
bottomSerifed 1
|
||||
middleSerifed 2
|
||||
dualSerifed 3
|
||||
serifless SERIF-NONE
|
||||
bottomSerifed SERIF-BOT
|
||||
middleSerifed SERIF-MID
|
||||
dualSerifed SERIF-DUAL
|
||||
middleSerifedXH SERIF-MID-XH
|
||||
dualSerifedXH SERIF-DUAL-XH
|
||||
|
||||
foreach { suffix { Base tail serif } } [pairs-of EszetConfig] : do
|
||||
create-glyph "eszet.\(suffix)" : Base serif tail
|
||||
|
|
|
@ -2,7 +2,7 @@ $$include "../../../meta/macros.ptl"
|
|||
|
||||
import [mix linreg clamp fallback] from"../../../support/utils.mjs"
|
||||
import [Dotless CvDecompose] from"../../../support/gr.mjs"
|
||||
import [maskBit maskBits popCountByte] from"../../../support/util/mask-bit.mjs"
|
||||
import [maskBit maskBits] from"../../../support/util/mask-bit.mjs"
|
||||
|
||||
glyph-module
|
||||
|
||||
|
|
|
@ -4093,21 +4093,25 @@ next = "terminal"
|
|||
|
||||
[prime.eszet.variants-buildup.stages.body.traditional]
|
||||
rank = 1
|
||||
groupRank = 10
|
||||
descriptionAffix = "traditional, Fraktur-like shape"
|
||||
selectorAffix.eszet = "traditional"
|
||||
|
||||
[prime.eszet.variants-buildup.stages.body.traditional-flat-hook]
|
||||
rank = 2
|
||||
groupRank = 20
|
||||
descriptionAffix = "traditional Fraktur-like shape (containing a flat top hook)"
|
||||
selectorAffix.eszet = "traditionalFlatHook"
|
||||
|
||||
[prime.eszet.variants-buildup.stages.body.sulzbacher]
|
||||
rank = 3
|
||||
groupRank = 30
|
||||
descriptionAffix = "more modern, beta-like shape"
|
||||
selectorAffix.eszet = "sulzbacher"
|
||||
|
||||
[prime.eszet.variants-buildup.stages.body.longs-s-lig]
|
||||
rank = 4
|
||||
groupRank = 40
|
||||
descriptionAffix = "ligature of long-S (`ſ`) and `s`"
|
||||
selectorAffix.eszet = "longSSLig"
|
||||
|
||||
|
@ -4116,16 +4120,19 @@ next = "serifs"
|
|||
|
||||
[prime.eszet.variants-buildup.stages.terminal.non-descending]
|
||||
rank = 1
|
||||
groupRank = 1
|
||||
keyAffix = ""
|
||||
selectorAffix.eszet = ""
|
||||
|
||||
[prime.eszet.variants-buildup.stages.terminal.descending]
|
||||
rank = 2
|
||||
groupRank = 2
|
||||
descriptionAffix = "terminal descends baseline"
|
||||
selectorAffix.eszet = "descending"
|
||||
|
||||
[prime.eszet.variants-buildup.stages.terminal.tailed]
|
||||
rank = 3
|
||||
groupRank = 2
|
||||
descriptionAffix = "terminal containing tail"
|
||||
selectorAffix.eszet = "tailed"
|
||||
|
||||
|
@ -4135,23 +4142,38 @@ desceiptioAffix = "serifs"
|
|||
descriptionJoiner = "without"
|
||||
selectorAffix.eszet = "serifless"
|
||||
|
||||
[prime.eszet.variants-buildup.stages.serifs.bottom-serifed]
|
||||
enableIf = [{terminal = "non-descending"}]
|
||||
rank = 2
|
||||
descriptionAffix = "serif at bottom"
|
||||
selectorAffix.eszet = "bottomSerifed"
|
||||
|
||||
[prime.eszet.variants-buildup.stages.serifs.middle-serifed]
|
||||
rank = 3
|
||||
rank = 2
|
||||
descriptionAffix = "serif at middle"
|
||||
selectorAffix.eszet = "middleSerifed"
|
||||
|
||||
[prime.eszet.variants-buildup.stages.serifs.dual-serifed]
|
||||
[prime.eszet.variants-buildup.stages.serifs.middle-serifed-xh]
|
||||
rank = 3
|
||||
enableIf = [{body = "sulzbacher"}, {body = "longs-s-lig"}]
|
||||
descriptionAffix = "serif at middle at x-height"
|
||||
selectorAffix.eszet = "middleSerifedXH"
|
||||
|
||||
[prime.eszet.variants-buildup.stages.serifs.bottom-serifed]
|
||||
enableIf = [{terminal = "non-descending"}]
|
||||
rank = 4
|
||||
descriptionAffix = "serif at bottom"
|
||||
selectorAffix.eszet = "bottomSerifed"
|
||||
|
||||
[prime.eszet.variants-buildup.stages.serifs.dual-serifed]
|
||||
enableIf = [{terminal = "non-descending"}]
|
||||
rank = 5
|
||||
descriptionAffix = "serif at middle and bottom"
|
||||
selectorAffix.eszet = "dualSerifed"
|
||||
|
||||
[prime.eszet.variants-buildup.stages.serifs.dual-serifed-xh]
|
||||
enableIf = [
|
||||
{terminal = "non-descending", body = "sulzbacher"},
|
||||
{terminal = "non-descending", body = "longs-s-lig"}
|
||||
]
|
||||
rank = 6
|
||||
descriptionAffix = "serif at middle (x-height) and bottom"
|
||||
selectorAffix.eszet = "dualSerifedXH"
|
||||
|
||||
|
||||
|
||||
[prime.lower-eth]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue