From 21818c20a1bd92d370fa135d3883bda6c54c9cc1 Mon Sep 17 00:00:00 2001 From: be5invis Date: Thu, 11 Jan 2024 23:42:58 -0800 Subject: [PATCH] * Add characters: - LIGHTNING (`U+2607`) (#2158). - SUBSET WITH DOT (`U+2ABD`). - SUPERSET WITH DOT (`U+2ABE`). * `APLF` feature will apply to all [Uiua](https://www.uiua.org/) operators. --- changes/28.0.5.md | 5 +++++ packages/font-glyphs/src/symbol/arrow.ptl | 21 +++++++++++++++++++ packages/font-glyphs/src/symbol/math/apl.ptl | 13 ++++++++++++ .../font-glyphs/src/symbol/math/relation.ptl | 4 ++++ 4 files changed, 43 insertions(+) diff --git a/changes/28.0.5.md b/changes/28.0.5.md index a6266dd08..3997e67aa 100644 --- a/changes/28.0.5.md +++ b/changes/28.0.5.md @@ -1,4 +1,9 @@ +* Add characters: + - LIGHTNING (`U+2607`) (#2158). + - SUBSET WITH DOT (`U+2ABD`). + - SUPERSET WITH DOT (`U+2ABE`). * Add untagged variant selector for Cyrillic Capital Ef (`ะค`) for style-driven variation. * Fix leaning marks of Turned/Reversed Sans-Serif Capital L. * Fix leaning marks of Cyrillic Tall Te. * Fix leaning marks of Greek Lower Mu/Rho. +* `APLF` feature will apply to all [Uiua](https://www.uiua.org/) operators. diff --git a/packages/font-glyphs/src/symbol/arrow.ptl b/packages/font-glyphs/src/symbol/arrow.ptl index fdda40cff..075c2f784 100644 --- a/packages/font-glyphs/src/symbol/arrow.ptl +++ b/packages/font-glyphs/src/symbol/arrow.ptl @@ -1220,6 +1220,27 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 include : union TriangleArrowHead x3ArrowHeadMock y3 x4 y4 arrowHeadSize ZigZagArrowBar + + do "Lightning" + define x1 : mix arrowMidX arrowRSB (0.875 / [Math.sqrt MosaicWidthScalar]) + define x2 : mix arrowMidX arrowSB (0.875 / [Math.sqrt MosaicWidthScalar]) + define x3 x1 + + define y1 arrowTop + define y3 arrowBot + define y2 : mix y1 y3 0.5 + + define magLastSeg : Math.hypot (x3 - x2) (y3 - y2) + define pLastSeg : (magLastSeg - o - 0.55 * arrowSw) / magLastSeg + + create-glyph [MangleName 'lightning'] [MangleUnicode 0x2607] : glyph-proc + set-width MosaicWidth + include : dispiro + flat x1 y1 [widths.center arrowSw] + curl [mix x2 x1 0.2] [mix y2 y1 0.2] + flat [mix x2 x3 0.2] [mix y2 y3 0.2] + curl [mix x2 x3 pLastSeg] [mix y2 y3 pLastSeg] + include : ArrowHead x2 y2 x3 y3 arrowHeadSize do "Legacy computing arrows" define bodyWidth : Math.min arrowWidth (arrowHeight * 0.6) diff --git a/packages/font-glyphs/src/symbol/math/apl.ptl b/packages/font-glyphs/src/symbol/math/apl.ptl index 66e775473..b7949ad0f 100644 --- a/packages/font-glyphs/src/symbol/math/apl.ptl +++ b/packages/font-glyphs/src/symbol/math/apl.ptl @@ -271,6 +271,19 @@ glyph-block Symbol-Math-APL : begin LinkAplFormForNwidWwid 'uni2687' # Uiua symbols + LinkAplFormForNwidWwid 'whiteTriangleUp' + LinkAplFormForNwidWwid 'whiteTriangleRB' + LinkAplFormForNwidWwid 'arrowDownRight' + LinkAplFormForNwidWwid 'dashArrowUp' + LinkAplFormForNwidWwid 'barArrowUp' + LinkAplFormForNwidWwid 'barArrowDown' + LinkAplFormForNwidWwid 'cwOpenCircleArrow' + LinkAplFormForNwidWwid 'loopArrowLeft' + LinkAplFormForNwidWwid 'loopArrowRight' + LinkAplFormForNwidWwid 'uni21CC' LinkAplFormForNwidWwid 'uni238B' LinkAplFormForNwidWwid 'uni2335' + LinkAplFormForNwidWwid 'uni2682' LinkAplFormForNwidWwid 'telephoneRecorder' + LinkAplFormForNwidWwid 'lightning' + LinkAplFormForNwidWwid 'zigZagArrow' diff --git a/packages/font-glyphs/src/symbol/math/relation.ptl b/packages/font-glyphs/src/symbol/math/relation.ptl index c28df7102..ac25d79a1 100644 --- a/packages/font-glyphs/src/symbol/math/relation.ptl +++ b/packages/font-glyphs/src/symbol/math/relation.ptl @@ -762,6 +762,10 @@ glyph-block Symbol-Math-Relation-Subset : begin derive-composites 'supstBarNoRise' null 'supst' 'eqLower2' derive-composites 'supstBarNegated' 0x228B 'supstBarUpper' 'eqBarNegatedLower' + define supstDotShift : SB + [Math.max (OperatorStroke * 1.5) dHSubstSimple] - Middle + derive-composites 'substDot' 0x2ABD 'mathCDot' [ApparentTranslate (+supstDotShift) 0] 'subst' + derive-composites 'supstDot' 0x2ABE 'mathCDot' [ApparentTranslate (-supstDotShift) 0] 'supst' + create-glyph 'element' 0x2208 : glyph-proc include : SubsetShape (SymbolMid + dHElem) (SymbolMid - dHElem) include : HBar.m (SB + HalfStroke) RightSB SymbolMid OperatorStroke