Skip to content

Commit

Permalink
* Spilt out variant selector for A, V, W (#806).
Browse files Browse the repository at this point in the history
 * Add motion-serifed variant of `A`, `V`, `W`, `v`, `w` (#806).
  • Loading branch information
be5invis committed Jan 22, 2021
1 parent 70af813 commit c156e7e
Show file tree
Hide file tree
Showing 6 changed files with 238 additions and 53 deletions.
5 changes: 3 additions & 2 deletions changes/4.6.0.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
* Add IBM Plex Mono style set (#796).
* Add diagonal-tailed variant of `f`, `i`, `j`, `k`, `l`, `q` and `t` (#795).
* Add motion-serifed variant of `B`, `D`, `E` and `F` (#806).
* Add diagonal-tailed variant of `f`, `i`, `j`, `k`, `l`, `q`, `t` (#795).
* Spilt out variant selector for `A`, `V`, `W` (#806).
* Add motion-serifed variant of `A`, `B`, `D`, `E`, `F`, `V`, `W`, `v`, `w` (#806).
* Fix broken geometry of `K` and `%` under ultra-wide (#800).
* Add straight-bar AE (`Æ`), follows variant selector for `A` (#800).
* Refine the shape of Slab `S` and `s` to add serifs at both terminals (#800).
Expand Down
2 changes: 1 addition & 1 deletion font-src/glyphs/letter/latin-ext/upper-ae-oe.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin
include : df.markSet.capital
include : AEShape df CAP false

select-variant 'AE' 0xC6 (follow -- 'A')
select-variant 'AE' 0xC6 (follow -- 'grek/Lambda')
alias 'cyrl/AE' 0x4D4 'AE'

define [OEShape top df] : glyph-proc
Expand Down
20 changes: 18 additions & 2 deletions font-src/glyphs/letter/latin/upper-a.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -24,19 +24,35 @@ glyph-block Letter-Latin-Upper-A : begin
define ABarPosition : mix [if SLAB Stroke 0] CAP (XH / 2 / CAP)

create-derived 'A.straight' : glyph-proc
include : VShape [DivFrame 1] CAP Stroke true
include : VShape [DivFrame 1] CAP Stroke true (slab -- SLAB)
include : FlipAround Middle (CAP / 2)
include : intersection
HBarTop 0 Width ABarPosition
AMaskShape [DivFrame 1] CAP Stroke true

create-derived 'A.curly' : glyph-proc
include : VShape [DivFrame 1] CAP Stroke false
include : VShape [DivFrame 1] CAP Stroke false (slab -- SLAB)
include : FlipAround Middle (CAP / 2)
include : intersection
HBarTop 0 Width ABarPosition
AMaskShape [DivFrame 1] CAP Stroke false

create-derived 'A.straightMotionSerifed' : glyph-proc
include : VShape [DivFrame 1] CAP Stroke true (slab -- false)
include : FlipAround Middle (CAP / 2)
include : LeftwardTopSerif Middle CAP [mix MidJutSide LongJut 0.5]
include : intersection
HBarTop 0 Width ABarPosition
AMaskShape [DivFrame 1] CAP Stroke true

create-derived 'A.curlyMotionSerifed' : glyph-proc
include : VShape [DivFrame 1] CAP Stroke false (slab -- false)
include : FlipAround Middle (CAP / 2)
include : LeftwardTopSerif Middle CAP [mix MidJutSide LongJut 0.5]
include : intersection
HBarTop 0 Width ABarPosition
AMaskShape [DivFrame 1] CAP Stroke false

select-variant 'A' 'A'
alias 'grek/Alpha' 0x391 'A'
alias 'cyrl/A' 0x410 'A'
Expand Down
17 changes: 15 additions & 2 deletions font-src/glyphs/letter/latin/v.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -107,11 +107,24 @@ glyph-block Letter-Latin-V : begin
include : MarkSet.capital
create-derived 'V.straight' : VShape [DivFrame 1] CAP Stroke true
create-derived 'V.curly' : VShape [DivFrame 1] CAP Stroke false
create-derived 'V.straightMotionSerifed' : composite-proc
VShape [DivFrame 1] CAP Stroke true (slab -- false)
LeftwardTopSerif SB CAP SideJut
create-derived 'V.curlyMotionSerifed' : composite-proc
VShape [DivFrame 1] CAP Stroke false (slab -- false)
LeftwardTopSerif SB CAP SideJut

create-glyph : glyph-proc
include : MarkSet.e
create-derived 'v.straight' : VShape [DivFrame 1] XH Stroke true
create-derived 'v.curly' : VShape [DivFrame 1] XH Stroke false
create-derived 'v.straightMotionSerifed' : composite-proc
VShape [DivFrame 1] XH Stroke true (slab -- false)
LeftwardTopSerif SB XH SideJut
create-derived 'v.curlyMotionSerifed' : composite-proc
VShape [DivFrame 1] XH Stroke false (slab -- false)
LeftwardTopSerif SB XH SideJut


define [VHooktopShape df barStraight top] : glyph-proc
include : VShape df top Stroke barStraight
Expand All @@ -137,8 +150,8 @@ glyph-block Letter-Latin-V : begin

select-variant 'V' 'V'
select-variant 'v' 'v'
select-variant 'vhooktop' 0x2C71 (follow -- 'v')
select-variant 'cyrl/Izhitsa' 0x474 (follow -- 'V')
select-variant 'vhooktop' 0x2C71 (follow -- 'vhooktop')
select-variant 'cyrl/Izhitsa' 0x474 (follow -- 'Vhooktop')
alias 'cyrl/izhitsa' 0x475 'vhooktop'


Expand Down
68 changes: 43 additions & 25 deletions font-src/glyphs/letter/latin/w.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,15 @@ glyph-block Letter-Latin-W : begin
glyph-block-import CommonShapes
glyph-block-import Common-Derivatives

define FORM-CURLY 0
define FORM-STRAIGHT 1
define FORM-FLAT-TOP 2

define SERIFS-AUTO 1
define SERIFS-MOTION 2

### W and w
define [WShape top barStraight df] : glyph-proc
define [WShape df top barStraight st] : glyph-proc
local fineOuter : if barStraight
AdviceStroke WShape.fineSOuter [Math.sqrt df.div]
AdviceStroke WShape.fineOuter df.div
Expand Down Expand Up @@ -98,7 +105,8 @@ glyph-block Letter-Latin-W : begin
quadcontrols 0 0.3 6 unimportant
g4 (m2 + fineOffsetOuter) 0 [widths.rhs fineOuter]

include : AIVSerifs top df.leftSB df.rightSB
if (st === SERIFS-AUTO) : include : AIVSerifs top df.leftSB df.rightSB
if (st === SERIFS-MOTION) : include : tagged 'serifLT' : LeftwardTopSerif df.leftSB top SideJut

set WShape.fineOuter 5
set WShape.fineInner 6
Expand All @@ -119,19 +127,25 @@ glyph-block Letter-Latin-W : begin
local df : DivFrame para.diversityM 3
set-width df.width
include : df.markSet.capital
create-derived 'W.straightFlatTop' : WShape CAP 2 df
create-derived 'W.straight' : WShape CAP 1 df
create-derived 'W.curly' : WShape CAP 0 df
create-derived 'W.straightFlatTop' : WShape df CAP FORM-FLAT-TOP SERIFS-AUTO
create-derived 'W.straight' : WShape df CAP FORM-STRAIGHT SERIFS-AUTO
create-derived 'W.curly' : WShape df CAP FORM-CURLY SERIFS-AUTO
create-derived 'W.straightFlatTopMotionSerifed' : WShape df CAP FORM-FLAT-TOP SERIFS-MOTION
create-derived 'W.straightMotionSerifed' : WShape df CAP FORM-STRAIGHT SERIFS-MOTION
create-derived 'W.curlyMotionSerifed' : WShape df CAP FORM-CURLY SERIFS-MOTION

create-glyph : glyph-proc
local df : DivFrame para.diversityM 3
set-width df.width
include : df.markSet.e
create-derived 'w.straightFlatTop' : WShape XH 2 df
create-derived 'w.straight' : WShape XH 1 df
create-derived 'w.curly' : WShape XH 0 df

define [WHooktopShape top barStraight df] : glyph-proc
create-derived 'w.straightFlatTop' : WShape df XH FORM-FLAT-TOP SERIFS-AUTO
create-derived 'w.straight' : WShape df XH FORM-STRAIGHT SERIFS-AUTO
create-derived 'w.curly' : WShape df XH FORM-CURLY SERIFS-AUTO
create-derived 'w.straightFlatTopMotionSerifed' : WShape df XH FORM-FLAT-TOP SERIFS-MOTION
create-derived 'w.straightMotionSerifed' : WShape df XH FORM-STRAIGHT SERIFS-MOTION
create-derived 'w.curlyMotionSerifed' : WShape df XH FORM-CURLY SERIFS-MOTION

define [WHooktopShape df top barStraight] : glyph-proc
local fineOuter : if barStraight
AdviceStroke WShape.fineSOuter [Math.sqrt df.div]
AdviceStroke WShape.fineOuter df.div
Expand All @@ -144,7 +158,7 @@ glyph-block Letter-Latin-W : begin
local fineOffsetInner : hwCO * HVContrast
local m2 : [mix (df.leftSB + delimBias) (df.rightSB - delimBias) : if barStraight WShape.m2S WShape.m2] - [if barStraight O 0]

include : WShape top barStraight df
include : WShape df top barStraight SERIFS-AUTO

# Eject unnecessary contours
eject-contour 'strokeUp2'
Expand All @@ -162,37 +176,41 @@ glyph-block Letter-Latin-W : begin
local df : DivFrame para.diversityM 3
set-width df.width
include : df.markSet.capital
create-derived 'Whooktop.straightFlatTop' : WHooktopShape CAP 2 df
create-derived 'Whooktop.straight' : WHooktopShape CAP 1 df
create-derived 'Whooktop.curly' : WHooktopShape CAP 0 df
create-derived 'Whooktop.straightFlatTop' : WHooktopShape df CAP FORM-FLAT-TOP
create-derived 'Whooktop.straight' : WHooktopShape df CAP FORM-STRAIGHT
create-derived 'Whooktop.curly' : WHooktopShape df CAP FORM-CURLY

create-glyph : glyph-proc
local df : DivFrame para.diversityM 3
set-width df.width
include : df.markSet.e
create-derived 'whooktop.straightFlatTop' : WHooktopShape XH 2 df
create-derived 'whooktop.straight' : WHooktopShape XH 1 df
create-derived 'whooktop.curly' : WHooktopShape XH 0 df
create-derived 'whooktop.straightFlatTop' : WHooktopShape df XH FORM-FLAT-TOP
create-derived 'whooktop.straight' : WHooktopShape df XH FORM-STRAIGHT
create-derived 'whooktop.curly' : WHooktopShape df XH FORM-CURLY

define [LowerWWShape df straightBar] : glyph-proc
include : WShape (CAP / 2) straightBar df
define [LowerWWShape df straightBar st] : glyph-proc
include : WShape (CAP / 2) straightBar df st
include : Upright
include : Translate 0 (CAP / 2)
include : Italify
include : WShape (CAP / 2) straightBar df
include : WShape (CAP / 2) straightBar df st

create-glyph : glyph-proc
local df : DivFrame 1 3
set-width df.width
include : df.markSet.capital
create-derived 'ww.straightFlatTop' : LowerWWShape df 2
create-derived 'ww.straight' : LowerWWShape df 1
create-derived 'ww.curly' : LowerWWShape df 0
create-derived 'ww.straightFlatTop' : LowerWWShape df FORM-FLAT-TOP SERIFS-AUTO
create-derived 'ww.straight' : LowerWWShape df FORM-STRAIGHT SERIFS-AUTO
create-derived 'ww.curly' : LowerWWShape df FORM-CURLY SERIFS-AUTO
create-derived 'ww.straightFlatTopMotionSerifed' : LowerWWShape df FORM-FLAT-TOP SERIFS-MOTION
create-derived 'ww.straightMotionSerifed' : LowerWWShape df FORM-STRAIGHT SERIFS-MOTION
create-derived 'ww.curlyMotionSerifed' : LowerWWShape df FORM-CURLY SERIFS-MOTION

select-variant 'W' 'W'
select-variant 'Whooktop' 0x2C72 (follow -- 'W')
select-variant 'Whooktop' 0x2C72
select-variant 'w' 'w'
select-variant 'ww' 0x2AC (follow -- 'w')
select-variant 'whooktop' 0x2C73 (follow -- 'w')
select-variant 'whooktop' 0x2C73
alias 'cyrl/We' 0x51C 'W'
alias 'cyrl/we' 0x51D 'w'
turned 'turnw' 0x28D 'w' (Middle * para.diversityM) (XH / 2)
Expand Down

0 comments on commit c156e7e

Please sign in to comment.