Add currency symbols and move those directly derived from Latin letter into the Latin file.

This commit is contained in:
be5invis 2020-06-16 21:12:18 -07:00
parent 49bc8e5302
commit 5a0546270c
6 changed files with 181 additions and 166 deletions

View file

@ -75,9 +75,7 @@ export all : define [buildGlyphs para recursive recursiveCodes] : begin
if (saveGlyphName.0 != '.' && glyphMap.(saveGlyphName))
throw : new Error "Glyph \(saveGlyphName) already exists"
glyphMap.(saveGlyphName) = glyphObject
if unicode : begin
glyphObject.assign-unicode unicode
set unicodeGlyphs.(unicode) glyphObject
if unicode : $assignUnicodeImpl$ glyphObject unicode
actions.call glyphObject
@ -95,6 +93,10 @@ export all : define [buildGlyphs para recursive recursiveCodes] : begin
`[@name @actions] : return : createAndSaveGlyphImpl name null actions
`[@actions] : return : createAndSaveGlyphImpl null null actions
define [$assignUnicodeImpl$ g unicode] : begin
g.assign-unicode unicode
set unicodeGlyphs.(g.unicode.((g.unicode.length - 1))) g
define [$save$ _name unicode] : begin
define t this
define name : if [not _name] ('--autoname-' + [newtemp]) _name
@ -109,9 +111,7 @@ export all : define [buildGlyphs para recursive recursiveCodes] : begin
set g.avoidBeingComposite t.avoidBeingComposite
set g.related t.related
if name : set dependencyProfile.(name) : getDependencyProfile g
if (g && unicode) : begin
g.assign-unicode unicode
set unicodeGlyphs.(g.unicode.((g.unicode.length - 1))) g
if (g && unicode) : $assignUnicodeImpl$ g unicode
return g
### Spiro constructions
@ -120,7 +120,7 @@ export all : define [buildGlyphs para recursive recursiveCodes] : begin
define booleFns : BooleKit.SetupBuilders : object globalTransform Glyph
# IDKY, but wrapping "metrics" prevents Node.js on Arch modifying it.
define $$Capture$$ : object [metrics : Object.create metrics] $NamedParameterPair$ $donothing$ para recursive recursiveCodes variantSelector glyphMap glyphList unicodeGlyphs create-glyph $save$ spirofns booleFns MarkSet AS_BASE ALSO_METRICS pickHash dependencyProfile getDependencyProfile buildGlyphs newtemp tagged DivFrame fontMetrics
define $$Capture$$ : object [metrics : Object.create metrics] $NamedParameterPair$ $donothing$ para recursive recursiveCodes variantSelector glyphMap glyphList unicodeGlyphs create-glyph $save$ spirofns booleFns MarkSet AS_BASE ALSO_METRICS pickHash dependencyProfile getDependencyProfile buildGlyphs newtemp tagged DivFrame fontMetrics $assignUnicodeImpl$
### HERE WE GO
run-glyph-module '../glyphs/common-shapes.js'

View file

@ -861,6 +861,7 @@ glyph-block Autobuild-Ligatures : begin
list 0x479 { 'o' 'y' }
list 0x20A7 { 'P' 's' }
list 0x20A8 { 'R' 's' }
list 0x20AF { 'D' 'rho' }
list 0x203c { 'exclam' 'exclam' }
list 0x2047 { 'question' 'question' }
list 0x2048 { 'question' 'exclam' }

View file

@ -61,7 +61,6 @@ glyph-block CommonShapes : begin
define [query-glyph id] : return glyphMap.(id)
define [into-unicode code] : glyph-construction : if code : assign-unicode code
define [WithDerivatives sourceGid dstGid Fn] : if glyphMap.(sourceGid) : begin
local glyphSrc glyphMap.(sourceGid)
create-glyph dstGid : glyph-construction : include : Fn sourceGid null

View file

