Skip to content

Commit

Permalink
Add taller variants of Number Sign (#1222).
Browse files Browse the repository at this point in the history
  • Loading branch information
be5invis committed Sep 22, 2021
1 parent de1a114 commit 606fe51
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 19 deletions.
1 change: 1 addition & 0 deletions changes/10.4.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* Add taller variants of Number Sign (#1222).
53 changes: 34 additions & 19 deletions font-src/glyphs/symbol/punctuation/slashes-and-number-sign.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -66,25 +66,27 @@ glyph-block Symbol-Punctuation-Slashes-And-Number-Sign : begin
include : BackslashShape 0 (Middle + backslashWidth / 2)

do "number sign"
define nsTop : mix 0 CAP 0.975
define nsBot : mix 0 CAP 0.025
define fine : AdviceStroke 2.75

define [HspT l r] : ((r - l) - (fine * 2 * HVContrast)) * 0.3

define [UprightHBars lx l r p] : union
HBar lx r [mix nsTop nsBot 0.3]
HBar lx r [mix nsTop nsBot 0.7]
define [UprightHBars height lx l r p] : begin
define { nsTop nsBot } height
return : union
HBar lx r [mix nsTop nsBot 0.3]
HBar lx r [mix nsTop nsBot 0.7]

define [UprightHBarsOpen lx l r p] : begin
define [UprightHBarsOpen height lx l r p] : begin
define { nsTop nsBot } height
define hsp : HspT l r
return : difference
UprightHBars lx l r p
UprightHBars height lx l r p
Rect nsTop nsBot
l + hsp + fine * (0.5 + p)
r - hsp - fine * (0.5 + p)

define [UprightVBars lx l r p] : begin
define [UprightVBars height lx l r p] : begin
define { nsTop nsBot } height
define hsp : HspT l r
return : union
VBarLeft (l + hsp + p * fine) nsBot nsTop fine
Expand All @@ -97,41 +99,54 @@ glyph-block Symbol-Punctuation-Slashes-And-Number-Sign : begin
define shift : w / 3
return : object hsp x w shift

define [SlantedHBars lx l r p] : begin
define [SlantedHBars height lx l r p] : begin
define { nsTop nsBot } height
define [object shift] : SlantedDim l r
return : union
HBar (lx + shift) (r + shift) [mix nsTop nsBot 0.3]
HBar (lx - shift) (r - shift) [mix nsTop nsBot 0.7]
define [SlantedHBarsOpen lx l r p] : begin
define [SlantedHBarsOpen height lx l r p] : begin
define { nsTop nsBot } height
define [object x w] : SlantedDim l r
return : difference
SlantedHBars lx l r p
SlantedHBars height lx l r p
spiro-outline
corner (l + x + w + p * fine) nsTop
corner (r - x + w - p * fine) nsTop
corner (r - x - w - p * fine) nsBot
corner (l + x - w + p * fine) nsBot
define [SlantedVBars lx l r p] : begin
define [SlantedVBars height lx l r p] : begin
define { nsTop nsBot } height
define [object x w] : SlantedDim l r
return : union
SlashShape (l + x - w + p * fine) (l + x + w + p * fine) nsTop nsBot fine
SlashShape (r - x - w - p * fine) (r - x + w - p * fine) nsTop nsBot fine

define normalHeight { [mix 0 CAP 0.975] [mix 0 CAP 0.025] }
define tallHeight { [mix OperTop ParenTop 0.8] [mix OperBot ParenBot 0.8] }
define NumberSignConfig : object
upright { UprightHBars UprightVBars 0 }
uprightOpen { UprightHBarsOpen UprightVBars (1 / 8) }
slanted { SlantedHBars SlantedVBars 0 }
slantedOpen { SlantedHBarsOpen SlantedVBars (1 / 8) }
upright { UprightHBars UprightVBars 0 normalHeight }
uprightOpen { UprightHBarsOpen UprightVBars (1 / 8) normalHeight }
slanted { SlantedHBars SlantedVBars 0 normalHeight }
slantedOpen { SlantedHBarsOpen SlantedVBars (1 / 8) normalHeight }
uprightTall { UprightHBars UprightVBars 0 tallHeight }
uprightOpenTall { UprightHBarsOpen UprightVBars (1 / 8) tallHeight }
slantedTall { SlantedHBars SlantedVBars 0 tallHeight }
slantedOpenTall { SlantedHBarsOpen SlantedVBars (1 / 8) tallHeight }

foreach { suffix { FHBars FVBars p } } [Object.entries NumberSignConfig] : do
foreach { suffix { FHBars FVBars p height } } [Object.entries NumberSignConfig] : do

define l : SB - fine / 2
define r : RightSB + fine / 2

create-glyph "numberSign.\(suffix)" : union [FHBars l l r p] [FVBars l l r p]
create-glyph "numberSign.\(suffix)" : union
FHBars height l l r p
FVBars height l l r p
create-glyph "numberSign.jr.\(suffix)" : glyph-proc
Joining.set currentGlyph Joining.Classes.Right
include : union [FHBars (r - Width) l r p] [FVBars (r - Width) l r p]
include : union
FHBars height (r - Width) l r p
FVBars height (r - Width) l r p

select-variant 'numberSign' '#'
select-variant 'numberSign.jr' (follow -- 'numberSign')
20 changes: 20 additions & 0 deletions params/variants.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6001,6 +6001,26 @@ rank = 4
description = "Number sign with slanted bars and open inner"
selector.numberSign = "slantedOpen"

[prime.number-sign.variants.upright-tall]
rank = 5
description = "Number sign with vertical bars and taller than digits"
selector.numberSign = "uprightTall"

[prime.number-sign.variants.slanted-tall]
rank = 6
description = "Number sign with slanted bars and taller than digits"
selector.numberSign = "slantedTall"

[prime.number-sign.variants.upright-open-tall]
rank = 7
description = "Number sign with vertical bars, open inner, and taller than digits"
selector.numberSign = "uprightOpenTall"

[prime.number-sign.variants.slanted-open-tall]
rank = 8
description = "Number sign with slanted bars, open inner, and taller than digits"
selector.numberSign = "slantedOpenTall"



[prime.ampersand]
Expand Down

0 comments on commit 606fe51

Please sign in to comment.