diff --git a/changes/23.0.0.md b/changes/23.0.0.md index 3df591c6e..225891db5 100644 --- a/changes/23.0.0.md +++ b/changes/23.0.0.md @@ -4,11 +4,19 @@ - CYRILLIC SMALL LETTER UNBLENDED UK (`U+1C88`) (#1517). - MATHEMATICAL RISING DIAGONAL (`U+27CB`). - MATHEMATICAL FALLING DIAGONAL (`U+27CD`). + - UP TACK WITH CIRCLE ABOVE (`U+27DF`). - REVERSED ANGLE (`U+29A3`). - REVERSED EMPTY SET (`U+29B0`) ... EMPTY SET WITH LEFT ARROW ABOVE (`U+29B4`). - CIRCLED VERTICAL BAR (`U+29B6`) ... CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR (`U+29BA`). - DOUBLE ENDED MULTIMAP (`U+29DF`). - - DOES NOT DIVIDE WITH REVERSED NEGATION SLASH (`U+2AEE`). + - MINUS SIGN WITH FALLING DOTS (`U+2A2B`). + - MINUS SIGN WITH RISING DOTS (`U+2A2C`). + - MULTIPLICATION SIGN WITH UNDERBAR (`U+2A31`). + - SEMIDIRECT PRODUCT WITH BOTTOM CLOSED (`U+2A32`). + - TILDE OPERATOR WITH RISING DOTS (`U+2A6B`). + - SIMILAR MINUS SIMILAR (`U+2A6C`). + - APPROXIMATELY EQUAL TO OR EQUAL TO (`U+2A70`) ... EQUALS SIGN ABOVE TILDE OPERATOR (`U+2A73`). + - DOES NOT DIVIDE WITH REVERSED NEGATION SLASH (`U+2AEE`) ... DOWN TACK WITH CIRCLE BELOW (`U+2AF1`). - REVERSED RIGHT ANGLE (`U+2BFE`). - COMBINING CYRILLIC LETTER ES-TE (`U+2DF5`) (#1720). - COMBINING CYRILLIC LETTER MONOGRAPH UK (`U+2DF9`) (#1720). diff --git a/font-src/glyphs/symbol/math/arith.ptl b/font-src/glyphs/symbol/math/arith.ptl index 5b3da63ec..1786f9d61 100644 --- a/font-src/glyphs/symbol/math/arith.ptl +++ b/font-src/glyphs/symbol/math/arith.ptl @@ -8,6 +8,7 @@ glyph-block Symbol-Math-Arith : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives glyph-block-import Symbol-Math-Frame : MathEnclosureSw + glyph-block-import Symbol-Math-Relation-Common : EqualHalfSpace do "Plus/Minus" glyph-block-export PlusShape @@ -34,10 +35,18 @@ glyph-block Symbol-Math-Arith : begin SquareAt Middle SymbolMid DotRadius create-glyph 'plusminus' 0xB1 : glyph-proc - include : HBar.b SB RightSB 0 OperatorStroke include : refer-glyph "plus" + include : HBar.b SB RightSB 0 OperatorStroke turned 'minusplus' 0x2213 'plusminus' Middle SymbolMid + + create-glyph 'plusequal' 0x2A72 : glyph-proc + include : refer-glyph "plus" + include : ApparentTranslate 0 (EqualHalfSpace * 1.5) + include : HBar.b SB RightSB (EqualHalfSpace * 1.5) OperatorStroke + include : HBar.b SB RightSB 0 OperatorStroke + + turned 'equalplus' 0x2A71 'plusequal' Middle SymbolMid do "Multiply" define Size : 0.5 * (RightSB - SB) + 0.25 * SB @@ -67,6 +76,10 @@ glyph-block Symbol-Math-Arith : begin include : MultiplyStroke1Shape OperatorStroke 1 1 1 include : MultiplyStroke2Shape OperatorStroke 1 1 1 + create-glyph 'multiplyUnderbar' 0x2A31 : glyph-proc + include : refer-glyph "multiply" + include : HBar.b (Middle - Size) (Middle + Size) 0 OperatorStroke + alias 'vectorOrCrossProduct' 0x2A2F 'multiply' create-glyph 'multiplyInMulDiv' : glyph-proc @@ -108,6 +121,17 @@ glyph-block Symbol-Math-Arith : begin MultiplyStroke1Shape swBowtie 1 1 1 MultiplyStroke2Shape swBowtie 1 1 1 + create-glyph 'bowtieBot' 0x2A32 : glyph-proc + include : union + intersection + CoMultiplyMask 1 1 1 + HBar.b (Middle - Size) (Middle + Size) (SymbolMid - Size) swBowtieHv + intersection + Rect ParenTop (SymbolMid - Size) (-Width) (2 * Width) + union + MultiplyStroke1Shape swBowtie 1 1 1 + MultiplyStroke2Shape swBowtie 1 1 1 + create-glyph 'bowtieWithLeftHalfBlack' 0x29D1 : union refer-glyph 'bowtie' MultiplyMask 1 1 0 @@ -220,6 +244,18 @@ glyph-block Symbol-Math-Arith : begin DrawAt Middle (SymbolMid + gap) (dr * sw / OperatorStroke - overshoot) DrawAt Middle (SymbolMid - gap) (dr * sw / OperatorStroke - overshoot) + create-glyph "minusFallingDots.\(suffix)" : glyph-proc + include : refer-glyph "minus" + define gap : (RightSB - SB) / 2 + include : DrawAt [mix SB RightSB (1/6)] (SymbolMid + gap) (dr - overshoot) + include : DrawAt [mix SB RightSB (5/6)] (SymbolMid - gap) (dr - overshoot) + + create-glyph "minusRisingDots.\(suffix)" : glyph-proc + include : refer-glyph "minus" + define gap : (RightSB - SB) / 2 + include : DrawAt [mix SB RightSB (1/6)] (SymbolMid - gap) (dr - overshoot) + include : DrawAt [mix SB RightSB (5/6)] (SymbolMid + gap) (dr - overshoot) + select-variant 'dotplus' 0x2214 (follow -- 'punctuationDot') turned 'plusdot' 0x2A25 'dotplus' Middle SymbolMid @@ -233,6 +269,9 @@ glyph-block Symbol-Math-Arith : begin select-variant 'divide' 0xF7 (follow -- 'punctuationDot') select-variant 'divisionTimes' 0x22C7 (follow -- 'punctuationDot') + select-variant 'minusFallingDots' 0x2A2B (follow -- 'punctuationDot') + select-variant 'minusRisingDots' 0x2A2C (follow -- 'punctuationDot') + do define fine : AdviceStroke 5.5 define radius : Math.max ((RightSB - SB) / 8) (fine / 2) @@ -322,3 +361,17 @@ glyph-block Symbol-Math-Arith : begin set-width MosaicWidth include : refer-glyph : MangleName "innerMultiplyStroke1Big" include : refer-glyph : MangleName "innerMultiplyStroke2Big" + + create-glyph [MangleName 'risingDiagonal'] [MangleUnicode 0x27CB] : glyph-proc + set-width MosaicWidth + include : dispiro + widths.center OperatorStroke + flat SB ParenBot + curl (MosaicWidth - SB) ParenTop + + create-glyph [MangleName 'fallingDiagonal'] [MangleUnicode 0x27CD] : glyph-proc + set-width MosaicWidth + include : dispiro + widths.center OperatorStroke + flat SB ParenTop + curl (MosaicWidth - SB) ParenBot diff --git a/font-src/glyphs/symbol/math/geometry.ptl b/font-src/glyphs/symbol/math/geometry.ptl index e34572994..87fad7640 100644 --- a/font-src/glyphs/symbol/math/geometry.ptl +++ b/font-src/glyphs/symbol/math/geometry.ptl @@ -48,12 +48,6 @@ glyph-block Symbol-Math-Geometry : begin dispiro [widths.lhs GeometryStroke] [flat leftBox bottomBox] [curl rightBox bottomBox] dispiro [widths.rhs GeometryStroke] [flat leftBox topBox] [curl rightBox bottomBox] - create-glyph 'risingDiagonal' 0x27CB : glyph-proc - include : dispiro [widths.center GeometryStroke] [flat rightBox topBox] [curl leftBox bottomBox] - - create-glyph 'fallingDiagonal' 0x27CD : glyph-proc - include : dispiro [widths.center GeometryStroke] [flat leftBox topBox] [curl rightBox bottomBox] - create-glyph 'measuredAngle' 0x2221 : glyph-proc include [refer-glyph 'angle'] AS_BASE ALSO_METRICS include : intersection diff --git a/font-src/glyphs/symbol/math/logicals.ptl b/font-src/glyphs/symbol/math/logicals.ptl index e25be8ca0..d0bc0208e 100644 --- a/font-src/glyphs/symbol/math/logicals.ptl +++ b/font-src/glyphs/symbol/math/logicals.ptl @@ -102,5 +102,21 @@ glyph-block Symbol-Math-Logicals : begin include : HBar.b SB RightSB 0 OperatorStroke include : VBar.m Middle (SymbolMid * 2) 0 OperatorStroke + create-glyph 'barRingAbove' 0x2AEF : glyph-proc + define sw : AdviceStroke 4 + define radius : (RightSB - SB) / 6 + define mid : top - radius + include : VBar.m Middle (top - radius * 2 - sw / 2 ) bot OperatorStroke + include : difference + DotAt Middle mid (radius + sw) + DotAt Middle mid radius + + create-glyph 'botRingAbove' 0x27DF : glyph-proc + include : refer-glyph "barRingAbove" + include : HBar.b SB RightSB bot OperatorStroke + + turned 'barRingBelow' 0x2AF0 'barRingAbove' Middle SymbolMid + turned 'topRingBelow' 0x2AF1 'botRingAbove' Middle SymbolMid + create-glyph 'endOfProof' 0x220E : glyph-proc include : Rect TackTop TackBot SB RightSB diff --git a/font-src/glyphs/symbol/math/relation.ptl b/font-src/glyphs/symbol/math/relation.ptl index 8e6c0c412..95a1c039c 100644 --- a/font-src/glyphs/symbol/math/relation.ptl +++ b/font-src/glyphs/symbol/math/relation.ptl @@ -240,10 +240,6 @@ glyph-block Symbol-Math-Relation-Sym : begin create-glyph 'sym' 0x223C : symWave SymbolMid 1 create-glyph 'flipSym' 0x223D : symWave SymbolMid (-1) - WithDotVariants 'oneDotSym' 0x2A6A : function [DrawAt kr ov] : composite-proc - refer-glyph 'sym' - DrawAt Middle PlusTop (DotRadius * kr * OperatorStroke / Stroke - ov) - WithDotVariants 'twoDotSym' 0x223B : function [DrawAt kr ov] : composite-proc refer-glyph 'sym' DrawAt Middle PlusTop (DotRadius * kr * OperatorStroke / Stroke - ov) @@ -282,10 +278,6 @@ glyph-block Symbol-Math-Relation-Sym : begin SymbolMid - sympShift / 2 + EqualHalfSpace * 1.5 SymbolMid - sympShift / 2 - WithDotVariants 'oneDotSymEqEq' 0x2A6D : function [DrawAt kr ov] : composite-proc - refer-glyph 'symEqEq' - DrawAt Middle (PlusTop + EqualHalfSpace * 1.5) (DotRadius * kr * OperatorStroke / Stroke - ov) - create-glyph 'flipSymEq' 0x22CD : glyph-proc include [refer-glyph 'flipSym'] AS_BASE include : ApparentTranslate 0 (approxDist / 2) @@ -298,6 +290,38 @@ glyph-block Symbol-Math-Relation-Sym : begin include : HBar.m SB RightSB (SymbolMid - sympShift / 2 + EqualHalfSpace * 1.5) OperatorStroke include : HBar.m SB RightSB (SymbolMid - sympShift / 2) OperatorStroke + WithDotVariants 'oneDotSym' 0x2A6A : function [DrawAt kr ov] : composite-proc + refer-glyph 'sym' + DrawAt Middle PlusTop (DotRadius * kr * OperatorStroke / Stroke - ov) + + WithDotVariants 'twoDotSymAlt' 0x2A6B : function [DrawAt kr ov] : glyph-proc + local dr : DotRadius * kr * OperatorStroke / Stroke + include : refer-glyph 'sym' + include : DrawAt [mix SB RightSB (1/6)] PlusBot (dr - ov) + include : DrawAt [mix SB RightSB (5/6)] PlusTop (dr - ov) + + create-glyph 'symMinusSym' 0x2A6C : glyph-proc + include : symWave (SymbolMid + approxDist) 1 + include : HBar.m SB RightSB SymbolMid OperatorStroke + include : symWave (SymbolMid - approxDist) 1 + + WithDotVariants 'oneDotSymEqEq' 0x2A6D : function [DrawAt kr ov] : composite-proc + refer-glyph 'symEqEq' + DrawAt Middle (PlusTop + EqualHalfSpace * 1.5) (DotRadius * kr * OperatorStroke / Stroke - ov) + + create-glyph 'approxEqEq' 0x2A70 : glyph-proc + include : symWave (SymbolMid + approxDist * 1.375) 1 + include : symWave (SymbolMid + approxDist * 0.375) 1 + include : HBar.m SB RightSB (SymbolMid - approxDist * 1.5 + EqualHalfSpace * 1.5) OperatorStroke + include : HBar.m SB RightSB (SymbolMid - approxDist * 1.5) OperatorStroke + + create-glyph 'eqEqSym' 0x2A73 : glyph-proc + local sympShift : approxDist + EqualHalfSpace * 1.5 + include [refer-glyph 'sym'] AS_BASE + include : ApparentTranslate 0 (-sympShift / 2) + include : HBar.m SB RightSB (SymbolMid + sympShift / 2 - EqualHalfSpace * 1.5) OperatorStroke + include : HBar.m SB RightSB (SymbolMid + sympShift / 2) OperatorStroke + glyph-block Symbol-Math-Relation-Inequality : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives