diff --git a/changes/29.0.0-beta.2.md b/changes/29.0.0-beta.2.md index 69d3a7d8e..c4d8bf161 100644 --- a/changes/29.0.0-beta.2.md +++ b/changes/29.0.0-beta.2.md @@ -1 +1,26 @@ +* Add characters: + - SYMBOL FOR DELETE MEDIUM SHADE FORM (`U+2429`). + - GEAR WITHOUT HUB (`U+26ED`). + - GEAR WITH HANDLES (`U+26EE`). + - MAP SYMBOL FOR LIGHTHOUSE (`U+26EF`). + - THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD (`U+27A2`). + - THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD (`U+27A3`). + - LEFT RAISED OMISSION BRACKET (`U+2E0C`). + - RIGHT RAISED OMISSION BRACKET (`U+2E0C`). + - LEFT LOW PARAPHRASE BRACKET (`U+2E1C`). + - RIGHT LOW PARAPHRASE BRACKET (`U+2E1C`). + - BOX DRAWINGS DOUBLE DIAGONAL UPPER RIGHT TO LOWER LEFT (`U+1CC1F`) (Proposed for Unicode 16; L2/21-235). + - BOX DRAWINGS DOUBLE DIAGONAL UPPER LEFT TO LOWER RIGHT (`U+1CC20`) (Proposed for Unicode 16; L2/21-235). + - EIGHT RAYS INWARD (`U+1CC69`) ... BLACK LARGE CIRCLE MINUS LOWER QUARTER SECTION (`U+1CC6E`) (Proposed for Unicode 16; L2/21-235). + - SQUARE FOUR CORNER SALTIRES (`U+1CC89`) ... INVERSE BLACK DIAMOND (`U+1CC8D`) (Proposed for Unicode 16; L2/21-235). + - WHITE VERTICAL RECTANGLE WITH HORIZONTAL BAR (`U+1CE06`) (Proposed for Unicode 16; L2/21-235). + - NO ONE UNDER EIGHTEEN SYMBOL (`U+1F51E`). + - BLACK HEART (`U+1F5A4`). + - RAISED LEFT SMALL SQUARE BRACKET (`U+1FBCC`) (Proposed for Unicode 16; L2/21-235). +* Add `MOSC` form: + - BLACK UP-POINTING TRIANGLE (`U+25B2`). + - BLACK RIGHT-POINTING TRIANGLE (`U+25B6`). + - BLACK DOWN-POINTING TRIANGLE (`U+25BC`). + - BLACK LEFT-POINTING TRIANGLE (`U+25C0`). +* Fix broken shape of `U+1FB95`, `U+1FB96` and `U+1FB97` (#2218). * Increase weight for `U+276E`/`U+276F` (#2217). diff --git a/packages/font-glyphs/src/symbol/geometric.ptl b/packages/font-glyphs/src/symbol/geometric.ptl index 519601074..e4a516d3b 100644 --- a/packages/font-glyphs/src/symbol/geometric.ptl +++ b/packages/font-glyphs/src/symbol/geometric.ptl @@ -12,3 +12,4 @@ export : define [apply] : begin run-glyph-module "./geometric/masked.mjs" run-glyph-module "./geometric/ballot-box.mjs" run-glyph-module "./geometric/corner-shape.mjs" + run-glyph-module "./geometric/square-corners.mjs" diff --git a/packages/font-glyphs/src/symbol/geometric/plain.ptl b/packages/font-glyphs/src/symbol/geometric/plain.ptl index 9d8e3ce0d..0bb5a24a3 100644 --- a/packages/font-glyphs/src/symbol/geometric/plain.ptl +++ b/packages/font-glyphs/src/symbol/geometric/plain.ptl @@ -201,14 +201,6 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1 StdBlackShape TriangleRTFill 'blackTriangleRT' 0x25E5 ConvexWhitePolygon TriangleRTFill 'whiteTriangleRT' 0x25F9 - create-glyph [MangleName 'squareCorners'] [MangleUnicode 0x26F6] : glyph-proc - set-width Geom.Width - include : difference - refer-glyph : MangleName 'whiteSquare' - union - intersection [MaskBelow (Geom.MidY + Geom.Size / 3)] [MaskAbove (Geom.MidY - Geom.Size / 3)] - intersection [MaskLeft (Geom.MidX + Geom.Size / 3)] [MaskRight (Geom.MidX - Geom.Size / 3)] - define [SquareOverlap name unicode rev square1 square2] : begin create-glyph [MangleName name] [MangleUnicode unicode] : glyph-proc set-width Geom.Width @@ -225,25 +217,28 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1 SquareOverlap 'overlapBBSquare' 0x2BBC 0 1 1 do "Rectangle" - define [RectangleFill cx cy r] : spiro-outline + define [HoriRectangleFill cx cy r] : spiro-outline corner (cx - r) (cy + r / 1.5) corner (cx + r) (cy + r / 1.5) corner (cx + r) (cy - r / 1.5) corner (cx - r) (cy - r / 1.5) - StdBlackShape RectangleFill 'blackRectangle' 0x25AC - ConvexWhitePolygon RectangleFill 'whiteRectangle' 0x25AD + StdBlackShape HoriRectangleFill 'blackHoriRectangle' 0x25AC + ConvexWhitePolygon HoriRectangleFill 'whiteHoriRectangle' 0x25AD - define [LongRectangleFill cx cy r] : begin - define rs : Geom.TallSize / (r * 1.5) - return : spiro-outline - corner (cx - r * rs) (cy + r * rs * 1.5) - corner (cx + r * rs) (cy + r * rs * 1.5) - corner (cx + r * rs) (cy - r * rs * 1.5) - corner (cx - r * rs) (cy - r * rs * 1.5) + define [VertRectangleFill cx cy r] : spiro-outline + corner (cx - r / 1.5) (cy + r) + corner (cx + r / 1.5) (cy + r) + corner (cx + r / 1.5) (cy - r) + corner (cx - r / 1.5) (cy - r) - StdBlackShape LongRectangleFill 'blackLongRectangle' 0x25AE - ConvexWhitePolygon LongRectangleFill 'whiteLongRectangle' 0x25AF + StdBlackShape VertRectangleFill 'blackVertRectangle' 0x25AE + ConvexWhitePolygon VertRectangleFill 'whiteVertRectangle' 0x25AF + + create-glyph [MangleName 'whiteVertRectangleBar'] [MangleUnicode 0x1CE06] : glyph-proc + set-width Geom.Width + include : refer-glyph : MangleName 'whiteVertRectangle' + include : HBar.m (Geom.MidX - Geom.Size) (Geom.MidX + Geom.Size) Geom.MidY GeometryStroke define [ParallelogramFill cx cy r] : begin define skew : r * 1 / 4 @@ -502,6 +497,27 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1 StdBlackShape CircleInvertInnerShape 'blackInvInnerCircle' null StdWhiteShape CircleInvertInnerShape 'whiteInvInnerCircle' null + create-glyph [MangleName 'blackCircleMinusQuarterLeft'] [MangleUnicode 0x1CC6B] : glyph-proc + set-width Geom.Width + include : difference + refer-glyph : MangleName 'blackCircle' + spiro-outline [corner (Geom.MidX - Geom.Size) (Geom.MidY + Geom.Size)] [corner Geom.MidX Geom.MidY] [corner (Geom.MidX - Geom.Size) (Geom.MidY - Geom.Size)] + create-glyph [MangleName 'blackCircleMinusQuarterUp'] [MangleUnicode 0x1CC6C] : glyph-proc + set-width Geom.Width + include : difference + refer-glyph : MangleName 'blackCircle' + spiro-outline [corner (Geom.MidX + Geom.Size) (Geom.MidY + Geom.Size)] [corner Geom.MidX Geom.MidY] [corner (Geom.MidX - Geom.Size) (Geom.MidY + Geom.Size)] + create-glyph [MangleName 'blackCircleMinusQuarterRight'] [MangleUnicode 0x1CC6D] : glyph-proc + set-width Geom.Width + include : difference + refer-glyph : MangleName 'blackCircle' + spiro-outline [corner (Geom.MidX + Geom.Size) (Geom.MidY - Geom.Size)] [corner Geom.MidX Geom.MidY] [corner (Geom.MidX + Geom.Size) (Geom.MidY + Geom.Size)] + create-glyph [MangleName 'blackCircleMinusQuarterDown'] [MangleUnicode 0x1CC6E] : glyph-proc + set-width Geom.Width + include : difference + refer-glyph : MangleName 'blackCircle' + spiro-outline [corner (Geom.MidX - Geom.Size) (Geom.MidY - Geom.Size)] [corner Geom.MidX Geom.MidY] [corner (Geom.MidX + Geom.Size) (Geom.MidY - Geom.Size)] + do "Ellipse" define [EllipseFillT kx ky] : lambda [cx cy r s] : begin define rOrig : r + s diff --git a/packages/font-glyphs/src/symbol/geometric/square-corners.ptl b/packages/font-glyphs/src/symbol/geometric/square-corners.ptl new file mode 100644 index 000000000..09b5df004 --- /dev/null +++ b/packages/font-glyphs/src/symbol/geometric/square-corners.ptl @@ -0,0 +1,104 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" + +glyph-module + +glyph-block Symbol-Geometric-Square-Corners : for-width-kinds WideWidth1 + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Symbol-Geometric-Shared : GeometricDim UnicodeWeightGrade GeometricSizes + + define Geom : GeometricDim MosaicUnitWidth MosaicWidth + + define lineWidth : Math.min GeometryStroke ((Geom.Size * 2 - GeometryStroke * 2) * 1 / 11) + define aperature : Geom.Size / 3 + + do "squared form" + create-glyph [MangleName 'squareCorners'] [MangleUnicode 0x26F6] : glyph-proc + set-width Geom.Width + include : difference + refer-glyph : MangleName 'whiteSquare' + union + intersection [MaskBelow (Geom.MidY + Geom.Size / 3)] [MaskAbove (Geom.MidY - Geom.Size / 3)] + intersection [MaskLeft (Geom.MidX + Geom.Size / 3)] [MaskRight (Geom.MidX - Geom.Size / 3)] + + create-glyph [MangleName 'squareCornersSaltires'] [MangleUnicode 0x1CC89] : glyph-proc + set-width Geom.Width + include : intersection + difference + refer-glyph : MangleName 'blackSquare' + union + intersection [MaskBelow (Geom.MidY + Geom.Size / 3)] [MaskAbove (Geom.MidY - Geom.Size / 3)] + intersection [MaskLeft (Geom.MidX + Geom.Size / 3)] [MaskRight (Geom.MidX - Geom.Size / 3)] + union + dispiro [widths.center lineWidth] [flat Geom.MidX (Geom.MidY + Geom.Size * (4 / 3))] [curl (Geom.MidX + Geom.Size * (4 / 3)) Geom.MidY] + dispiro [widths.center lineWidth] [flat (Geom.MidX + Geom.Size * (4 / 3)) Geom.MidY] [curl Geom.MidX (Geom.MidY - Geom.Size * (4 / 3))] + dispiro [widths.center lineWidth] [flat Geom.MidX (Geom.MidY - Geom.Size * (4 / 3))] [curl (Geom.MidX - Geom.Size * (4 / 3)) Geom.MidY] + dispiro [widths.center lineWidth] [flat (Geom.MidX - Geom.Size * (4 / 3)) Geom.MidY] [curl Geom.MidX (Geom.MidY + Geom.Size * (4 / 3))] + dispiro [widths.center lineWidth] [flat (Geom.MidX - Geom.Size) (Geom.MidY + Geom.Size)] [curl (Geom.MidX + Geom.Size) (Geom.MidY - Geom.Size)] + dispiro [widths.center lineWidth] [flat (Geom.MidX - Geom.Size) (Geom.MidY - Geom.Size)] [curl (Geom.MidX + Geom.Size) (Geom.MidY + Geom.Size)] + + create-glyph [MangleName 'squareCornersDiagonals'] [MangleUnicode 0x1CC8A] : glyph-proc + set-width Geom.Width + include : intersection + refer-glyph : MangleName 'blackSquare' + union + dispiro [widths.lhs lineWidth] [flat Geom.MidX (Geom.MidY + Geom.Size * (4 / 3))] [curl (Geom.MidX + Geom.Size * (4 / 3)) Geom.MidY] + dispiro [widths.lhs lineWidth] [flat (Geom.MidX + Geom.Size * (4 / 3)) Geom.MidY] [curl Geom.MidX (Geom.MidY - Geom.Size * (4 / 3))] + dispiro [widths.lhs lineWidth] [flat Geom.MidX (Geom.MidY - Geom.Size * (4 / 3))] [curl (Geom.MidX - Geom.Size * (4 / 3)) Geom.MidY] + dispiro [widths.lhs lineWidth] [flat (Geom.MidX - Geom.Size * (4 / 3)) Geom.MidY] [curl Geom.MidX (Geom.MidY + Geom.Size * (4 / 3))] + + create-glyph [MangleName 'squareCornersTriangles'] [MangleUnicode 0x1CC8B] : glyph-proc + set-width Geom.Width + include : difference + refer-glyph : MangleName 'blackSquare' + spiro-outline + corner Geom.MidX (Geom.MidY + Geom.Size * (4 / 3)) + corner (Geom.MidX + Geom.Size * (4 / 3)) Geom.MidY + corner Geom.MidX (Geom.MidY - Geom.Size * (4 / 3)) + corner (Geom.MidX - Geom.Size * (4 / 3)) Geom.MidY + + create-glyph [MangleName 'squareAperature'] [MangleUnicode 0x1CC8C] : glyph-proc + set-width Geom.Width + include : refer-glyph : MangleName 'whiteSquare' + include : intersection + refer-glyph : MangleName 'blackSquare' + union + intersection + spiro-outline + corner (Geom.MidX - Geom.Size - aperature) (Geom.MidY + Geom.Size) + corner (Geom.MidX + Geom.Size) (Geom.MidY + Geom.Size) + corner (Geom.MidX + Geom.Size) (Geom.MidY - Geom.Size - aperature) + dispiro + widths.center lineWidth + flat (Geom.MidX - Geom.Size) (Geom.MidY - Geom.Size + aperature) + curl (Geom.MidX + Geom.Size) (Geom.MidY + Geom.Size + aperature) + intersection + spiro-outline + corner (Geom.MidX + Geom.Size) (Geom.MidY + Geom.Size + aperature) + corner (Geom.MidX + Geom.Size) (Geom.MidY - Geom.Size) + corner (Geom.MidX - Geom.Size - aperature) (Geom.MidY - Geom.Size) + dispiro + widths.center lineWidth + flat (Geom.MidX - Geom.Size + aperature) (Geom.MidY + Geom.Size) + curl (Geom.MidX + Geom.Size + aperature) (Geom.MidY - Geom.Size) + intersection + spiro-outline + corner (Geom.MidX + Geom.Size + aperature) (Geom.MidY - Geom.Size) + corner (Geom.MidX - Geom.Size) (Geom.MidY - Geom.Size) + corner (Geom.MidX - Geom.Size) (Geom.MidY + Geom.Size + aperature) + dispiro + widths.center lineWidth + flat (Geom.MidX - Geom.Size) (Geom.MidY - Geom.Size - aperature) + curl (Geom.MidX + Geom.Size) (Geom.MidY + Geom.Size - aperature) + intersection + spiro-outline + corner (Geom.MidX - Geom.Size) (Geom.MidY - Geom.Size - aperature) + corner (Geom.MidX - Geom.Size) (Geom.MidY + Geom.Size) + corner (Geom.MidX + Geom.Size + aperature) (Geom.MidY + Geom.Size) + dispiro + widths.center lineWidth + flat (Geom.MidX - Geom.Size - aperature) (Geom.MidY + Geom.Size) + curl (Geom.MidX + Geom.Size - aperature) (Geom.MidY - Geom.Size) diff --git a/packages/font-glyphs/src/symbol/geometric/sun-and-gear.ptl b/packages/font-glyphs/src/symbol/geometric/sun-and-gear.ptl index de23a04f5..139640bcf 100644 --- a/packages/font-glyphs/src/symbol/geometric/sun-and-gear.ptl +++ b/packages/font-glyphs/src/symbol/geometric/sun-and-gear.ptl @@ -13,7 +13,8 @@ glyph-block Symbol-Geometric-Sun-And-Gear : for-width-kinds WideWidth1 define Geom : GeometricDim MosaicUnitWidth MosaicWidth define Size : GeometricSizes Geom - define [EightPointingRaysShape r] : glyph-proc + define [EightPointingRaysShape r _r2] : glyph-proc + local r2 : fallback _r2 Geom.Size foreach [n : range 0 8] : begin local theta : n / 8 * Math.PI * 2 local c : Math.cos theta @@ -21,12 +22,16 @@ glyph-block Symbol-Geometric-Sun-And-Gear : for-width-kinds WideWidth1 include : dispiro widths.center rayWidth corner (Geom.MidX + c * r) (Geom.MidY + s * r) - corner (Geom.MidX + c * Geom.Size) (Geom.MidY + s * Geom.Size) + corner (Geom.MidX + c * r2) (Geom.MidY + s * r2) define rayWidth : AdviceStroke 8 [Math.sqrt Geom.Scalar] define rayInnerRadius : Geom.Size * 0.56 define dotRadius : Geom.Size * 0.44 + define gearRingRad : mix rayInnerRadius Geom.Size 0.3 + define handleLength : Geom.Size * 0.5 + define rayInwardShrink : Geom.Size * 0.25 + create-glyph [MangleName 'blackSunWithRays'] [MangleUnicode 0x2600] : glyph-proc set-width Geom.Width include : EightPointingRaysShape rayInnerRadius @@ -35,15 +40,31 @@ glyph-block Symbol-Geometric-Sun-And-Gear : for-width-kinds WideWidth1 set-width Geom.Width include : EightPointingRaysShape rayInnerRadius include : RingStrokeAt Geom.MidX Geom.MidY dotRadius rayWidth - create-glyph [MangleName 'gear'] [MangleUnicode 0x2699] : glyph-proc + create-glyph [MangleName 'gearWithoutHub'] [MangleUnicode 0x26ED] : glyph-proc set-width Geom.Width - local gearRingRad : mix rayInnerRadius Geom.Size 0.4 include : EightPointingRaysShape (gearRingRad - rayWidth / 2) include : RingStrokeAt Geom.MidX Geom.MidY gearRingRad rayWidth + create-glyph [MangleName 'gearWithHandle'] [MangleUnicode 0x26EE] : glyph-proc + set-width Geom.Width + include : refer-glyph : MangleName 'gearWithoutHub' + include : VBar.r (Geom.MidX + Geom.Size) (Geom.MidY - rayWidth / 2) (Geom.MidY + handleLength) rayWidth + include : VBar.l (Geom.MidX - Geom.Size) (Geom.MidY - handleLength) (Geom.MidY + rayWidth / 2) rayWidth + create-glyph [MangleName 'gear'] [MangleUnicode 0x2699] : glyph-proc + set-width Geom.Width + include : refer-glyph : MangleName 'gearWithoutHub' include : RingAt Geom.MidX Geom.MidY (0.4 * (gearRingRad - rayWidth)) + alias [MangleName 'lighthouseSymbol'] 0x26EF [MangleName 'gear'] + create-glyph [MangleName 'helm'] [MangleUnicode 0x2388] : glyph-proc set-width Geom.Width local gearRingRad : mix rayInnerRadius Geom.Size 0.4 include : EightPointingRaysShape 0 include : RingStrokeAt Geom.MidX Geom.MidY gearRingRad rayWidth include : RingAt Geom.MidX Geom.MidY (1.1 * rayWidth) + + create-glyph [MangleName 'raysInward'] [MangleUnicode 0x1CC69] : glyph-proc + set-width Geom.Width + include : EightPointingRaysShape (rayInnerRadius - rayInwardShrink) (Geom.Size - rayInwardShrink) + create-glyph [MangleName 'raysOutward'] [MangleUnicode 0x1CC6A] : glyph-proc + set-width Geom.Width + include : EightPointingRaysShape rayInnerRadius Geom.Size diff --git a/packages/font-glyphs/src/symbol/mosaic/box-drawing.ptl b/packages/font-glyphs/src/symbol/mosaic/box-drawing.ptl index 1f5cea93c..908ab6299 100644 --- a/packages/font-glyphs/src/symbol/mosaic/box-drawing.ptl +++ b/packages/font-glyphs/src/symbol/mosaic/box-drawing.ptl @@ -17,7 +17,7 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin local light : AdviceStroke 3.5 local heavy : Math.max (light * 2) (Width * 0.15) - local midx : MosaicWidth / 2 + local midx : mix left right 0.5 local midy : mix bottom top 0.5 define [hline unicode pos] : begin @@ -94,8 +94,8 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin set-width MosaicWidth include : ForceUpright include : VBar.m midx [if d bottom bottom] [if c top top] light - local tickleft : if rev midx 0 - local tickright : if rev MosaicWidth midx + local tickleft : if rev midx left + local tickright : if rev right midx if a : include : HBar.t tickleft tickright [mix bottom top (1 / 3)] light if b : include : HBar.t tickleft tickright [mix bottom top (2 / 3)] light if c : include : HBar.t tickleft tickright top light @@ -302,7 +302,7 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin curl midx (midy - bdArcRadius) [heading Upward] arcvh flat (midx + bdArcRadius) midy [heading Rightward] - curl MosaicWidth midy [heading Rightward] + curl right midy [heading Rightward] create-glyph [MangleName : NameUni 0x256E] [MangleUnicode 0x256E] : glyph-proc set-width MosaicWidth @@ -313,7 +313,7 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin curl midx (midy - bdArcRadius) [heading Upward] arcvh flat (midx - bdArcRadius) midy [heading Leftward] - curl 0 midy [heading Leftward] + curl left midy [heading Leftward] create-glyph [MangleName : NameUni 0x256F] [MangleUnicode 0x256F] : glyph-proc set-width MosaicWidth @@ -324,7 +324,7 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin curl midx (midy + bdArcRadius) [heading Downward] arcvh flat (midx - bdArcRadius) midy [heading Leftward] - curl 0 midy [heading Leftward] + curl left midy [heading Leftward] create-glyph [MangleName : NameUni 0x2570] [MangleUnicode 0x2570] : glyph-proc set-width MosaicWidth @@ -335,7 +335,7 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin curl midx (midy + bdArcRadius) [heading Downward] arcvh flat (midx + bdArcRadius) midy [heading Rightward] - curl MosaicWidth midy [heading Rightward] + curl right midy [heading Rightward] # Corner Diagonals create-glyph [MangleName : NameUni 0x2571] [MangleUnicode 0x2571] : glyph-proc @@ -343,16 +343,16 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin include : ForceUpright include : dispiro widths.center light - flat MosaicWidth top - curl 0 bottom + flat right top + curl left bottom create-glyph [MangleName : NameUni 0x2572] [MangleUnicode 0x2572] : glyph-proc set-width MosaicWidth include : ForceUpright include : dispiro widths.center light - flat 0 top - curl MosaicWidth bottom + flat left top + curl right bottom create-glyph [MangleName : NameUni 0x2573] [MangleUnicode 0x2573] : glyph-proc set-width MosaicWidth @@ -501,6 +501,34 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin include : refer-glyph : MangleName : NameUni 0x1FBD0 include : refer-glyph : MangleName : NameUni 0x1FBD2 + # Double Diagonals + create-glyph [MangleName : NameUni 0x1CC1F] [MangleUnicode 0x1CC1F] : glyph-proc + set-width MosaicWidth + include : ForceUpright + define offset : (top - bottom) / 4 + include : intersection [DiamondMask] : union + dispiro + widths.center light + flat right (top + offset) + curl [mix right left 1.5] ([mix top bottom 1.5] + offset) + dispiro + widths.center light + flat [mix left right 1.5] ([mix bottom top 1.5] - offset) + curl left (bottom - offset) + + create-glyph [MangleName : NameUni 0x1CC20] [MangleUnicode 0x1CC20] : glyph-proc + set-width MosaicWidth + include : ForceUpright + define offset : (top - bottom) / 4 + include : intersection [DiamondMask] : union + dispiro + widths.center light + flat left (top + offset) + curl [mix left right 1.5] ([mix top bottom 1.5] + offset) + dispiro + widths.center light + flat [mix right left 1.5] ([mix bottom top 1.5] - offset) + curl right (bottom - offset) create-glyph [MangleName : NameUni 0x1FBAF] [MangleUnicode 0x1FBAF] : glyph-proc set-width MosaicWidth diff --git a/packages/font-glyphs/src/symbol/mosaic/inverted.ptl b/packages/font-glyphs/src/symbol/mosaic/inverted.ptl index 19cb96eeb..e25a6ca15 100644 --- a/packages/font-glyphs/src/symbol/mosaic/inverted.ptl +++ b/packages/font-glyphs/src/symbol/mosaic/inverted.ptl @@ -1,6 +1,7 @@ $$include '../../meta/macros.ptl' import [mix linreg clamp fallback] from "@iosevka/util" +import as Gr from "@iosevka/glyph/relation" glyph-module @@ -36,11 +37,19 @@ glyph-block Symbol-Geometric-Mosaic-Inverted : for-width-kinds WideWidth1 refer-glyph : MangleName : NameUni 0x2588 refer-glyph : MangleName 'whiteCircle' - # create-glyph [MangleName 'uni1CC8D'] [MangleUnicode 0x1CC8D] : glyph-proc + create-glyph [MangleName 'negBlackDiamond'] [MangleUnicode 0x1CC8D] : glyph-proc + set-width MosaicWidth + include : difference + refer-glyph : MangleName 'uni2588' + refer-glyph : MangleName 'blackDiamond' + + # create-glyph [MangleName 'negBlackDiamond.mosc'] : glyph-proc # set-width MosaicWidth + # include : ForceUpright # include : difference # refer-glyph : MangleName 'uni2588' - # refer-glyph : MangleName 'blackDiamond' + # refer-glyph : MangleName 'blockMosaicSmooth22/2486' + # Gr.linkSingleGlyphPairGr glyphStore [MangleName 'negBlackDiamond'] [MangleName 'negBlackDiamond.mosc'] Gr.MosaicForm create-glyph [MangleName : NameUni 0x1CC8E] [MangleUnicode 0x1CC8E] : glyph-proc set-width MosaicWidth diff --git a/packages/font-glyphs/src/symbol/mosaic/powerline.ptl b/packages/font-glyphs/src/symbol/mosaic/powerline.ptl index 5b2563a08..c778b668b 100644 --- a/packages/font-glyphs/src/symbol/mosaic/powerline.ptl +++ b/packages/font-glyphs/src/symbol/mosaic/powerline.ptl @@ -141,6 +141,6 @@ glyph-block Symbol-Mosaic-Powerline : begin Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleRB'] [MangleName 'powerline/cornerBottomRight'] Gr.MosaicForm - Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleLB'] [MangleName 'powerline/cornerBottomLeft'] Gr.MosaicForm - Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleLT'] [MangleName 'powerline/cornerTopLeft'] Gr.MosaicForm - Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleRT'] [MangleName 'powerline/cornerTopRight'] Gr.MosaicForm + Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleLB'] [MangleName 'powerline/cornerBottomLeft'] Gr.MosaicForm + Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleLT'] [MangleName 'powerline/cornerTopLeft'] Gr.MosaicForm + Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleRT'] [MangleName 'powerline/cornerTopRight'] Gr.MosaicForm diff --git a/packages/font-glyphs/src/symbol/mosaic/smooth.ptl b/packages/font-glyphs/src/symbol/mosaic/smooth.ptl index f0af85c3e..284a5bf93 100644 --- a/packages/font-glyphs/src/symbol/mosaic/smooth.ptl +++ b/packages/font-glyphs/src/symbol/mosaic/smooth.ptl @@ -1,6 +1,7 @@ $$include '../../meta/macros.ptl' import [mix linreg clamp fallback] from "@iosevka/util" +import as Gr from "@iosevka/glyph/relation" glyph-module @@ -102,7 +103,7 @@ glyph-block Symbol-Mosaic-Smooth : begin SmoothMosaic23 0x1FB67 '1473' define [SmoothMosaic22 unicode pattern] : begin - create-glyph [MangleName ('blockMosaicSmooth22/' + pattern)] [MangleUnicode unicode] : glyph-proc + create-glyph [MangleName ('blockMosaicSmooth22/' + pattern)] [if unicode [MangleUnicode unicode] null] : glyph-proc set-width MosaicWidth include : ForceUpright define corners : [pattern.split ''].map : x => [PatternCorner22 (x - 0)] @@ -118,3 +119,14 @@ glyph-block Symbol-Mosaic-Smooth : begin SmoothMosaic22 0x1FB6F '579' SmoothMosaic22 0x1FB9A '1379' SmoothMosaic22 0x1FB9B '1739' + + SmoothMosaic22 null '138' + SmoothMosaic22 null '167' + SmoothMosaic22 null '279' + SmoothMosaic22 null '349' + # SmoothMosaic22 null '2486' + Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleUp'] [MangleName 'blockMosaicSmooth22/279'] Gr.MosaicForm + Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleDown'] [MangleName 'blockMosaicSmooth22/138'] Gr.MosaicForm + Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleLeft'] [MangleName 'blockMosaicSmooth22/349'] Gr.MosaicForm + Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackTriangleRight'] [MangleName 'blockMosaicSmooth22/167'] Gr.MosaicForm + # Gr.linkSingleGlyphPairGr glyphStore [MangleName 'blackDiamond'] [MangleName 'blockMosaicSmooth22/2486'] Gr.MosaicForm diff --git a/packages/font-glyphs/src/symbol/mosaic/teletext.ptl b/packages/font-glyphs/src/symbol/mosaic/teletext.ptl index 47ef3441f..9c9d442f8 100644 --- a/packages/font-glyphs/src/symbol/mosaic/teletext.ptl +++ b/packages/font-glyphs/src/symbol/mosaic/teletext.ptl @@ -46,11 +46,11 @@ glyph-block Symbol-Mosaic-Teletext : begin include : ForceUpright include : BlockMosaicPattern 2 4 : [pattern.split ''].map : x => x - 1 - define [BlockMosaic unicode w h kgap pattern] : begin + define [BlockMosaic unicode w h pattern] : begin create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc set-width MosaicWidth include : ForceUpright - include : BlockMosaicPattern w h kgap pattern + include : BlockMosaicPattern w h pattern define [MakeGappedBlockMosaic w h su] : foreach [offset : range 1 [Math.pow 2 (w * h)]] : begin create-glyph [MangleName : NameUni (su + offset)] [MangleUnicode (su + offset)] : glyph-proc @@ -354,6 +354,7 @@ glyph-block Symbol-Mosaic-Teletext : begin BlockMosaic24 0x1CDE4 '1345678' BlockMosaic24 0x1CDE5 '2345678' - BlockMosaic 0x1FB95 4 4 0 {0 2 5 7 8 10 13 15} - BlockMosaic 0x1FB96 4 4 0 {1 3 4 6 9 11 12 14} - BlockMosaic 0x1FB97 4 4 0 {4 5 6 7 12 13 14 15} + BlockMosaic 0x2429 4 8 {0 2 5 7 8 10 13 15 16 18 21 23 24 26 29 31} + BlockMosaic 0x1FB95 4 4 {0 2 5 7 8 10 13 15} + BlockMosaic 0x1FB96 4 4 {1 3 4 6 9 11 12 14} + BlockMosaic 0x1FB97 4 4 {4 5 6 7 12 13 14 15}