@ -1130,6 +1130,10 @@ glyph-block Letter-Latin-W : begin
set WShape.m1S 0.235
set WShape.m2S : 1 - WShape.m1S
define [WonOverlay df] : glyph-construction
include : HOverlayBar [mix SB 0 0.7] [mix df.rightSB df.width 0.7] (CAP * 0.6)
include : HOverlayBar [mix SB 0 0.7] [mix df.rightSB df.width 0.7] (CAP * 0.35)
sketch # W
local df : DivFrame para.diversityM 3
set-width df.width
@ -1138,10 +1142,16 @@ glyph-block Letter-Latin-W : begin
include : WShape CAP true df
save 'W.straight'
save 'cyrWe.straight'
branch
include : WonOverlay df
save 'symbol/currency/wonSign.straight'
branch
include : WShape CAP false df
save 'W.curly'
save 'cyrWe.curly'
branch
include : WonOverlay df
save 'symbol/currency/wonSign.curly'
sketch # w
local df : DivFrame para.diversityM 3
@ -1156,8 +1166,6 @@ glyph-block Letter-Latin-W : begin
save 'w.curly'
save 'cyrwe.curly'
define [WHooktopShape top barStraight df] : glyph-construction
local fineOuter : if barStraight
adviceBlackness WShape.fineSOuter [Math.sqrt df.div]
@ -1227,6 +1235,7 @@ glyph-block Letter-Latin-W : begin
select-variant 'W' 'W'
select-variant 'cyrWe' 0x51C (follow -- 'W')
select-variant 'Whooktop' 0x2C72 (follow -- 'W')
select-variant 'symbol/currency/wonSign' 0x20A9 (follow -- 'W')
select-variant 'w' 'w'
select-variant 'cyrwe' 0x51D (follow -- 'w')
select-variant 'ww' 0x2AC (follow -- 'w')
@ -1373,6 +1382,10 @@ glyph-block Letter-Latin-Upper-Y : begin
include : AIVSerifs top
include : CenterBottomSerif Middle [fallback bot 0] MidJutSide
define [YOverlayShape] : glyph-construction
include : HOverlayBar SB RightSB (CAP * 0.45)
include : HOverlayBar SB RightSB (CAP * 0.25)
sketch # Y
include MarkSet.capital
branch
@ -1380,11 +1393,17 @@ glyph-block Letter-Latin-Upper-Y : begin
save 'Y.straight'
save 'Upsilon.straight'
save 'cyrUe.straight'
branch
include : YOverlayShape
save 'symbol/currency/yenSign.straight'
branch
include : YShape false CAP
save 'Y.curly'
save 'Upsilon.curly'
save 'cyrUe.curly'
branch
include : YOverlayShape
save 'symbol/currency/yenSign.curly'
define [YHookTopShape straightBar] : glyph-construction
include : YShape straightBar CAP
@ -1433,7 +1452,7 @@ glyph-block Letter-Latin-Upper-Y : begin
select-variant 'Upsilon' 0x3A5 (follow -- 'Y')
select-variant 'cyrUe' 0x4AE (follow -- 'Y')
select-variant 'cyrue' 0x4AF (follow -- 'Y')
select-variant 'symbol/currency/yenSign' 0xA5 (follow -- 'Y')
glyph-block Letter-Latin-Lower-Y : begin
glyph-block-import CommonShapes
@ -2374,11 +2393,12 @@ glyph-block Letter-Latin-Lower-D : begin
glyph-block Letter-Latin-Upper-P : begin
glyph-block-import CommonShapes
glyph-block-import Overmarks
glyph-block-export PShape PShapeOutline RevPShape
glyph-block-export PShape PShapeOutline RevPShape PBarPosY
define [PBarPosY top sw bp] : (top - sw) * bp - sw * PShape.SwBelowBar
define [PShapeOutlineKnots top mul bp overshoot sw offset] : begin
local bowlTop (top * 1 - offset)
local bowlBottom ((top - sw) * bp - sw * PShape.SwBelowBar + offset)
local bowlBottom : [PBarPosY top sw bp] + offset
local turnRadius : (bowlTop - bowlBottom) * 0.45
local sma : SmoothAOf (Smooth * 0.9) Width
local smb : SmoothBOf (Smooth * 0.9) Width
@ -2438,15 +2458,15 @@ glyph-block Letter-Latin-Upper-P : begin
include : spiro-outline
PShapeOutlineKnots top mul bp overshoot sw offset
define [PShape] : params [top [mul PShape.defaultMul] [bp PShape.BarPos] [overshoot PShape.defaultOvershoot] [sw Stroke] [slab SLAB]] : glyph-construction
define [PShape] : params [top [mul PShape.defaultMul] [bp PShape.BarPos] [overshoot PShape.defaultOvershoot] [sw Stroke] [slab SLAB] [withBar true]] : glyph-construction
include : dispiro
widths.rhs sw
PShapeOutlineKnots top mul bp overshoot sw 0
include : tagged 'strokeL' : VBarLeft (SB * mul) 0 top sw
if slab : begin
include : tagged 'serifLT' : LeftwardTopSerif (SB * mul) top SideJut sw
include : CenterBottomSerif (SB * mul + HalfStroke * HVContrast) 0 Jut sw
if withBar : begin
include : tagged 'strokeL' : VBarLeft (SB * mul) 0 top sw
if slab : begin
include : tagged 'serifLT' : LeftwardTopSerif (SB * mul) top SideJut sw
include : CenterBottomSerif (SB * mul + HalfStroke * HVContrast) 0 Jut sw
define [RevPShape] : params [top [mul PShape.defaultMul] [bp PShape.BarPos] [overshoot PShape.defaultOvershoot] [sw Stroke] [slab SLAB]] : glyph-construction
include : tagged 'bowl' : dispiro
@ -2481,6 +2501,11 @@ glyph-block Letter-Latin-Upper-P : begin
save 'Phookleft' 0x1A4
create-glyph 'symbol/currency/rubleSign' 0x20BD : glyph-construction
include [refer-glyph 'P'] AS_BASE ALSO_METRICS
define bar1pos : [PBarPosY CAP Stroke PShape.BarPos] + HalfStroke
include : HOverlayBar [mix SB 0 0.7] (SB + HalfStroke * HVContrast) bar1pos
include : HOverlayBar [mix SB 0 0.7] [mix SB RightSB 0.8] [mix 0 (bar1pos - Stroke) (3 / 4)]
glyph-block Letter-Latin-Lower-P : begin
glyph-block-import CommonShapes
@ -2520,18 +2545,18 @@ glyph-block Letter-Latin-Lower-P : begin
glyph-block Letter-Latin-Upper-R : begin
glyph-block-import CommonShapes
glyph-block-import Overmarks
glyph-block-import Letter-Latin-Upper-P : PShape RevPShape
glyph-block-import Letter-Latin-Upper-P : PShape RevPShape PBarPosY
### R and CyrYa
glyph-block-export RLegShape RLegTerminalX
define [RLegTerminalX straight right sw] : right - [if straight (OX * 2) 0] - sw / 2 * HVContrast
define [RLegShape right bottom top charTop slab straight sw extraShift] : glyph-construction
define [RLegShape] : params [top bottom left right charTop slab straight sw extraShift] : glyph-construction
local xRightBottom : RLegTerminalX straight right sw
if straight : do
local shift : if slab (-Jut / 2 + 0.25 * sw * HVContrast) 0
include : dispiro
widths.center (sw * [diagCor charTop (Width - extraShift * 2) 0 (sw * 2)])
corner (Middle + extraShift + shift / 2) top [heading Downward]
widths.center (sw * [diagCor (top - bottom) (right - left - extraShift) 0 sw])
corner (left + extraShift + shift / 2) top [heading Downward]
corner (xRightBottom + shift) bottom [heading Downward]
if slab : begin
include : RightwardBottomSerif (xRightBottom + shift + 0.25 * sw * HVContrast) bottom (SideJut + Jut / 8)
@ -2542,18 +2567,18 @@ glyph-block Letter-Latin-Upper-R : begin
widths.center sw
g4.up.start xRightBottom bottom [heading Upward]
quadcontrols 0 [if slab 0.3 0.4] 8
g4 Middle top
g4 left top
if slab : begin
include : RightwardBottomSerif right bottom (SideJut + Jut / 8)
define [RevRLegTerminalX straight left sw] : left + [if straight (OX * 2) 0] + sw / 2 * HVContrast
define [RevRLegShape left bottom top charTop slab straight sw extraShift] : glyph-construction
define [RevRLegShape] : params [top bottom left right charTop slab straight sw extraShift] : glyph-construction
local xLeftBottom : RevRLegTerminalX straight left sw
if straight : do
local shift : if slab (-Jut / 2 + 0.25 * sw * HVContrast) 0
include : dispiro
widths.center (sw * [diagCor charTop (Width - extraShift * 2) 0 (sw * 2)])
corner (Middle + extraShift + shift / 2) top [heading Downward]
widths.center (sw * [diagCor (top - bottom) (right - left - extraShift) 0 sw])
corner (right + extraShift + shift / 2) top [heading Downward]
corner (xLeftBottom + shift) bottom [heading Downward]
if slab : begin
include : LeftwardBottomSerif (xLeftBottom + shift - 0.25 * sw * HVContrast) bottom (SideJut + Jut / 8)
@ -2564,7 +2589,7 @@ glyph-block Letter-Latin-Upper-R : begin
widths.center sw
g4.up.start xLeftBottom bottom [heading Upward]
quadcontrols 0 [if slab 0.3 0.4] 8
g4 Middle top
g4 right top
if slab : begin
include : LeftwardBottomSerif left bottom (SideJut + Jut / 8)
@ -2573,33 +2598,57 @@ glyph-block Letter-Latin-Upper-R : begin
define [RShape] : params [straightBar top [mul 1] [slab SLAB]] : glyph-construction
include : PShape top (mul -- mul) (bp -- [RBarPos top slab]) (overshoot -- O) (slab -- slab)
local right (RightSB - O - [if SLAB (Jut / 8) 0])
include : RLegShape right 0 [RBarTop top Stroke straightBar slab] top slab straightBar Stroke 0
include : RLegShape [RBarTop top Stroke straightBar slab] 0 Middle right top slab straightBar Stroke 0
define [RevRShape] : params [straightBar top [mul 1] [slab SLAB]] : glyph-construction
include : RevPShape top (mul -- mul) (bp -- [RBarPos top slab]) (overshoot -- O) (slab -- slab)
local left (SB + O + [if SLAB (Jut / 8) 0])
include : RevRLegShape left 0 [RBarTop top Stroke straightBar slab] top slab straightBar Stroke 0
include : RevRLegShape [RBarTop top Stroke straightBar slab] 0 left Middle top slab straightBar Stroke 0
sketch # R
include MarkSet.capital
branch
include : RShape true CAP
set-base-anchor 'overlay' (SB + Stroke * HVContrast) (CAP * [RBarPos CAP SLAB] - HalfStroke)
set-base-anchor 'overlay'
SB + Stroke * HVContrast
PBarPosY CAP Stroke : RBarPos CAP SLAB
save 'R.straight'
branch
include : RShape true CAP (slab -- false)
set-base-anchor 'overlay' (SB + Stroke * HVContrast) (CAP * [RBarPos CAP 0] - HalfStroke)
set-base-anchor 'overlay'
SB + Stroke * HVContrast
PBarPosY CAP Stroke : RBarPos CAP 0
eject-contour 'strokeL'
save 'Rrotunda.straight'
branch
include : RShape false CAP
set-base-anchor 'overlay' (SB + Stroke * HVContrast) (CAP * [RBarPos CAP SLAB] - HalfStroke)
set-base-anchor 'overlay'
SB + Stroke * HVContrast
PBarPosY CAP Stroke : RBarPos CAP SLAB
save 'R.curly'
branch
include : RShape false CAP (slab -- false)
set-base-anchor 'overlay' (SB + Stroke * HVContrast) (CAP * [RBarPos CAP 0] - HalfStroke)
set-base-anchor 'overlay'
SB + Stroke * HVContrast
PBarPosY CAP Stroke : RBarPos CAP 0
eject-contour 'strokeL'
save 'Rrotunda.curly'
define [IndianRupeeShape suffix straightBar] : glyph-construction
define bp : RBarPos CAP 0
include : intersection
Rect CAP 0 SB Width
WithTransform [Translate (-Width / 8) 0]
PShape CAP (bp -- bp) (slab -- false) (withBar -- false)
local right : RightSB - O - [if straightBar 0 (Width / 16)]
include : RLegShape [RBarTop CAP Stroke straightBar false] 0 (Width * 0.375) right CAP false straightBar Stroke 0
define sw : adviceBlackness2 2 4 CAP
include : HBarTop SB RightSB CAP sw
include : HBar SB RightSB [mix CAP [PBarPosY CAP Stroke bp] 0.5] sw
create-glyph 'symbol/currency/indianRupeeSign.straight' : IndianRupeeShape 'straight' true
create-glyph 'symbol/currency/indianRupeeSign.curly' : IndianRupeeShape 'curly' false
sketch # smcpR
include MarkSet.e
branch
@ -2619,6 +2668,7 @@ glyph-block Letter-Latin-Upper-R : begin
select-variant 'R' 'R'
select-variant 'Rrotunda' 0xA75A (follow -- 'R')
select-variant 'symbol/currency/indianRupeeSign' 0x20B9 (follow -- 'R')
select-variant 'smcpR' 0x280 (follow -- 'R')
select-variant 'rrotunda' 0xA75B (follow -- 'R')
@ -2641,10 +2691,10 @@ glyph-block Letter-Latin-Upper-R : begin
local right (RightSB - O - [if SLAB (Jut / 8) 0])
branch
include : RLegShape right Descender ((top - Stroke) * bp) (top - Descender) SLAB true Stroke 0
include : RLegShape ((top - Stroke) * bp) Descender Middle right (top - Descender) SLAB true Stroke 0
save 'Yr.straight'
branch
include : RLegShape right Descender ((top - Stroke) * bp) (top - Descender) SLAB false Stroke 0
include : RLegShape ((top - Stroke) * bp) Descender Middle right (top - Descender) SLAB false Stroke 0
save 'Yr.curly'
select-variant 'Yr' 0x1A6 (follow -- 'R')
@ -2935,6 +2985,11 @@ glyph-block Letter-Latin-C : begin
save 'cyrEs' 0x421
save 'lunateSigma' 0x3F9
create-glyph 'symbol/currency/euroSign' 0x20AC : glyph-construction
include [refer-glyph "C"] AS_BASE ALSO_METRICS
include : HOverlayBar [mix SB 0 0.7] [mix SB RightSB 0.7] (CAP * 0.4)
include : HOverlayBar [mix SB 0 0.7] [mix SB RightSB 0.7] (CAP * 0.6)
sketch # c
set-width Width
include MarkSet.e
@ -2951,6 +3006,19 @@ glyph-block Letter-Latin-C : begin
save 'cyres' 0x441
save 'lunatesigma' 0x3F2
create-glyph 'symbol/currency/centSign' 0xA2 : glyph-construction
define fine : adviceBlackness 4
include [refer-glyph 'c'] AS_BASE ALSO_METRICS
include : dispiro
widths.center
flat Middle (XH - HalfStroke)
curl Middle (XH - Descender / 2) [heading Upward]
include : dispiro
widths.center
flat Middle (Descender / 2) [heading Upward]
curl Middle HalfStroke
include : VBar Middle (XH - HalfStroke) (0 + HalfStroke) fine
turned 'turnC' 0x186 'C' Middle (CAP / 2)
turned 'turnc' 0x254 'c' Middle (XH / 2)
composite [refer-glyph 'turnc'] [into-unicode 0x037B]
@ -3529,14 +3597,19 @@ glyph-block Letter-Latin-Upper-N : begin
include : NShape XH SB RightSB 3 3.5
save 'smcpN' 0x274
create-glyph 'symbol/currency/nairaSign' 0x20A6 : glyph-construction
include : NShape CAP (SB * 1.25) (Width - SB * 1.25) 3.5 4
define sw : adviceBlackness2 2 4 CAP
define gap : Math.max (CAP / 6) sw
include : HBarBottom [mix 0 SB 0.5] [mix Width RightSB 0.5] (CAP / 2 + gap / 2) sw
include : HBarTop [mix 0 SB 0.5] [mix Width RightSB 0.5] (CAP / 2 - gap / 2) sw
sketch # Nltail
include [refer-glyph 'N'] AS_BASE
eject-contour 'serifLB'
include : VerticalHook (SB + HalfStroke * HVContrast) 0 (-HookX) Hook
save 'Nltail' 0x19D
glyph-block Letter-Latin-Lower-N : begin
glyph-block-import CommonShapes
glyph-block-import Overmarks
@ -4111,21 +4184,20 @@ glyph-block Letter-Latin-Upper-F : begin
include : tagged 'serifBottom' : RightwardBottomSerif (FBarLeft + HalfStroke * HVContrast) 0 MidJutSide
include : DownwardRightSerif RightSB [fallback top CAP] VJut
sketch # F
create-glyph 'F' 'F' : glyph-construction
set-width Width
include MarkSet.capital
include : FShape
save 'F' 'F'
create-glyph 'symbol/currency/frenchFrancSign' 0x20A3 : glyph-construction
include : refer-glyph "F"
include : HOverlayBar (SB * 0.5) (SB * 3 + Stroke * HVContrast) [mix 0 XH 0.4]
sketch # Fltail
create-glyph 'Fltail' 0x191 : glyph-construction
include [refer-glyph 'F'] AS_BASE
eject-contour 'serifBottom'
include : VerticalHook (SB * 1.5 + HalfStroke * HVContrast) 0 (-HookX) Hook
save 'Fltail' 0x191
glyph-block Letter-Latin-Lower-F : begin
glyph-block-import CommonShapes
glyph-block-import Overmarks
@ -4830,6 +4902,65 @@ glyph-block Letter-Latin-S : begin
curl RightSB Descender
save 'sswash' 0x23F
sketch # dollar.through
include MarkSet.capital
define top : CAP * 0.95
define bot : CAP * 0.05
define w : adviceBlackness 3.5
define fine : adviceBlackness 4
define smooth : adviceSSmooth (top - bot) (-1) w
include : dispiro
widths.lhs w
g4 RightSB (top - Hook)
hookstart (top - O)
g4 SB (top - smooth)
SNeck w
g4 RightSB (bot + smooth) [widths 0 w]
hookend (bot + O)
g4 SB (bot + Hook)
include : dispiro
widths.center w
flat Middle (top - HalfStroke)
curl Middle (CAP - Descender / 2) [heading Upward]
include : dispiro
widths.center w
flat Middle (Descender / 2) [heading Upward]
curl Middle (bot + HalfStroke)
save 'dollar.open'
include : VBar Middle (bot + HalfStroke) (top - HalfStroke) fine
save 'dollar.through'
sketch # dollar.throughcap
include MarkSet.capital
define top : CAP * 0.88
define bot : CAP * 0.12
define w : adviceBlackness 3.5
define fine : adviceBlackness 4
define smooth : adviceSSmooth (top - bot) (-1) w
include : dispiro
widths.lhs w
g4 RightSB (top - Hook)
hookstart (top - O)
g4 SB (top - smooth)
SNeck w
g4 RightSB (bot + smooth) [widths 0 w]
hookend (bot + O)
g4 SB (bot + Hook)
include : dispiro
widths.center w
flat Middle (top - HalfStroke)
curl Middle (CAP) [heading Upward]
include : dispiro
widths.center w
flat Middle (0) [heading Upward]
curl Middle (bot + HalfStroke)
save 'dollar.opencap'
include : VBar Middle (bot + HalfStroke) (top - HalfStroke) fine
save 'dollar.throughcap'
select-variant 'dollar' '$'
glyph-block Letter-Latin-Z : begin
glyph-block-import CommonShapes

