Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

4 Currency Symbols + 2 Technical Symbols #2638

Merged
merged 5 commits into from
Jan 8, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion changes/32.4.0.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
* Add `curved` variant for `¶` (#2045).
* Add `top-cut` variants for `a`/`g`/`q`.
* Add `bottom-cut` variants for `b`.
Make certain characters slightly wider under Quasi-Proportional. Affected characters:
* Refine shape of `Չ`.
* Make certain characters slightly wider under Quasi-Proportional. Affected characters:
- LATIN SMALL LETTER SCHWA WITH HOOK (`U+025A`).
- LATIN SMALL LETTER REVERSED OPEN E WITH HOOK (`U+025D`).
* Add characters:
- NEW SHEQEL SIGN (`U+20AA`) (#2097).
- TURKISH LIRA SIGN (`U+20BA`) (#2097).
- MANAT SIGN (`U+20BC`) (#2097).
- LARI SIGN (`U+20BE`) (#2097).
- VIEWDATA SQUARE (`U+2317`).
- PLACE OF INTEREST SIGN (`U+2318`).
- CURVED STEM PARAGRAPH SIGN ORNAMENT (`U+2761`).
6 changes: 6 additions & 0 deletions packages/font-glyphs/src/common/shapes.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -347,6 +347,12 @@ glyph-block CommonShapes : begin
flat xleft y
curl xright y

glyph-block-export HOverlayObliqueBar
define [HOverlayObliqueBar xleft xright y s slant] : dispiro
widths.center [fallback s OverlayStroke]
flat xleft (y - [fallback slant : XH * 0.1])
curl xright (y + [fallback slant : XH * 0.1])

glyph-block-export HCrossBar
define [HCrossBar xl xr y s] : dispiro
widths.center [fallback s OverlayStroke]
Expand Down
4 changes: 2 additions & 2 deletions packages/font-glyphs/src/letter/armenian/to.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ glyph-block Letter-Armenian-To : begin
flat df.rightSB (CAP - ArchDepthB)
curl df.rightSB (0 + ArchDepthA)
arch.rhs 0 (sw -- df.mvs) (swAfter -- fine)
g4 (df.middle - [HSwToV : fine / 2]) [mix 0 barPosT 0.5] [widths.rhs fine]
g4 (df.middle - [HSwToV : 0.5 * fine]) [mix 0 barPosT 0.5] [widths.rhs fine]
arcvh
flat [mix df.leftSB df.rightSB 0.7] barPosT [widths.rhs df.mvs]
curl (df.rightSB + jut - [HSwToV : 0.5 * df.mvs]) barPosT
Expand All @@ -50,7 +50,7 @@ glyph-block Letter-Armenian-To : begin
bottom -- (0 + ArchDepthA)
stroke -- df.mvs
arch.rhs 0 (sw -- df.mvs) (swAfter -- fine)
g4 (df.middle - [HSwToV : fine / 2]) [mix 0 barPosT 0.5] [widths.rhs fine]
g4 (df.middle - [HSwToV : 0.5 * fine]) [mix 0 barPosT 0.5] [widths.rhs fine]
arcvh
flat [mix df.leftSB df.rightSB 0.7] barPosT [widths.rhs df.mvs]
curl (df.rightSB + jut - [HSwToV : 0.5 * df.mvs]) barPosT
Expand Down
22 changes: 12 additions & 10 deletions packages/font-glyphs/src/letter/armenian/upper-dza-group.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -32,33 +32,35 @@ glyph-block Letter-Armenian-Upper-Dza : begin
create-glyph 'armn/Sha' 0x547 : glyph-proc
local df : include : DivFrame 1
include : df.markSet.capital
local junctY : mix XH CAP 0.5
include : dispiro
widths.rhs df.mvs
curl df.leftSB CAP [heading Rightward]
flat df.middle ([mix XH CAP 0.5] + df.mvs - df.shoulderFine) [heading Rightward]
flat df.middle (junctY + df.mvs - df.shoulderFine) [heading Rightward]
curl df.rightSB (XH + df.mvs) [heading Rightward]
include : dispiro
widths.rhs df.mvs
g4 df.rightSB Hook
hookstart 0 (sw -- df.mvs)
flat df.leftSB ArchDepthB
curl df.leftSB ([mix XH CAP 0.5] - ArchDepthA)
flatside.lu df.leftSB 0 junctY ArchDepthA ArchDepthB
arcvh
g4 df.middle [mix XH CAP 0.5] [widths.rhs df.shoulderFine]
g4 df.middle junctY [widths.rhs df.shoulderFine]

do "Cha"
create-glyph 'armn/Cha' 0x549 : glyph-proc
local df : include : DivFrame 1
include : df.markSet.capital
local barTop : Hook * 0.8
local barBot O
local junctY : [mix barBot barTop 0.5] + df.mvs - df.shoulderFine
include : dispiro
widths.rhs df.mvs
g4 df.leftSB (CAP - Hook)
hookstart CAP (sw -- df.mvs)
flat df.rightSB (CAP - ArchDepthB)
curl df.rightSB ([mix (XH / 2) df.mvs 0.5] - df.shoulderFine + ArchDepthA)
flatside.rd df.rightSB junctY CAP ArchDepthA ArchDepthB
arcvh
g4 df.middle ([mix (XH / 2) df.mvs 0.5] - df.shoulderFine) [widths.rhs df.shoulderFine]
g4 df.middle junctY [widths.rhs df.shoulderFine]
include : dispiro
widths.rhs df.mvs
flat [mix df.leftSB df.rightSB 0.1] (XH / 2) [heading Rightward]
curl [mix df.leftSB df.rightSB 0.9] df.mvs [heading Rightward]
widths.lhs df.mvs
flat [mix df.leftSB df.rightSB 0.1] barTop [heading Rightward]
curl [mix df.leftSB df.rightSB 0.9] barBot [heading Rightward]
9 changes: 3 additions & 6 deletions packages/font-glyphs/src/letter/armenian/upper-gim-group.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ glyph-block Letter-Armenian-Upper-Gim-Group : begin
flat df.rightSB 0 [heading Upward]
curl df.rightSB (CAP - ArchDepthB)
arch.lhs CAP (sw -- df.mvs)
flat df.leftSB (CAP - ArchDepthA)
curl df.leftSB (barPosB + ArchDepthB)
flatside.ld df.leftSB barPosB CAP ArchDepthA ArchDepthB
arcvh
flat df.middle barPosB
curl (df.rightSB + jut * [if SLAB 1.5 1] - [HSwToV : 0.5 * df.mvs]) barPosB
Expand All @@ -42,8 +41,7 @@ glyph-block Letter-Armenian-Upper-Gim-Group : begin
flat df.rightSB CAP [heading Downward]
curl df.rightSB (0 + ArchDepthA)
arch.rhs 0 (sw -- df.mvs)
flat (df.leftSB + OX) (0 + ArchDepthB)
curl (df.leftSB + OX) (highBarPos - ArchDepthA)
flatside.lu df.leftSB 0 highBarPos ArchDepthA ArchDepthB
arcvh
flat df.middle highBarPos
curl (df.rightSB + jut * [if SLAB 1.5 1] - [HSwToV : 0.5 * df.mvs]) highBarPos
Expand All @@ -59,8 +57,7 @@ glyph-block Letter-Armenian-Upper-Gim-Group : begin
flat df.rightSB Ascender [heading Downward]
curl df.rightSB (0 + SmallArchDepthA)
arch.rhs 0 (sw -- df.mvs)
flat (df.leftSB + OX) (0 + SmallArchDepthB)
curl (df.leftSB + OX) (highBarPos - SmallArchDepthA)
flatside.lu df.leftSB 0 highBarPos ArchDepthA ArchDepthB
arcvh
flat df.middle highBarPos
curl (df.rightSB + jut * [if SLAB 1.5 1] - [HSwToV : 0.5 * df.mvs]) highBarPos
Expand Down
64 changes: 35 additions & 29 deletions packages/font-glyphs/src/letter/shared.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ glyph-block Letter-Shared-Shapes : begin
local-parameter : adb -- SmallArchDepthB
local-parameter : stroke -- Stroke
local-parameter : fMask -- false
local-parameter : leftY0 -- (top - ada - 2)
local-parameter : leftY0 -- (top - ada - TINY)

return : list
flat (left - [HSwToV fine]) leftY0 [widths.rhs fine]
Expand Down Expand Up @@ -1082,49 +1082,55 @@ glyph-block Letter-Shared-Shapes : begin
set BeltOverlay.at BeltOverlayAt

do "Letter bar overlays"
glyph-block-export LetterBarOverlay
define [LetterBarOverlay] : with-params [x y space refSw pXInSw sw] : begin
glyph-block-export LetterBarOverlay LetterObliqueBarOverlay
define [BarOverlayImpl] : with-params [barFunc x y space refSw pXInSw sw] : begin
local {xLeftSpace xRightSpace} space
local xLeftEdge : x - pXInSw * [HSwToV refSw]
local xRightEdge : x + (1 - pXInSw) * [HSwToV refSw]
local p : (xLeftEdge - xLeftSpace) / ((xRightSpace - xRightEdge) + (xLeftEdge - xLeftSpace))
local xC : mix xLeftEdge xRightEdge [mix 0.5 (1 - p) 0.5]
local jut : 0.75 * LongJut
return : HOverlayBar
return : barFunc
Math.min (xLeftEdge - SideJut)
Math.max (xC - jut) [mix xLeftSpace xLeftEdge 0.3]
Math.max (xRightEdge + SideJut)
Math.min [mix xRightSpace xRightEdge 0.3] (xC + jut)
begin y
begin sw

set LetterBarOverlay.l : function []
with-params [x y [space {0 Width}] [refSw Stroke] [sw OverlayStroke]] : begin
LetterBarOverlay x y (space -- space) (refSw -- refSw) (pXInSw -- 0) (sw -- sw)
set LetterBarOverlay.m : function []
with-params [x y [space {0 Width}] [refSw Stroke] [sw OverlayStroke]] : begin
LetterBarOverlay x y (space -- space) (refSw -- refSw) (pXInSw -- 0.5) (sw -- sw)
set LetterBarOverlay.r : function []
with-params [x y [space {0 Width}] [refSw Stroke] [sw OverlayStroke]] : begin
LetterBarOverlay x y (space -- space) (refSw -- refSw) (pXInSw -- 1) (sw -- sw)

define [calcYAndSw bot top py sw] : begin
local y : mix bot top py
local sw1 : Math.min sw (1.25 * (top - bot) * py) (1.25 * (top - bot) * (1 - py))
return { y sw1 }

set LetterBarOverlay.l.in : function []
with-params [x bot top [py 0.5] [space {0 Width}] [refSw Stroke] [sw OverlayStroke]]
: begin
local { y sw1 } : calcYAndSw bot top py sw
LetterBarOverlay x y (space -- space) (refSw -- refSw) (pXInSw -- 0) (sw -- sw1)
set LetterBarOverlay.m.in : function []
with-params [x bot top [py 0.5] [space {0 Width}] [refSw Stroke] [sw OverlayStroke]]
: begin
local { y sw1 } : calcYAndSw bot top py sw
LetterBarOverlay x y (space -- space) (refSw -- refSw) (pXInSw -- 0.5) (sw -- sw1)
set LetterBarOverlay.r.in : function []
with-params [x bot top [py 0.5] [space {0 Width}] [refSw Stroke] [sw OverlayStroke]]
: begin
local { y sw1 } : calcYAndSw bot top py sw
LetterBarOverlay x y (space -- space) (refSw -- refSw) (pXInSw -- 1) (sw -- sw1)
define [LetterBarOverlay] : with-params [x y space refSw pXInSw sw]
BarOverlayImpl HOverlayBar x y space refSw pXInSw sw
define [LetterObliqueBarOverlay] : with-params [x y space refSw pXInSw sw]
BarOverlayImpl HOverlayObliqueBar x y space refSw pXInSw sw

foreach base {LetterBarOverlay LetterObliqueBarOverlay} : let [base] : begin
set base.l : function []
with-params [x y [space {0 Width}] [refSw Stroke] [sw OverlayStroke]] : begin
(base) x y (space -- space) (refSw -- refSw) (pXInSw -- 0) (sw -- sw)
set base.m : function []
with-params [x y [space {0 Width}] [refSw Stroke] [sw OverlayStroke]] : begin
(base) x y (space -- space) (refSw -- refSw) (pXInSw -- 0.5) (sw -- sw)
set base.r : function []
with-params [x y [space {0 Width}] [refSw Stroke] [sw OverlayStroke]] : begin
(base) x y (space -- space) (refSw -- refSw) (pXInSw -- 1) (sw -- sw)

set base.l.in : function []
with-params [x bot top [py 0.5] [space {0 Width}] [refSw Stroke] [sw OverlayStroke]]
: begin
local { y sw1 } : calcYAndSw bot top py sw
(base) x y (space -- space) (refSw -- refSw) (pXInSw -- 0) (sw -- sw1)
set base.m.in : function []
with-params [x bot top [py 0.5] [space {0 Width}] [refSw Stroke] [sw OverlayStroke]]
: begin
local { y sw1 } : calcYAndSw bot top py sw
(base) x y (space -- space) (refSw -- refSw) (pXInSw -- 0.5) (sw -- sw1)
set base.r.in : function []
with-params [x bot top [py 0.5] [space {0 Width}] [refSw Stroke] [sw OverlayStroke]]
: begin
local { y sw1 } : calcYAndSw bot top py sw
(base) x y (space -- space) (refSw -- refSw) (pXInSw -- 1) (sw -- sw1)
5 changes: 1 addition & 4 deletions packages/font-glyphs/src/marks/overlay.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -144,10 +144,7 @@ glyph-block Mark-Overlay : begin
create-glyph 'oblStrike' : glyph-proc
set-width 0
set-mark-anchor 'strike' markMiddle (XH / 2) markMiddle (XH / 2)
include : dispiro
widths.center OverlayStroke
flat ([mix 0 SB 0.5] - Width) (0.4 * XH)
curl ([mix Width RightSB 0.5] - Width) (0.6 * XH)
include : HOverlayObliqueBar ([mix 0 SB 0.5] - Width) ([mix Width RightSB 0.5] - Width) (XH / 2)

create-glyph 'tildeStrike' : glyph-proc
set-width 0
Expand Down
6 changes: 3 additions & 3 deletions packages/font-glyphs/src/meta/macros.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -307,9 +307,9 @@ define-macro glyph-block-import : syntax-rules

CommonShapes `[no-shape tagged Rect SquareAt Ring RingAt DotAt RingStroke
RingStrokeAt DotStrokeAt Circle Ellipse OShapeT OShape OShapeOutline OShapeFlatTB HSerif
VSerif NeedSlab NeedNotItalic HBar HOverlayBar VBar FlatSlashShape hookstart hookend
flatside arch Ungizmo Regizmo FlipAround ScaleAround Realign ForceUpright DiagCor NameUni
PointingTo with-transform with-outlined remove-holes radicalize clear-geometry
VSerif NeedSlab NeedNotItalic HBar HOverlayBar HOverlayObliqueBar VBar FlatSlashShape
hookstart hookend flatside arch Ungizmo Regizmo FlipAround ScaleAround Realign ForceUpright
DiagCor NameUni PointingTo with-transform with-outlined remove-holes radicalize clear-geometry
clear-anchors ExtLineCenter ExtLineLhs ExtLineRhs DiagCorDs HCrossBar MaskAbove
MaskBelow MaskLeft MaskRight HalfRectTriangle MaskAboveLine MaskBelowLine
MaskLeftLine MaskRightLine DotVariants WithDotVariants]
Expand Down
1 change: 1 addition & 0 deletions packages/font-glyphs/src/symbol/geometric.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@ export : define [apply] : begin
run-glyph-module "./geometric/ballot-box.mjs"
run-glyph-module "./geometric/corner-shape.mjs"
run-glyph-module "./geometric/square-corners.mjs"
run-glyph-module "./geometric/technical.mjs"
48 changes: 0 additions & 48 deletions packages/font-glyphs/src/symbol/geometric/plain.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -611,51 +611,3 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1

StdBlackShape RightArrowHeadShape 'blackArrowHeadRight' 0x27A4 Size.Oblique
StdWhiteShape RightArrowHeadShape 'whiteArrowHeadRight' null {.sw ([Math.min GeometryStroke : AdviceStroke 4.75 : Math.sqrt Geom.Scalar] * [Math.sqrt 5])}

do "Other Polygon"
glyph-block-import Shared-Symbol-Shapes : TriangleShape HZigzag

define fineGeometryStroke : AdviceStroke2 4 4 Geom.Size

create-glyph [MangleName 'straightness'] [MangleUnicode 0x23E4] : glyph-proc
set-width Geom.Width
include : HBar.m Geom.Left Geom.Right Geom.MidY GeometryStroke

create-glyph [MangleName 'symmetry'] [MangleUnicode 0x232F] : glyph-proc
set-width Geom.Width
define yOffset : Geom.Size * 0.4
define xShrink : Geom.Size * 0.25
include : HBar.m Geom.Left Geom.Right Geom.MidY GeometryStroke
include : HBar.b (Geom.Left + xShrink) (Geom.Right - xShrink) (Geom.MidY + yOffset) GeometryStroke
include : HBar.t (Geom.Left + xShrink) (Geom.Right - xShrink) (Geom.MidY - yOffset) GeometryStroke

create-glyph [MangleName 'conicalTaper'] [MangleUnicode 0x2332] : glyph-proc
set-width Geom.Width
include : TriangleShape Geom.Left (Geom.MidY - Geom.Size * 0.8) Geom.Left (Geom.MidY + Geom.Size * 0.8) Geom.Right Geom.MidY fineGeometryStroke
include : HBar.m [mix 0 Geom.Left 0.5] [mix Geom.Right Geom.Width 0.5] Geom.MidY GeometryStroke

create-glyph [MangleName 'slope'] [MangleUnicode 0x2333] : glyph-proc
set-width Geom.Width
include : TriangleShape Geom.Left Geom.Bot Geom.Left Geom.MidY Geom.Right Geom.Bot fineGeometryStroke

create-glyph [MangleName 'horiZigzag'] [MangleUnicode 0x1CEB0] : glyph-proc
set-width Geom.Width
define left : SB * MosaicWidthScalar
define right : RightSB * MosaicWidthScalar
define amp : (OperTop - OperBot) / 8
define sgmts : 4 * MosaicWidthScalar + 1

define dx : (right - left) / sgmts
define rhs : strokeOffset left (Geom.MidY - amp) dx (2 * amp) (GeometryStroke / 2) HVContrast
define bot : linreg rhs.x rhs.y (rhs.x + dx) (rhs.y + 2 * amp) left
define top : Geom.MidY * 2 - bot
include : union
HZigzag Geom.MidY left right amp sgmts 1 GeometryStroke
dispiro
widths.lhs GeometryStroke
flat left bot
curl (left + dx) (bot + 2 * amp)
dispiro
widths.lhs GeometryStroke
flat right top
curl (right - dx) (top - 2 * amp)
12 changes: 0 additions & 12 deletions packages/font-glyphs/src/symbol/geometric/rotational.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,6 @@ glyph-block Symbol-Geometric-Rotational : begin
corner 0 0
corner r 0

define [Maltese sw sw2] : lambda [r] : lift-@ : spiro-outline
corner (@x1 = 0) (sw / 2)
flat (@x2 = TINY) (sw / 2)
curl (@x3 = [clamp (0.5 * r) (0.75 * r) : @x4 - (sw2 - sw)]) (sw / 2)
archv
corner (@x4 = r) sw2
corner @x4 (-sw2)
arcvh
flat @x3 (-sw / 2)
curl @x2 (-sw / 2)
corner @x1 (-sw / 2)

define [TeardropImpl r sw sw2 fPetal] : lift-@ : list
corner (@x1 = 0) (sw / 2)
if fPetal [list] : list
Expand Down
Loading
Loading