Collection of mostly technical symbols (#2297)

* minor fixes

* Dentistry Symbols

* A few technical symbols

* Monostable, Bell, Fuse, Ground

* Half check mark

* Geometric-like shapes

* Ballot-box like shapes

* doc
This commit is contained in:
Logo 2024-04-17 09:38:56 +08:00 committed by GitHub
parent 45e1e597d5
commit f245368ccf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 341 additions and 35 deletions

View file

@ -1,6 +1,24 @@
* Refine shape of `U+1CC09`, `U+1CC0A`, `U+1CC10` and `U+1CC11`. * Refine shape of `U+1CC09`, `U+1CC0A`, `U+1CC10` and `U+1CC11`.
* Refine terminal shape of Schwa and Reversed Lower E (`U+018F`, `U+0258`..`U+025A`, `U+04D8`..`U+04D9`) under italics. * Refine terminal shape of Schwa and Reversed Lower E (`U+018F`, `U+0258`..`U+025A`, `U+04D8`..`U+04D9`) under italics.
* Add characters: * Add characters:
- ARC (`U+2312`).
- SEGMENT (`U+2313`).
- SECTOR (`U+2314`).
- NOT CHECK MARK (`U+237B`).
- BELL SYMBOL (`U+237E`).
- VERTICAL LINE WITH MIDDLE DOT (`U+237F`).
- WHITE SQUARE WITH CENTRE VERTICAL LINE (`U+2385`).
- MONOSTABLE SYMBOL (`U+238D`).
- DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT (`U+23BE`) ... DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT (`U+23CC`).
- EARTH GROUND (`U+23DA`).
- FUSE (`U+23DB`).
- WHITE TRAPEZIUM (`U+23E2`).
- STRAIGHTNESS (`U+23E4`).
- FLATNESS (`U+23E5`).
- UP ARROWHEAD IN A RECTANGLE BOX (`U+2BB9`).
- BALLOT BOX WITH LIGHT X (`U+2BBD`).
- CIRCLED X (`U+2BBE`).
- CIRCLED BOLD X (`U+2BBF`).
- LEFT-FACING SNAKE HEAD WITH OPEN MOUTH (`U+1CC70`) ... DOWN-FACING SNAKE HEAD WITH CLOSED MOUTH (`U+1CC77`) (Proposed for Unicode 16; L2/21-235). - LEFT-FACING SNAKE HEAD WITH OPEN MOUTH (`U+1CC70`) ... DOWN-FACING SNAKE HEAD WITH CLOSED MOUTH (`U+1CC77`) (Proposed for Unicode 16; L2/21-235).
- UPPER LEFT QUADRANT FACE WITH OPEN EYES (`U+1CCA6`) ... BOTTOM HALF FORWARD-FACING RUNNER FRAME-4 (`U+1CDF4`) (Proposed for Unicode 16; L2/21-235). - UPPER LEFT QUADRANT FACE WITH OPEN EYES (`U+1CCA6`) ... BOTTOM HALF FORWARD-FACING RUNNER FRAME-4 (`U+1CDF4`) (Proposed for Unicode 16; L2/21-235).
- TOP HALF FLAILING ROBOT FRAME-1 (`U+1CDF6`) (Proposed for Unicode 16; L2/21-235). - TOP HALF FLAILING ROBOT FRAME-1 (`U+1CDF6`) (Proposed for Unicode 16; L2/21-235).

View file

@ -625,6 +625,7 @@ glyph-block AutoBuild-Enclosure : begin
list 0xA9 {'C'} WideWidth2 list 0xA9 {'C'} WideWidth2
list 0x1F12F {'revC'} WideWidth2 list 0x1F12F {'revC'} WideWidth2
list 0x2117 {'P'} WideWidth2 list 0x2117 {'P'} WideWidth2
# list 0x267E {'infty'} WideWidth1
list 0x1F10E {'ccCcwArrow'} WideWidth2 list 0x1F10E {'ccCcwArrow'} WideWidth2
list 0x1F16F {'ccHumanFigure'} WideWidth2 list 0x1F16F {'ccHumanFigure'} WideWidth2
list 0x1F1AD {'M'} WideWidth2 list 0x1F1AD {'M'} WideWidth2

View file

@ -139,7 +139,7 @@ glyph-block Letter-Greek-Upper-Gamma: begin
select-variant 'grek/smcpGamma' 0x1D26 (shapeFrom -- 'cyrl/ghe.upright') (follow -- 'grek/Gamma') select-variant 'grek/smcpGamma' 0x1D26 (shapeFrom -- 'cyrl/ghe.upright') (follow -- 'grek/Gamma')
select-variant 'cyrl/ge' 0x491 select-variant 'cyrl/ge' 0x491
select-variant 'cyrl/gheMidHook' 0x495 (follow -- 'cyrl/ghe.upright') select-variant 'cyrl/gheMidHook' 0x495 (follow -- 'cyrl/ghe.upright')
create-glyph "grek/digamma.serifless" : glyph-proc create-glyph "grek/digamma.serifless" : glyph-proc
include : MarkSet.p include : MarkSet.p
include : GammaShape XH Descender SLAB-NONE include : GammaShape XH Descender SLAB-NONE

View file

@ -14,9 +14,33 @@ glyph-block Symbol-Geometric-Ballot-Box : for-width-kinds WideWidth1
alias [MangleName 'ballotBox'] [MangleUnicode 0x2610] [MangleName 'whiteSquare'] alias [MangleName 'ballotBox'] [MangleUnicode 0x2610] [MangleName 'whiteSquare']
define [CrossMark cx cy size sw] : glyph-proc
include : dispiro
widths.center sw
corner (cx - size) (cy - size)
corner (cx + size) (cy + size)
include : dispiro
widths.center sw
corner (cx + size) (cy - size)
corner (cx - size) (cy + size)
define [UpArrowMark cx cy size sw] : glyph-proc
local size2 : size / 1.5
include : intersection [MaskLeft cx] : dispiro
widths.center sw
corner (cx - size2 * 2) (cy - size2)
corner (cx + size2) (cy + size2 * 2)
include : intersection [MaskRight cx] : dispiro
widths.center sw
corner (cx - size2) (cy + size2 * 2)
corner (cx + size2 * 2) (cy - size2)
define bbGap : Math.max (Geom.Size / 6) [AdviceStroke 5 Geom.Scalar] define bbGap : Math.max (Geom.Size / 6) [AdviceStroke 5 Geom.Scalar]
define swMark : Math.min GeometryStroke : AdviceStroke 5 Geom.Scalar define swMark : Math.min GeometryStroke : AdviceStroke 5 Geom.Scalar
define lightSwMark : UnicodeWeightGrade 3 Geom.Scalar
define boldSwMark : UnicodeWeightGrade 7 Geom.Scalar
define bbSize : Geom.Size - bbGap - swMark * 0.75 define bbSize : Geom.Size - bbGap - swMark * 0.75
define circXSize : (Geom.Size - bbGap) * [Math.sqrt 0.5] - swMark * 0.75
create-glyph [MangleName 'checkedBallotBox'] [MangleUnicode 0x2611] : glyph-proc create-glyph [MangleName 'checkedBallotBox'] [MangleUnicode 0x2611] : glyph-proc
local k1 0.4 local k1 0.4
@ -36,11 +60,58 @@ glyph-block Symbol-Geometric-Ballot-Box : for-width-kinds WideWidth1
create-glyph [MangleName 'crossBallotBox'] [MangleUnicode 0x2612] : glyph-proc create-glyph [MangleName 'crossBallotBox'] [MangleUnicode 0x2612] : glyph-proc
include [refer-glyph : MangleName 'whiteSquare'] AS_BASE ALSO_METRICS include [refer-glyph : MangleName 'whiteSquare'] AS_BASE ALSO_METRICS
include : dispiro include : CrossMark Geom.MidX Geom.MidY bbSize swMark
widths.center swMark
corner (Geom.MidX - bbSize) (Geom.MidY - bbSize) create-glyph [MangleName 'lightCrossBallotBox'] [MangleUnicode 0x2BBD] : glyph-proc
corner (Geom.MidX + bbSize) (Geom.MidY + bbSize) include [refer-glyph : MangleName 'whiteSquare'] AS_BASE ALSO_METRICS
include : dispiro include : CrossMark Geom.MidX Geom.MidY bbSize lightSwMark
widths.center swMark
corner (Geom.MidX + bbSize) (Geom.MidY - bbSize) create-glyph [MangleName 'crossCircle'] [MangleUnicode 0x2BBE] : glyph-proc
corner (Geom.MidX - bbSize) (Geom.MidY + bbSize) include [refer-glyph : MangleName 'whiteCircle'] AS_BASE ALSO_METRICS
include : CrossMark Geom.MidX Geom.MidY circXSize swMark
create-glyph [MangleName 'boldCrossCircle'] [MangleUnicode 0x2BBF] : glyph-proc
include [refer-glyph : MangleName 'whiteCircle'] AS_BASE ALSO_METRICS
include : CrossMark Geom.MidX Geom.MidY circXSize boldSwMark
do "Delete Symbols"
glyph-block-import Symbol-Geometric-Shared : ConvexPolygonOutline
define delGap : Math.max (Geom.Size / 6) [AdviceStroke 5 Geom.Scalar]
define delSize : (Geom.Size - delGap) / 1.5 - swMark * 0.75
define [RightFingerpostFill cx cy r] : begin
define skew : r * 1 / 4
return : spiro-outline
corner (cx - r) (cy + r / 1.5)
corner (cx + r - skew) (cy + r / 1.5)
corner (cx + r + skew) cy
corner (cx + r - skew) (cy - r / 1.5)
corner (cx - r) (cy - r / 1.5)
define [LeftFingerpostFill cx cy r] : begin
define skew : r * 1 / 4
return : spiro-outline
corner (cx + r) (cy - r / 1.5)
corner (cx + r) (cy + r / 1.5)
corner (cx - r + skew) (cy + r / 1.5)
corner (cx - r - skew) cy
corner (cx - r + skew) (cy - r / 1.5)
create-glyph [MangleName 'UpArrowInRectangle'] [MangleUnicode 0x2BB9] : glyph-proc
include [refer-glyph : MangleName 'whiteHoriRectangle'] AS_BASE ALSO_METRICS
include : UpArrowMark Geom.MidX Geom.MidY delSize swMark
create-glyph [MangleName 'xInRectangle'] [MangleUnicode 0x2327] : glyph-proc
include [refer-glyph : MangleName 'whiteHoriRectangle'] AS_BASE ALSO_METRICS
include : CrossMark Geom.MidX Geom.MidY delSize swMark
create-glyph [MangleName 'deleteRight'] [MangleUnicode 0x2326] : glyph-proc
set-width Geom.Width
include : ConvexPolygonOutline [new-glyph : RightFingerpostFill Geom.MidX Geom.MidY Geom.Size] GeometryStroke
include : CrossMark Geom.MidX Geom.MidY delSize swMark
create-glyph [MangleName 'deleteLeft'] [MangleUnicode 0x232B] : glyph-proc
set-width Geom.Width
include : ConvexPolygonOutline [new-glyph : LeftFingerpostFill Geom.MidX Geom.MidY Geom.Size] GeometryStroke
include : CrossMark Geom.MidX Geom.MidY delSize swMark

View file

@ -2,7 +2,7 @@ $$include '../../meta/macros.ptl'
glyph-module glyph-module
glyph-block Symbol-Geometric-Checking-Marks : begin glyph-block Symbol-Geometric-Corner-Shape: begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives

View file

@ -293,7 +293,43 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1
WaxingMoonMask WaxingMoonMask
FlipAround Geom.MidX Geom.MidY FlipAround Geom.MidX Geom.MidY
do "Partial White Circle"
local yOffset : -Geom.Size / 2
create-glyph [MangleName 'arc'] [MangleUnicode 0x2312] : glyph-proc
set-width Geom.Width
include : with-transform [ApparentTranslate 0 yOffset] : intersection
MaskAbove Geom.MidY
refer-glyph [MangleName 'whiteCircle']
create-glyph [MangleName 'segment'] [MangleUnicode 0x2313] : glyph-proc
set-width Geom.Width
include : with-transform [ApparentTranslate 0 yOffset] : intersection
MaskAbove Geom.MidY
union
refer-glyph [MangleName 'whiteCircle']
intersection
refer-glyph [MangleName 'blackCircle']
HBar.b Geom.Left Geom.Right Geom.MidY GeometryStroke
create-glyph [MangleName 'sector'] [MangleUnicode 0x2314] : glyph-proc
set-width Geom.Width
include : with-transform [ApparentTranslate 0 yOffset] : intersection
spiro-outline
corner Geom.MidX Geom.MidY
corner Geom.Right Geom.Top
corner Geom.Left Geom.Top
union
refer-glyph [MangleName 'whiteCircle']
intersection
refer-glyph [MangleName 'blackCircle']
union
dispiro [widths.lhs GeometryStroke] [corner Geom.MidX Geom.MidY] [corner Geom.Right Geom.Top]
dispiro [widths.rhs GeometryStroke] [corner Geom.MidX Geom.MidY] [corner Geom.Left Geom.Top]
do "Miscellaneous" do "Miscellaneous"
glyph-block-import Symbol-Punctuation-Bar : BarShape
create-glyph [MangleName 'uni2389'] [MangleUnicode 0x2389] : glyph-proc create-glyph [MangleName 'uni2389'] [MangleUnicode 0x2389] : glyph-proc
define shiftUp : ApparentTranslate 0 define shiftUp : ApparentTranslate 0
Math.max Math.max
@ -342,3 +378,8 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1
union union
ExtLineLhs 4 OperatorStroke (Geom.MidX - Geom.Size) Geom.MidY Geom.MidX (Geom.MidY - Geom.Size) ExtLineLhs 4 OperatorStroke (Geom.MidX - Geom.Size) Geom.MidY Geom.MidX (Geom.MidY - Geom.Size)
ExtLineLhs 4 OperatorStroke Geom.MidX (Geom.MidY - Geom.Size) (Geom.MidX + Geom.Size) Geom.MidY ExtLineLhs 4 OperatorStroke Geom.MidX (Geom.MidY - Geom.Size) (Geom.MidX + Geom.Size) Geom.MidY
create-glyph [MangleName 'whiteSquareVertLine'] [MangleUnicode 0x2385] : glyph-proc
set-width Geom.Width
include : refer-glyph : MangleName 'whiteSquare'
include : BarShape Geom.MidX ParenTop ParenBot

View file

@ -1,6 +1,5 @@
$$include '../../meta/macros.ptl' $$include '../../meta/macros.ptl'
import [OCCURRENT_PRECISION] from "@iosevka/geometry/curve-util"
import [mix linreg clamp fallback] from "@iosevka/util" import [mix linreg clamp fallback] from "@iosevka/util"
import [DesignParameters] from "../../meta/aesthetics.mjs" import [DesignParameters] from "../../meta/aesthetics.mjs"
@ -9,7 +8,7 @@ glyph-module
glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1 glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Symbol-Geometric-Shared : GeometricDim UnicodeWeightGrade GeometricSizes glyph-block-import Symbol-Geometric-Shared : GeometricDim UnicodeWeightGrade GeometricSizes ConvexPolygonOutline
define Geom : GeometricDim MosaicUnitWidth MosaicWidth define Geom : GeometricDim MosaicUnitWidth MosaicWidth
define Size : GeometricSizes Geom define Size : GeometricSizes Geom
@ -39,8 +38,6 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
s * Geom.Size * [fallback pp.size 1] - in * sw s * Geom.Size * [fallback pp.size 1] - in * sw
in * sw in * sw
define [pointsAreNotClose a b] : begin
return : [Math.abs (a.x - b.x)] > OCCURRENT_PRECISION || [Math.abs (a.y - b.y)] > OCCURRENT_PRECISION
define [ConvexWhitePolygonImpl fn props] : begin define [ConvexWhitePolygonImpl fn props] : begin
local pp : fallback props {.} local pp : fallback props {.}
local sh : new-glyph : fn local sh : new-glyph : fn
@ -48,33 +45,25 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
fallback pp.cy Geom.MidY fallback pp.cy Geom.MidY
Geom.Size * [fallback pp.size 1] Geom.Size * [fallback pp.size 1]
begin 0 begin 0
local outlines : glyph-proc : begin return : ConvexPolygonOutline sh [fallback pp.sw GeometryStroke]
set this.gizmo : Translate 0 0
foreach c [items-of : sh.geometry.toContours] : foreach j [range 0 c.length] : begin
local a c.[if j (j - 1) (c.length - 1)]
local b c.(j)
if [pointsAreNotClose a b] : include : dispiro
disable-contrast
widths.center ([fallback pp.sw GeometryStroke] * 2)
corner [mix a.x b.x (-2)] [mix a.y b.y (-2)]
corner [mix a.x b.x (+3)] [mix a.y b.y (+3)]
return : intersection sh outlines
define [StdWhiteShape fn name unicode props] : begin define [StdWhiteShape fn name unicode props] : begin
create-glyph [MangleName name] [MangleUnicode unicode] : glyph-proc create-glyph [MangleName name] [MangleUnicode unicode] : glyph-proc
set-width Geom.Width set-width Geom.Width
include : StdWhiteShapeImpl fn 1 0 1 props include : StdWhiteShapeImpl fn 1 0 1 props
define [InnerShapeSize props] : begin
local pp : fallback props {.}
return : [fallback pp.innerSize 0.5] * (Geom.Size * [fallback pp.size 1] - [fallback pp.sw GeometryStroke])
define [StdWhiteContainingBlackShape fn name unicode props] : begin define [StdWhiteContainingBlackShape fn name unicode props] : begin
local pp : fallback props {.} local pp : fallback props {.}
create-glyph [MangleName name] [MangleUnicode unicode] : glyph-proc create-glyph [MangleName name] [MangleUnicode unicode] : glyph-proc
set-width Geom.Width set-width Geom.Width
local sw : fallback pp.sw GeometryStroke
include : fn include : fn
fallback pp.cx Geom.MidX fallback pp.cx Geom.MidX
fallback pp.cy Geom.MidY fallback pp.cy Geom.MidY
[fallback pp.innerSize 0.5] * (Geom.Size * [fallback pp.size 1] - sw) InnerShapeSize pp
begin 0 begin 0
include : StdWhiteShapeImpl fn 1 0 1 props include : StdWhiteShapeImpl fn 1 0 1 props
@ -86,7 +75,7 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
include : fn include : fn
fallback pp.cx Geom.MidX fallback pp.cx Geom.MidX
fallback pp.cy Geom.MidY fallback pp.cy Geom.MidY
[fallback pp.innerSize 0.5] * (Geom.Size * [fallback pp.size 1] - sw) InnerShapeSize pp
begin 0 begin 0
include : ConvexWhitePolygonImpl fn props include : ConvexWhitePolygonImpl fn props
@ -255,6 +244,18 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
StdBlackShape ParallelogramFill 'blackParallelogram' 0x25B0 StdBlackShape ParallelogramFill 'blackParallelogram' 0x25B0
ConvexWhitePolygon ParallelogramFill 'whiteParallelogram' 0x25B1 ConvexWhitePolygon ParallelogramFill 'whiteParallelogram' 0x25B1
alias [MangleName 'flatness'] [MangleUnicode 0x23E5] [MangleName 'whiteParallelogram']
define [TrapeziumFill cx cy r] : begin
define skew : r * 1 / 4
return : spiro-outline
corner (cx - r) (cy + r / 1.5)
corner (cx + r - skew) (cy + r / 1.5)
corner (cx + r) (cy - r / 1.5)
corner (cx - r) (cy - r / 1.5)
ConvexWhitePolygon TrapeziumFill 'whiteTrapezium' 0x23E2
do "Triangles" do "Triangles"
define triangleOvershoot : 2.1 / [Math.sqrt 3] define triangleOvershoot : 2.1 / [Math.sqrt 3]
define [TriangleUpFill cx cy size] : spiro-outline define [TriangleUpFill cx cy size] : spiro-outline
@ -601,3 +602,8 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
StdBlackShape RightArrowHeadShape 'blackArrowHeadRight' 0x27A4 Size.Oblique StdBlackShape RightArrowHeadShape 'blackArrowHeadRight' 0x27A4 Size.Oblique
StdWhiteShape RightArrowHeadShape 'whiteArrowHeadRight' null Size.Oblique StdWhiteShape RightArrowHeadShape 'whiteArrowHeadRight' null Size.Oblique
do "Other Polygon"
create-glyph [MangleName 'straightness'] [MangleUnicode 0x23E4] : glyph-proc
set-width Geom.Width
include : HBar.m Geom.Left Geom.Right Geom.MidY GeometryStroke

View file

@ -1,5 +1,6 @@
$$include '../../meta/macros.ptl' $$include '../../meta/macros.ptl'
import [OCCURRENT_PRECISION] from "@iosevka/geometry/curve-util"
import [mix linreg clamp fallback] from "@iosevka/util" import [mix linreg clamp fallback] from "@iosevka/util"
import [DesignParameters] from "../../meta/aesthetics.mjs" import [DesignParameters] from "../../meta/aesthetics.mjs"
@ -57,3 +58,20 @@ glyph-block Symbol-Geometric-Shared : begin
TinyInner { .innerSize (1 / 4) } TinyInner { .innerSize (1 / 4) }
SmallInner { .innerSize (1 / 3) } SmallInner { .innerSize (1 / 3) }
MediumInner { .innerSize (2 / 3) } MediumInner { .innerSize (2 / 3) }
glyph-block-export ConvexPolygonOutline
define [pointsAreNotClose a b] : begin
return : [Math.abs (a.x - b.x)] > OCCURRENT_PRECISION || [Math.abs (a.y - b.y)] > OCCURRENT_PRECISION
define [ConvexPolygonOutline shape sw] : begin
local outlines : glyph-proc : begin
set this.gizmo : Translate 0 0
foreach c [items-of : shape.geometry.toContours] : foreach j [range 0 c.length] : begin
local a c.[if j (j - 1) (c.length - 1)]
local b c.(j)
if [pointsAreNotClose a b] : include : dispiro
disable-contrast
widths.center (sw * 2)
corner [mix a.x b.x (-2)] [mix a.y b.y (-2)]
corner [mix a.x b.x (+3)] [mix a.y b.y (+3)]
return : intersection shape outlines

View file

@ -27,6 +27,10 @@ glyph-block Symbol-Math-Other : begin
flat SB [mix SymbolMid TackBot 0.5] flat SB [mix SymbolMid TackBot 0.5]
curl RightSB [mix SymbolMid TackTop 0.5] curl RightSB [mix SymbolMid TackTop 0.5]
create-glyph 'vertLineWithDot' 0x237F : glyph-proc
include : refer-glyph 'bar'
include : refer-glyph 'interpunct'
create-glyph 'barStroke' 0x27CA : glyph-proc create-glyph 'barStroke' 0x27CA : glyph-proc
include : refer-glyph 'stile' include : refer-glyph 'stile'
include : HBar.m [mix SB RightSB 0.1] [mix SB RightSB 0.9] SymbolMid OverlayStroke include : HBar.m [mix SB RightSB 0.1] [mix SB RightSB 0.9] SymbolMid OverlayStroke

View file

@ -6,6 +6,7 @@ export : define [apply] : begin
run-glyph-module "./mosaic/teletext.mjs" run-glyph-module "./mosaic/teletext.mjs"
run-glyph-module "./mosaic/smooth.mjs" run-glyph-module "./mosaic/smooth.mjs"
run-glyph-module "./mosaic/box-drawing.mjs" run-glyph-module "./mosaic/box-drawing.mjs"
run-glyph-module "./mosaic/dentistry.mjs"
run-glyph-module "./mosaic/split-graphic.mjs" run-glyph-module "./mosaic/split-graphic.mjs"
run-glyph-module "./mosaic/large-type.mjs" run-glyph-module "./mosaic/large-type.mjs"
run-glyph-module "./mosaic/powerline.mjs" run-glyph-module "./mosaic/powerline.mjs"

View file

@ -534,5 +534,5 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin
set-width MosaicWidth set-width MosaicWidth
include : ForceUpright include : ForceUpright
include : intersection include : intersection
glyph-proc : include : refer-glyph : MangleName : NameUni 0x253C refer-glyph : MangleName : NameUni 0x253C
Rect [mix bottom top 0.35] [mix bottom top 0.65] 0 MosaicWidth Rect [mix bottom top 0.35] [mix bottom top 0.65] 0 MosaicWidth

View file

@ -0,0 +1,105 @@
$$include '../../meta/macros.ptl'
import [mix linreg clamp fallback] from "@iosevka/util"
import [DesignParameters] from "../../meta/aesthetics.mjs"
glyph-module
glyph-block Symbol-Mosaic-Dentistry : begin
glyph-block-import CommonShapes
glyph-block-import Common-Derivatives
glyph-block-import Symbol-Geometric-Shared : GeometricDim UnicodeWeightGrade
glyph-block-import Mark-Above : TildeShape
define boxDrawingStroke : AdviceStroke 3.5
for-width-kinds WideWidth4
create-glyph [MangleName 'vertAndTopRightLine'] [MangleUnicode 0x23BE] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : refer-glyph : MangleName : NameUni 0x23BA
include : refer-glyph : MangleName : NameUni 0x23B8
create-glyph [MangleName 'vertAndBottomRightLine'] [MangleUnicode 0x23BF] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : refer-glyph : MangleName : NameUni 0x23BD
include : refer-glyph : MangleName : NameUni 0x23B8
create-glyph [MangleName 'vertAndTopLeftLine'] [MangleUnicode 0x23CB] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : refer-glyph : MangleName : NameUni 0x23BA
include : refer-glyph : MangleName : NameUni 0x23B9
create-glyph [MangleName 'vertAndBottomLeftLine'] [MangleUnicode 0x23CC] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : refer-glyph : MangleName : NameUni 0x23BD
include : refer-glyph : MangleName : NameUni 0x23B9
for-width-kinds WideWidth1
define Geom : GeometricDim MosaicUnitWidth MosaicWidth
define [WaveShape] : TildeShape
Geom.MidY + Geom.Size / 2
Geom.MidY - Geom.Size / 2
* Geom.Left
* Geom.Right
boxDrawingStroke / 2
create-glyph [MangleName 'vertAndTopLine'] [MangleUnicode 0x23C9] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : refer-glyph : MangleName : NameUni 0x2502
include : refer-glyph : MangleName : NameUni 0x23BA
create-glyph [MangleName 'vertAndBottomLine'] [MangleUnicode 0x23CA] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : refer-glyph : MangleName : NameUni 0x2502
include : refer-glyph : MangleName : NameUni 0x23BD
create-glyph [MangleName 'vertLineWithCircle'] [MangleUnicode 0x23C0] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : refer-glyph : MangleName : NameUni 0x2502
include : refer-glyph : MangleName 'whiteCircle'
create-glyph [MangleName 'vertAndTopLineWithCircle'] [MangleUnicode 0x23C1] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : refer-glyph : MangleName 'vertAndTopLine'
include : refer-glyph : MangleName 'whiteCircle'
create-glyph [MangleName 'vertAndBottomLineWithCircle'] [MangleUnicode 0x23C2] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : refer-glyph : MangleName 'vertAndBottomLine'
include : refer-glyph : MangleName 'whiteCircle'
create-glyph [MangleName 'vertLineWithTriangle'] [MangleUnicode 0x23C3] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : refer-glyph : MangleName : NameUni 0x2502
include : refer-glyph : MangleName 'whiteTriangleUp'
create-glyph [MangleName 'vertAndTopLineWithTriangle'] [MangleUnicode 0x23C4] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : refer-glyph : MangleName 'vertAndTopLine'
include : refer-glyph : MangleName 'whiteTriangleUp'
create-glyph [MangleName 'vertAndBottomLineWithTriangle'] [MangleUnicode 0x23C5] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : refer-glyph : MangleName 'vertAndBottomLine'
include : refer-glyph : MangleName 'whiteTriangleUp'
create-glyph [MangleName 'vertLineWithWave'] [MangleUnicode 0x23C6] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : refer-glyph : MangleName : NameUni 0x2502
include : WaveShape
create-glyph [MangleName 'vertAndTopLineWithWave'] [MangleUnicode 0x23C7] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : refer-glyph : MangleName 'vertAndTopLine'
include : WaveShape
create-glyph [MangleName 'vertAndBottomLineWithWave'] [MangleUnicode 0x23C8] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : refer-glyph : MangleName 'vertAndBottomLine'
include : WaveShape

View file

@ -134,7 +134,7 @@ glyph-block Symbol-Mosaic-Split-Graphic : begin
corner (legRight - legWidth / 3) bot corner (legRight - legWidth / 3) bot
corner (legRight - legWidth * 2 / 3) bot corner (legRight - legWidth * 2 / 3) bot
corner (legRight - legWidth) tvBot corner (legRight - legWidth) tvBot
include : DotAt dotX (top - graphicSw - scaffold.dotYOffset * 1) scaffold.dotSize include : DotAt dotX (top - graphicSw - scaffold.dotYOffset * 1) scaffold.dotSize
include : DotAt dotX (top - graphicSw - scaffold.dotYOffset * 2) scaffold.dotSize include : DotAt dotX (top - graphicSw - scaffold.dotYOffset * 2) scaffold.dotSize
include : DotAt dotX (top - graphicSw - scaffold.dotYOffset * 3) scaffold.dotSize include : DotAt dotX (top - graphicSw - scaffold.dotYOffset * 3) scaffold.dotSize
@ -186,7 +186,7 @@ glyph-block Symbol-Mosaic-Split-Graphic : begin
include : HBar.b left right bot graphicSw include : HBar.b left right bot graphicSw
include : VBar.l left bot cpuTop graphicSw include : VBar.l left bot cpuTop graphicSw
include : VBar.r right bot cpuTop graphicSw include : VBar.r right bot cpuTop graphicSw
include : HBar.m keyLeft (dotX - scaffold.dotSize / 2 - scaffold.keyInset) dotY graphicSw include : HBar.m keyLeft (dotX - scaffold.dotSize / 2 - scaffold.keyInset) dotY graphicSw
include : DotAt dotX dotY scaffold.dotSize include : DotAt dotX dotY scaffold.dotSize
@ -209,8 +209,8 @@ glyph-block Symbol-Mosaic-Split-Graphic : begin
list 2 13 15 list 2 13 15
list 2 17 19 list 2 17 19
list 2 21 23 list 2 21 23
list 2 25 28 list 2 25 28
list 1 0 4 list 1 0 4
list 1 6 8 list 1 6 8
list 1 10 12 list 1 10 12
list 1 14 16 list 1 14 16

View file

@ -59,6 +59,15 @@ glyph-block Symbol-Pictograph-Checking-Marks : begin
alsoThru 0.47 0.5 alsoThru 0.47 0.5
g4 ptRSB [mix ptBot ptTop 0.05] g4 ptRSB [mix ptBot ptTop 0.05]
create-glyph [MangleName 'halfCheck'] [MangleUnicode 0x237B] : glyph-proc
set-width MosaicWidth
include : refer-glyph : MangleName : NameUni 0x2713
include : dispiro
widths.center lightSw
g4 [mix ptSB ptRSB 0.5] [mix ptBot ptTop 0.82]
alsoThru 0.47 0.5
g4 ptRSB [mix ptBot ptTop 0.42]
do "Ext angle brackets" do "Ext angle brackets"
define Geom : GeometricDim Width Width define Geom : GeometricDim Width Width
define mediumSw : UnicodeWeightGrade 5 Geom.Scalar define mediumSw : UnicodeWeightGrade 5 Geom.Scalar

View file

@ -238,7 +238,7 @@ glyph-block Symbol-Pictograph-Robot-And-Human : begin
include : if (side === SIDE.RIGHT) include : if (side === SIDE.RIGHT)
HBar.b legLeft (legLeft + footLen - [HSwToV PictographSw]) bot PictographSw HBar.b legLeft (legLeft + footLen - [HSwToV PictographSw]) bot PictographSw
HBar.b (legLeft - footLen) legLeft bot PictographSw HBar.b (legLeft - footLen) legLeft bot PictographSw
include : VBar.l legRight bot pelvis PictographSw include : VBar.l legRight bot pelvis PictographSw
include : if (side === SIDE.LEFT) include : if (side === SIDE.LEFT)
HBar.b (legRight - footLen + [HSwToV PictographSw]) legRight bot PictographSw HBar.b (legRight - footLen + [HSwToV PictographSw]) legRight bot PictographSw
HBar.b legRight (legRight + footLen) bot PictographSw HBar.b legRight (legRight + footLen) bot PictographSw

View file

@ -45,6 +45,38 @@ glyph-block Symbol-Pictograph-Schematic : for-width-kinds WideWidth4 : begin
arcvh 32 2.0 arcvh 32 2.0
close close
do "Monostable and Bell"
create-glyph [MangleName 'monostable'] [MangleUnicode 0x238D] : glyph-proc
set-width MosaicWidth
include : HBar.b Geom.Left (Geom.MidX - Geom.Size * 0.5) Geom.Bot boxDrawingStroke
include : VBar.m (Geom.MidX - Geom.Size * 0.5) Geom.Bot Geom.Top boxDrawingStroke
include : HBar.t (Geom.MidX - Geom.Size * 0.5) (Geom.MidX + Geom.Size * 0.5) Geom.Top boxDrawingStroke
include : VBar.m (Geom.MidX + Geom.Size * 0.5) Geom.Bot Geom.Top boxDrawingStroke
include : HBar.b (Geom.MidX + Geom.Size * 0.5) Geom.Right Geom.Bot boxDrawingStroke
create-glyph [MangleName 'bellSymbol'] [MangleUnicode 0x237E] : glyph-proc
set-width MosaicWidth
include : intersection
MaskBelow Geom.MidY
refer-glyph : MangleName 'monostable'
include : with-transform
ApparentTranslate 0 (Geom.Size / 2)
refer-glyph : MangleName 'segment'
do "Fuse"
create-glyph [MangleName 'fuse'] [MangleUnicode 0x23DB] : glyph-proc
include [refer-glyph : MangleName : NameUni 0x2500] AS_BASE ALSO_METRICS
include : refer-glyph : MangleName 'whiteHoriRectangle'
do "Earth Ground"
create-glyph [MangleName 'earthGround'] [MangleUnicode 0x23DA] : glyph-proc
set-width MosaicWidth
include : ForceUpright
include : VBar.m midx midy top boxDrawingStroke
include : HBar.m Geom.Left Geom.Right midy boxDrawingStroke
include : HBar.m (Geom.MidX - Geom.Size * 0.6) (Geom.MidX + Geom.Size * 0.6) [mix bottom top 0.4] boxDrawingStroke
include : HBar.m (Geom.MidX - Geom.Size * 0.3) (Geom.MidX + Geom.Size * 0.3) [mix bottom top 0.3] boxDrawingStroke
do "Explosion at Horizon" do "Explosion at Horizon"
define horizon : Geom.MidY - Geom.Size * 0.8 define horizon : Geom.MidY - Geom.Size * 0.8
create-glyph [MangleName 'explosionHorizon'] [MangleUnicode 0x1CE02] : glyph-proc create-glyph [MangleName 'explosionHorizon'] [MangleUnicode 0x1CE02] : glyph-proc