Some more Legacy Computing Symbols (pt 5) (#2220)

* square corners

* double diagonals

* gear and rays, rectangle with bar

* mosaic forms

* delete form

* doc (merged with #2219)
This commit is contained in:
Logo 2024-03-05 02:41:18 +08:00 committed by GitHub
parent 6e79c9e5c7
commit 5cb280849b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 263 additions and 46 deletions

View file

@ -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).

View file

@ -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"

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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}