Move long-s variants selectable, like eszet (#999)
This commit is contained in:
parent
0a032ddeef
commit
5baff3b7ac
5 changed files with 68 additions and 44 deletions
|
@ -19,7 +19,7 @@ glyph-block Letter-Latin-F-ligatures : begin
|
|||
create-glyph 'f_i.upright' : glyph-proc
|
||||
include : MarkSet.b
|
||||
include : new-glyph : glyph-proc
|
||||
include : refer-glyph "longs.upright"
|
||||
include : refer-glyph "longs.bentHook"
|
||||
include : Translate shift 0
|
||||
include : VBarRight barr 0 fbar
|
||||
include : HBarTop hbarleft barr fbar
|
||||
|
@ -28,7 +28,7 @@ glyph-block Letter-Latin-F-ligatures : begin
|
|||
create-glyph 'f_i.italic' : glyph-proc
|
||||
include : MarkSet.b
|
||||
include : new-glyph : glyph-proc
|
||||
include : refer-glyph "longs.italic"
|
||||
include : refer-glyph "longs.flatHookTailed"
|
||||
include : Translate shift 0
|
||||
include : VBarRight barr 0 fbar
|
||||
include : HBarTop hbarleft barr fbar
|
||||
|
@ -53,7 +53,7 @@ glyph-block Letter-Latin-F-ligatures : begin
|
|||
|
||||
create-glyph 'f_l.italic' : glyph-proc
|
||||
include : new-glyph : glyph-proc
|
||||
include [refer-glyph 'longs.italic'] AS_BASE
|
||||
include [refer-glyph 'longs.flatHookTailed'] AS_BASE
|
||||
include : Translate shift 0
|
||||
include : VBarRight barr 0 CAP
|
||||
include : HBarTop hbarleft [mix SB barr 0.65] fbar
|
||||
|
|
|
@ -10,6 +10,7 @@ glyph-block Letter-Latin-Long-S : begin
|
|||
glyph-block-import CommonShapes
|
||||
glyph-block-import Common-Derivatives
|
||||
glyph-block-import Letter-Shared-Shapes : CurlyTail FlatHookDepth
|
||||
glyph-block-import Letter-Latin-Lower-F : StdSmallFBarLeftPos StdSmallFBarLeftPos0
|
||||
|
||||
define [LongSUpperHalf sign x top bottom hookX hookY _sw] : begin
|
||||
local hd : FlatHookDepth [DivFrame 1]
|
||||
|
@ -42,27 +43,44 @@ glyph-block Letter-Latin-Long-S : begin
|
|||
LongSUpperHalf (-1) Middle top [mix top bottom 0.5] hookx hooky fine
|
||||
LongSLowerHalf (-1) Middle [mix top bottom 0.5] bottom hookx hooky fine
|
||||
|
||||
create-glyph 'longs.upright.standard' : glyph-proc
|
||||
include : MarkSet.b
|
||||
local m : Middle - JBalance - HalfStroke * HVContrast
|
||||
local r : m + (Width * 0.5) + Stroke * HVContrast - OXHook
|
||||
|
||||
define [LongSBentHookBase y0 m fSlab] : glyph-proc
|
||||
include : dispiro
|
||||
widths.lhs
|
||||
g4 r (CAP - Hook)
|
||||
g4 (RightSB + RBalance2 + [Math.max 0 (m - [StdSmallFBarLeftPos0])]) (CAP - Hook)
|
||||
hookstart (CAP - O)
|
||||
flat m (CAP - SmoothA)
|
||||
curl m 0 [heading Downward]
|
||||
set-base-anchor 'overlay' (m + Stroke * 0.65 * HVContrast) (CAP * OverlayPos)
|
||||
if SLAB : begin
|
||||
include : tagged 'serifLB' : CenterBottomSerif (m + HalfStroke * HVContrast + RBalance * 0.35) 0 (Jut + RBalance * 0.65)
|
||||
if fSlab : include : tagged 'serifLB'
|
||||
CenterBottomSerif (m + HalfStroke * HVContrast + RBalance * 0.35) 0 (Jut + RBalance * 0.65)
|
||||
|
||||
create-forked-glyph 'longsbar.upright.standard' : glyph-proc
|
||||
include : HOverlayBar
|
||||
define [LongSBentHookOverlayBar m] : HOverlayBar
|
||||
m + HalfStroke * HVContrast - LongJut * 0.75
|
||||
m + HalfStroke * HVContrast + LongJut * 0.75
|
||||
[mix (XH - Stroke) CAP 0.5] - HalfStroke
|
||||
|
||||
create-glyph 'longs.upright.flatHook' : glyph-proc
|
||||
define [LongSSymmetricOverlayBar m] : HOverlayBar
|
||||
m - LongJut * 0.75
|
||||
m + LongJut * 0.75
|
||||
[mix (XH - Stroke) CAP 0.5] - HalfStroke
|
||||
|
||||
create-glyph 'longs.bentHook' : glyph-proc
|
||||
include : MarkSet.b
|
||||
local m : Middle - JBalance - HalfStroke * HVContrast
|
||||
include : LongSBentHookBase 0 m SLAB
|
||||
|
||||
create-forked-glyph 'longsbar.bentHook' : LongSBentHookOverlayBar m
|
||||
|
||||
create-glyph 'longs.bentHookTailed' : glyph-proc
|
||||
include : MarkSet.b
|
||||
local m : StdSmallFBarLeftPos true
|
||||
include : LongSBentHookBase (XH / 2) m false
|
||||
include : LongSLowerHalf 1 (m + HalfStroke * HVContrast) (XH / 2 - O) Descender (HookX + 0.25 * Stroke) Hook Stroke
|
||||
|
||||
create-forked-glyph 'longsbar.bentHookTailed' : LongSBentHookOverlayBar m
|
||||
|
||||
create-glyph 'longs.flatHook' : glyph-proc
|
||||
include : MarkSet.b
|
||||
local hd : FlatHookDepth [DivFrame 1]
|
||||
local m : Middle - JBalance - HalfStroke * HVContrast
|
||||
|
@ -77,26 +95,17 @@ glyph-block Letter-Latin-Long-S : begin
|
|||
if SLAB : begin
|
||||
include : tagged 'serifLB' : CenterBottomSerif (m + HalfStroke * HVContrast + RBalance * 0.35) 0 (Jut + RBalance * 0.65)
|
||||
|
||||
create-forked-glyph 'longsbar.upright.flatHook' : glyph-proc
|
||||
include : HOverlayBar
|
||||
m + HalfStroke * HVContrast - LongJut * 0.75
|
||||
m + HalfStroke * HVContrast + LongJut * 0.75
|
||||
[mix (XH - Stroke) CAP 0.5] - HalfStroke
|
||||
create-forked-glyph 'longsbar.flatHook' : LongSBentHookOverlayBar m
|
||||
|
||||
create-glyph 'longs.italic' : glyph-proc
|
||||
create-glyph 'longs.flatHookTailed' : glyph-proc
|
||||
include : MarkSet.if
|
||||
include : LongSShape CAP Descender (HookX + 0.25 * Stroke) Hook
|
||||
|
||||
create-forked-glyph 'longsbar.italic' : glyph-proc
|
||||
include : HOverlayBar
|
||||
Middle - LongJut * 0.75
|
||||
Middle + LongJut * 0.75
|
||||
[mix (XH - Stroke) CAP 0.5] - HalfStroke
|
||||
create-forked-glyph 'longsbar.flatHookTailed' : LongSSymmetricOverlayBar Middle
|
||||
|
||||
|
||||
select-variant 'longs.upright'
|
||||
select-variant 'longsbar.upright' null (follow -- 'longs.upright')
|
||||
alias 'esh' 0x283 'longs.italic'
|
||||
select-variant 'longs' 0x17F
|
||||
select-variant 'longsbar' 0x1E9D (follow -- 'longs')
|
||||
alias 'esh' 0x283 'longs.flatHookTailed'
|
||||
|
||||
create-glyph 'eshCurlyTail' 0x286 : glyph-proc
|
||||
include : MarkSet.if
|
||||
|
|
|
@ -5,7 +5,5 @@ glyph-module
|
|||
glyph-block Letter-Cyrillic-Orthography : begin
|
||||
glyph-block-import Common-Derivatives
|
||||
|
||||
orthographic-italic 'longs' 0x17F
|
||||
orthographic-italic 'longsbar' 0x1E9D
|
||||
orthographic-italic 'f_i' 0xFB01
|
||||
orthographic-italic 'f_l' 0xFB02
|
||||
|
|
|
@ -17,12 +17,11 @@ glyph-block Letter-Latin-Lower-F : begin
|
|||
flat ([mix df.leftSB df.rightSB 0.02] + HalfStroke * TanSlope + (df.rightSB - df.leftSB) * shift) 0
|
||||
curl ([mix df.leftSB df.rightSB 0.875] + HalfStroke * TanSlope + (df.rightSB - df.leftSB) * shift) 0
|
||||
|
||||
define SmallFOvershoot2 (O * 2)
|
||||
define [StdFShapeT sink offset barleft sw] : sink
|
||||
widths.lhs sw
|
||||
g4 (RightSB + RBalance2 - (OX - O) - offset) (CAP - Hook * 0.75 - SmallFOvershoot2)
|
||||
hookstart (CAP - O - SmallFOvershoot2 - offset) (tight -- true)
|
||||
flat (barleft + offset) (CAP - SmoothA * 0.8 - SmallFOvershoot2)
|
||||
g4 (RightSB + RBalance2 - (OX - O) - offset) (CAP - Hook * 0.75)
|
||||
hookstart (CAP - O - offset) (tight -- true)
|
||||
flat (barleft + offset) (CAP - SmoothA * 0.8)
|
||||
[if offset corner curl] (barleft + offset) 0 [heading Downward]
|
||||
if offset {[corner (RightSB + RBalance2 - (OX - O) - offset) 0]} {}
|
||||
|
||||
|
@ -44,10 +43,16 @@ glyph-block Letter-Latin-Lower-F : begin
|
|||
flat xBarMiddle 0.1 [widths.center.heading Stroke Downward]
|
||||
DiagonalTailL df xBarMiddle Descender [DiagonalTailStdDepth df Stroke] Stroke
|
||||
|
||||
glyph-block-export StdSmallFBarLeftPos
|
||||
define [StdSmallFBarLeftPos barAtCenter] : [mix SB RightSB : if barAtCenter 0.45 0.35] - Stroke * [if barAtCenter 0.45 0.25] * HVContrast
|
||||
|
||||
glyph-block-export StdSmallFBarLeftPos0
|
||||
define [StdSmallFBarLeftPos0] : [mix SB RightSB 0.35] - Stroke * 0.25 * HVContrast
|
||||
|
||||
define [StandardSmallFShape df m bh counterHook] : glyph-proc
|
||||
local barAtCenter : (counterHook === CH-HOOK) || (counterHook === CH-DIAGONAL-HOOK)
|
||||
local barLeft0 : [mix SB RightSB 0.35] - Stroke * 0.25 * HVContrast
|
||||
local barLeft : [mix SB RightSB : if barAtCenter 0.45 0.35] - Stroke * [if barAtCenter 0.45 0.25] * HVContrast
|
||||
local barLeft0 : StdSmallFBarLeftPos0
|
||||
local barLeft : StdSmallFBarLeftPos barAtCenter
|
||||
|
||||
include : StdFShapeT dispiro 0 barLeft0 Stroke
|
||||
include : Translate (barLeft - barLeft0) 0
|
||||
|
|
|
@ -3420,15 +3420,25 @@ sampler = "ſ"
|
|||
samplerExplain = "Long-S"
|
||||
tag = "cv51"
|
||||
|
||||
[prime.long-s.variants.standard]
|
||||
[prime.long-s.variants.bent-hook]
|
||||
rank = 1
|
||||
description = "Long-S with standard hook"
|
||||
selector."longs.upright" = "standard"
|
||||
description = "Long-S with standard bending hook"
|
||||
selector."longs" = "bentHook"
|
||||
|
||||
[prime.long-s.variants.flat-hook]
|
||||
rank = 2
|
||||
description = "Long-S with flat hook"
|
||||
selector."longs.upright" = "flatHook"
|
||||
selector."longs" = "flatHook"
|
||||
|
||||
[prime.long-s.variants.bent-hook-tailed]
|
||||
rank = 3
|
||||
description = "Long-S with standard bending hook and tail"
|
||||
selector."longs" = "bentHookTailed"
|
||||
|
||||
[prime.long-s.variants.flat-hook-tailed]
|
||||
rank = 4
|
||||
description = "Long-S with flat hook and tail"
|
||||
selector."longs" = "flatHookTailed"
|
||||
|
||||
|
||||
|
||||
|
@ -5054,7 +5064,7 @@ w = "straight"
|
|||
x = "straight-serifless"
|
||||
z = "straight-serifless"
|
||||
# Non-latin
|
||||
long-s = "standard"
|
||||
long-s = "bent-hook"
|
||||
turn-v = "straight"
|
||||
latn-phi = "serifless"
|
||||
lower-alpha = "crossing"
|
||||
|
@ -5138,6 +5148,7 @@ l = "serifed-tailed"
|
|||
u = "tailed"
|
||||
y = "cursive"
|
||||
eszet = "sulzbacher-tailed"
|
||||
long-s = "flat-hook-tailed"
|
||||
cyrl-ef = "cursive"
|
||||
cyrl-yeri = "round"
|
||||
cyrl-yery = "round"
|
||||
|
@ -5833,6 +5844,7 @@ question = "corner-flat-hooked"
|
|||
a = "single-storey-serifless"
|
||||
f = "flat-hook-tailed"
|
||||
y = "cursive-flat-hook"
|
||||
long-s = "flat-hook-tailed"
|
||||
|
||||
[composite.ss14.slab-override.design]
|
||||
capital-g = "toothless-rounded-serifed-hooked"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue