1489 lines
58 KiB
Text
1489 lines
58 KiB
Text
###### Mathematical symbols
|
|
$$include '../meta/macros.ptl'
|
|
|
|
import [mix linreg clamp fallback] from '../support/utils'
|
|
import [designParameters] from '../meta/aesthetics'
|
|
|
|
glyph-module
|
|
|
|
glyph-block NotGlyphFn : begin
|
|
glyph-block-import CommonShapes
|
|
glyph-block-export notGlyph
|
|
|
|
define [notGlyphGeneric newid unicode oldid top bot prop shift F] : begin
|
|
create-glyph (newid || 'not' + oldid) : glyph-construction
|
|
if unicode : assign-unicode unicode
|
|
include : refer-glyph oldid
|
|
include : F
|
|
fallback top bgopTop
|
|
fallback bot bgopBot
|
|
mix SB RightSB [fallback prop 0.25]
|
|
mix RightSB SB [fallback prop 0.25]
|
|
adviceBlackness 4
|
|
fallback shift 0
|
|
|
|
define [notGlyph] : params [newid unicode oldid top bot prop shift] : begin
|
|
notGlyphGeneric newid unicode oldid top bot prop shift
|
|
lambda [t b l r sw sh] : dispiro
|
|
widths.center sw
|
|
flat (sh + l) b
|
|
curl (sh + r) t
|
|
|
|
define [notGlyph.right] : params [newid unicode oldid top bot prop shift] : begin
|
|
notGlyph newid unicode oldid top bot prop (-OperatorStroke * 0.5)
|
|
define [notGlyph.left] : params [newid unicode oldid top bot prop shift] : begin
|
|
notGlyph newid unicode oldid top bot prop (OperatorStroke * 0.5)
|
|
define [notGlyph.generic] : params [newid unicode oldid top bot prop shift F] : begin
|
|
notGlyphGeneric newid unicode oldid top bot prop shift F
|
|
|
|
glyph-block Symbol-Math-Letter-Like : begin
|
|
|
|
glyph-block-import CommonShapes
|
|
glyph-block-import Overmarks
|
|
glyph-block-import Letter-Latin-Upper-A : LambdaShape AMaskShape DeltaShape
|
|
glyph-block-import Letter-Latin-Upper-E : RevEShape
|
|
|
|
sketch # micro
|
|
include [refer-glyph 'mu'] AS_BASE
|
|
if SLAB : if (!para.isItalic) : begin
|
|
include : tagged 'serifLB' : CenterBottomSerif (SB + HalfStroke * HVContrast) Descender Jut
|
|
save 'micro' 0xB5
|
|
|
|
sketch # forall
|
|
include : LambdaShape CAP OperatorStroke true
|
|
eject-contour 'serif'
|
|
include : intersection
|
|
AMaskShape CAP OperatorStroke true
|
|
HBar 0 Width (XH / 2) OperatorStroke
|
|
include : FlipAround Middle (CAP / 2)
|
|
|
|
save 'forall' 0x2200
|
|
|
|
sketch # exists
|
|
include : RevEShape (top -- CAP) (pyBar -- 0.51) (noSerif -- true)
|
|
save 'exists' 0x2203
|
|
|
|
sketch # emptyset
|
|
include : OShape CAP 0 SB RightSB OperatorStroke
|
|
|
|
local fine : OperatorStroke / 2
|
|
include : dispiro
|
|
widths.center OperatorStroke
|
|
flat (SB + O + fine) [mix CAP 0 1.05]
|
|
curl (RightSB - O - fine) [mix 0 CAP 1.05]
|
|
|
|
save 'emptyset' 0x2205
|
|
|
|
sketch # increment
|
|
include MarkSet.capital
|
|
include : DeltaShape CAP OperatorStroke true
|
|
save 'increment' 0x2206
|
|
turned 'nabla' 0x2207 'increment' Middle (CAP / 2)
|
|
|
|
if [not recursive] : for-width-kinds WideWidth1 : do
|
|
local s : (RightSB - SB - O * 4 + (MosaicWidth - Width) * 0.5) / CAP
|
|
local df : Miniature
|
|
glyphs -- {'eight.lnum' 'rotetedpropto'}
|
|
crowd -- 4
|
|
scale -- s
|
|
slantAngle -- 0
|
|
|
|
sketch # infty
|
|
set-width MosaicWidth
|
|
include df.'eight.lnum'
|
|
apply-transform : Translate (-(Width / 2)) (-CAP / 2)
|
|
apply-transform : Rotate (Math.PI / 2)
|
|
apply-transform : Scale s
|
|
apply-transform : Translate (MosaicWidth / 2) symbolMid
|
|
apply-transform : Italify
|
|
save [MangleName 'infty'] [MangleUnicode 0x221E]
|
|
|
|
sketch # propto
|
|
set-width MosaicWidth
|
|
include df.rotetedpropto
|
|
apply-transform : Translate (-(Width / 2)) (-CAP / 2)
|
|
apply-transform : Rotate (Math.PI / 2)
|
|
apply-transform : Scale s
|
|
apply-transform : Translate (MosaicWidth / 2) symbolMid
|
|
apply-transform : Italify
|
|
save [MangleName 'propto'] [MangleUnicode 0x221D]
|
|
|
|
sketch # partial
|
|
include MarkSet.b
|
|
include : OShape (CAP * 0.65) 0 SB RightSB OperatorStroke
|
|
include : dispiro
|
|
widths.lhs OperatorStroke
|
|
flat (RightSB - OX) SmallSmoothA
|
|
curl (RightSB - OX) (CAP - SmallSmoothB)
|
|
hookend (CAP - O)
|
|
g4 SB (CAP - Hook)
|
|
save 'partial' 0x2202
|
|
|
|
glyph-block Symbol-Math-Frame-And-Geometry : begin
|
|
glyph-block-import CommonShapes
|
|
local sw GeometryStroke
|
|
local kBox : 2 / 3
|
|
local leftBox : SB * kBox
|
|
local rightBox : Width - SB * kBox
|
|
local radiusBox : (rightBox - leftBox) / 2
|
|
local topBox : symbolMid + radiusBox
|
|
local bottomBox : symbolMid - radiusBox
|
|
|
|
|
|
local kCircle : 2 / 3
|
|
local leftCircle : SB * kCircle
|
|
local rightCircle : Width - SB * kCircle
|
|
local radiusCircle : (rightCircle - leftCircle) / 2
|
|
|
|
sketch # mathO
|
|
include : dispiro
|
|
widths.lhs GeometryStroke
|
|
g4 Middle (symbolMid + radiusCircle - O)
|
|
archv nothing 2
|
|
g4 (leftCircle + O) symbolMid
|
|
arcvh nothing 2
|
|
g4 Middle (symbolMid - radiusCircle + O)
|
|
archv nothing 2
|
|
g4 (rightCircle - O) symbolMid
|
|
arcvh nothing 2
|
|
close
|
|
save 'mathO'
|
|
sketch # mathO-outline
|
|
include : spiro-outline
|
|
g4 Middle (symbolMid + radiusCircle)
|
|
archv nothing 2
|
|
g4 (leftCircle) symbolMid
|
|
arcvh nothing 2
|
|
g4 Middle (symbolMid - radiusCircle)
|
|
archv nothing 2
|
|
g4 (rightCircle) symbolMid
|
|
arcvh nothing 2
|
|
close
|
|
save 'mathOOutline'
|
|
sketch # mathBoxOutline
|
|
include : spiro-outline
|
|
corner leftBox topBox
|
|
corner leftBox bottomBox
|
|
corner rightBox bottomBox
|
|
corner rightBox topBox
|
|
save 'mathBoxOutline'
|
|
sketch # mathBox
|
|
include : intersection [refer-glyph 'mathBoxOutline'] : union
|
|
dispiro [widths.lhs sw] [flat leftBox topBox] [curl leftBox bottomBox]
|
|
dispiro [widths.lhs sw] [flat leftBox bottomBox] [curl rightBox bottomBox]
|
|
dispiro [widths.lhs sw] [flat rightBox bottomBox] [curl rightBox topBox]
|
|
dispiro [widths.lhs sw] [flat rightBox topBox] [curl leftBox topBox]
|
|
save 'mathBox'
|
|
|
|
for-width-kinds WideWidth1
|
|
local radiusBig : (tackTop - tackBot) / 2 * [Math.sqrt MosaicWidthScalar]
|
|
local leftBig : MosaicMiddle - radiusBig
|
|
local rightBig : MosaicMiddle + radiusBig
|
|
sketch # mathOBig
|
|
set-width MosaicWidth
|
|
include : dispiro
|
|
widths.lhs GeometryStroke
|
|
g4 MosaicMiddle (symbolMid + radiusBig - O)
|
|
archv nothing 2
|
|
g4 (leftBig + O) symbolMid
|
|
arcvh nothing 2
|
|
g4 MosaicMiddle (symbolMid - radiusBig + O)
|
|
archv nothing 2
|
|
g4 (rightBig - O) symbolMid
|
|
arcvh nothing 2
|
|
close
|
|
save [MangleName 'mathOBig']
|
|
sketch # mathOOutlineBig
|
|
set-width MosaicWidth
|
|
include : spiro-outline
|
|
g4 MosaicMiddle (symbolMid + radiusBig)
|
|
archv nothing 2
|
|
g4 (leftBig) symbolMid
|
|
arcvh nothing 2
|
|
g4 MosaicMiddle (symbolMid - radiusBig)
|
|
archv nothing 2
|
|
g4 (rightBig) symbolMid
|
|
arcvh nothing 2
|
|
close
|
|
save [MangleName 'mathOOutlineBig']
|
|
|
|
do "Geometry"
|
|
sketch
|
|
include : intersection
|
|
spiro-outline
|
|
corner leftBox bottomBox
|
|
corner rightBox bottomBox
|
|
corner rightBox topBox
|
|
union
|
|
dispiro [widths.lhs sw] [flat leftBox bottomBox] [curl rightBox bottomBox]
|
|
dispiro [widths.lhs sw] [flat rightBox bottomBox] [curl rightBox topBox]
|
|
dispiro [widths.lhs sw] [flat rightBox topBox] [curl leftBox bottomBox]
|
|
save 'mathRightTriangle' 0x22BF
|
|
sketch
|
|
include : intersection
|
|
spiro-outline
|
|
corner leftBox bottomBox
|
|
corner rightBox bottomBox
|
|
corner rightBox topBox
|
|
union
|
|
dispiro [widths.lhs sw] [flat leftBox bottomBox] [curl rightBox bottomBox]
|
|
dispiro [widths.lhs sw] [flat rightBox topBox] [curl leftBox bottomBox]
|
|
save 'angle' 0x2220
|
|
sketch
|
|
include : intersection
|
|
spiro-outline
|
|
corner leftBox bottomBox
|
|
corner rightBox bottomBox
|
|
corner rightBox topBox
|
|
corner leftBox topBox
|
|
union
|
|
dispiro [widths.lhs sw] [flat leftBox bottomBox] [curl rightBox bottomBox]
|
|
dispiro [widths.lhs sw] [flat leftBox topBox] [curl leftBox bottomBox]
|
|
save 'rightAngle' 0x221F
|
|
|
|
glyph-block Symbol-Math-Arith : begin
|
|
glyph-block-import CommonShapes
|
|
glyph-block-export PlusShape
|
|
|
|
define [PlusShape left right s sw] : union
|
|
HBar left right symbolMid [fallback sw OperatorStroke]
|
|
VBar (Middle + [fallback s 0]) plusTop plusBot [fallback sw OperatorStroke]
|
|
|
|
sketch # plus
|
|
include : PlusShape SB RightSB
|
|
save 'plus' '+'
|
|
sketch # plus
|
|
include : PlusShape SB RightSB 0 GeometryStroke
|
|
save 'innerPlus'
|
|
|
|
sketch # minus
|
|
include : HBar SB RightSB symbolMid OperatorStroke
|
|
save 'minus' 0x2212
|
|
include : DotAt Middle plusTop DotRadius
|
|
save 'minusDot' 0x2238
|
|
|
|
sketch # colon-equal
|
|
include : refer-glyph "baselineDot"
|
|
include : refer-glyph "xhDot"
|
|
|
|
local sbSquash 0.5
|
|
|
|
local delta : Math.max 0 : Width / 2 - DotRadius - SB * sbSquash
|
|
apply-transform : Upright
|
|
apply-transform : Translate (+delta) (symbolMid - XH / 2)
|
|
apply-transform : Italify
|
|
|
|
include : HBar (SB * sbSquash) (RightSB - DotSize) symbolMid OperatorStroke
|
|
save 'minusColon' 0x2239
|
|
|
|
sketch # innerMinus
|
|
include : HBar SB RightSB symbolMid GeometryStroke
|
|
save 'innerMinus'
|
|
|
|
sketch # plusminus
|
|
include : HBarBottom SB RightSB 0 OperatorStroke
|
|
include : refer-glyph "plus"
|
|
save 'plusminus' 0xB1
|
|
turned 'minusplus' 0x2213 'plusminus' Middle symbolMid
|
|
create-glyph 'dotplus' 0x2214 : glyph-construction
|
|
local gap : adviceBlackness 12
|
|
include : union
|
|
DotAt Middle (symbolMid * 2 - OperatorStroke / 2) DotRadius
|
|
difference
|
|
refer-glyph 'plus'
|
|
DotAt Middle (symbolMid * 2 - OperatorStroke / 2) (DotRadius + gap)
|
|
|
|
sketch # multiply
|
|
local radius : (RightSB - SB) / 2
|
|
include : dispiro
|
|
widths.center OperatorStroke
|
|
flat (Middle - radius) (symbolMid - radius)
|
|
curl (Middle + radius) (symbolMid + radius)
|
|
save 'multiplyStroke1'
|
|
sketch # multiply
|
|
local radius : (RightSB - SB) / 2
|
|
include : dispiro
|
|
widths.center OperatorStroke
|
|
flat (Middle + radius) (symbolMid - radius)
|
|
curl (Middle - radius) (symbolMid + radius)
|
|
save 'multiplyStroke2'
|
|
sketch # multiply
|
|
local radius : (RightSB - SB) / 2
|
|
include : dispiro
|
|
widths.center GeometryStroke
|
|
flat (Middle - radius) (symbolMid - radius)
|
|
curl (Middle + radius) (symbolMid + radius)
|
|
save 'innerMultiplyStroke1'
|
|
sketch # multiply
|
|
local radius : (RightSB - SB) / 2
|
|
include : dispiro
|
|
widths.center GeometryStroke
|
|
flat (Middle + radius) (symbolMid - radius)
|
|
curl (Middle - radius) (symbolMid + radius)
|
|
save 'innerMultiplyStroke2'
|
|
|
|
sketch # multiply
|
|
include : refer-glyph "multiplyStroke1"
|
|
include : refer-glyph "multiplyStroke2"
|
|
save 'multiply' 0xD7
|
|
|
|
sketch # innerMultiply
|
|
include : refer-glyph "innerMultiplyStroke1"
|
|
include : refer-glyph "innerMultiplyStroke2"
|
|
save 'innerMultiply'
|
|
|
|
sketch # divide
|
|
include : refer-glyph "minus"
|
|
local radius : (RightSB - SB) / 2
|
|
include : Ring (symbolMid + radius + DotRadius) (symbolMid + radius - DotRadius) (Middle - DotRadius + O) (Middle + DotRadius - O) true
|
|
include : Ring (symbolMid - radius + DotRadius) (symbolMid - radius - DotRadius) (Middle - DotRadius + O) (Middle + DotRadius - O) true
|
|
|
|
save 'divide' 0xF7
|
|
|
|
do
|
|
define fine : adviceBlackness 5.5
|
|
define radius : Math.max ((RightSB - SB) / 12) (fine / 2)
|
|
define barOffset radius
|
|
define dotCenterOffset : OX + fine + radius
|
|
sketch
|
|
include : difference
|
|
union
|
|
HBar (SB + barOffset) (RightSB - barOffset) symbolMid OperatorStroke
|
|
DotAt (SB + dotCenterOffset) symbolMid (radius + fine)
|
|
DotAt (RightSB - dotCenterOffset) symbolMid (radius + fine)
|
|
DotAt (SB + dotCenterOffset) symbolMid radius
|
|
save 'originalOf' 0x22b6
|
|
sketch
|
|
include : difference
|
|
union
|
|
HBar (SB + barOffset) (RightSB - barOffset) symbolMid OperatorStroke
|
|
DotAt (SB + dotCenterOffset) symbolMid (radius + fine)
|
|
DotAt (RightSB - dotCenterOffset) symbolMid (radius + fine)
|
|
DotAt (RightSB - dotCenterOffset) symbolMid radius
|
|
save 'imageOf' 0x22b7
|
|
sketch
|
|
include : difference
|
|
union
|
|
HBar SB (RightSB - barOffset) symbolMid OperatorStroke
|
|
DotAt (RightSB - dotCenterOffset) symbolMid (radius + fine)
|
|
DotAt (RightSB - dotCenterOffset) symbolMid radius
|
|
save 'multimap' 0x22b8
|
|
|
|
glyph-block Symbol-Math-Dots-And-Colons : begin
|
|
glyph-block-import CommonShapes
|
|
local radius1 PeriodRadius
|
|
local radius : Math.min PeriodRadius (0.5 * [adviceBlackness 3.5] * PeriodSize / Stroke)
|
|
local left : mix 0 Width (1 / 4)
|
|
local right : mix 0 Width (3 / 4)
|
|
sketch
|
|
include : Ring (XH - O) (XH - radius * 2 + O) (Middle - radius + O) (Middle + radius - O) true
|
|
include : Ring (radius * 2 - O) O (left - radius + O) (left + radius - O) true
|
|
include : Ring (radius * 2 - O) O (right - radius + O) (right + radius - O) true
|
|
save 'therefore' 0x2234
|
|
sketch
|
|
include : Ring (XH - O) (XH - radius * 2 + O) (left - radius + O) (left + radius - O) true
|
|
include : Ring (XH - O) (XH - radius * 2 + O) (right - radius + O) (right + radius - O) true
|
|
include : Ring (radius * 2 - O) O (Middle - radius + O) (Middle + radius - O) true
|
|
save 'because' 0x2235
|
|
sketch
|
|
include : Ring (PeriodRadius * 2 - O) O (Middle - PeriodRadius + O) (Middle + PeriodRadius - O) true
|
|
include : Ring (XH - O) (XH - PeriodRadius * 2 + O) (Middle - PeriodRadius + O) (Middle + PeriodRadius - O) true
|
|
save 'mathcolon' 0x2236
|
|
sketch # coloncolon
|
|
include : Ring (radius * 2 - O) O (left - radius + O) (left + radius - O) true
|
|
include : Ring (radius * 2 - O) O (right - radius + O) (right + radius - O) true
|
|
include : Ring (XH - O) (XH - radius * 2 + O) (left - radius + O) (left + radius - O) true
|
|
include : Ring (XH - O) (XH - radius * 2 + O) (right - radius + O) (right + radius - O) true
|
|
save 'coloncolon' 0x2237
|
|
|
|
sketch # mathcdot
|
|
include : Ring (symbolMid + PeriodRadius - O) (symbolMid - PeriodRadius + O) (Middle - PeriodRadius + O) (Middle + PeriodRadius - O) true
|
|
save 'mathcdot'
|
|
|
|
for-width-kinds WideWidth1
|
|
sketch # mathcdot
|
|
set-width MosaicWidth
|
|
include : Ring (symbolMid + PeriodRadius - O) (symbolMid - PeriodRadius + O) (MosaicMiddle - PeriodRadius + O) (MosaicMiddle + PeriodRadius - O) true
|
|
save [MangleName 'mathcdotBig']
|
|
|
|
sketch # plus
|
|
set-width MosaicWidth
|
|
include : union
|
|
HBar SB (MosaicWidth - SB) symbolMid GeometryStroke
|
|
VBar MosaicMiddle [mix symbolMid plusTop MosaicWidthScalar] [mix symbolMid plusBot MosaicWidthScalar] GeometryStroke
|
|
save : MangleName 'innerPlusBig'
|
|
|
|
sketch # innerMultiplyStroke1Big
|
|
set-width MosaicWidth
|
|
local radius : (RightSB - SB) / 2 * [Math.sqrt MosaicWidthScalar]
|
|
include : dispiro
|
|
widths.center GeometryStroke
|
|
flat (MosaicMiddle - radius) (symbolMid - radius)
|
|
curl (MosaicMiddle + radius) (symbolMid + radius)
|
|
save : MangleName 'innerMultiplyStroke1Big'
|
|
|
|
sketch # innerMultiplyStroke2Big
|
|
set-width MosaicWidth
|
|
local radius : (RightSB - SB) / 2 * [Math.sqrt MosaicWidthScalar]
|
|
include : dispiro
|
|
widths.center GeometryStroke
|
|
flat (MosaicMiddle + radius) (symbolMid - radius)
|
|
curl (MosaicMiddle - radius) (symbolMid + radius)
|
|
save : MangleName 'innerMultiplyStroke2Big'
|
|
|
|
sketch # innerMultiplyBig
|
|
set-width MosaicWidth
|
|
include : refer-glyph : MangleName "innerMultiplyStroke1Big"
|
|
include : refer-glyph : MangleName "innerMultiplyStroke2Big"
|
|
save : MangleName 'innerMultiplyBig'
|
|
|
|
|
|
composite 'mathAsterisk' [refer-glyph 'opAsterisk.low'] [into-unicode 0x2217]
|
|
|
|
glyph-block Symbol-Math-Circled : begin
|
|
glyph-block-import CommonShapes
|
|
composite [refer-glyph 'mathO'] [intersection [refer-glyph 'mathOOutline'] [refer-glyph 'innerPlus']] [into-unicode 0x2295]
|
|
composite [refer-glyph 'mathO'] [intersection [refer-glyph 'mathOOutline'] [refer-glyph 'innerMinus']] [into-unicode 0x2296]
|
|
composite [refer-glyph 'mathO'] [intersection [refer-glyph 'mathOOutline'] [refer-glyph 'innerMultiply']] [into-unicode 0x2297]
|
|
composite [refer-glyph 'mathO'] [intersection [refer-glyph 'mathOOutline'] [refer-glyph 'innerMultiplyStroke1']] [into-unicode 0x2298]
|
|
composite [refer-glyph 'mathO'] [intersection [refer-glyph 'mathOOutline'] [refer-glyph 'mathcdot']] [into-unicode 0x2299]
|
|
composite [refer-glyph 'mathO'] [intersection [refer-glyph 'mathOOutline'] [refer-glyph 'smallwhitecircle.NWID']] [into-unicode 0x229A]
|
|
composite [refer-glyph 'mathO'] [intersection [refer-glyph 'mathOOutline'] [refer-glyph 'mathAsterisk']] [into-unicode 0x229B]
|
|
|
|
for-width-kinds WideWidth1
|
|
composite [MangleName 'uni2A00'] [refer-glyph : MangleName 'mathOBig'] [intersection [refer-glyph : MangleName 'mathOOutlineBig'] [refer-glyph : MangleName 'mathcdotBig']] [into-unicode : MangleUnicode 0x2A00]
|
|
composite [MangleName 'uni2A01'] [refer-glyph : MangleName 'mathOBig'] [intersection [refer-glyph : MangleName 'mathOOutlineBig'] [refer-glyph : MangleName 'innerPlusBig']] [into-unicode : MangleUnicode 0x2A01]
|
|
composite [MangleName 'uni2A02'] [refer-glyph : MangleName 'mathOBig'] [intersection [refer-glyph : MangleName 'mathOOutlineBig'] [refer-glyph : MangleName 'innerMultiplyBig']] [into-unicode : MangleUnicode 0x2A02]
|
|
|
|
composite
|
|
refer-glyph 'mathO'
|
|
intersection
|
|
refer-glyph 'mathOOutline'
|
|
HBar (SB + GeometryStroke) (RightSB - GeometryStroke) symbolMid GeometryStroke
|
|
into-unicode 0x229D
|
|
|
|
local eqS : Math.min GeometryStroke ((RightSB - SB) / 8)
|
|
local eqD : Math.max eqS ((RightSB - SB) / 6)
|
|
composite
|
|
refer-glyph 'mathO'
|
|
intersection [refer-glyph 'mathOOutline'] : union
|
|
HBar (SB + eqS) (RightSB - eqS) (symbolMid + eqD) eqS
|
|
HBar (SB + eqS) (RightSB - eqS) (symbolMid - eqD) eqS
|
|
into-unicode 0x229C
|
|
|
|
glyph-block Symbol-Math-Boxed : begin
|
|
glyph-block-import CommonShapes
|
|
composite [refer-glyph 'mathBox'] [intersection [refer-glyph 'mathBoxOutline'] [refer-glyph 'innerPlus']] [into-unicode 0x229E]
|
|
composite [refer-glyph 'mathBox'] [intersection [refer-glyph 'mathBoxOutline'] [refer-glyph 'innerMinus']] [into-unicode 0x229F]
|
|
composite [refer-glyph 'mathBox'] [intersection [refer-glyph 'mathBoxOutline'] [refer-glyph 'innerMultiply']] [into-unicode 0x22A0]
|
|
composite [refer-glyph 'mathBox'] [intersection [refer-glyph 'mathBoxOutline'] [refer-glyph 'mathcdot']] [into-unicode 0x22A1]
|
|
|
|
glyph-block Symbol-Math-VAndCup : begin
|
|
glyph-block-import CommonShapes
|
|
glyph-block-import Letter-Latin-Upper-U : UShape
|
|
glyph-block-import Letter-Greek-Pi : PiShape
|
|
glyph-block-import Symbol-Arrow : ArrowShape
|
|
|
|
sketch # vee
|
|
include : dispiro
|
|
widths.center OperatorStroke
|
|
flat SB operTop [heading Downward]
|
|
curl Middle operBot [heading Downward]
|
|
|
|
include : dispiro
|
|
widths.center OperatorStroke
|
|
flat RightSB operTop [heading Downward]
|
|
curl Middle operBot [heading Downward]
|
|
save 'vee' 0x2228
|
|
turned 'wedge' 0x2227 'vee' Middle symbolMid
|
|
|
|
sketch # curlyVee
|
|
local fine : CThin * OperatorStroke
|
|
include : dispiro
|
|
g4 SB operTop [widths.center OperatorStroke]
|
|
straight.down.end (Middle - OperatorStroke / 2 * HVContrast) operBot [widths.heading fine 0 Downward]
|
|
|
|
include : dispiro
|
|
widths.center OperatorStroke
|
|
g4 RightSB operTop [widths.center OperatorStroke]
|
|
straight.down.end (Middle + OperatorStroke / 2 * HVContrast) operBot [widths.heading 0 fine Downward]
|
|
save 'curlyVee' 0x22CE
|
|
turned 'curlyWedge' 0x22CF 'curlyVee' Middle symbolMid
|
|
|
|
sketch # doubleVee
|
|
define sw : adviceBlackness 6
|
|
include : dispiro
|
|
widths.center sw
|
|
flat SB operTop [heading Downward]
|
|
curl Middle operBot [heading Downward]
|
|
|
|
include : dispiro
|
|
widths.center sw
|
|
flat RightSB operTop [heading Downward]
|
|
curl Middle operBot [heading Downward]
|
|
|
|
define offsetRatio : 1 / 4
|
|
define bias : (RightSB - SB) * offsetRatio
|
|
define a : dispiro
|
|
widths.center sw
|
|
flat (SB + bias) operTop [heading Downward]
|
|
curl (Middle + bias) operBot [heading Downward]
|
|
define b : dispiro
|
|
widths.center sw
|
|
flat (RightSB - bias) operTop [heading Downward]
|
|
curl (Middle - bias) operBot [heading Downward]
|
|
|
|
include : union
|
|
intersection a b
|
|
difference
|
|
union a b
|
|
spiro-outline
|
|
corner 0 operBot
|
|
corner Width operBot
|
|
corner Width [mix operBot operTop (1 - 2 * offsetRatio)]
|
|
corner 0 [mix operBot operTop (1 - 2 * offsetRatio)]
|
|
|
|
save 'doubleVee' 0x2A54
|
|
turned 'doubleWedge' 0x2A53 'doubleVee' Middle symbolMid
|
|
|
|
sketch # cup
|
|
include : UShape [DivFrame 1] operTop operBot OperatorStroke true
|
|
save 'cup' 0x222A
|
|
|
|
branch
|
|
include : DotAt Middle (operBot + Smooth) [Math.min DotRadius ((RightSB - SB - OperatorStroke * HVContrast * 2) * (1 / 3))]
|
|
save 'cupDot' 0x228D
|
|
|
|
branch
|
|
local mockUpscale : OperatorStroke / [adviceBlackness 6]
|
|
local arrowLength : mockUpscale * [Math.min (RightSB - SB - OperatorStroke * HVContrast * 2) (Width * 0.6)]
|
|
include : create-glyph : glyph-construction
|
|
include : ArrowShape
|
|
Middle + arrowLength / 2
|
|
operBot + Smooth
|
|
Middle - arrowLength / 2
|
|
operBot + Smooth
|
|
arrowLength * 0.5
|
|
include : Upright
|
|
include : Translate (-Middle) (-operBot - Smooth)
|
|
include : Scale (1 / mockUpscale) (1 / mockUpscale)
|
|
include : Translate Middle (operBot + Smooth)
|
|
include : Italify
|
|
save 'cupArrowLeft' 0x228C
|
|
|
|
branch
|
|
local sw : adviceBlackness 6
|
|
local size : Math.min (RightSB - SB - OperatorStroke * HVContrast * (2 + 0.5 * sw / OperatorStroke)) ((RightSB - SB) * 0.8)
|
|
include : dispiro
|
|
widths.center sw
|
|
corner (Middle - size / 2) (operBot + Smooth)
|
|
corner (Middle + size / 2) (operBot + Smooth)
|
|
include : dispiro
|
|
widths.center sw
|
|
corner Middle (operBot + Smooth - size / 2)
|
|
corner Middle (operBot + Smooth + size / 2)
|
|
save 'cupPlus' 0x228E
|
|
|
|
turned 'cap' 0x2229 'cup' Middle symbolMid
|
|
turned 'capDot' 0x2A40 'cupDot' Middle symbolMid
|
|
|
|
sketch # squareCap
|
|
include : PiShape operTop operBot (shrinkrate -- 0) (_fine -- OperatorStroke) (div -- 1) (noSerif -- true)
|
|
save 'squareCap' 0x2293
|
|
turned 'squareCup' 0x2294 'squareCap' Middle symbolMid
|
|
|
|
glyph-block Symbol-Math-Logicals : begin
|
|
glyph-block-import CommonShapes
|
|
|
|
sketch # negate
|
|
include : refer-glyph "minus"
|
|
include : VBarRight RightSB (symbolMid - (RightSB - SB) * 0.55) symbolMid OperatorStroke
|
|
save 'negate' 0xAC
|
|
|
|
create-glyph 'revNegate' 0x2310 : glyph-construction
|
|
include : refer-glyph "minus"
|
|
include : VBarLeft SB (symbolMid - (RightSB - SB) * 0.55) symbolMid OperatorStroke
|
|
|
|
local top tackTop
|
|
local bot tackBot
|
|
sketch # vdash
|
|
include : HBar SB RightSB symbolMid OperatorStroke
|
|
include : VBarLeft SB top bot OperatorStroke
|
|
save 'vdash' 0x22A2
|
|
turned 'dashv' 0x22A3 'vdash' Middle symbolMid
|
|
|
|
sketch # assert
|
|
local l : mix Middle SB designParameters.logic_narrow_shrink
|
|
local r : mix Middle RightSB designParameters.logic_narrow_shrink
|
|
include : HBar l r symbolMid OperatorStroke
|
|
include : VBarLeft l top bot OperatorStroke
|
|
save 'assert' 0x22A6
|
|
|
|
sketch # models
|
|
local l : mix Middle SB designParameters.logic_narrow_shrink
|
|
local r : mix Middle RightSB designParameters.logic_narrow_shrink
|
|
include : HBar l r [mix symbolMid top (1 / 3)] OperatorStroke
|
|
include : HBar l r [mix symbolMid bot (1 / 3)] OperatorStroke
|
|
include : VBarLeft l top bot OperatorStroke
|
|
save 'models' 0x22A7
|
|
|
|
sketch # tautology
|
|
local l : mix Middle SB 1
|
|
local r : mix Middle RightSB 1
|
|
include : HBar l r [mix symbolMid top (1 / 3)] OperatorStroke
|
|
include : HBar l r [mix symbolMid bot (1 / 3)] OperatorStroke
|
|
include : VBarLeft l top bot OperatorStroke
|
|
save 'tautology' 0x22A8
|
|
|
|
sketch # forces
|
|
local l : mix Middle SB 1
|
|
local r : mix Middle RightSB 1
|
|
local vs : adviceBlackness 4
|
|
local m : mix l (r - vs) (3 / 5)
|
|
include : HBar m r symbolMid OperatorStroke
|
|
include : VBarLeft l top bot vs
|
|
include : VBar m top bot vs
|
|
save 'forces' 0x22A9
|
|
|
|
sketch # tripleBarForces
|
|
local l : mix Middle SB 1
|
|
local r : mix Middle RightSB 1
|
|
local vs : adviceBlackness 5
|
|
local m : mix l (r - vs) (3 / 4)
|
|
include : HBar m r symbolMid OperatorStroke
|
|
include : VBarLeft l top bot vs
|
|
include : VBar m top bot vs
|
|
include : VBar ([mix l m (1/2)] + vs / 4 * HVContrast) top bot vs
|
|
save 'tripleBarForces' 0x22AA
|
|
|
|
sketch # doubleForces
|
|
local l : mix Middle SB 1
|
|
local r : mix Middle RightSB 1
|
|
local vs : adviceBlackness 4
|
|
local m : mix l (r - vs) (3 / 5)
|
|
include : HBar m r [mix symbolMid top (1 / 3)] OperatorStroke
|
|
include : HBar m r [mix symbolMid bot (1 / 3)] OperatorStroke
|
|
include : VBarLeft l top bot vs
|
|
include : VBar m top bot vs
|
|
save 'doubleForces' 0x22AB
|
|
|
|
sketch # top
|
|
include : HBarTop SB RightSB top OperatorStroke
|
|
include : VBar Middle top bot OperatorStroke
|
|
save 'top' 0x22A4
|
|
composite 'bot' [refer-glyph 'top'] [FlipAround Middle symbolMid] [into-unicode 0x22A5]
|
|
sketch # topring
|
|
define mid : mix bot (top - OperatorStroke / 2) 0.5
|
|
define w : (RightSB - SB) * 0.4
|
|
define fine : Math.min (w / 2.5) [adviceBlackness 5]
|
|
include : HBarTop SB RightSB top OperatorStroke
|
|
include : VBar Middle top (mid + w) OperatorStroke
|
|
include : VBar Middle (mid - w) bot OperatorStroke
|
|
include : VBar Middle (mid + w) (mid - w) fine
|
|
include : OShape (mid + w) (mid - w) (Middle - w) (Middle + w) fine
|
|
save 'topring' 0x2355
|
|
composite 'botring' [refer-glyph 'topring'] [FlipAround Middle symbolMid] [into-unicode 0x234E]
|
|
sketch # perp
|
|
include : HBarBottom SB RightSB 0 OperatorStroke
|
|
include : VBar Middle (symbolMid * 2) 0 OperatorStroke
|
|
save 'perpendicular' 0x27C2
|
|
sketch # endOfProof
|
|
include : Rect tackTop tackBot SB RightSB
|
|
save 'endOfProof' 0x220E
|
|
|
|
glyph-block Symbol-Math-Relation : begin
|
|
glyph-block-import CommonShapes
|
|
glyph-block-import Overmarks : TildeShape
|
|
glyph-block-export dH lessSlantness
|
|
glyph-block-export LessShape GreaterShape LigationLessShape LigationGreaterShape
|
|
glyph-block-export EqualShape EqualHole IdentShape IdentHole EqualHalfSpace
|
|
|
|
define EqualHalfSpace : (operTop - operBot) * 2 * designParameters.equal_wideness
|
|
define lessSlantness : (4 / 13) * (operTop - operBot) / (RightSB - SB)
|
|
define dH : lessSlantness * (RightSB - SB)
|
|
define lessEqDist : Math.max [adviceBlackness 4] (XH * 0.16)
|
|
|
|
define [EqualShape left right] : union
|
|
HBar left right (symbolMid + EqualHalfSpace) OperatorStroke
|
|
HBar left right (symbolMid - EqualHalfSpace) OperatorStroke
|
|
|
|
define [EqualHole x]
|
|
VBar x (symbolMid - EqualHalfSpace) (symbolMid + EqualHalfSpace) [adviceBlackness 6]
|
|
|
|
define [IdentShape left right] : union
|
|
HBar left right (symbolMid + EqualHalfSpace * 1.5) OperatorStroke
|
|
HBar left right symbolMid OperatorStroke
|
|
HBar left right (symbolMid - EqualHalfSpace * 1.5) OperatorStroke
|
|
define [IdentHole x]
|
|
VBar x (symbolMid - EqualHalfSpace * 1.5) (symbolMid + EqualHalfSpace * 1.5) [adviceBlackness 6]
|
|
|
|
sketch # equal
|
|
include : EqualShape SB RightSB
|
|
save 'equal' '='
|
|
|
|
branch
|
|
include : DotAt [mix SB RightSB (1/6)] (symbolMid + EqualHalfSpace * 2.5) DotRadius
|
|
include : DotAt [mix SB RightSB (5/6)] (symbolMid - EqualHalfSpace * 2.5) DotRadius
|
|
save 'twodotapproxeq' 0x2252
|
|
|
|
sketch # colon-equal
|
|
include : refer-glyph "baselineDot"
|
|
include : refer-glyph "xhDot"
|
|
|
|
local sbSquash 0.5
|
|
|
|
local delta : Math.max 0 : Width / 2 - DotRadius - SB * sbSquash
|
|
apply-transform : Upright
|
|
apply-transform : Translate (-delta) (symbolMid - XH / 2)
|
|
apply-transform : Italify
|
|
|
|
include : EqualShape (SB + DotSize) (Width - SB * sbSquash)
|
|
save 'colonEq' 0x2254
|
|
|
|
sketch # ident
|
|
include : IdentShape SB RightSB
|
|
save 'ident' 0x2261
|
|
|
|
sketch # iiiident
|
|
include : HBar SB RightSB (symbolMid + EqualHalfSpace * 2.25) OperatorStroke
|
|
include : HBar SB RightSB (symbolMid + EqualHalfSpace * 0.75) OperatorStroke
|
|
include : HBar SB RightSB (symbolMid - EqualHalfSpace * 0.75) OperatorStroke
|
|
include : HBar SB RightSB (symbolMid - EqualHalfSpace * 2.25) OperatorStroke
|
|
save 'iiiident' 0x2263
|
|
|
|
define [LessGreaterExpansion top bot l r]
|
|
Math.sqrt : 1 + (top - bot) / (2 * (r - l)) * (top - bot) / (2 * (r - l))
|
|
|
|
define [LessMaskShape top bot l r] : spiro-outline
|
|
corner r top
|
|
corner r bot
|
|
corner l [mix bot top 0.5]
|
|
define [GreaterMaskShape top bot l r] : spiro-outline
|
|
corner l top
|
|
corner l bot
|
|
corner r [mix bot top 0.5]
|
|
define [LessShapeA top bot l r s p] : begin
|
|
define exp : LessGreaterExpansion top bot l r
|
|
define pp : fallback p 1
|
|
return : dispiro
|
|
widths.center s
|
|
flat [mix l r pp] [mix [mix top bot 0.5] top pp]
|
|
curl l [mix top bot 0.5] [widths.heading (s / 2 * exp) (s / 2 * exp) Leftward]
|
|
define [LessShapeB top bot l r s p] : begin
|
|
define exp : LessGreaterExpansion top bot l r
|
|
define pp : fallback p 1
|
|
return : dispiro
|
|
widths.center s
|
|
flat [mix l r pp] [mix [mix top bot 0.5] bot pp]
|
|
curl l [mix top bot 0.5] [widths.heading (s / 2 * exp) (s / 2 * exp) Leftward]
|
|
define [GreaterShapeA top bot l r s p] : begin
|
|
define exp : LessGreaterExpansion top bot l r
|
|
define pp : fallback p 1
|
|
return : dispiro
|
|
widths.center s
|
|
flat [mix r l pp] [mix [mix top bot 0.5] top pp]
|
|
curl r [mix top bot 0.5] [widths.heading (s / 2 * exp) (s / 2 * exp) Rightward]
|
|
define [GreaterShapeB top bot l r s p] : begin
|
|
define exp : LessGreaterExpansion top bot l r
|
|
define pp : fallback p 1
|
|
return : dispiro
|
|
widths.center s
|
|
flat [mix r l pp] [mix [mix top bot 0.5] bot pp]
|
|
curl r [mix top bot 0.5] [widths.heading (s / 2 * exp) (s / 2 * exp) Rightward]
|
|
|
|
define [LessShape top bot l r s] : union
|
|
LessShapeA top bot l r [fallback s OperatorStroke]
|
|
LessShapeB top bot l r [fallback s OperatorStroke]
|
|
|
|
define [LigationLessShape top bot l r s t gap] : union
|
|
intersection
|
|
Rect [mix bot top 2] [mix top bot 2] [mix r l 2] r
|
|
union
|
|
LessShapeA top bot l r [fallback s OperatorStroke] 2
|
|
LessShapeB top bot l r [fallback s OperatorStroke] 2
|
|
intersection
|
|
LessMaskShape top bot l r
|
|
difference
|
|
dispiro
|
|
widths.lhs [fallback t OperatorStroke]
|
|
corner r bot
|
|
corner r top
|
|
Rect ([mix top bot 0.5] + gap / 2) ([mix top bot 0.5] - gap / 2) (l + O) (r - O)
|
|
|
|
define [GreaterShape top bot l r s] : union
|
|
GreaterShapeA top bot l r [fallback s OperatorStroke]
|
|
GreaterShapeB top bot l r [fallback s OperatorStroke]
|
|
|
|
define [LigationGreaterShape top bot l r s t gap] : union
|
|
intersection
|
|
Rect [mix bot top 2] [mix top bot 2] [mix l r 2] l
|
|
union
|
|
GreaterShapeA top bot l r [fallback s OperatorStroke] 2
|
|
GreaterShapeB top bot l r [fallback s OperatorStroke] 2
|
|
intersection
|
|
GreaterMaskShape top bot l r
|
|
difference
|
|
dispiro
|
|
widths.rhs [fallback t OperatorStroke]
|
|
corner l bot
|
|
corner l top
|
|
Rect ([mix top bot 0.5] + gap / 2) ([mix top bot 0.5] - gap / 2) (l + O) (r - O)
|
|
|
|
# Sym parameters
|
|
local approxDist : EqualHalfSpace * 1.75
|
|
local symMag : (operTop - symbolMid) * 0.17
|
|
define [symWave height mul] : TildeShape
|
|
ttop -- height + symMag * mul
|
|
tbot -- height - symMag * mul
|
|
leftEnd -- SB
|
|
rightEnd -- RightSB
|
|
hs -- OperatorStroke / 2
|
|
|
|
define [BarNegator symbolBottom dist] : begin
|
|
local swo : Math.max (OperatorStroke * 1.5) (dist * 1.5)
|
|
return : dispiro
|
|
widths.center OperatorStroke
|
|
flat (Middle + dist) (symbolBottom - dist + swo) [heading Downward]
|
|
flat (Middle - dist) (symbolBottom - dist - swo) [heading Downward]
|
|
|
|
sketch # less
|
|
include : LessShape (symbolMid + dH) (symbolMid - dH) SB RightSB
|
|
save 'less' '<'
|
|
|
|
sketch # greater
|
|
include [refer-glyph 'less'] AS_BASE
|
|
include : FlipAround Middle symbolMid
|
|
save 'greater' '>'
|
|
|
|
sketch # lesseq
|
|
include : LessShape (symbolMid + dH + lessEqDist) (symbolMid - dH + lessEqDist) SB RightSB
|
|
branch
|
|
include : Upright
|
|
include : Translate 0 (-lessEqDist)
|
|
include : Italify
|
|
save 'less.narrow'
|
|
branch
|
|
include : HBar SB RightSB (symbolMid - dH - lessEqDist) OperatorStroke
|
|
save 'lesseq' 0x2264
|
|
include : BarNegator (symbolMid - dH) lessEqDist
|
|
save nothing 0x2A87
|
|
branch
|
|
include : symWave (symbolMid - dH - lessEqDist) 1
|
|
save 'lesssym' 0x2272
|
|
include : BarNegator (symbolMid - dH) lessEqDist
|
|
save nothing 0x22E6
|
|
branch
|
|
include : LessShapeB (symbolMid + dH - lessEqDist) (symbolMid - dH - lessEqDist) SB RightSB OperatorStroke
|
|
save 'lesseqslant' 0x2A7D
|
|
|
|
sketch # greatereq
|
|
include : GreaterShape (symbolMid + dH + lessEqDist) (symbolMid - dH + lessEqDist) SB RightSB
|
|
branch
|
|
include : Upright
|
|
include : Translate 0 (-lessEqDist)
|
|
include : Italify
|
|
save 'greater.narrow'
|
|
branch
|
|
include : HBar SB RightSB (symbolMid - dH - lessEqDist) OperatorStroke
|
|
save 'greatereq' 0x2265
|
|
include : BarNegator (symbolMid - dH) lessEqDist
|
|
save nothing 0x2A88
|
|
branch
|
|
include : symWave (symbolMid - dH - lessEqDist) 1
|
|
save 'greatersym' 0x2273
|
|
include : BarNegator (symbolMid - dH) lessEqDist
|
|
save nothing 0x22E7
|
|
branch
|
|
include : GreaterShapeB (symbolMid + dH - lessEqDist) (symbolMid - dH - lessEqDist) SB RightSB OperatorStroke
|
|
save 'greatereqslant' 0x2A7E
|
|
|
|
# Ligation
|
|
sketch
|
|
define l : 0.3 * Width
|
|
define r : 2 * Width - l
|
|
define l2 : l - Width
|
|
define r2 : r - Width
|
|
branch
|
|
include : LessShape (symbolMid + dH + lessEqDist) (symbolMid - dH + lessEqDist) l r
|
|
save 'less.lig2'
|
|
branch
|
|
include : GreaterShape (symbolMid + dH + lessEqDist) (symbolMid - dH + lessEqDist) l r
|
|
save 'greater.lig2'
|
|
branch
|
|
include : HBar l2 r2 (symbolMid - dH - lessEqDist) OperatorStroke
|
|
save 'eq.at-lteq.lig2.flat'
|
|
save 'eq.at-gteq.lig2.flat'
|
|
branch
|
|
include : LessShapeB (symbolMid + dH - lessEqDist) (symbolMid - dH - lessEqDist) l2 r2 OperatorStroke
|
|
save 'eq.at-lteq.lig2.slanted'
|
|
branch
|
|
include : GreaterShapeB (symbolMid + dH - lessEqDist) (symbolMid - dH - lessEqDist) l2 r2 OperatorStroke
|
|
save 'eq.at-gteq.lig2.slanted'
|
|
|
|
select-variant 'eq.at-lteq.lig2'
|
|
select-variant 'eq.at-gteq.lig2'
|
|
|
|
do
|
|
define lesslessSW : adviceBlackness 4
|
|
define lesslessSWO : Math.max lesslessSW lessEqDist
|
|
define llggHeight : dH * 2 + lessEqDist * 2
|
|
sketch
|
|
branch
|
|
include : GreaterShape (symbolMid + dH + lessEqDist) (symbolMid - dH + lessEqDist * 1.75) SB RightSB lesslessSW
|
|
include : HBar SB RightSB (symbolMid - dH + lessEqDist * 2 / 3) lesslessSW
|
|
include : HBar SB RightSB (symbolMid - dH - lessEqDist) lesslessSW
|
|
save 'greatereqeq' 0x2267
|
|
include : dispiro
|
|
widths.center lesslessSW
|
|
flat (Middle + lessEqDist) (symbolMid - dH + lessEqDist * 2 / 3 + lesslessSWO) [heading Downward]
|
|
flat (Middle - lessEqDist) (symbolMid - dH - lessEqDist - lesslessSWO) [heading Downward]
|
|
save nothing 0x2269
|
|
branch
|
|
include : GreaterShape (symbolMid + llggHeight / 2) (symbolMid - llggHeight / 6 + lessEqDist) SB RightSB lesslessSW
|
|
include : LessShape (symbolMid + llggHeight / 6 - lessEqDist) (symbolMid - llggHeight / 2) SB RightSB lesslessSW
|
|
save 'greaterless' 0x2277
|
|
branch
|
|
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 SB RightSB (symbolMid) lesslessSW
|
|
save 'greatereqless' 0x22DB
|
|
|
|
sketch
|
|
branch
|
|
include : LessShape (symbolMid + dH + lessEqDist) (symbolMid - dH + lessEqDist * 1.75) SB RightSB lesslessSW
|
|
include : HBar SB RightSB (symbolMid - dH + lessEqDist * 2 / 3) lesslessSW
|
|
include : HBar SB RightSB (symbolMid - dH - lessEqDist) lesslessSW
|
|
save 'lesseqeq' 0x2266
|
|
include : dispiro
|
|
widths.center lesslessSW
|
|
flat (Middle + lessEqDist) (symbolMid - dH + lessEqDist * 2 / 3 + lesslessSWO) [heading Downward]
|
|
flat (Middle - lessEqDist) (symbolMid - dH - lessEqDist - lesslessSWO) [heading Downward]
|
|
save nothing 0x2268
|
|
branch
|
|
include : LessShape (symbolMid + llggHeight / 2) (symbolMid - llggHeight / 6 + lessEqDist) SB RightSB lesslessSW
|
|
include : GreaterShape (symbolMid + llggHeight / 6 - lessEqDist) (symbolMid - llggHeight / 2) SB RightSB lesslessSW
|
|
save 'lessgreater' 0x2276
|
|
branch
|
|
include : LessShape (symbolMid + llggHeight / 2 + lessEqDist) (symbolMid - llggHeight / 6 + lessEqDist * 2) SB RightSB lesslessSW
|
|
include : GreaterShape (symbolMid + llggHeight / 6 - lessEqDist * 2) (symbolMid - llggHeight / 2 - lessEqDist) SB RightSB lesslessSW
|
|
include : HBar SB RightSB (symbolMid) lesslessSW
|
|
save 'lesseqgreater' 0x22DA
|
|
sketch
|
|
include : LessShape (symbolMid + dH) (symbolMid - dH) (SB - lessEqDist / 2) (RightSB - lessEqDist * 2) lesslessSW
|
|
include : LessShape (symbolMid + dH) (symbolMid - dH) (SB + lessEqDist * 2) (RightSB + lessEqDist / 2) lesslessSW
|
|
save 'lessless' 0x226A
|
|
sketch
|
|
include : GreaterShape (symbolMid + dH) (symbolMid - dH) (SB - lessEqDist / 2) (RightSB - lessEqDist * 2) lesslessSW
|
|
include : GreaterShape (symbolMid + dH) (symbolMid - dH) (SB + lessEqDist * 2) (RightSB + lessEqDist / 2) lesslessSW
|
|
save 'greatergreater' 0x226B
|
|
|
|
define [PrecedesShapeA top bot l r s cth] : begin
|
|
local fine : s * cth
|
|
return : dispiro
|
|
widths.center s
|
|
g4 r top
|
|
straight.left.end l ([mix top bot 0.5] + s / 2) [widths.heading fine 0 Leftward]
|
|
define [PrecedesShapeB top bot l r s cth] : begin
|
|
local fine : s * cth
|
|
return : dispiro
|
|
widths.center s
|
|
g4 r bot
|
|
straight.left.end l ([mix top bot 0.5] - s / 2) [widths.heading 0 fine Leftward]
|
|
define [SucceedsShapeA top bot l r s cth] : begin
|
|
local fine : s * cth
|
|
return : dispiro
|
|
widths.center s
|
|
g4 l top
|
|
straight.right.end r ([mix top bot 0.5] + s / 2) [widths.heading 0 fine Rightward]
|
|
define [SucceedsShapeB top bot l r s cth] : begin
|
|
local fine : s * cth
|
|
return : dispiro
|
|
widths.center s
|
|
g4 l bot
|
|
straight.right.end r ([mix top bot 0.5] - s / 2) [widths.heading fine 0 Rightward]
|
|
|
|
define [PrecedesShape top bot l r s] : glyph-construction
|
|
include : PrecedesShapeA top bot l r [fallback s OperatorStroke] CThin
|
|
include : PrecedesShapeB top bot l r [fallback s OperatorStroke] CThin
|
|
define [SucceedsShape top bot l r s] : glyph-construction
|
|
include : SucceedsShapeA top bot l r [fallback s OperatorStroke] CThin
|
|
include : SucceedsShapeB top bot l r [fallback s OperatorStroke] CThin
|
|
|
|
sketch # precedes
|
|
include : PrecedesShape (symbolMid + dH) (symbolMid - dH) SB RightSB
|
|
save 'precedes' 0x227a
|
|
|
|
sketch # succeeds
|
|
include : SucceedsShape (symbolMid + dH) (symbolMid - dH) SB RightSB
|
|
save 'succeeds' 0x227b
|
|
|
|
sketch # precedeseq
|
|
include : PrecedesShape (symbolMid + dH + lessEqDist) (symbolMid - dH + lessEqDist) SB RightSB
|
|
branch
|
|
include : Upright
|
|
include : Translate 0 (-lessEqDist)
|
|
include : Italify
|
|
save 'precedes.narrow'
|
|
branch
|
|
include : HBar SB RightSB (symbolMid - dH - lessEqDist) OperatorStroke
|
|
save 'precedeseq' 0x2AAF
|
|
include : BarNegator (symbolMid - dH) lessEqDist
|
|
save nothing 0x2AB1
|
|
branch
|
|
include : symWave (symbolMid - dH - lessEqDist) 1
|
|
save 'precedessym' 0x227E
|
|
include : BarNegator (symbolMid - dH) lessEqDist
|
|
save nothing 0x22E8
|
|
branch
|
|
include : PrecedesShapeB (symbolMid + dH - lessEqDist) (symbolMid - dH - lessEqDist) SB RightSB OperatorStroke 1
|
|
save 'precedeseqslant' 0x227C
|
|
|
|
sketch # succeedseq
|
|
include : SucceedsShape (symbolMid + dH + lessEqDist) (symbolMid - dH + lessEqDist) SB RightSB
|
|
branch
|
|
include : Upright
|
|
include : Translate 0 (-lessEqDist)
|
|
include : Italify
|
|
save 'succeeds.narrow'
|
|
branch
|
|
include : HBar SB RightSB (symbolMid - dH - lessEqDist) OperatorStroke
|
|
save 'succeedseq' 0x2AB0
|
|
include : BarNegator (symbolMid - dH) lessEqDist
|
|
save nothing 0x2AB2
|
|
branch
|
|
include : symWave (symbolMid - dH - lessEqDist) 1
|
|
save 'succeedssym' 0x227F
|
|
include : BarNegator (symbolMid - dH) lessEqDist
|
|
save nothing 0x22E9
|
|
branch
|
|
include : SucceedsShapeB (symbolMid + dH - lessEqDist) (symbolMid - dH - lessEqDist) SB RightSB OperatorStroke 1
|
|
save 'succeedseqslant' 0x227D
|
|
|
|
sketch # sym
|
|
include : symWave symbolMid 1
|
|
save 'sym' 0x223C
|
|
sketch # flipsym
|
|
include : symWave symbolMid (-1)
|
|
save 'flipsym' 0x223D
|
|
|
|
VDual 'approx' 0x2248 'sym' approxDist
|
|
|
|
sketch # aapprox
|
|
include : symWave (symbolMid + approxDist) 1
|
|
include : symWave symbolMid 1
|
|
branch
|
|
include : symWave (symbolMid - approxDist) 1
|
|
save 'aapprox' 0x224B
|
|
branch
|
|
include : HBar SB RightSB (symbolMid - approxDist) OperatorStroke
|
|
save 'approxBar' 0x224A
|
|
|
|
sketch # symbar
|
|
include [refer-glyph 'sym'] AS_BASE
|
|
include : Upright
|
|
include : Translate 0 (approxDist / 2)
|
|
include : Italify
|
|
include : HBar SB RightSB (symbolMid - approxDist / 2) OperatorStroke
|
|
save 'symBar' 0x2243
|
|
|
|
sketch # symBarBar
|
|
local sympShift : approxDist + EqualHalfSpace * 1.5
|
|
include [refer-glyph 'sym'] AS_BASE
|
|
include : Upright
|
|
include : Translate 0 (sympShift / 2)
|
|
include : Italify
|
|
include : HBar SB RightSB (symbolMid - sympShift / 2 + EqualHalfSpace * 1.5) OperatorStroke
|
|
include : HBar SB RightSB (symbolMid - sympShift / 2) OperatorStroke
|
|
save 'symBarBar' 0x2245
|
|
|
|
sketch # flipsymBarBar
|
|
local sympShift : approxDist + EqualHalfSpace * 1.5
|
|
include [refer-glyph 'flipsym'] AS_BASE
|
|
include : Upright
|
|
include : Translate 0 (sympShift / 2)
|
|
include : Italify
|
|
include : HBar SB RightSB (symbolMid - sympShift / 2 + EqualHalfSpace * 1.5) OperatorStroke
|
|
include : HBar SB RightSB (symbolMid - sympShift / 2) OperatorStroke
|
|
save 'flipsymBarBar' 0x224C
|
|
|
|
define [SubsetShape top bot sw] : dispiro
|
|
widths.lhs [fallback sw OperatorStroke]
|
|
flat RightSB top [heading Leftward]
|
|
curl (SB + (top - bot) / 2) top
|
|
archv
|
|
g4 SB [mix top bot 0.5]
|
|
arcvh
|
|
flat (SB + (top - bot) / 2) bot
|
|
curl RightSB bot [heading Rightward]
|
|
|
|
define [PrefixShape top bot sw] : union
|
|
VBarLeft SB bot top [fallback sw OperatorStroke]
|
|
HBarTop SB RightSB top [fallback sw OperatorStroke]
|
|
HBarBottom SB RightSB bot [fallback sw OperatorStroke]
|
|
|
|
define [SupsetShape top bot sw] : glyph-construction
|
|
include : SubsetShape top bot sw
|
|
include : FlipAround Middle [mix top bot 0.5]
|
|
|
|
define [SuffixShape top bot sw] : glyph-construction
|
|
include : PrefixShape top bot sw
|
|
include : FlipAround Middle [mix top bot 0.5]
|
|
|
|
sketch # subst
|
|
include : SubsetShape (symbolMid + dH) (symbolMid - dH)
|
|
save 'subst' 0x2282
|
|
sketch # supst
|
|
include : SupsetShape (symbolMid + dH) (symbolMid - dH)
|
|
save 'supst' 0x2283
|
|
|
|
sketch # substBar
|
|
include : SubsetShape (symbolMid + dH + lessEqDist) (symbolMid - dH + lessEqDist)
|
|
branch
|
|
include : HBar SB RightSB (symbolMid - dH - lessEqDist) OperatorStroke
|
|
save 'substBar' 0x2286
|
|
include : BarNegator (symbolMid - dH) lessEqDist
|
|
save nothing 0x228A
|
|
branch
|
|
include : FlipAround Middle (symbolMid + lessEqDist)
|
|
include : HBar SB RightSB (symbolMid - dH - lessEqDist) OperatorStroke
|
|
save 'supstBar' 0x2287
|
|
include : BarNegator (symbolMid - dH) lessEqDist
|
|
save nothing 0x228B
|
|
|
|
sketch # element
|
|
include : SubsetShape (symbolMid + dH * 4 / 3) (symbolMid - dH * 4 / 3)
|
|
include : HBar (SB + HalfStroke) RightSB symbolMid
|
|
save 'element' 0x2208
|
|
turned nothing 0x220B 'element' Middle symbolMid
|
|
|
|
sketch # small element
|
|
include [refer-glyph 'subst'] AS_BASE
|
|
include : HBar (SB + HalfStroke) RightSB symbolMid OperatorStroke
|
|
save 'smallElement' 0x220A
|
|
turned nothing 0x220D 'smallElement' Middle symbolMid
|
|
|
|
sketch # prefix
|
|
include : PrefixShape (symbolMid + dH) (symbolMid - dH)
|
|
save 'prefix' 0x228F
|
|
sketch # suffix
|
|
include : SuffixShape (symbolMid + dH) (symbolMid - dH)
|
|
save 'suffix' 0x2290
|
|
|
|
sketch # substBar
|
|
include : PrefixShape (symbolMid + dH + lessEqDist) (symbolMid - dH + lessEqDist)
|
|
branch
|
|
include : HBar SB RightSB (symbolMid - dH - lessEqDist) OperatorStroke
|
|
save 'prefixBar' 0x2291
|
|
include : BarNegator (symbolMid - dH) lessEqDist
|
|
save nothing 0x22E4
|
|
branch
|
|
include : FlipAround Middle (symbolMid + lessEqDist)
|
|
include : HBar SB RightSB (symbolMid - dH - lessEqDist) OperatorStroke
|
|
save 'suffixBar' 0x2292
|
|
include : BarNegator (symbolMid - dH) lessEqDist
|
|
save nothing 0x22E5
|
|
|
|
composite [refer-glyph 'element'] MarkSet.plus [refer-glyph 'underlineBelow'] [clear-anchors] [into-unicode 0x22F8]
|
|
|
|
glyph-block Symbol-Math-Complement : begin
|
|
glyph-block-import Letter-Latin-C : CShape
|
|
sketch # complement
|
|
include : CShape [mix symbolMid operTop 1.1] [mix symbolMid operBot 1.1] OperatorStroke
|
|
save 'complement' 0x2201
|
|
|
|
glyph-block Symbol-Math-Negation : begin
|
|
glyph-block-import NotGlyphFn : notGlyph
|
|
notGlyph null 0x2260 'equal'
|
|
notGlyph null 0x2262 'ident'
|
|
notGlyph null 0x22AC 'vdash'
|
|
notGlyph null 0x22AD 'tautology'
|
|
notGlyph null 0x22AE 'forces'
|
|
notGlyph null 0x22AF 'doubleForces'
|
|
notGlyph.left null 0x226E 'less'
|
|
notGlyph.right null 0x226F 'greater'
|
|
notGlyph.left null 0x2280 'precedes'
|
|
notGlyph.right null 0x2281 'succeeds'
|
|
notGlyph null 0x2241 'sym' [mix symbolMid bgopTop 0.75] [mix symbolMid bgopBot 0.75]
|
|
notGlyph null 0x2244 'symBar' [mix symbolMid bgopTop 0.75] [mix symbolMid bgopBot 0.75]
|
|
notGlyph null 0x2247 'symBarBar'
|
|
notGlyph null 0x2249 'approx' [mix symbolMid bgopTop 0.75] [mix symbolMid bgopBot 0.75]
|
|
notGlyph.left null 0x2284 'subst'
|
|
notGlyph.right null 0x2285 'supst'
|
|
notGlyph.left null 0x2288 'substBar'
|
|
notGlyph.right null 0x2289 'supstBar'
|
|
notGlyph.left null 0x22E2 'prefixBar'
|
|
notGlyph.right null 0x22E3 'suffixBar'
|
|
notGlyph.left null 0x2209 'element'
|
|
notGlyph.right null 0x220C 'turnelement'
|
|
notGlyph.left null 0x2270 'lesseq'
|
|
notGlyph.right null 0x2271 'greatereq'
|
|
notGlyph.left null 0x2274 'lesssym'
|
|
notGlyph.right null 0x2275 'greatersym'
|
|
notGlyph.left null 0x22E0 'precedeseqslant'
|
|
notGlyph.right null 0x22E1 'succeedseqslant'
|
|
notGlyph null 0x2278 'lessgreater'
|
|
notGlyph null 0x2279 'greaterless'
|
|
notGlyph.right null 0x2204 'exists' (CAP - Descender / 2) (Descender / 2) 0.4
|
|
|
|
glyph-block Symbol-Math-Large-Operators : for-width-kinds WideWidth1
|
|
glyph-block-import CommonShapes
|
|
glyph-block-import Letter-Latin-Lower-F : LongSShape
|
|
glyph-block-import Letter-Latin-Upper-U : UShape
|
|
glyph-block-import Letter-Greek-Upper-Sigma : SigmaShape
|
|
glyph-block-import Letter-Greek-Pi : PiShape
|
|
|
|
define diversityLargeOperators : Math.max para.diversityM (MosaicWidth / Width)
|
|
define df : DivFrame diversityLargeOperators 0 [if FMosaicWide diversityLargeOperators 1]
|
|
|
|
sketch # sum
|
|
set-width df.width
|
|
include : SigmaShape df bgopTop bgopBot OperatorStroke
|
|
save [MangleName 'sum'] [MangleUnicode 0x2211]
|
|
|
|
sketch # product
|
|
set-width df.width
|
|
include : PiShape bgopTop bgopBot (shrinkrate -- 0) (_fine -- OperatorStroke) (df -- df)
|
|
save [MangleName 'product'] [MangleUnicode 0x220F]
|
|
|
|
turned [MangleName 'coproduct'] [MangleUnicode 0x2210] [MangleName 'product'] df.middle symbolMid
|
|
|
|
sketch # Vee
|
|
set-width df.width
|
|
include : dispiro
|
|
widths.center OperatorStroke
|
|
flat df.leftSB bgopTop
|
|
curl df.middle bgopBot [heading Downward]
|
|
include : dispiro
|
|
widths.center OperatorStroke
|
|
flat df.rightSB bgopTop
|
|
curl df.middle bgopBot [heading Downward]
|
|
save [MangleName 'Vee'] [MangleUnicode 0x22C1]
|
|
|
|
turned [MangleName 'Wedge'] [MangleUnicode 0x22C0] [MangleName 'Vee'] df.middle symbolMid
|
|
|
|
sketch # Cup
|
|
set-width df.width
|
|
include : UShape df bgopTop bgopBot OperatorStroke true
|
|
save [MangleName 'Cup'] [MangleUnicode 0x22C3]
|
|
|
|
turned [MangleName 'Cap'] [MangleUnicode 0x22C2] [MangleName 'Cup'] df.middle symbolMid
|
|
|
|
glyph-block Symbol-Math-Integrals : begin
|
|
glyph-block-import CommonShapes
|
|
glyph-block-import Letter-Latin-Lower-F : LongSShape
|
|
|
|
define MosaicTop fontMetrics.OS_2.sTypoAscender
|
|
define MosaicBottom fontMetrics.OS_2.sTypoDescender
|
|
define MosaicHeight : MosaicTop - MosaicBottom
|
|
|
|
sketch # integrate
|
|
include : LongSShape bgopTop bgopBot Hook (Hook * 0.75) OperatorStroke
|
|
save 'integrate' 0x222B
|
|
HDual 'doubleintegrate' 0x222C 'integrate' (0.5 * Width)
|
|
|
|
sketch
|
|
include : intersection
|
|
Rect MosaicTop MosaicBottom (-Width) (2 * Width)
|
|
LongSShape bgopTop (bgopBot - MosaicHeight * 2) Hook (Hook * 0.75) OperatorStroke
|
|
save 'integralUpper' 0x2320
|
|
|
|
sketch
|
|
include : intersection
|
|
Rect MosaicTop MosaicBottom (-Width) (2 * Width)
|
|
LongSShape (bgopTop + MosaicHeight) (bgopBot - MosaicHeight) Hook (Hook * 0.75) OperatorStroke
|
|
save 'integralExtension' 0x23AE
|
|
|
|
sketch
|
|
include : intersection
|
|
Rect MosaicTop MosaicBottom (-Width) (2 * Width)
|
|
LongSShape (bgopTop + MosaicHeight * 2) bgopBot Hook (Hook * 0.75) OperatorStroke
|
|
save 'integralLower' 0x2321
|
|
|
|
sketch
|
|
define [shape] : LongSShape bgopTop bgopBot Hook (Hook * 0.75) [adviceBlackness 3.75]
|
|
include [shape]
|
|
include : Translate (-Width / 3) 0
|
|
include [shape]
|
|
include : Translate (-Width / 3) 0
|
|
include [shape]
|
|
include : Translate (Width / 3) 0
|
|
save 'tripleintegrate' 0x222D
|
|
|
|
sketch # ringintegrate
|
|
include : refer-glyph "integrate"
|
|
include : OShape (symbolMid + (RightSB - SB) / 2) (symbolMid - (RightSB - SB) / 2) SB RightSB OperatorStroke
|
|
save 'ringintegrate' 0x222E
|
|
|
|
glyph-block Symbol-Math-APL : begin
|
|
glyph-block-import CommonShapes
|
|
glyph-block-import Letter-Latin-Upper-U : UShape
|
|
|
|
define aplBoxInnerTop bgopTop
|
|
define aplBoxInnerBot bgopBot
|
|
define aplBoxSW : adviceBlackness 4.5
|
|
define aplBoxTop : mix symbolMid aplBoxInnerTop 1.1
|
|
define aplBoxBot : mix symbolMid aplBoxInnerBot 1.1
|
|
define aplBoxInnerScale : Math.min ((Width - aplBoxSW * 1.75) / Width) ((aplBoxInnerTop - aplBoxInnerBot) / (parenTop - parenBot))
|
|
sketch # aplsquare
|
|
local l [mix 0 SB (1 / 3)]
|
|
local r [mix Width RightSB (1 / 3)]
|
|
include : HBarTop l r aplBoxTop aplBoxSW
|
|
include : HBarBottom l r aplBoxBot aplBoxSW
|
|
include : VBarLeft l aplBoxTop aplBoxBot aplBoxSW
|
|
include : VBarRight r aplBoxTop aplBoxBot aplBoxSW
|
|
save 'aplsquare' 0x2395
|
|
sketch # aplsquareShadow
|
|
local l [mix 0 SB (1 / 3)]
|
|
local r [mix Width RightSB (1 / 3)]
|
|
include : spiro-outline
|
|
corner l aplBoxTop
|
|
corner r aplBoxTop
|
|
corner r aplBoxBot
|
|
corner l aplBoxBot
|
|
save 'aplsquareShadow'
|
|
sketch # aplibar
|
|
local l [mix 0 SB (1 / 3)]
|
|
local r [mix Width RightSB (1 / 3)]
|
|
include : HBarTop l r operTop aplBoxSW
|
|
include : HBarBottom l r operBot aplBoxSW
|
|
include : VBar Middle operTop operBot aplBoxSW
|
|
save 'aplibar' 0x2336
|
|
sketch # aplsquish
|
|
local l : mix SB RightSB (1 / 8)
|
|
local r : mix RightSB SB (1 / 8)
|
|
include : union
|
|
HBarTop l r aplBoxTop aplBoxSW
|
|
HBarBottom l r aplBoxBot aplBoxSW
|
|
VBarLeft l aplBoxTop aplBoxBot aplBoxSW
|
|
VBarRight r aplBoxTop aplBoxBot aplBoxSW
|
|
save 'aplsquish' 0x2337
|
|
|
|
sketch # aplbar
|
|
include : VBar Middle aplBoxTop aplBoxBot aplBoxSW
|
|
save 'aplbar'
|
|
sketch # aplLongBar
|
|
include : VBar Middle aplBoxTop aplBoxBot aplBoxSW
|
|
save 'aplLongBar'
|
|
sketch # aplminus
|
|
include : dispiro
|
|
widths.center aplBoxSW
|
|
flat RightSB [mix operTop operBot 0.5]
|
|
curl SB [mix operTop operBot 0.5]
|
|
save 'aplminus'
|
|
sketch # aplslash
|
|
include : dispiro
|
|
widths.center aplBoxSW
|
|
flat RightSB operTop
|
|
curl SB operBot
|
|
save 'aplslash'
|
|
sketch # aplbackslash
|
|
include : dispiro
|
|
widths.center aplBoxSW
|
|
flat SB operTop
|
|
curl RightSB operBot
|
|
save 'aplbackslash'
|
|
|
|
define [aplBoxed shape] : Overlay [refer-glyph 'aplsquare'] : glyph-construction
|
|
include : intersection [refer-glyph 'aplsquareShadow'] shape
|
|
include : ScaleAround Middle symbolMid aplBoxInnerScale
|
|
|
|
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'equal'] [into-unicode 0x2338]
|
|
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'divide'] [into-unicode 0x2339]
|
|
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'whitediamond.NWID'] [into-unicode 0x233A]
|
|
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'smallwhitecircle.NWID'] [into-unicode 0x233B]
|
|
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'whitecircle.NWID'] [into-unicode 0x233C]
|
|
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'aplbar'] [refer-glyph 'whitecircle.NWID']] [into-unicode 0x233D]
|
|
composite [refer-glyph 'whitecircle.NWID'] [refer-glyph 'smallwhitecircle.NWID'] [into-unicode 0x233E]
|
|
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'aplminus'] [refer-glyph 'slash']] [into-unicode 0x233F]
|
|
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'aplminus'] [refer-glyph 'backslash']] [into-unicode 0x2340]
|
|
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'slash'] [into-unicode 0x2341]
|
|
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'backslash'] [into-unicode 0x2342]
|
|
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'less'] [into-unicode 0x2343]
|
|
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'greater'] [into-unicode 0x2344]
|
|
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'arrowleft.NWID'] [refer-glyph 'aplbar']] [into-unicode 0x2345]
|
|
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'arrowright.NWID'] [refer-glyph 'aplbar']] [into-unicode 0x2346]
|
|
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'arrowleft.NWID'] [into-unicode 0x2347]
|
|
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'arrowright.NWID'] [into-unicode 0x2348]
|
|
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'aplbackslash'] [refer-glyph 'whitecircle.NWID']] [into-unicode 0x2349]
|
|
composite [refer-glyph 'bot'] MarkSet.tack [refer-glyph 'underlineBelow'] [clear-anchors] [into-unicode 0x234A]
|
|
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'increment'] [refer-glyph 'aplLongBar']] [into-unicode 0x234B]
|
|
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'vee'] [into-unicode 0x234C]
|
|
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'increment'] [into-unicode 0x234D]
|
|
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'arrowup.NWID'] [refer-glyph 'minus']] [into-unicode 0x234F]
|
|
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'arrowup.NWID'] [into-unicode 0x2350]
|
|
composite [refer-glyph 'top'] MarkSet.tack [refer-glyph 'sbOverlineAbove'] [clear-anchors] [into-unicode 0x2351]
|
|
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'nabla'] [refer-glyph 'aplLongBar']] [into-unicode 0x2352]
|
|
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'wedge'] [into-unicode 0x2353]
|
|
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'nabla'] [into-unicode 0x2354]
|
|
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'arrowdown.NWID'] [refer-glyph 'minus']] [into-unicode 0x2356]
|
|
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'arrowdown.NWID'] [into-unicode 0x2357]
|
|
composite [refer-glyph 'singleQuote'] MarkSet.plus [refer-glyph 'underlineBelow'] [clear-anchors] [into-unicode 0x2358]
|
|
composite [refer-glyph 'increment'] [refer-glyph 'underlineBelow'] [into-unicode 0x2359]
|
|
composite [refer-glyph 'whitediamond.NWID'] MarkSet.plus [refer-glyph 'underlineBelow'] [clear-anchors] [into-unicode 0x235A]
|
|
composite [refer-glyph 'smallwhitecircle.NWID'] MarkSet.plus [refer-glyph 'underlineBelow'] [clear-anchors] [into-unicode 0x235B]
|
|
composite [refer-glyph 'whitecircle.NWID'] MarkSet.plus [refer-glyph 'underlineBelow'] [clear-anchors] [into-unicode 0x235C]
|
|
composite
|
|
refer-glyph 'smallwhitecircle.NWID'
|
|
ScaleAround Middle symbolMid 0.75
|
|
Realign Middle symbolMid Middle (operBot + Smooth)
|
|
UShape [DivFrame 1] operTop operBot [adviceBlackness 5] true
|
|
FlipAround Middle symbolMid
|
|
into-unicode 0x235D
|
|
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'singleQuote'] [into-unicode 0x235E]
|
|
composite [refer-glyph 'enquad'] [intersection [refer-glyph 'mathOOutline'] [refer-glyph 'opAsterisk.low']] [refer-glyph 'mathO'] [into-unicode 0x235F]
|
|
composite [refer-glyph 'enquad'] [aplBoxed : composite [refer-glyph 'colon'] [Realign Middle (XH/2) Middle symbolMid]] [into-unicode 0x2360]
|
|
composite [refer-glyph 'top'] MarkSet.tack [refer-glyph 'dieresisAbove'] [clear-anchors] [into-unicode 0x2361]
|
|
composite [refer-glyph 'nabla'] [refer-glyph 'dieresisAbove'] [into-unicode 0x2362]
|
|
composite [refer-glyph 'asterisk.low'] MarkSet.plus [refer-glyph 'dieresisAbove'] [clear-anchors] [into-unicode 0x2363]
|
|
composite [refer-glyph 'smallwhitecircle.NWID'] MarkSet.plus [refer-glyph 'dieresisAbove'] [clear-anchors] [into-unicode 0x2364]
|
|
composite [refer-glyph 'whitecircle.NWID'] MarkSet.plus [refer-glyph 'dieresisAbove'] [clear-anchors] [into-unicode 0x2365]
|
|
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'cup'] [refer-glyph 'aplbar']] [into-unicode 0x2366]
|
|
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'subst'] [refer-glyph 'aplbar']] [into-unicode 0x2367]
|
|
composite [refer-glyph 'asciitilde.low'] [refer-glyph 'dieresisAbove'] [into-unicode 0x2368]
|
|
composite [refer-glyph 'greater.narrow'] MarkSet.plus [refer-glyph 'dieresisAbove'] [clear-anchors] [into-unicode 0x2369]
|
|
composite [refer-glyph 'minus'] [refer-glyph 'comma'] [into-unicode 0x236A]
|
|
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'overlayTildeOperator'] [refer-glyph 'nabla']] [into-unicode 0x236B]
|
|
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'overlayTildeOperator'] [refer-glyph 'zero.lnum.unslashed']] [into-unicode 0x236C]
|
|
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'overlayTildeOperator'] [refer-glyph 'bar']] [into-unicode 0x236D]
|
|
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'semicolon'] [refer-glyph 'underscore.high']] [into-unicode 0x236E]
|
|
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'notequal'] [into-unicode 0x236F]
|
|
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'question'] [into-unicode 0x2370]
|
|
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'overlayTildeOperator'] [refer-glyph 'vee']] [into-unicode 0x2371]
|
|
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'overlayTildeOperator'] [refer-glyph 'wedge']] [into-unicode 0x2372]
|
|
alias 'apliota' 0x2373 'iota'
|
|
alias 'aplrho' 0x2374 'rho'
|
|
alias 'aplomega' 0x2375 'omega'
|
|
composite [refer-glyph 'alpha'] [refer-glyph 'underlineBelow'] [clear-anchors] [into-unicode 0x2376]
|
|
composite [refer-glyph 'smallElement'] MarkSet.plus [refer-glyph 'underlineBelow'] [clear-anchors] [into-unicode 0x2377]
|
|
composite [refer-glyph 'iota'] [refer-glyph 'underlineBelow'] [clear-anchors] [into-unicode 0x2378]
|
|
composite [refer-glyph 'omega'] [refer-glyph 'underlineBelow'] [clear-anchors] [into-unicode 0x2379]
|
|
alias 'aplalpha' 0x237A 'alpha'
|
|
|
|
glyph-block Symbol-Math-Other : begin
|
|
glyph-block-import CommonShapes : alias turned
|
|
glyph-block-import NotGlyphFn : notGlyph
|
|
|
|
alias 'mathbullet' 0x2219 'bullet'
|
|
alias 'mathbar' 0x2223 'bar'
|
|
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
|
|
alias 'mathsmallcircle' 0x2218 'smallwhitecircle.NWID'
|
|
alias 'whiteDiamondOperator' 0x22C4 'whitediamond.NWID'
|
|
alias 'mathstar' 0x22C6 'blackstar.NWID'
|
|
turned 'amalg' 0x2A3F 'Pi' Middle (CAP / 2)
|
|
turned 'turnAmpersand' 0x214B 'ampersand' Middle (CAP / 2)
|
|
turned nothing 0x22DC 'greatereq' Middle symbolMid
|
|
turned nothing 0x22DD 'lesseq' Middle symbolMid
|
|
turned nothing 0x22DE 'succeedseqslant' Middle symbolMid
|
|
turned nothing 0x22DF 'precedeseqslant' Middle symbolMid
|
|
|
|
sketch # sqrt
|
|
include : dispiro
|
|
widths.center OperatorStroke
|
|
flat SB [mix parenBot parenTop 0.45]
|
|
curl Middle parenBot [heading Downward]
|
|
include : dispiro
|
|
widths.center OperatorStroke
|
|
flat Width parenTop
|
|
curl Middle parenBot [heading Downward]
|
|
save 'sqrt' 0x221A
|