Add Characters (#1747)

This commit is contained in:
John McWilliams 2023-05-25 20:13:55 -04:00 committed by GitHub
parent 171d64acf2
commit 392e31e7a1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 229 additions and 33 deletions

View file

@ -3,10 +3,17 @@
* \[**BREAKING**\] Rectify the variant atlas. As a result, if a character's variant list has motion-serifed, then it will have serifless and serifed variants: the serifed-ness will no longer be controlled by SLAB variable. The characters influenced are `M`, `N`, `P`, `R`, `U`, `V`, `W`, `b`, `h`, `m`, `n`, `p`, `q`, `u`, `v`, `w`, `y`. * \[**BREAKING**\] Rectify the variant atlas. As a result, if a character's variant list has motion-serifed, then it will have serifless and serifed variants: the serifed-ness will no longer be controlled by SLAB variable. The characters influenced are `M`, `N`, `P`, `R`, `U`, `V`, `W`, `b`, `h`, `m`, `n`, `p`, `q`, `u`, `v`, `w`, `y`.
* \[**BREAKING**\] Renamed and/or reordered various variants. * \[**BREAKING**\] Renamed and/or reordered various variants.
* Add Characters: * Add Characters:
- VERTICAL BAR WITH HORIZONTAL STROKE (`U+27CA`).
- ELEMENT OF OPENING UPWARDS (`U+27D2`).
- TRIPLE VERTICAL BAR DELIMITER (`U+2980`).
- Z NOTATION SPOT (`U+2981`).
- DOTTED FENCE (`U+2999`).
- CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN (`U+29BC`). - CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN (`U+29BC`).
- CIRCLED WHITE BULLET (`U+29BE`). - CIRCLED WHITE BULLET (`U+29BE`).
- CIRCLED BULLET (`U+29BF`). - CIRCLED BULLET (`U+29BF`).
- SQUARED RISING DIAGONAL SLASH (`U+29C4`) ... SQUARED SQUARE (`U+29C8`). - SQUARED RISING DIAGONAL SLASH (`U+29C4`) ... SQUARED SQUARE (`U+29C8`).
- EQUALS SIGN AND SLANTED PARALLEL (`U+29E3`) ... IDENTICAL TO AND SLANTED PARALLEL (`U+29E5`).
- THERMODYNAMIC (`U+29E7`).
- REVERSE SOLIDUS OPERATOR (`U+29F5`) ... REVERSE SOLIDUS WITH HORIZONTAL STROKE (`U+29F7`). - REVERSE SOLIDUS OPERATOR (`U+29F5`) ... REVERSE SOLIDUS WITH HORIZONTAL STROKE (`U+29F7`).
- PLUS SIGN WITH SMALL CIRCLE ABOVE (`U+2A22`) ... PLUS SIGN WITH TILDE ABOVE (`U+2A24`). - PLUS SIGN WITH SMALL CIRCLE ABOVE (`U+2A22`) ... PLUS SIGN WITH TILDE ABOVE (`U+2A24`).
- PLUS SIGN WITH TILDE BELOW (`U+2A26`). - PLUS SIGN WITH TILDE BELOW (`U+2A26`).
@ -14,9 +21,19 @@
- PLUS SIGN IN RIGHT HALF CIRCLE (`U+2A2E`). - PLUS SIGN IN RIGHT HALF CIRCLE (`U+2A2E`).
- MULTIPLICATION SIGN IN LEFT HALF CIRCLE (`U+2A34`) ... CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT (`U+2A36`). - MULTIPLICATION SIGN IN LEFT HALF CIRCLE (`U+2A34`) ... CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT (`U+2A36`).
- CIRCLED DIVISION SIGN (`U+2A38`). - CIRCLED DIVISION SIGN (`U+2A38`).
- UNION WITH MINUS SIGN (`U+2A41`) ... INTERSECTION WITH OVERBAR (`U+2A43`).
- LOGICAL AND WITH DOUBLE OVERBAR (`U+2A5E`) ... LOGICAL OR WITH DOUBLE UNDERBAR (`U+2A63`).
- TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE (`U+2A68`).
- TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE (`U+2A69`).
- ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT (`U+2A6F`). - ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT (`U+2A6F`).
- ELEMENT OF OPENING DOWNWARDS (`U+2AD9`) ... NONFORKING (`U+2ADD`).
- PARALLEL WITH HORIZONTAL STROKE (`U+2AF2`) ... TRIPLE COLON OPERATOR (`U+2AF6`).
- LARGE TRIPLE VERTICAL BAR OPERATOR (`U+2AFC`).
- GROUP MARK (`U+2BD2`).
- HYPHEN WITH DIAERESIS (`U+2E1A`). - HYPHEN WITH DIAERESIS (`U+2E1A`).
- TILDE WITH RING ABOVE (`U+2E1B`). - TILDE WITH RING ABOVE (`U+2E1B`).
- LEFT VERTICAL BAR WITH QUILL (`U+2E20`).
- RIGHT VERTICAL BAR WITH QUILL (`U+2E21`).
- DOUBLE HYPHEN (`U+2E40`). - DOUBLE HYPHEN (`U+2E40`).
* Add diagonal-tailed variants for lowercase Iota (#1737). * Add diagonal-tailed variants for lowercase Iota (#1737).
* Make `VXSF` to influence Eth too (#1738). * Make `VXSF` to influence Eth too (#1738).

View file

@ -440,6 +440,7 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
StdBlackShape CircleShape 'blackVerySmallCircle' null Size.VerySmall StdBlackShape CircleShape 'blackVerySmallCircle' null Size.VerySmall
StdBlackShape CircleShape 'blackSmallCircle' null Size.Small StdBlackShape CircleShape 'blackSmallCircle' null Size.Small
StdBlackShape CircleShape 'blackMediumSmallCircle' 0x2981 Size.MediumSmall
StdBlackShape CircleShape 'blackSlightlySmallCircle' 0x1F784 Size.SlightlySmall StdBlackShape CircleShape 'blackSlightlySmallCircle' 0x1F784 Size.SlightlySmall
StdBlackShape CircleShape 'blackMediumCircle' 0x26AB Size.Medium StdBlackShape CircleShape 'blackMediumCircle' 0x26AB Size.Medium
StdBlackShape CircleShape 'blackLargeCircle' 0x2B24 Size.Large StdBlackShape CircleShape 'blackLargeCircle' 0x2B24 Size.Large

View file

@ -6,8 +6,6 @@ glyph-module
glyph-block Symbol-Math-Negation : begin glyph-block Symbol-Math-Negation : begin
glyph-block-import NotGlyphFn : notGlyph glyph-block-import NotGlyphFn : notGlyph
notGlyph null 0x2224 'mathBar' [mix SymbolMid BgOpTop 0.5] [mix SymbolMid BgOpBot 0.5] 0.1
notGlyph null 0x2226 'parallel' [mix SymbolMid BgOpTop 0.5] [mix SymbolMid BgOpBot 0.5] 0
notGlyph null 0x2260 'equal' notGlyph null 0x2260 'equal'
notGlyph null 0x2262 'ident' notGlyph null 0x2262 'ident'
notGlyph null 0x226D 'equivalentTo' notGlyph null 0x226D 'equivalentTo'
@ -44,4 +42,3 @@ glyph-block Symbol-Math-Negation : begin
notGlyph null 0x2278 'lessGreater' notGlyph null 0x2278 'lessGreater'
notGlyph null 0x2279 'greaterLess' notGlyph null 0x2279 'greaterLess'
notGlyph.right2 null 0x2204 'exists' (CAP - Descender / 2) (Descender / 2) 0.4 notGlyph.right2 null 0x2204 'exists' (CAP - Descender / 2) (Descender / 2) 0.4
notGlyph 'revNotmathBar' 0x2AEE 'mathBar' [mix SymbolMid BgOpBot 0.5] [mix SymbolMid BgOpTop 0.5] 0.1

View file

@ -7,7 +7,7 @@ glyph-module
glyph-block NotGlyphFn : begin glyph-block NotGlyphFn : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-export notGlyph glyph-block-export NotGlyphSw notGlyph
define NotGlyphSw : AdviceStroke 4.5 define NotGlyphSw : AdviceStroke 4.5

View file

@ -5,12 +5,57 @@ import [mix linreg clamp fallback] from"../../../support/utils.mjs"
glyph-module glyph-module
glyph-block Symbol-Math-Other : begin glyph-block Symbol-Math-Other : begin
glyph-block-import Common-Derivatives : alias glyph-block-import CommonShapes
glyph-block-import Common-Derivatives
glyph-block-import NotGlyphFn : NotGlyphSw
alias 'mathBullet' 0x2219 'bullet' alias 'mathBullet' 0x2219 'bullet'
alias 'whiteDiamondOperator' 0x22C4 'whiteDiamondOperatorImpl.NWID' alias 'whiteDiamondOperator' 0x22C4 'whiteDiamondOperatorImpl.NWID'
alias 'mathstar' 0x22C6 'blackStar.NWID' alias 'mathstar' 0x22C6 'blackStar.NWID'
alias 'divides' 0x2223 'bar.upright'
create-glyph 'notdivides' 0x2224 : glyph-proc
include : refer-glyph 'divides'
include : dispiro
widths.center NotGlyphSw
flat [mix SB RightSB 0.1] [mix SymbolMid ParenBot 0.5]
curl [mix SB RightSB 0.9] [mix SymbolMid ParenTop 0.5]
alias 'parallel' 0x2225 'doubleBar.upright'
create-glyph 'notparallel' 0x2226 : glyph-proc
include : refer-glyph 'parallel'
include : dispiro
widths.center NotGlyphSw
flat SB [mix SymbolMid ParenBot 0.5]
curl RightSB [mix SymbolMid ParenTop 0.5]
create-glyph 'barStroke' 0x27CA : glyph-proc
include : refer-glyph 'divides'
include : HBar.m [mix SB RightSB 0.1] [mix SB RightSB 0.9] SymbolMid OverlayStroke
create-glyph 'revnotdivides' 0x2AEE : glyph-proc
include : refer-glyph 'divides'
include : dispiro
widths.center NotGlyphSw
flat [mix SB RightSB 0.1] [mix SymbolMid ParenTop 0.5]
curl [mix SB RightSB 0.9] [mix SymbolMid ParenBot 0.5]
create-glyph 'doubleBarStroke' 0x2AF2 : glyph-proc
include : refer-glyph 'parallel'
include : HBar.m SB RightSB SymbolMid OverlayStroke
create-glyph 'doubleBarTilde' 0x2AF3 : composite-proc
refer-glyph 'parallel'
refer-glyph 'sym'
alias 'interleave' 0x2AF4 'tripleBar.upright'
create-glyph 'tripleBarStroke' 0x2AF5 : glyph-proc
include : refer-glyph 'interleave'
include : HBar.m [mix SB 0 0.5] [mix RightSB Width 0.5] SymbolMid OverlayStroke
create-glyph 'sqrt' 0x221A : glyph-proc create-glyph 'sqrt' 0x221A : glyph-proc
include : dispiro include : dispiro
widths.center OperatorStroke widths.center OperatorStroke

View file

@ -42,6 +42,8 @@ glyph-block Symbol-Math-Relation-Equal : begin
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Symbol-Math-Relation-Common : EqualHalfSpace dH EqualHoleWidth glyph-block-import Symbol-Math-Relation-Common : EqualHalfSpace dH EqualHoleWidth
glyph-block-export EqualShape EqualHole IdentShape IdentHole glyph-block-export EqualShape EqualHole IdentShape IdentHole
glyph-block-import Mark-Shared-Metrics : markExtend markHalfStroke
glyph-block-import Mark-Above : TildeShape
glyph-block-export : EqualShape glyph-block-export : EqualShape
define [EqualShape left right] : union define [EqualShape left right] : union
@ -65,10 +67,6 @@ glyph-block Symbol-Math-Relation-Equal : begin
create-glyph 'equal' '=' : glyph-proc create-glyph 'equal' '=' : glyph-proc
include : EqualShape SB RightSB include : EqualShape SB RightSB
create-glyph 'equalParallel' 0x22D5 : composite-proc
refer-glyph 'equal'
refer-glyph 'parallel'
define EqDotDistance : EqualHalfSpace * 2 + DotRadius * OperatorStroke / Stroke define EqDotDistance : EqualHalfSpace * 2 + DotRadius * OperatorStroke / Stroke
WithDotVariants 'oneDotApproxEq' 0x2250 : function [DrawAt kr ov] : glyph-proc WithDotVariants 'oneDotApproxEq' 0x2250 : function [DrawAt kr ov] : glyph-proc
@ -165,6 +163,31 @@ glyph-block Symbol-Math-Relation-Equal : begin
g4 Middle (SymbolMid - EqualHalfSpace) [heading Rightward] g4 Middle (SymbolMid - EqualHalfSpace) [heading Rightward]
g4 [mix Middle RightSB kArcExtX] (SymbolMid - EqualHalfSpace * kArcExtY1) g4 [mix Middle RightSB kArcExtX] (SymbolMid - EqualHalfSpace * kArcExtY1)
create-glyph 'equalParallel' 0x22D5 : composite-proc
refer-glyph 'equal'
refer-glyph 'parallel'
create-glyph 'equalDoubleSlash' 0x29E3 : composite-proc
EqualShape [mix SB 0 0.5] [mix RightSB Width 0.5]
refer-glyph 'doubleSlash'
create-glyph 'equalDoubleSlashTilde' 0x29E4 : composite-proc
refer-glyph 'equalDoubleSlash'
TildeShape
ttop -- ParenTop + AccentClearance + AccentHeight * 0.75
tbot -- ParenTop + AccentClearance
leftEnd -- (Middle - markExtend * 1.5)
rightEnd -- (Middle + markExtend * 1.5)
hs -- markHalfStroke
create-glyph 'identDoubleSlash' 0x29E5 : composite-proc
IdentShape [mix SB 0 0.5] [mix RightSB Width 0.5]
refer-glyph 'doubleSlash'
create-glyph 'equalDivides' 0x29E7 : composite-proc
refer-glyph 'equal'
refer-glyph 'divides'
turned 'equalDot' 0x2A66 'oneDotApproxEq' Middle SymbolMid turned 'equalDot' 0x2A66 'oneDotApproxEq' Middle SymbolMid
WithDotVariants 'oneDotIdent' 0x2A67 : function [DrawAt kr ov] : glyph-proc WithDotVariants 'oneDotIdent' 0x2A67 : function [DrawAt kr ov] : glyph-proc
@ -172,6 +195,18 @@ glyph-block Symbol-Math-Relation-Equal : begin
include : refer-glyph 'ident' include : refer-glyph 'ident'
include : DrawAt Middle (SymbolMid + EqualHalfSpace * 0.5 + EqDotDistance) (dr - ov) include : DrawAt Middle (SymbolMid + EqualHalfSpace * 0.5 + EqDotDistance) (dr - ov)
create-glyph 'identParallel' 0x2A68 : composite-proc
refer-glyph 'ident'
refer-glyph 'parallel'
create-glyph 'identInterleave' 0x2A69 : composite-proc
IdentShape [mix SB 0 0.5] [mix RightSB Width 0.5]
refer-glyph 'interleave'
create-glyph 'identDivides' 0x2BD2 : composite-proc
refer-glyph 'ident'
refer-glyph 'divides'
glyph-block Symbol-Math-Relation-Addons : begin glyph-block Symbol-Math-Relation-Addons : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives

View file

@ -10,6 +10,8 @@ glyph-block Symbol-Math-VAndCup : begin
glyph-block-import Letter-Latin-U : UShape glyph-block-import Letter-Latin-U : UShape
glyph-block-import Letter-Greek-Pi : PiShape glyph-block-import Letter-Greek-Pi : PiShape
glyph-block-import Symbol-Arrow : ArrowShape glyph-block-import Symbol-Arrow : ArrowShape
glyph-block-import Symbol-Math-Relation-Common : EqualHalfSpace
glyph-block-import NotGlyphFn : NotGlyphSw
define [VeeShape top bot sw] : union define [VeeShape top bot sw] : union
dispiro dispiro
@ -31,10 +33,6 @@ glyph-block Symbol-Math-VAndCup : begin
create-glyph 'wedge/aplThin' : WedgeShape OperTop OperBot [AdviceStroke 4] create-glyph 'wedge/aplThin' : WedgeShape OperTop OperBot [AdviceStroke 4]
create-glyph 'vee/aplThin' : VeeShape OperTop OperBot [AdviceStroke 4] create-glyph 'vee/aplThin' : VeeShape OperTop OperBot [AdviceStroke 4]
create-glyph 'mt/projection' 0x2305 : union
HBar.t SB RightSB OperTop OperatorStroke
WedgeShape (OperTop - OperatorStroke) OperBot
define [WedgeBarGap] : Math.max [AdviceStroke 4] ((OperTop - OperBot) / 8) define [WedgeBarGap] : Math.max [AdviceStroke 4] ((OperTop - OperBot) / 8)
create-glyph 'math/logic/xor' 0x22BB : let [gap : WedgeBarGap] : union create-glyph 'math/logic/xor' 0x22BB : let [gap : WedgeBarGap] : union
@ -49,11 +47,6 @@ glyph-block Symbol-Math-VAndCup : begin
HBar.t SB RightSB OperTop OperatorStroke HBar.t SB RightSB OperTop OperatorStroke
VeeShape (OperTop - OperatorStroke - gap) OperBot VeeShape (OperTop - OperatorStroke - gap) OperBot
create-glyph 'mt/perspective' 0x2306 : let [gap : WedgeBarGap] : union
HBar.t SB RightSB OperTop OperatorStroke
HBar.t SB RightSB (OperTop - OperatorStroke - gap) OperatorStroke
WedgeShape (OperTop - 2 * OperatorStroke - gap) OperBot
create-glyph 'curlyVee' 0x22CE : glyph-proc create-glyph 'curlyVee' 0x22CE : glyph-proc
local fine : CThin * OperatorStroke local fine : CThin * OperatorStroke
include : dispiro include : dispiro
@ -67,6 +60,15 @@ glyph-block Symbol-Math-VAndCup : begin
turned 'curlyWedge' 0x22CF 'curlyVee' Middle SymbolMid turned 'curlyWedge' 0x22CF 'curlyVee' Middle SymbolMid
create-glyph 'mt/projection' 0x2305 : union
HBar.t SB RightSB OperTop OperatorStroke
WedgeShape (OperTop - OperatorStroke) OperBot
create-glyph 'mt/perspective' 0x2306 : let [gap : WedgeBarGap] : union
HBar.t SB RightSB OperTop OperatorStroke
HBar.t SB RightSB (OperTop - OperatorStroke - gap) OperatorStroke
WedgeShape (OperTop - 2 * OperatorStroke - gap) OperBot
create-glyph 'doubleVee' 0x2A54 : glyph-proc create-glyph 'doubleVee' 0x2A54 : glyph-proc
define sw : AdviceStroke 6 define sw : AdviceStroke 6
include : dispiro include : dispiro
@ -102,9 +104,29 @@ glyph-block Symbol-Math-VAndCup : begin
turned 'doubleWedge' 0x2A53 'doubleVee' Middle SymbolMid turned 'doubleWedge' 0x2A53 'doubleVee' Middle SymbolMid
create-glyph 'math/logic/equalAnd' 0x2A5E : let [gap : WedgeBarGap] : union
HBar.t SB RightSB (OperTop + EqualHalfSpace * 0.75) OperatorStroke
HBar.t SB RightSB (OperTop - EqualHalfSpace * 0.75) OperatorStroke
WedgeShape (OperTop - OperatorStroke - EqualHalfSpace * 0.75 - gap) OperBot
create-glyph 'math/logic/xand' 0x2A5F : let [gap : WedgeBarGap] : union
HBar.b SB RightSB OperBot OperatorStroke
WedgeShape OperTop (OperBot + OperatorStroke + gap)
create-glyph 'math/logic/andEqual' 0x2A60 : let [gap : WedgeBarGap] : union
HBar.b SB RightSB (OperBot - EqualHalfSpace * 0.75) OperatorStroke
HBar.b SB RightSB (OperBot + EqualHalfSpace * 0.75) OperatorStroke
WedgeShape OperTop (OperBot + OperatorStroke + EqualHalfSpace * 0.75 + gap)
alias 'veeUnderbar' 0x2A61 'math/logic/xor'
turned 'math/logic/equalOr' 0x2A62 'math/logic/andEqual' Middle SymbolMid
turned 'math/logic/orEqual' 0x2A63 'math/logic/equalAnd' Middle SymbolMid
create-glyph 'cup' 0x222A : glyph-proc create-glyph 'cup' 0x222A : glyph-proc
include : UShape [DivFrame 1] OperTop OperBot (stroke -- OperatorStroke) include : UShape [DivFrame 1] OperTop OperBot (stroke -- OperatorStroke)
turned 'cap' 0x2229 'cup' Middle SymbolMid
define ThinCupStroke : AdviceStroke 4 define ThinCupStroke : AdviceStroke 4
create-glyph 'thinCup' : glyph-proc create-glyph 'thinCup' : glyph-proc
include : UShape [DivFrame 1] OperTop OperBot (stroke -- ThinCupStroke) include : UShape [DivFrame 1] OperTop OperBot (stroke -- ThinCupStroke)
@ -130,18 +152,18 @@ glyph-block Symbol-Math-VAndCup : begin
include : Translate Middle (OperBot + ArchDepth) include : Translate Middle (OperBot + ArchDepth)
include : Regizmo include : Regizmo
define cupInnerPlusSw : AdviceStroke 6
define cupInnerPlusSize : Math.min (RightSB - SB - ThinCupStroke * HVContrast * (2 + 0.5 * cupInnerPlusSw / ThinCupStroke)) ((RightSB - SB) * 0.8)
create-glyph 'cupPlus' 0x228E : glyph-proc create-glyph 'cupPlus' 0x228E : glyph-proc
include [refer-glyph 'thinCup'] AS_BASE ALSO_METRICS include [refer-glyph 'thinCup'] AS_BASE ALSO_METRICS
local sw : AdviceStroke 6
local size : Math.min (RightSB - SB - ThinCupStroke * HVContrast * (2 + 0.5 * sw / ThinCupStroke)) ((RightSB - SB) * 0.8)
include : dispiro include : dispiro
widths.center sw widths.center cupInnerPlusSw
corner (Middle - size / 2) (OperBot + ArchDepth) corner (Middle - cupInnerPlusSize / 2) (OperBot + ArchDepth)
corner (Middle + size / 2) (OperBot + ArchDepth) corner (Middle + cupInnerPlusSize / 2) (OperBot + ArchDepth)
include : dispiro include : dispiro
widths.center sw widths.center cupInnerPlusSw
corner Middle (OperBot + ArchDepth - size / 2) corner Middle (OperBot + ArchDepth - cupInnerPlusSize / 2)
corner Middle (OperBot + ArchDepth + size / 2) corner Middle (OperBot + ArchDepth + cupInnerPlusSize / 2)
create-glyph 'doubleCup' 0x22D3 : glyph-proc create-glyph 'doubleCup' 0x22D3 : glyph-proc
local sw : AdviceStroke 6 local sw : AdviceStroke 6
@ -153,14 +175,59 @@ glyph-block Symbol-Math-VAndCup : begin
ada -- [ArchDepthAOf (ArchDepth - sw - gap) Width] ada -- [ArchDepthAOf (ArchDepth - sw - gap) Width]
adb -- [ArchDepthBOf (ArchDepth - sw - gap) Width] adb -- [ArchDepthBOf (ArchDepth - sw - gap) Width]
turned 'cap' 0x2229 'cup' Middle SymbolMid
turned 'capDot' 0x2A40 'cupDot' Middle SymbolMid
turned 'doubleCap' 0x22D2 'doubleCup' Middle SymbolMid turned 'doubleCap' 0x22D2 'doubleCup' Middle SymbolMid
define pitchForkTop : [mix OperBot OperTop 1.2] + Stroke / 4
create-glyph 'pitchFork' 0x22D4 : composite-proc create-glyph 'pitchFork' 0x22D4 : composite-proc
UShape [DivFrame 1] OperTop OperBot (stroke -- [AdviceStroke 3.25]) UShape [DivFrame 1] OperTop OperBot (stroke -- [AdviceStroke 3.25])
FlipAround Middle SymbolMid FlipAround Middle SymbolMid
VBar.m Middle OperBot ([mix OperBot OperTop 1.2] + Stroke / 4) [AdviceStroke 3.25] VBar.m Middle OperBot pitchForkTop [AdviceStroke 3.25]
create-glyph 'elementUp' 0x27D2 : glyph-proc
include [refer-glyph 'thinCup'] AS_BASE ALSO_METRICS
include : VBar.m Middle OperBot OperTop ThinCupStroke
turned 'capDot' 0x2A40 'cupDot' Middle SymbolMid
create-glyph 'cupMinus' 0x2A41 : glyph-proc
include [refer-glyph 'thinCup'] AS_BASE ALSO_METRICS
include : HBar.m (Middle - cupInnerPlusSize / 2) (Middle + cupInnerPlusSize / 2) (OperBot + ArchDepth) cupInnerPlusSw
create-glyph 'cupOverbar' 0x2A42 : let [gap : WedgeBarGap] : glyph-proc
include : UShape [DivFrame 1] (OperTop - OperatorStroke - gap) OperBot (stroke -- OperatorStroke)
include : HBar.t SB RightSB OperTop OperatorStroke
create-glyph 'capOverbar' 0x2A43 : let [gap : WedgeBarGap] : glyph-proc
include : UShape [DivFrame 1] OperTop (OperBot + OperatorStroke + gap) (stroke -- OperatorStroke)
include : FlipAround Middle SymbolMid
include : HBar.t SB RightSB OperTop OperatorStroke
turned 'elementDown' 0x2AD9 'elementUp' Middle SymbolMid
create-glyph 'transversalIntersection' 0x2ADB : glyph-proc
local top : mix SymbolMid OperTop 0.5
local bot : mix SymbolMid OperBot 0.5
include : UShape [DivFrame 1] top bot (stroke -- ThinCupStroke)
include : FlipAround Middle [mix top bot 0.5]
include : VBar.m Middle OperBot OperTop ThinCupStroke
create-glyph 'pitchForkTeeTop' 0x2ADA : glyph-proc
include [refer-glyph 'pitchFork'] AS_BASE ALSO_METRICS
include : HBar.t [mix Middle SB 0.5] [mix Middle RightSB 0.5] pitchForkTop OperatorStroke
create-glyph 'nonForking' 0x2ADD : glyph-proc
local top : mix SymbolMid OperTop 0.75
local bot : mix SymbolMid OperBot 0.75
local mid : mix SymbolMid OperTop 0.25
include : UShape [DivFrame 1] mid bot (stroke -- ThinCupStroke)
include : VBar.m Middle bot top ThinCupStroke
create-glyph 'forking' 0x2ADC : glyph-proc
include [refer-glyph 'nonForking'] AS_BASE ALSO_METRICS
include : dispiro
widths.center NotGlyphSw
flat SB OperBot
curl RightSB OperTop
create-glyph 'squareCap' 0x2293 : glyph-proc create-glyph 'squareCap' 0x2293 : glyph-proc
include : PiShape [DivFrame 1] OperTop OperBot (shrinkRate -- 0) (fine -- OperatorStroke) (doSerif -- false) include : PiShape [DivFrame 1] OperTop OperBot (shrinkRate -- 0) (fine -- OperatorStroke) (doSerif -- false)

View file

@ -47,6 +47,20 @@ glyph-block Symbol-Punctuation-Bar : begin
include : ForceUpright include : ForceUpright
include : DoubleBarShape include : DoubleBarShape
define [TripleBarShape] : glyph-proc
set-base-anchor 'above' Middle ParenTop
set-base-anchor 'below' Middle ParenBot
local sw : AdviceStroke 4.25
include : VBar.m (Middle - Width * 0.2625) ParenBot ParenTop sw
include : VBar.m Middle ParenBot ParenTop sw
include : VBar.m (Middle + Width * 0.2625) ParenBot ParenTop sw
create-glyph 'tripleBar.upright' : TripleBarShape
create-glyph 'tripleBar.slanted.naturalSlope' : TripleBarShape
create-glyph 'tripleBar.slanted.forceUpright' : glyph-proc
include : ForceUpright
include : TripleBarShape
define [BrokenBarShape] : glyph-proc define [BrokenBarShape] : glyph-proc
local breakDist : Math.max Stroke (CAP / 8) local breakDist : Math.max Stroke (CAP / 8)
include : VBar.m Middle (SymbolMid + breakDist / 2) ParenTop include : VBar.m Middle (SymbolMid + breakDist / 2) ParenTop
@ -67,9 +81,10 @@ glyph-block Symbol-Punctuation-Bar : begin
orthographic-slanted 'bar' '|' orthographic-slanted 'bar' '|'
select-variant 'doubleBar.slanted' (follow -- 'bar.slanted') select-variant 'doubleBar.slanted' (follow -- 'bar.slanted')
orthographic-slanted 'doubleBar' 0x2016 orthographic-slanted 'doubleBar' 0x2016
select-variant 'tripleBar.slanted' (follow -- 'bar.slanted')
orthographic-slanted 'tripleBar' 0x2AFC
select-variant 'brokenBar.slanted' (follow -- 'bar.slanted') select-variant 'brokenBar.slanted' (follow -- 'bar.slanted')
orthographic-slanted 'brokenBar' 0xA6 orthographic-slanted 'brokenBar' 0xA6
alias 'dentalclick' 0x1C0 'bar.upright' alias 'dentalclick' 0x1C0 'bar.upright'
alias 'alveolarlateralclick' 0x1C1 'doubleBar.upright' alias 'alveolarlateralclick' 0x1C1 'doubleBar.upright'
alias 'mathBar' 0x2223 'bar.upright' alias 'retroflexlateralclick' 0x2980 'tripleBar.upright'
alias 'parallel' 0x2225 'doubleBar.upright'

View file

@ -183,6 +183,12 @@ glyph-block Symbol-Punctuation-Brackets : begin
HBar.m hDim.l hDim.r [mix ParenBot ParenTop 0.5] HBar.m hDim.l hDim.r [mix ParenBot ParenTop 0.5]
VBar.l hDim.l ParenBot ParenTop VBar.l hDim.l ParenBot ParenTop
create-glyph 'barBarLeft' 0x2E20 : glyph-proc
local hDim : Bracket.HDim
include : union
HBar.m hDim.l hDim.r [mix ParenBot ParenTop 0.5]
VBar.l hDim.l ParenBot ParenTop
turned 'bracketRight' ']' 'bracketLeft' Middle SymbolMid turned 'bracketRight' ']' 'bracketLeft' Middle SymbolMid
turned 'bracketRightUHalf' 0x2E23 'bracketLeftLHalf' Middle SymbolMid turned 'bracketRightUHalf' 0x2E23 'bracketLeftLHalf' Middle SymbolMid
turned 'bracketRightLHalf' 0x2E25 'bracketLeftUHalf' Middle SymbolMid turned 'bracketRightLHalf' 0x2E25 'bracketLeftUHalf' Middle SymbolMid
@ -191,6 +197,7 @@ glyph-block Symbol-Punctuation-Brackets : begin
turned 'bracketRightUpper' 0x23A4 'bracketLeftLower' Middle SymbolMid turned 'bracketRightUpper' 0x23A4 'bracketLeftLower' Middle SymbolMid
turned 'dblBracketRight' 0x27E7 'dblBracketLeft' Middle SymbolMid turned 'dblBracketRight' 0x27E7 'dblBracketLeft' Middle SymbolMid
turned 'bracketBarRight' 0x2046 'bracketBarLeft' Middle SymbolMid turned 'bracketBarRight' 0x2046 'bracketBarLeft' Middle SymbolMid
turned 'barBarRight' 0x2E21 'barBarLeft' Middle SymbolMid
create-glyph 'ligExtBracketRight' : glyph-proc create-glyph 'ligExtBracketRight' : glyph-proc
include [refer-glyph 'ligExtBracketLeft'] AS_BASE ALSO_METRICS include [refer-glyph 'ligExtBracketLeft'] AS_BASE ALSO_METRICS

View file

@ -88,5 +88,17 @@ glyph-block Symbol-Punctuation-Ellipsis : begin
set-width df.width set-width df.width
include : VFourDotShape DrawAt kDotRadius overshoot df.middle (-XH / 6) (XH * 7 / 6) include : VFourDotShape DrawAt kDotRadius overshoot df.middle (-XH / 6) (XH * 7 / 6)
create-glyph "mathTriColon.\(suffix)" : glyph-proc
local df : DivFrame para.diversityF
set-width df.width
include : VThreeDotsShape DrawAt kDotRadius overshoot 0 df.width 0 (SymbolMid - XH / 2) (SymbolMid + XH / 2)
create-glyph "mathQuadColon.\(suffix)" : glyph-proc
local df : DivFrame para.diversityF
set-width df.width
include : VFourDotShape DrawAt kDotRadius overshoot df.middle (SymbolMid - XH * 2 / 3) (SymbolMid + XH * 2 / 3)
select-variant "triColon" 0x205D (follow -- 'punctuationDot') select-variant "triColon" 0x205D (follow -- 'punctuationDot')
select-variant "quadColon" 0x205E (follow -- 'punctuationDot') select-variant "quadColon" 0x205E (follow -- 'punctuationDot')
select-variant "mathTriColon" 0x2AF6 (follow -- 'punctuationDot')
select-variant "mathQuadColon" 0x2999 (follow -- 'punctuationDot')

View file

@ -62,7 +62,7 @@ glyph-block Symbol-Punctuation-Slashes-And-Number-Sign : begin
include : BackslashShape (Middle - backslashWidth / 2) (Middle + backslashWidth / 2) include : BackslashShape (Middle - backslashWidth / 2) (Middle + backslashWidth / 2)
alias 'mathSetMinus' 0x2216 'backslash' alias 'mathSetMinus' 0x2216 'backslash'
alias 'mathBackSlash' 0x29F5 'backslash' alias 'mathBackslash' 0x29F5 'backslash'
create-glyph 'slashOverbar' 0x29F6 : glyph-proc create-glyph 'slashOverbar' 0x29F6 : glyph-proc
include : refer-glyph "slash" include : refer-glyph "slash"
@ -70,7 +70,7 @@ glyph-block Symbol-Punctuation-Slashes-And-Number-Sign : begin
create-glyph 'backslashBar' 0x29F7 : glyph-proc create-glyph 'backslashBar' 0x29F7 : glyph-proc
include : refer-glyph "backslash" include : refer-glyph "backslash"
include : HBar.m SB RightSB SymbolMid OperatorStroke include : HBar.m SB RightSB SymbolMid OverlayStroke
create-glyph 'backslash.left' : glyph-proc create-glyph 'backslash.left' : glyph-proc
Joining.set currentGlyph Joining.Classes.Right Joining.set currentGlyph Joining.Classes.Right