diff --git a/changes/30.0.0.md b/changes/30.0.0.md index df94647d3..b209a927a 100644 --- a/changes/30.0.0.md +++ b/changes/30.0.0.md @@ -11,3 +11,5 @@ - BOTTOM RIGHT CROP (`U+230C`) ... TOP LEFT CROP (`U+230F`). - KEYBOARD (`U+2328`). - COUNTERBORE (`U+2334`). + - LESS-THAN ABOVE SIMILAR OR EQUAL (`U+2A8D`). + - GREATER-THAN ABOVE SIMILAR OR EQUAL (`U+2A8E`). diff --git a/packages/font-glyphs/src/symbol/math/relation.ptl b/packages/font-glyphs/src/symbol/math/relation.ptl index 12f53f692..c501dc379 100644 --- a/packages/font-glyphs/src/symbol/math/relation.ptl +++ b/packages/font-glyphs/src/symbol/math/relation.ptl @@ -490,12 +490,12 @@ glyph-block Symbol-Math-Relation-Inequality : begin create-glyph 'normalSubsetUpper' : AsRadical : NormalSubsetShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist) SB RightSB create-glyph 'normalSupersetUpper' : AsRadical : NormalSupersetShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist) SB RightSB - derive-composites 'less.narrow' null 'lessEqUpper' [ApparentTranslate 0 (-lessEqDist)] - derive-composites 'lessEq' 0x2264 'lessEqUpper' 'eqLower' - derive-composites 'lessEqBarNegated' 0x2A87 'lessEqUpper' 'eqBarNegatedLower' - derive-composites 'lessSym' 0x2272 'lessEqUpper' 'symLower' + derive-composites 'less.narrow' null 'lessEqUpper' [ApparentTranslate 0 (-lessEqDist)] + derive-composites 'lessEq' 0x2264 'lessEqUpper' 'eqLower' + derive-composites 'lessEqBarNegated' 0x2A87 'lessEqUpper' 'eqBarNegatedLower' + derive-composites 'lessSym' 0x2272 'lessEqUpper' 'symLower' derive-composites 'lessSymBarNegated' 0x22E6 'lessEqUpper' 'symBarNegatedLower' - derive-composites 'lessEqSlant' 0x2A7D 'lessEqUpper' + derive-composites 'lessEqSlant' 0x2A7D 'lessEqUpper' LessShapeHalf 0 (SymbolMid + dH - lessEqDist) (SymbolMid - dH - lessEqDist) SB RightSB OperatorStroke WithDotVariants 'lessEqSlantDot' 0x2A7F : function [DrawAt kr ov] : composite-proc @@ -503,12 +503,12 @@ glyph-block Symbol-Math-Relation-Inequality : begin LessShapeHalf 0 (SymbolMid + dH - lessEqDist) (SymbolMid - dH - lessEqDist) SB RightSB [AdviceStroke 4] DrawAt (RightSB - DotRadius) (SymbolMid + lessEqDist) (DotRadius * kr * [AdviceStroke 4] / Stroke - ov) - derive-composites 'greater.narrow' null 'greaterEqUpper' [ApparentTranslate 0 (-lessEqDist)] - derive-composites 'greaterEq' 0x2265 'greaterEqUpper' 'eqLower' - derive-composites 'greaterEqBarNegated' 0x2A88 'greaterEqUpper' 'eqBarNegatedLower' - derive-composites 'greaterSym' 0x2273 'greaterEqUpper' 'symLower' + derive-composites 'greater.narrow' null 'greaterEqUpper' [ApparentTranslate 0 (-lessEqDist)] + derive-composites 'greaterEq' 0x2265 'greaterEqUpper' 'eqLower' + derive-composites 'greaterEqBarNegated' 0x2A88 'greaterEqUpper' 'eqBarNegatedLower' + derive-composites 'greaterSym' 0x2273 'greaterEqUpper' 'symLower' derive-composites 'greaterSymBarNegated' 0x22E7 'greaterEqUpper' 'symBarNegatedLower' - derive-composites 'greaterEqSlant' 0x2A7E 'greaterEqUpper' + derive-composites 'greaterEqSlant' 0x2A7E 'greaterEqUpper' GreaterShapeHalf 0 (SymbolMid + dH - lessEqDist) (SymbolMid - dH - lessEqDist) SB RightSB OperatorStroke WithDotVariants 'greaterEqSlantDot' 0x2A80 : function [DrawAt kr ov] : composite-proc @@ -516,11 +516,11 @@ glyph-block Symbol-Math-Relation-Inequality : begin GreaterShapeHalf 0 (SymbolMid + dH - lessEqDist) (SymbolMid - dH - lessEqDist) SB RightSB [AdviceStroke 4] DrawAt (SB + DotRadius) (SymbolMid + lessEqDist) (DotRadius * kr * [AdviceStroke 4] / Stroke - ov) - derive-composites 'normalSubsetEq' 0x22B4 'normalSubsetUpper' 'eqLower' + derive-composites 'normalSubsetEq' 0x22B4 'normalSubsetUpper' 'eqLower' derive-composites 'normalSupersetEq' 0x22B5 'normalSupersetUpper' 'eqLower' turned 'turnGreaterEq' 0x22DC 'greaterEq' Middle SymbolMid - turned 'turnLessEq' 0x22DD 'lessEq' Middle SymbolMid + turned 'turnLessEq' 0x22DD 'lessEq' Middle SymbolMid do "Ligation Glyphs" define l : 0.3 * Width @@ -550,23 +550,25 @@ glyph-block Symbol-Math-Relation-Inequality : begin create-glyph 'lessEqEqUpper' : AsRadical : LessShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist * 1.75) SB RightSB lesslessSW create-glyph 'greaterEqEqUpper' : AsRadical : GreaterShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist * 1.75) SB RightSB lesslessSW - derive-composites 'lessEqEq' 0x2266 'lessEqEqUpper' 'eqEqLower' - derive-composites 'lessEqEqBarNegated' 0x2268 'lessEqEqUpper' 'eqEqBarNegatedLower' - derive-composites 'lessSymSym' 0x2A85 'lessEqEqUpper' 'symSymLower' - derive-composites 'lessSymSymBarNegated' 0x2A89 'lessEqEqUpper' 'symSymBarNegatedLower' - derive-composites 'greaterEqEq' 0x2267 'greaterEqEqUpper' 'eqEqLower' - derive-composites 'greaterEqEqBarNegated' 0x2269 'greaterEqEqUpper' 'eqEqBarNegatedLower' - derive-composites 'greaterSymSym' 0x2A86 'greaterEqEqUpper' 'symSymLower' + derive-composites 'lessEqEq' 0x2266 'lessEqEqUpper' 'eqEqLower' + derive-composites 'greaterEqEq' 0x2267 'greaterEqEqUpper' 'eqEqLower' + derive-composites 'lessEqEqBarNegated' 0x2268 'lessEqEqUpper' 'eqEqBarNegatedLower' + derive-composites 'greaterEqEqBarNegated' 0x2269 'greaterEqEqUpper' 'eqEqBarNegatedLower' + derive-composites 'lessSymSym' 0x2A85 'lessEqEqUpper' 'symSymLower' + derive-composites 'greaterSymSym' 0x2A86 'greaterEqEqUpper' 'symSymLower' + derive-composites 'lessSymSymBarNegated' 0x2A89 'lessEqEqUpper' 'symSymBarNegatedLower' derive-composites 'greaterSymSymBarNegated' 0x2A8A 'greaterEqEqUpper' 'symSymBarNegatedLower' + derive-composites 'lessSymEq' 0x2A8D 'lessEqEqUpper' 'symEqLower' + derive-composites 'greaterSymEq' 0x2A8E 'greaterEqEqUpper' 'symEqLower' - turned 'turnGreaterEqSlant' 0x2A95 'greaterEqSlant' Middle SymbolMid - turned 'turnLessEqSlant' 0x2A96 'lessEqSlant' Middle SymbolMid + turned 'turnGreaterEqSlant' 0x2A95 'greaterEqSlant' Middle SymbolMid + turned 'turnLessEqSlant' 0x2A96 'lessEqSlant' Middle SymbolMid turned 'turnGreaterEqSlantDot' 0x2A97 'greaterEqSlantDot' Middle SymbolMid - turned 'turnLessEqSlantDot' 0x2A98 'lessEqSlantDot' Middle SymbolMid - turned 'turnGreaterEqEq' 0x2A99 'greaterEqEq' Middle SymbolMid - turned 'turnLessEqEq' 0x2A9A 'lessEqEq' Middle SymbolMid - turned 'turnGreaterSym' 0x2A9D 'greaterSym' Middle SymbolMid - turned 'turnLessSym' 0x2A9E 'lessSym' Middle SymbolMid + turned 'turnLessEqSlantDot' 0x2A98 'lessEqSlantDot' Middle SymbolMid + turned 'turnGreaterEqEq' 0x2A99 'greaterEqEq' Middle SymbolMid + turned 'turnLessEqEq' 0x2A9A 'lessEqEq' Middle SymbolMid + turned 'turnGreaterSym' 0x2A9D 'greaterSym' Middle SymbolMid + turned 'turnLessSym' 0x2A9E 'lessSym' Middle SymbolMid create-glyph 'lessGreater' 0x2276 : glyph-proc include : LessShape (SymbolMid + llggHeight / 2) (SymbolMid - llggHeight / 6 + lessEqDist) SB RightSB lesslessSW @@ -647,31 +649,31 @@ glyph-block Symbol-Math-Relation-Precedes-Succeeds : begin create-glyph 'succeedsEqUpper' : AsRadical : SucceedsShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist) SB RightSB create-glyph 'succeedsEqEqUpper' : AsRadical : SucceedsShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist * 1.75) SB RightSB lesslessSW - derive-composites 'precedes.narrow' null 'precedesEqUpper' [ApparentTranslate 0 (-lessEqDist)] - derive-composites 'precedesEq' 0x2AAF 'precedesEqUpper' 'eqLower' - derive-composites 'precedesEqBarNegated' 0x2AB1 'precedesEqUpper' 'eqBarNegatedLower' - derive-composites 'precedesSym' 0x227E 'precedesEqUpper' 'symLower' + derive-composites 'precedes.narrow' null 'precedesEqUpper' [ApparentTranslate 0 (-lessEqDist)] + derive-composites 'precedesEq' 0x2AAF 'precedesEqUpper' 'eqLower' + derive-composites 'precedesEqBarNegated' 0x2AB1 'precedesEqUpper' 'eqBarNegatedLower' + derive-composites 'precedesSym' 0x227E 'precedesEqUpper' 'symLower' derive-composites 'precedesSymBarNegated' 0x22E8 'precedesEqUpper' 'symBarNegatedLower' - derive-composites 'precedesEqSlant' 0x227C 'precedesEqUpper' + derive-composites 'precedesEqSlant' 0x227C 'precedesEqUpper' PrecedesShapeB (SymbolMid + dH - lessEqDist) (SymbolMid - dH - lessEqDist) SB RightSB OperatorStroke 1 - derive-composites 'precedesEqEq' 0x2AB3 'precedesEqEqUpper' 'eqEqLower' - derive-composites 'precedesEqEqBarNegated' 0x2AB5 'precedesEqEqUpper' 'eqEqBarNegatedLower' - derive-composites 'precedesSymSym' 0x2AB7 'precedesEqEqUpper' 'symSymLower' + derive-composites 'precedesEqEq' 0x2AB3 'precedesEqEqUpper' 'eqEqLower' + derive-composites 'precedesEqEqBarNegated' 0x2AB5 'precedesEqEqUpper' 'eqEqBarNegatedLower' + derive-composites 'precedesSymSym' 0x2AB7 'precedesEqEqUpper' 'symSymLower' derive-composites 'precedesSymSymBarNegated' 0x2AB9 'precedesEqEqUpper' 'symSymBarNegatedLower' - derive-composites 'succeeds.narrow' null 'succeedsEqUpper' [ApparentTranslate 0 (-lessEqDist)] - derive-composites 'succeedsEq' 0x2AB0 'succeedsEqUpper' 'eqLower' - derive-composites 'succeedsEqBarNegated' 0x2AB2 'succeedsEqUpper' 'eqBarNegatedLower' - derive-composites 'succeedsSym' 0x227F 'succeedsEqUpper' 'symLower' + derive-composites 'succeeds.narrow' null 'succeedsEqUpper' [ApparentTranslate 0 (-lessEqDist)] + derive-composites 'succeedsEq' 0x2AB0 'succeedsEqUpper' 'eqLower' + derive-composites 'succeedsEqBarNegated' 0x2AB2 'succeedsEqUpper' 'eqBarNegatedLower' + derive-composites 'succeedsSym' 0x227F 'succeedsEqUpper' 'symLower' derive-composites 'succeedsSymBarNegated' 0x22E9 'succeedsEqUpper' 'symBarNegatedLower' - derive-composites 'succeedsEqSlant' 0x227D 'succeedsEqUpper' + derive-composites 'succeedsEqSlant' 0x227D 'succeedsEqUpper' SucceedsShapeB (SymbolMid + dH - lessEqDist) (SymbolMid - dH - lessEqDist) SB RightSB OperatorStroke 1 - derive-composites 'succeedsEqEq' 0x2AB4 'succeedsEqEqUpper' 'eqEqLower' - derive-composites 'succeedsEqEqBarNegated' 0x2AB6 'succeedsEqEqUpper' 'eqEqBarNegatedLower' - derive-composites 'succeedsSymSym' 0x2AB8 'succeedsEqEqUpper' 'symSymLower' + derive-composites 'succeedsEqEq' 0x2AB4 'succeedsEqEqUpper' 'eqEqLower' + derive-composites 'succeedsEqEqBarNegated' 0x2AB6 'succeedsEqEqUpper' 'eqEqBarNegatedLower' + derive-composites 'succeedsSymSym' 0x2AB8 'succeedsEqEqUpper' 'symSymLower' derive-composites 'succeedsSymSymBarNegated' 0x2ABA 'succeedsEqEqUpper' 'symSymBarNegatedLower' turned 'turnSucceedsEqSlant' 0x22DE 'succeedsEqSlant' Middle SymbolMid @@ -750,7 +752,7 @@ glyph-block Symbol-Math-Relation-Subset : begin include : SubsetShape (SymbolMid + dHSubstSimple) (SymbolMid - dHSubstSimple) (sw -- sw) include : SubsetShape (SymbolMid + dHSubstSimple) (SymbolMid - dHSubstSimple) (sw -- sw) (offset -- gap + sw) - turned 'supst' 0x2283 'subst' Middle SymbolMid + turned 'supst' 0x2283 'subst' Middle SymbolMid turned 'doubleSupst' 0x22D1 'doubleSubst' Middle SymbolMid create-glyph 'substBarUpper' : AsRadical @@ -758,11 +760,11 @@ glyph-block Symbol-Math-Relation-Subset : begin create-glyph 'supstBarUpper' : AsRadical SupsetShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist) - derive-composites 'substBar' 0x2286 'substBarUpper' 'eqLower' - derive-composites 'substBarNoRise' null 'subst' 'eqLower2' + derive-composites 'substBar' 0x2286 'substBarUpper' 'eqLower' + derive-composites 'substBarNoRise' null 'subst' 'eqLower2' derive-composites 'substBarNegated' 0x228A 'substBarUpper' 'eqBarNegatedLower' - derive-composites 'supstBar' 0x2287 'supstBarUpper' 'eqLower' - derive-composites 'supstBarNoRise' null 'supst' 'eqLower2' + derive-composites 'supstBar' 0x2287 'supstBarUpper' 'eqLower' + derive-composites 'supstBarNoRise' null 'supst' 'eqLower2' derive-composites 'supstBarNegated' 0x228B 'supstBarUpper' 'eqBarNegatedLower' define supstDotShift : SB + [Math.max (OperatorStroke * 1.5) dHSubstSimple] - Middle @@ -876,9 +878,9 @@ glyph-block Symbol-Math-Relation-Precedes-Succeeds-Prefix-Suffix : begin create-glyph 'suffixBarUpper' : AsRadical SuffixShape (SymbolMid + dSH + lessEqDist) (SymbolMid - dSH + lessEqDist) - derive-composites 'prefixBar' 0x2291 'prefixBarUpper' 'eqLower' + derive-composites 'prefixBar' 0x2291 'prefixBarUpper' 'eqLower' derive-composites 'prefixBarNegated' 0x22E4 'prefixBarUpper' 'eqBarNegatedLower' - derive-composites 'suffixBar' 0x2292 'suffixBarUpper' 'eqLower' + derive-composites 'suffixBar' 0x2292 'suffixBarUpper' 'eqLower' derive-composites 'suffixBarNegated' 0x22E5 'suffixBarUpper' 'eqBarNegatedLower' create-glyph 'prefixElement' 0x22FF : glyph-proc @@ -914,7 +916,6 @@ glyph-block Symbol-Math-Relation-Between : begin alsoThru.g2 (kShape) 0.5 g4 [frame.mixX (1 - kExt)] [frame.mixY 0.0] [widths.lhs OperatorStroke] - glyph-block Symbol-Math-Relation-Addon-Glyphs : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives @@ -929,10 +930,10 @@ glyph-block Symbol-Math-Relation-Addon-Glyphs : begin flat (Middle + dist) (symbolBottom - dist + swo) [heading Downward] flat (Middle - dist) (symbolBottom - dist - swo) [heading Downward] - create-glyph 'eqLower' : AsRadical : HBar.m SB RightSB (SymbolMid - dSH - lessEqDist) OperatorStroke - create-glyph 'eqLower2' : AsRadical : HBar.m SB RightSB (SymbolMid - dSH - 2 * lessEqDist) OperatorStroke - create-glyph 'eqBarNegatedLower' : AsRadical : union [refer-glyph 'eqLower'] [BarNegator (SymbolMid - dSH) lessEqDist] - create-glyph 'symLower' : AsRadical : symWave (SymbolMid - dSH - lessEqDist) 1 + create-glyph 'eqLower' : AsRadical : HBar.m SB RightSB (SymbolMid - dSH - lessEqDist) OperatorStroke + create-glyph 'eqLower2' : AsRadical : HBar.m SB RightSB (SymbolMid - dSH - 2 * lessEqDist) OperatorStroke + create-glyph 'eqBarNegatedLower' : AsRadical : union [refer-glyph 'eqLower'] [BarNegator (SymbolMid - dSH) lessEqDist] + create-glyph 'symLower' : AsRadical : symWave (SymbolMid - dSH - lessEqDist) 1 create-glyph 'symBarNegatedLower' : AsRadical : union [refer-glyph 'symLower'] [BarNegator (SymbolMid - dSH) lessEqDist] create-glyph 'eqEqLower' : AsRadical : union @@ -941,5 +942,8 @@ glyph-block Symbol-Math-Relation-Addon-Glyphs : begin create-glyph 'symSymLower' : AsRadical : union symWave (SymbolMid - dSH + lessEqDist * 2 / 3) 1 lesslessSW symWave (SymbolMid - dSH - lessEqDist) 1 lesslessSW - create-glyph 'eqEqBarNegatedLower' : AsRadical : union [refer-glyph 'eqEqLower'] [EqEqBarNegation] + create-glyph 'symEqLower' : AsRadical : union + symWave (SymbolMid - dSH + lessEqDist * 2 / 3) 1 lesslessSW + HBar.m SB RightSB (SymbolMid - dSH - lessEqDist * 7 / 6) lesslessSW + create-glyph 'eqEqBarNegatedLower' : AsRadical : union [refer-glyph 'eqEqLower'] [EqEqBarNegation] create-glyph 'symSymBarNegatedLower' : AsRadical : union [refer-glyph 'symSymLower'] [EqEqBarNegation]