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

Collection of around 30 arithmetic symbols #2610

Merged
merged 5 commits into from
Dec 7, 2024
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
26 changes: 26 additions & 0 deletions changes/32.2.1.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,29 @@
- CYRILLIC SMALL LETTER TCHE (`U+A693`).
- LATIN EPIGRAPHIC LETTER ARCHAIC M (`U+A7FF`).
- MODIFIER LETTER CYRILLIC SMALL YERU WITH BACK YER (`U+1E06C`).
* Add characters:
- DOUBLE INTERSECTION (`U+22D2`).
- DOUBLE UNION (`U+22D3`).
- LEFT OUTER JOIN (`U+27D5`).
- RIGHT OUTER JOIN (`U+27D6`).
- FULL OUTER JOIN (`U+27D7`).
- Z NOTATION LEFT BINDING BRACKET (`U+2989`).
- Z NOTATION RIGHT BINDING BRACKET (`U+298A`).
- TRIANGLE WITH DOT ABOVE (`U+29CA`).
- TRIANGLE WITH UNDERBAR (`U+29CB`).
- TRIANGLE WITH SERIFS AT BOTTOM (`U+29CD`).
- N-ARY TIMES OPERATOR (`U+2A09`).
- JOIN (`U+2A1D`).
- LARGE LEFT TRIANGLE OPERATOR (`U+2A1E`).
- CLOSED UNION WITH SERIFS (`U+2A4C`).
- CLOSED INTERSECTION WITH SERIFS (`U+2A4D`).
- DOUBLE SQUARE INTERSECTION (`U+2A4E`).
- DOUBLE SQUARE UNION (`U+2A4F`).
- SLOPING LARGE OR (`U+2A57`).
- SLOPING LARGE AND (`U+2A58`).
- LOGICAL AND WITH MIDDLE STEM (`U+2A5A`).
- LOGICAL OR WITH MIDDLE STEM (`U+2A5B`).
- Z NOTATION DOMAIN ANTIRESTRICTION (`U+2A64`).
- Z NOTATION RANGE ANTIRESTRICTION (`U+2A65`).
- SMALLER THAN (`U+2AAA`) ... LARGER THAN OR EQUAL TO (`U+2AAD`).
- CLOSED SUBSET (`U+2ACF`) ... CLOSED SUPERSET OR EQUAL TO (`U+2AD2`).
2 changes: 1 addition & 1 deletion packages/font-glyphs/src/letter/latin/c.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ glyph-block Letter-Latin-C : begin
g4 (df.leftSB + offset) (top - [fallback hook Hook])
hookstart (top - offset) (sw -- sw)

flatside.rd (df.rightSB + offset) bot top ada adb
flatside.rd (df.rightSB - offset) bot top ada adb

match sb
[Just SLAB-CLASSICAL] : SerifedArcEnd.RtlRhs (df.leftSB + offset) bot sw [fallback hook Hook]
Expand Down
17 changes: 17 additions & 0 deletions packages/font-glyphs/src/symbol/geometric/masked.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -432,3 +432,20 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1
intersection
refer-glyph : MangleName 'blackLozenge'
HBar.m 0 MosaicWidth Geom.MidY GeometryStroke

define triangleSideRadius : Geom.Size * 2.1 / [Math.sqrt 3]
derive-multi-part-glyphs [MangleName 'whiteTriangleUpDotAbove'] [MangleUnicode 0x29CA] { [MangleName 'whiteTriangleUp'] 'dotAbove' } : lambda [srcs gr] : glyph-proc
local { base mark } srcs
include : refer-glyph mark
include : Translate (Middle + Geom.MidX) (Geom.Top - XH)
include [refer-glyph base] AS_BASE ALSO_METRICS

create-glyph [MangleName 'whiteTriangleUpBarBelow'] [MangleUnicode 0x29CB] : glyph-proc
include [refer-glyph : MangleName 'whiteTriangleUp'] AS_BASE ALSO_METRICS
include : HBar.t (Geom.MidX - triangleSideRadius) (Geom.MidX + triangleSideRadius) (Geom.Bot - AccentClearance) GeometryStroke

create-glyph [MangleName 'whiteTriangleUpSerifBottom'] [MangleUnicode 0x29CD] : glyph-proc
define jut : clamp 0 (MosaicMiddle - triangleSideRadius) (SideJut * MosaicWidthScalar)
include [refer-glyph : MangleName 'whiteTriangleUp'] AS_BASE ALSO_METRICS
include : HSerif.lb (Geom.MidX - triangleSideRadius) Geom.Bot jut GeometryStroke
include : HSerif.rb (Geom.MidX + triangleSideRadius) Geom.Bot jut GeometryStroke
4 changes: 2 additions & 2 deletions packages/font-glyphs/src/symbol/geometric/plain.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -614,7 +614,7 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
do "Other Polygon"
glyph-block-import Shared-Symbol-Shapes : TriangleShape HZigzag

define fineGeometryStroke : AdviceStroke2 4 4 (Geom.Size * 2)
define fineGeometryStroke : AdviceStroke2 4 4 Geom.Size

create-glyph [MangleName 'straightness'] [MangleUnicode 0x23E4] : glyph-proc
set-width Geom.Width
Expand All @@ -631,7 +631,7 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
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 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
Expand Down
35 changes: 34 additions & 1 deletion packages/font-glyphs/src/symbol/math/arith.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ glyph-block Symbol-Math-Arith : begin
intersection
MultiplyMask 1 1 1
union
VBar.l (Middle - Size) (SymbolMid - Size) (SymbolMid + Size) swBowtieHv
VBar.l (Middle - Size) (SymbolMid - Size) (SymbolMid + Size) swBowtieHv
VBar.r (Middle + Size) (SymbolMid - Size) (SymbolMid + Size) swBowtieHv
intersection
Rect ParenTop ParenBot (Middle - Size) (Middle + Size)
Expand Down Expand Up @@ -198,6 +198,39 @@ glyph-block Symbol-Math-Arith : begin
refer-glyph 'bowtieRight'
MultiplyMask 1 0 1

define [JoinLeft ] : union
HBar.t [Math.max 0 : Middle - Size - Jut + [HSwToV : 0.5 * swBowtieHv]] (Middle - Size) (SymbolMid + Size) swBowtie
HBar.b [Math.max 0 : Middle - Size - Jut + [HSwToV : 0.5 * swBowtieHv]] (Middle - Size) (SymbolMid - Size) swBowtie
define [JoinRight] : union
HBar.t (Middle + Size) [Math.min Width : Middle + Size + Jut - [HSwToV : 0.5 * swBowtieHv]] (SymbolMid + Size) swBowtie
HBar.b (Middle + Size) [Math.min Width : Middle + Size + Jut - [HSwToV : 0.5 * swBowtieHv]] (SymbolMid - Size) swBowtie
define [JoinLeftMask ] : union
MaskAboveLine 0 (SymbolMid + Size) Middle (SymbolMid + Size)
MaskBelowLine 0 (SymbolMid - Size) Middle (SymbolMid - Size)
define [JoinRightMask] : union
MaskAboveLine Middle (SymbolMid + Size) Width (SymbolMid + Size)
MaskBelowLine Middle (SymbolMid - Size) Width (SymbolMid - Size)
create-glyph 'joinLeft' 0x27D5 : glyph-proc
include : difference
union
refer-glyph 'bowtie'
JoinLeft
JoinLeftMask
create-glyph 'joinRight' 0x27D6 : glyph-proc
include : difference
union
refer-glyph 'bowtie'
JoinRight
JoinRightMask
create-glyph 'joinFull' 0x27D7 : glyph-proc
include : difference
union
refer-glyph 'bowtie'
JoinLeft
JoinRight
JoinLeftMask
JoinRightMask

define HourglassStretch 1.6
create-glyph 'whiteHourglass' 0x29D6 : glyph-proc
include : union
Expand Down
43 changes: 43 additions & 0 deletions packages/font-glyphs/src/symbol/math/large-operators.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ glyph-module
glyph-block Symbol-Math-Large-Operators : for-width-kinds WideWidth1
glyph-block-import CommonShapes
glyph-block-import Common-Derivatives
glyph-block-import Shared-Symbol-Shapes : TriangleShape
glyph-block-import Letter-Latin-Long-S : LongSShape
glyph-block-import Letter-Latin-U : UShape
glyph-block-import Letter-Greek-Upper-Sigma : SigmaShape
Expand Down Expand Up @@ -96,3 +97,45 @@ glyph-block Symbol-Math-Large-Operators : for-width-kinds WideWidth1
include : PiShape df BgOpTop BgOpBot (shrinkRate -- 0) (fine -- OperatorStroke) (doSerif -- false)

turned [MangleName 'SquareCup'] [MangleUnicode 0x2A06] [MangleName 'SquareCap'] df.middle SymbolMid

create-glyph [MangleName 'Multiply'] [MangleUnicode 0x2A09] : glyph-proc
set-width df.width
include : dispiro
widths.center OperatorStroke
corner df.leftSB BgOpTop
corner df.rightSB BgOpBot
include : dispiro
widths.center OperatorStroke
corner df.leftSB BgOpBot
corner df.rightSB BgOpTop

create-glyph [MangleName 'Bowtie'] [MangleUnicode 0x2A1D] : glyph-proc
set-width df.width
define swBowtie : Math.min OperatorStroke : AdviceStroke 4.25 MosaicWidthScalar
define swBowtieHv : Math.min OperatorStroke : AdviceStroke 4.75 MosaicWidthScalar
include : union
intersection
MaskRight df.leftSB
MaskLeft df.rightSB
union
dispiro
widths.center swBowtie
corner df.leftSB BgOpTop
corner df.rightSB BgOpBot
dispiro
widths.center swBowtie
corner df.leftSB BgOpBot
corner df.rightSB BgOpTop
intersection
spiro-outline
corner df.leftSB BgOpBot
corner df.rightSB BgOpTop
corner df.rightSB BgOpBot
corner df.leftSB BgOpTop
union
VBar.l df.leftSB BgOpBot BgOpTop swBowtieHv
VBar.r df.rightSB BgOpBot BgOpTop swBowtieHv

create-glyph [MangleName 'WhiteTriangleLeft'] [MangleUnicode 0x2A1E] : glyph-proc
set-width df.width
include : TriangleShape df.leftSB SymbolMid df.rightSB BgOpTop df.rightSB BgOpBot OperatorStroke
51 changes: 51 additions & 0 deletions packages/font-glyphs/src/symbol/math/relation.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -450,6 +450,14 @@ glyph-block Symbol-Math-Relation-Inequality : begin
Rect ([mix top bot 0.5] + gap / 2) ([mix top bot 0.5] - gap / 2) (l + O) (r - O)

define [NormalSubsetShape top bot l r s] : LigationLessShape top bot l r s s 0
define [AntirestrictionLeftShape top bot l r s s2] : union [NormalSubsetShape top bot l r s]
intersection
LessMaskShape top bot l r
HBar.m l r [mix top bot 0.5] [fallback s2 s OperatorStroke]
define [SmallerShape top bot l r s] : union [LessShape top bot l r s]
intersection
LessMaskShape top bot l r
HBar.m l r [mix top bot 0.5] [fallback s OperatorStroke]

glyph-block-export GreaterShape
define [GreaterShape top bot l r s] : union
Expand All @@ -473,6 +481,14 @@ glyph-block Symbol-Math-Relation-Inequality : begin
Rect ([mix top bot 0.5] + gap / 2) ([mix top bot 0.5] - gap / 2) (l + O) (r - O)

define [NormalSupersetShape top bot l r s] : LigationGreaterShape top bot l r s s 0
define [AntirestrictionRightShape top bot l r s s2] : union [NormalSupersetShape top bot l r s]
intersection
GreaterMaskShape top bot l r
HBar.m l r [mix top bot 0.5] [fallback s2 s OperatorStroke]
define [LargerShape top bot l r s] : union [GreaterShape top bot l r s]
intersection
GreaterMaskShape top bot l r
HBar.m l r [mix top bot 0.5] [fallback s OperatorStroke]

create-glyph 'less' '<' : glyph-proc
include : LessShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB
Expand All @@ -484,6 +500,12 @@ glyph-block Symbol-Math-Relation-Inequality : begin
create-glyph 'normalSubsetOf' 0x22B2 : glyph-proc
include : NormalSubsetShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB

create-glyph 'zNotationDomainAntirestriction' 0x2A64 : glyph-proc
include : AntirestrictionLeftShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB OperatorStroke [AdviceStroke 4.5]

create-glyph 'smaller' 0x2AAA : glyph-proc
include : SmallerShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB

create-glyph 'greater' '>' : glyph-proc
include : GreaterShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB

Expand All @@ -494,10 +516,18 @@ glyph-block Symbol-Math-Relation-Inequality : begin
create-glyph 'normalSupersetOf' 0x22B3 : glyph-proc
include : NormalSupersetShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB

create-glyph 'zNotationRangeAntirestriction' 0x2A65 : glyph-proc
include : AntirestrictionRightShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB OperatorStroke [AdviceStroke 4.5]

create-glyph 'larger' 0x2AAB : glyph-proc
include : LargerShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB

create-glyph 'lessEqUpper' : LessShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist) SB RightSB
create-glyph 'greaterEqUpper' : GreaterShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist) SB RightSB
create-glyph 'normalSubsetUpper' : NormalSubsetShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist) SB RightSB
create-glyph 'normalSupersetUpper' : NormalSupersetShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist) SB RightSB
create-glyph 'smallerEqUpper' : SmallerShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist) SB RightSB
create-glyph 'largerEqUpper' : LargerShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist) SB RightSB

derive-composites 'less.narrow' null 'lessEqUpper' [ApparentTranslate 0 (-lessEqDist)]
derive-composites 'lessEq' 0x2264 'lessEqUpper' 'eqLower'
Expand Down Expand Up @@ -527,6 +557,8 @@ glyph-block Symbol-Math-Relation-Inequality : begin

derive-composites 'normalSubsetEq' 0x22B4 'normalSubsetUpper' 'eqLower'
derive-composites 'normalSupersetEq' 0x22B5 'normalSupersetUpper' 'eqLower'
derive-composites 'smallerEq' 0x2AAC 'smallerEqUpper' 'eqLower'
derive-composites 'largerEq' 0x2AAD 'largerEqUpper' 'eqLower'

turned 'turnGreaterEq' 0x22DC 'greaterEq' Middle SymbolMid
turned 'turnLessEq' 0x22DD 'lessEq' Middle SymbolMid
Expand Down Expand Up @@ -593,6 +625,9 @@ glyph-block Symbol-Math-Relation-Inequality : begin
include : GreaterShape (SymbolMid + llggHeight / 2 + lessEqDist) (SymbolMid - llggHeight / 6 + lessEqDist * 2) SB RightSB lesslessSW
include : LessShape (SymbolMid + llggHeight / 6 - lessEqDist * 2) (SymbolMid - llggHeight / 2 - lessEqDist) SB RightSB lesslessSW
include : HBar.m SB RightSB (SymbolMid) lesslessSW
create-glyph 'normalSupersetNormalSubset' 0x29CE : glyph-proc
include : NormalSupersetShape (SymbolMid + llggHeight / 2) (SymbolMid - llggHeight / 6 + lessEqDist) SB RightSB lesslessSW
include : NormalSubsetShape (SymbolMid + llggHeight / 6 - lessEqDist) (SymbolMid - llggHeight / 2) SB RightSB lesslessSW

create-glyph 'lessless' 0x226A : glyph-proc
include : LessShape (SymbolMid + dH) (SymbolMid - dH) (SB - lessEqDist / 2) (RightSB - lessEqDist * 2) lesslessSW
Expand Down Expand Up @@ -749,6 +784,12 @@ glyph-block Symbol-Math-Relation-Subset : begin
define [SupsetShape top bot sw] : glyph-proc
include : SubsetShape top bot sw
include : FlipAround Middle [mix top bot 0.5]
define [SubsetClosedShape top bot sw] : glyph-proc
include : SubsetShape top bot sw
include : VBar.r RightSB bot top sw
define [SupsetClosedShape top bot sw] : glyph-proc
include : SubsetClosedShape top bot sw
include : FlipAround Middle [mix top bot 0.5]

create-glyph 'subst' 0x2282
SubsetShape (SymbolMid + dHSubstSimple) (SymbolMid - dHSubstSimple)
Expand All @@ -760,9 +801,12 @@ glyph-block Symbol-Math-Relation-Subset : begin

include : SubsetShape (SymbolMid + dHSubstSimple) (SymbolMid - dHSubstSimple) (sw -- sw)
include : SubsetShape (SymbolMid + dHSubstSimple) (SymbolMid - dHSubstSimple) (sw -- sw) (offset -- gap + sw)
create-glyph 'substClosed' 0x2ACF
SubsetClosedShape (SymbolMid + dHSubstSimple) (SymbolMid - dHSubstSimple) OperatorStroke

turned 'supst' 0x2283 'subst' Middle SymbolMid
turned 'doubleSupst' 0x22D1 'doubleSubst' Middle SymbolMid
turned 'supstClosed' 0x2AD0 'substClosed' Middle SymbolMid

create-glyph 'substBarUpper'
SubsetShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist)
Expand All @@ -776,6 +820,13 @@ glyph-block Symbol-Math-Relation-Subset : begin
derive-composites 'supstBarNoRise' null 'supst' 'eqLower2'
derive-composites 'supstBarNegated' 0x228B 'supstBarUpper' 'eqBarNegatedLower'

create-glyph 'substClosedBar' 0x2AD1 : composite-proc
SubsetClosedShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist) OperatorStroke
refer-glyph 'eqLower'
create-glyph 'supstClosedBar' 0x2AD2 : composite-proc
SupsetClosedShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist) OperatorStroke
refer-glyph 'eqLower'

define supstDotShift : SB + [Math.max (OperatorStroke * 1.5) dHSubstSimple] - Middle
derive-composites 'substDot' 0x2ABD 'mathCDot' [ApparentTranslate (+supstDotShift) 0] 'subst'
derive-composites 'supstDot' 0x2ABE 'mathCDot' [ApparentTranslate (-supstDotShift) 0] 'supst'
Expand Down
48 changes: 46 additions & 2 deletions packages/font-glyphs/src/symbol/math/v-and-cup.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ glyph-module
glyph-block Symbol-Math-VAndCup : begin
glyph-block-import CommonShapes
glyph-block-import Common-Derivatives
glyph-block-import Letter-Latin-U : UShape
glyph-block-import Letter-Latin-U : UShape USerifs
glyph-block-import Letter-Greek-Pi : PiShape
glyph-block-import Letter-Cyrillic-Sha : CyrShaShape
glyph-block-import Symbol-Arrow : ArrowShape
Expand Down Expand Up @@ -126,6 +126,31 @@ glyph-block Symbol-Math-VAndCup : begin
turned 'math/logic/equalOr' 0x2A62 'math/logic/andEqual' Middle SymbolMid
turned 'math/logic/orEqual' 0x2A63 'math/logic/equalAnd' Middle SymbolMid

create-glyph 'wedgeMiddleStem' 0x2A5A : glyph-proc
include : union
WedgeShape OperTop OperBot [AdviceStroke 4]
VBar.m Middle OperBot OperTop [AdviceStroke 4]

create-glyph 'veeMiddleStem' 0x2A5B : glyph-proc
include : union
VeeShape OperTop OperBot [AdviceStroke 4]
VBar.m Middle OperBot OperTop [AdviceStroke 4]

create-glyph 'veeSlanted' 0x2A57 : glyph-proc
include : union
dispiro
widths.lhs OperatorStroke
flat SB OperTop [heading Downward]
curl SB OperBot [heading Downward]
dispiro
widths.rhs OperatorStroke
flat RightSB OperTop [heading Downward]
curl (SB + [HSwToV Stroke]) OperBot [heading Downward]

turned 'wedgeSlanted' 0x2A58 'veeSlanted' Middle SymbolMid

# Cup

create-glyph 'cup' 0x222A : glyph-proc
include : UShape [DivFrame 1] OperTop OperBot (stroke -- OperatorStroke)

Expand Down Expand Up @@ -171,7 +196,7 @@ glyph-block Symbol-Math-VAndCup : begin

create-glyph 'doubleCup' 0x22D3 : glyph-proc
local sw : AdviceStroke 6
local gap : Math.max (Width / 8) (sw / 2)
local gap : Math.min [Math.max (Width / 8) (sw / 2)] : (RightSB - SB - [HSwToV : 4 * sw]) / 3
include : UShape [DivFrame 1] OperTop OperBot (stroke -- sw)
include : UShape [DivFrame 1] OperTop OperBot
stroke -- sw
Expand Down Expand Up @@ -230,6 +255,16 @@ glyph-block Symbol-Math-VAndCup : begin
flat SB OperBot
curl RightSB OperTop

create-glyph 'cupClosedSerifed' 0x2A4C : glyph-proc
include : UShape [DivFrame 1] OperTop OperBot (stroke -- OperatorStroke)
include : HBar.t SB RightSB OperTop OperatorStroke
include : USerifs.Toothless [DivFrame 1] OperTop OperatorStroke

turned 'capClosedSerifed' 0x2A4D 'cupClosedSerifed' Middle SymbolMid


# Square Cup

create-glyph 'squareCap' 0x2293 : glyph-proc
include : PiShape [DivFrame 1] OperTop OperBot (shrinkRate -- 0) (fine -- OperatorStroke) (doSerif -- false)

Expand All @@ -238,3 +273,12 @@ glyph-block Symbol-Math-VAndCup : begin
create-glyph 'shuffleProduct' 0x29E2 : glyph-proc
local df : include : DivFrame para.diversityM 3
include : CyrShaShape df OperTop OperBot (fine -- OperatorStroke) (doSerif -- false)

create-glyph 'doubleSquareCap' 0x2A4E : glyph-proc
local sw : AdviceStroke 6
local gap : Math.min [Math.max (Width / 8) (sw / 2)] : (RightSB - SB - [HSwToV : 4 * sw]) / 3
local shrinkRate : (sw + gap) / (RightSB - SB)
include : PiShape [DivFrame 1] OperTop OperBot (fine -- sw) (shrinkRate -- 0) (fine -- sw) (doSerif -- false)
include : PiShape [DivFrame 1] (OperTop - sw - gap) OperBot (fine -- sw) (shrinkRate -- shrinkRate) (endShrink -- shrinkRate) (doSerif -- false)

turned 'doubleSquareCup' 0x2A4F 'doubleSquareCap' Middle SymbolMid
Loading
Loading