View file

@ -23,98 +23,6 @@ glyph-block Symbol-Currency : begin
curl (Middle + radius * [Math.sqrt 2] * [Math.cos angle]) (symbolMid + radius * [Math.sqrt 2] * [Math.sin angle])
save 'currency' 0xA4
do "Dollar"
define [SNeck] : params [[stroke Stroke] [slantCoeff 0]] : begin
define strokeCoeff : StrokeWidthBlend 0 1 stroke
define tension : 0.46 - 0.0 * strokeCoeff + slantCoeff * TanSlope
return : alsoThruThem {{0.4 tension} {0.6 (1 - tension)}} [widths.center stroke]
sketch # dollar.through
include MarkSet.capital
define top : CAP * 0.95
define bot : CAP * 0.05
define w : adviceBlackness 3.5
define fine : adviceBlackness 4
define smooth : adviceSSmooth (top - bot) (-1) w
include : dispiro
widths.lhs w
g4 RightSB (top - Hook)
hookstart (top - O)
g4 SB (top - smooth)
SNeck w
g4 RightSB (bot + smooth) [widths 0 w]
hookend (bot + O)
g4 SB (bot + Hook)
include : dispiro
widths.center w
flat Middle (top - HalfStroke)
curl Middle (CAP - Descender / 2) [heading Upward]
include : dispiro
widths.center w
flat Middle (Descender / 2) [heading Upward]
curl Middle (bot + HalfStroke)
save 'dollar.open'
include : VBar Middle (bot + HalfStroke) (top - HalfStroke) fine
save 'dollar.through'
sketch # dollar.throughcap
include MarkSet.capital
define top : CAP * 0.88
define bot : CAP * 0.12
define w : adviceBlackness 3.5
define fine : adviceBlackness 4
define smooth : adviceSSmooth (top - bot) (-1) w
include : dispiro
widths.lhs w
g4 RightSB (top - Hook)
hookstart (top - O)
g4 SB (top - smooth)
SNeck w
g4 RightSB (bot + smooth) [widths 0 w]
hookend (bot + O)
g4 SB (bot + Hook)
include : dispiro
widths.center w
flat Middle (top - HalfStroke)
curl Middle (CAP) [heading Upward]
include : dispiro
widths.center w
flat Middle (0) [heading Upward]
curl Middle (bot + HalfStroke)
save 'dollar.opencap'
include : VBar Middle (bot + HalfStroke) (top - HalfStroke) fine
save 'dollar.throughcap'
select-variant 'dollar' '$'
sketch # cent
define fine : adviceBlackness 4
include [refer-glyph 'c'] AS_BASE
include : dispiro
widths.center
flat Middle (XH - HalfStroke)
curl Middle (XH - Descender / 2) [heading Upward]
include : dispiro
widths.center
flat Middle (Descender / 2) [heading Upward]
curl Middle HalfStroke
include : VBar Middle (XH - HalfStroke) (0 + HalfStroke) fine
save 'cent' 0xA2
sketch # euro
include : refer-glyph "C"
include : HOverlayBar [mix SB 0 0.7] [mix SB RightSB 0.7] (CAP * 0.4)
include : HOverlayBar [mix SB 0 0.7] [mix SB RightSB 0.7] (CAP * 0.6)
save 'euro' 0x20AC
sketch # yen
include [refer-glyph 'Y'] AS_BASE
include : HOverlayBar SB RightSB (CAP * 0.45)
include : HOverlayBar SB RightSB (CAP * 0.25)
save 'yen' 0xA5
define [SterlineBaseShape] : glyph-construction
local barLeft : mix SB RightSB 0.2
local hookEndX : Math.max (barLeft + Stroke * 2.5) [mix SB RightSB 0.95]
@ -128,38 +36,16 @@ glyph-block Symbol-Currency : begin
g4 SB Stroke
HBarBottom SB RightSB 0
sketch # sterling
create-glyph 'symbol/currency/sterlingSign' 0xA3 : glyph-construction
set-width Width
include : SterlineBaseShape
include : HOverlayBar [mix SB RightSB 0.05] [mix SB RightSB 0.7] (CAP * 0.53)
save 'sterling' 0xA3
sketch # liraSymbol
create-glyph 'symbol/currency/liraSymbolSign' 0x20A4 : glyph-construction
set-width Width
include : SterlineBaseShape
include : HOverlayBar [mix SB RightSB 0.05] [mix SB RightSB 0.7] (CAP * 0.4)
include : HOverlayBar [mix SB RightSB 0.05] [mix SB RightSB 0.7] (CAP * 0.63)
save 'liraSymbol' 0x20A4
sketch # won
local df : DivFrame para.diversityM
set-width df.width
include [refer-glyph 'W'] AS_BASE ALSO_METRICS
include : HOverlayBar [mix SB 0 0.7] [mix df.rightSB df.width 0.7] (CAP * 0.6)
include : HOverlayBar [mix SB 0 0.7] [mix df.rightSB df.width 0.7] (CAP * 0.35)
save 'won' 0x20A9
sketch # frenchFranc
include : refer-glyph "F"
include : HOverlayBar (SB * 0.5) (SB * 3 + Stroke * HVContrast) [mix 0 XH 0.4]
save 'frenchFranc' 0x20A3
sketch # ruble
include [refer-glyph 'P'] AS_BASE
define bar1pos : (CAP - Stroke) * HBarPos
include : HOverlayBar [mix SB 0 0.7] (SB + HalfStroke * HVContrast) bar1pos
include : HOverlayBar [mix SB 0 0.7] [mix SB RightSB 0.8] [mix 0 (bar1pos - Stroke) (3 / 4)]
save 'ruble' 0x20BD
glyph-block Symbol-Letter : begin
@ -338,7 +224,7 @@ glyph-block Symbol-BlackboardBold : begin
glyph-block-import Letter-Latin-Upper-R : RLegShape RLegTerminalX
sketch # bbR
define [SingleLeg] : RLegShape (RightSB - O) 0 ((CAP - bbs) * HBarPos) CAP false true bbs (bbd / 2)
define [SingleLeg] : RLegShape ((CAP - bbs) * HBarPos) 0 Middle (RightSB - O) CAP false true bbs (bbd / 2)
define terminalX : RLegTerminalX true (RightSB - O) bbs
include : BBPShape (mul -- 1) (overshoot -- O)
include : difference

