Add compact/descending variants for J (#876).

This commit is contained in:
be5invis 2021-02-04 02:32:34 -08:00
parent c700d6f9d1
commit 1320b76cca
4 changed files with 89 additions and 13 deletions

View file

@ -4,4 +4,5 @@
* Add bar-interrupted variants for Dollar and Cent sign (#863).
* Add bend and curly variants for `7` (#866).
* Add variant selectors for Greek lower Alpha and Iota (#873).
* Add tail to Greek lower Pi and Tau (#875).
* Add tail to Greek lower Pi and Tau (#875).
* Add compact/descending variants for `J` (#876).

View file

@ -79,39 +79,38 @@ glyph-block Letter-Latin-Lower-J : begin
set-base-anchor 'above' (Middle + JBalance - Stroke * 0.166 * HVContrast) XH
set-base-anchor 'overlay' (Middle + JBalance - Stroke * 0.166 * HVContrast) (XH / 2)
define [FlatHookDotlessJShape] : params [df crossLeft crossRight barCenter serif] : glyph-proc
glyph-block-export FlatHookDotlessJShape
define [FlatHookDotlessJShape] : params [df dfHook top crossLeft barCenter serif] : glyph-proc
local terminal : crossLeft - OX * 2
local bar : barCenter + HalfStroke * HVContrast
local hd : FlatHookDepth df
if serif : include : LeftwardTopSerif barCenter XH (LongJut * df.div)
local hd : FlatHookDepth dfHook
if serif : include : LeftwardTopSerif barCenter top (LongJut * df.div)
include : dispiro
widths.lhs
flat [Math.min terminal (bar - hd.x - [Math.max (Stroke / 3) (df.width / 6)])] Descender
curl (bar - hd.x) Descender
archv.superness DesignParameters.tightHookSuperness
flat bar (Descender + hd.y)
curl bar XH [heading Upward]
set-base-anchor 'above' barCenter XH
set-base-anchor 'overlay' barCenter (XH / 2)
curl bar top [heading Upward]
set-base-anchor 'above' barCenter top
set-base-anchor 'overlay' barCenter (top / 2)
create-glyph 'dotlessj.flatHookSerifless' : glyph-proc
local df : DivFrame para.diversityII
local dfHook : DivFrame para.diversityI
set-width df.width
include : df.markSet.p
include : FlatHookDotlessJShape df
crossLeft -- [mix 0 SB dfHook.div]
crossRight -- [mix df.width df.rightSB df.div]
barCenter -- (df.middle + 0.5 * JBalance * df.div * [mix 1 df.div 2])
include : FlatHookDotlessJShape df dfHook XH
crossLeft -- (df.middle - (dfHook.middle - [mix 0 dfHook.leftSB : mix 1 dfHook.div 2]))
barCenter -- (df.middle + 0.25 * JBalance * df.div * [mix 1 df.div 2])
serif -- false
create-glyph 'dotlessj.flatHookSerifed' : glyph-proc
local df : DivFrame para.diversityI
set-width df.width
include : df.markSet.p
include : FlatHookDotlessJShape df
include : FlatHookDotlessJShape df df XH
crossLeft -- [mix 0 SB : mix 1 df.div 2]
crossRight -- [mix df.width df.rightSB : mix 1 df.div 2]
barCenter -- (df.middle + JBalance * df.div)
serif -- true

View file

@ -10,6 +10,7 @@ glyph-block Letter-Latin-Upper-J : begin
glyph-block-import CommonShapes
glyph-block-import Common-Derivatives
glyph-block-import Letter-Blackboard : BBS BBD
glyph-block-import Letter-Latin-Lower-J : FlatHookDotlessJShape
create-glyph 'J.serifless' : glyph-proc
include : MarkSet.capital
@ -54,6 +55,51 @@ glyph-block Letter-Latin-Upper-J : begin
include [refer-glyph 'J.serifless'] AS_BASE ALSO_METRICS
include : CenterTopSerif (RightSB - HalfStroke * HVContrast - JBalance2 + O) CAP (Jut + JBalance2)
create-glyph 'J.descendingSerifless' : glyph-proc
include : MarkSet.if
local center : Middle + JBalance + HalfStroke * HVContrast
set-base-anchor 'above' (center - HVContrast * HalfStroke) XH
set-base-anchor 'overlay' (center - HVContrast * HalfStroke) (XH / 2)
local hookx : center - (Width * 0.5) - Stroke * HVContrast + OXHook
local turn : [mix center hookx 0.5] + CorrectionOMidS
include : dispiro
widths.rhs
flat center CAP [heading Downward]
curl center (Descender + SmoothA)
hookend (Descender + O)
g4 hookx (Descender + JHook)
create-glyph 'J.descendingSerifed' : glyph-proc
include [refer-glyph 'J.descendingSerifless'] AS_BASE ALSO_METRICS
include : LeftwardTopSerif (Middle + JBalance) CAP LongJut
create-glyph 'J.descendingSerifedBothSides' : glyph-proc
include [refer-glyph 'J.descendingSerifed'] AS_BASE ALSO_METRICS
include : RightwardTopSerif (Middle + JBalance) CAP Jut
create-glyph 'J.descendingSerifedSymmetric' : glyph-proc
include [refer-glyph 'J.descendingSerifless'] AS_BASE ALSO_METRICS
include : CenterTopSerif (Middle + JBalance) CAP (Jut + JBalance)
create-glyph 'J.descendingFlatHookSerifless' : glyph-proc
local df : DivFrame para.diversityII
local dfHook : DivFrame para.diversityI
set-width df.width
include : df.markSet.if
include : FlatHookDotlessJShape df dfHook CAP
crossLeft -- (df.middle - (dfHook.middle - [mix 0 dfHook.leftSB : mix 1 dfHook.div 2]))
barCenter -- (df.middle + 0.25 * JBalance * df.div * [mix 1 df.div 2])
serif -- false
create-glyph 'J.descendingFlatHookSerifed' : glyph-proc
local df : DivFrame para.diversityI
set-width df.width
include : df.markSet.p
include : FlatHookDotlessJShape df df CAP
crossLeft -- [mix 0 SB : mix 1 df.div 2]
barCenter -- (df.middle + JBalance * df.div)
serif -- true
select-variant 'J' 'J'
alias 'cyrl/Je' 0x408 'J'
alias 'grek/Yot' 0x37F 'J'

View file

@ -394,6 +394,36 @@ rank = 4
description = "J with symmetric at both sides and is symmetric"
selector.J = "serifedSymmetric"
[prime.capital-j.variants.descending-serifless]
rank = 5
description = "J with hook goes below descender and without serif"
selector.J = "descendingSerifless"
[prime.capital-j.variants.descending-serifed]
rank = 6
description = "J with hook goes below descender and top serif"
selector.J = "descendingSerifed"
[prime.capital-j.variants.descending-serifed-both-sides]
rank = 7
description = "J with hook goes below descender and top serif at both sides (asymmetric)"
selector.J = "descendingSerifedBothSides"
[prime.capital-j.variants.descending-serifed-symmetric]
rank = 8
description = "J with hook goes below descender and top serif at both sides (symmetric)"
selector.J = "descendingSerifedSymmetric"
[prime.capital-j.variants.descending-flat-hook-serifless]
rank = 9
description = "J with flat hook goes below descender and without serif"
selector.J = "descendingFlatHookSerifless"
[prime.capital-j.variants.descending-flat-hook-serifed]
rank = 10
description = "J with flat hook goes below descender and top serif"
selector.J = "descendingFlatHookSerifed"
[prime.capital-k]