View file

@ -80,9 +80,7 @@ define-macro depends-on : syntax-rules
define-macro eject-contour : syntax-rules
`[eject-contour @::args] {'.syntactic-closure' `[currentGlyph.eject-contour @::args] env}
define-macro assign-unicode : syntax-rules
`[assign-unicode @code] {".syntactic-closure" `[begin \\
currentGlyph.assign-unicode @code
set $Capture$.unicodeGlyphs.(currentGlyph.unicode.((currentGlyph.unicode.length - 1))) currentGlyph
`[assign-unicode @code] {".syntactic-closure" `[$assignUnicodeImpl$ currentGlyph @code
] env}
###### Canvas-based mechanism
@ -202,14 +200,14 @@ define-macro glyph-block : syntax-rules
([typeof form] === "string") : set variableSet.(form) true
traceBody body
traceBody `[$save$ $NamedParameterPair$ $donothing$ create-glyph]
traceBody `[$save$ $NamedParameterPair$ $donothing$ create-glyph $assignUnicodeImpl$]
set externEnv.$glyphBlockVariableUsage$ variableSet
define captureImports `[metrics $NamedParameterPair$ $donothing$ para recursive
recursiveCodes variantSelector glyphMap glyphList unicodeGlyphs create-glyph $save$
spirofns booleFns MarkSet AS_BASE ALSO_METRICS pickHash dependencyProfile
getDependencyProfile buildGlyphs newtemp tagged DivFrame fontMetrics]
getDependencyProfile buildGlyphs newtemp tagged DivFrame fontMetrics $assignUnicodeImpl$]
define metricImports `[UPM HalfUPM Width SB CAP XH Descender Contrast symbolMid parenTop
parenBot operTop operBot tackTop tackBot plusTop plusBot pictTop pictBot bgopTop bgopBot
Italify Upright Scale Translate Rotate globalTransform TanSlope