Further symbol refinements
This commit is contained in:
parent
78dec6dbf5
commit
fdebd394b8
7 changed files with 392 additions and 109 deletions
|
@ -395,9 +395,9 @@ glyph-block AutoBuild-Enclosure : begin
|
|||
|
||||
if [not recursive] : do "inset mosaic"
|
||||
local compositions {}
|
||||
compositions.push { 0x1FBB1 { unicodeGlyphs.(0x2714).name } WIDE-WIDTH-2 }
|
||||
compositions.push { 0x1FBB4 { unicodeGlyphs.(0x21B2).name } WIDE-WIDTH-2 }
|
||||
compositions.push { 0x1FBC4 { unicodeGlyphs.(0x003F).name } WIDE-WIDTH-2 }
|
||||
compositions.push { 0x1FBB1 { [unicodeGlyphs.(0x2714).name.replace [regex '.fwid$'] ".hwid"] } WIDE-WIDTH-2 }
|
||||
compositions.push { 0x1FBB4 { [unicodeGlyphs.(0x21B2).name.replace [regex '.fwid$'] ".hwid"] } WIDE-WIDTH-2 }
|
||||
compositions.push { 0x1FBC4 { [unicodeGlyphs.(0x003F).name.replace [regex '.fwid$'] ".hwid"] } WIDE-WIDTH-2 }
|
||||
createInsetMosaicGlyphs 1 compositions
|
||||
|
||||
if [not recursive] : do "Single-digit double circled"
|
||||
|
|
|
@ -59,7 +59,9 @@ glyph-block CommonShapes : begin
|
|||
include part first first
|
||||
set first false
|
||||
|
||||
define [refer-glyph id] : lambda [copyAnchors copyWidth] : this.includeGlyph glyphMap.(id) copyAnchors copyWidth
|
||||
define [refer-glyph id] : lambda [copyAnchors copyWidth] : begin
|
||||
if [not glyphMap.(id)] : throw : new Error "Cannot find glyph '\(id)'"
|
||||
this.includeGlyph glyphMap.(id) copyAnchors copyWidth
|
||||
define [query-glyph id] : return glyphMap.(id)
|
||||
define [into-unicode code] : glyph-construction : if code : assign-unicode code
|
||||
|
||||
|
|
|
@ -86,6 +86,31 @@ glyph-block Symbol-Geometric : begin
|
|||
include : FlipAround x y s [fallback sy s]
|
||||
include : into-unicode unicode
|
||||
|
||||
define [UpperHalfMask] : Rect (symbolMid + squareRadiusFW * 2) symbolMid 0 MosaicWidth
|
||||
define [LowerHalfMask] : Rect symbolMid (symbolMid - squareRadiusFW * 2) 0 MosaicWidth
|
||||
define [LeftHalfMask] : Rect (symbolMid + squareRadiusFW * 2) (symbolMid - squareRadiusFW * 2) 0 MosaicMiddle
|
||||
define [RightHalfMask] : Rect (symbolMid + squareRadiusFW * 2) (symbolMid - squareRadiusFW * 2) MosaicMiddle MosaicWidth
|
||||
define [UpperLeftQuarterMark] : intersection [UpperHalfMask] [LeftHalfMask]
|
||||
define [UpperRightQuarterMark] : intersection [UpperHalfMask] [RightHalfMask]
|
||||
define [LowerLeftQuarterMark] : intersection [LowerHalfMask] [LeftHalfMask]
|
||||
define [LowerRightQuarterMark] : intersection [LowerHalfMask] [RightHalfMask]
|
||||
define [UpperLeftHalfMark] : spiro-outline
|
||||
corner (MosaicMiddle + squareRadiusFW * 2) (symbolMid + squareRadiusFW * 2)
|
||||
corner (MosaicMiddle - squareRadiusFW * 2) (symbolMid + squareRadiusFW * 2)
|
||||
corner (MosaicMiddle - squareRadiusFW * 2) (symbolMid - squareRadiusFW * 2)
|
||||
define [LowerRightHalfMark] : spiro-outline
|
||||
corner (MosaicMiddle + squareRadiusFW * 2) (symbolMid + squareRadiusFW * 2)
|
||||
corner (MosaicMiddle - squareRadiusFW * 2) (symbolMid - squareRadiusFW * 2)
|
||||
corner (MosaicMiddle + squareRadiusFW * 2) (symbolMid - squareRadiusFW * 2)
|
||||
define [UpperRightHalfMark] : spiro-outline
|
||||
corner (MosaicMiddle + squareRadiusFW * 2) (symbolMid + squareRadiusFW * 2)
|
||||
corner (MosaicMiddle - squareRadiusFW * 2) (symbolMid + squareRadiusFW * 2)
|
||||
corner (MosaicMiddle + squareRadiusFW * 2) (symbolMid - squareRadiusFW * 2)
|
||||
define [LowerLeftHalfMark] : spiro-outline
|
||||
corner (MosaicMiddle - squareRadiusFW * 2) (symbolMid - squareRadiusFW * 2)
|
||||
corner (MosaicMiddle - squareRadiusFW * 2) (symbolMid + squareRadiusFW * 2)
|
||||
corner (MosaicMiddle + squareRadiusFW * 2) (symbolMid - squareRadiusFW * 2)
|
||||
|
||||
sketch # blacksquare
|
||||
set-width MosaicWidth
|
||||
start-from leftFW (symbolMid + squareRadiusFW)
|
||||
|
@ -502,57 +527,82 @@ glyph-block Symbol-Geometric : begin
|
|||
union
|
||||
ThickRoundedArrowBar left top right bot inner 0
|
||||
ThickRoundedArrowBar right top left bot inner 0
|
||||
save [MangleName "whiteHeavySaltireWithRoundedCorners"] [MangleUnicode 0x1FBC0]
|
||||
save [MangleName "whiteHeavySaltireWithRoundedCorners"] [MangleUnicode 0x1FBC0 WIDE-WIDTH-2]
|
||||
|
||||
# Shaded hollow squares
|
||||
sketch # hshadesquare, U+25A4
|
||||
define [HShadeShape] : begin
|
||||
define lineWidth : Math.min GEOMETRYSTROKE ((squareRadiusFW * 2 - GEOMETRYSTROKE * 2) * 1 / 11)
|
||||
define top : symbolMid + squareRadiusFW - GEOMETRYSTROKE + lineWidth / 2
|
||||
define bot : symbolMid - (top - symbolMid)
|
||||
set-width MosaicWidth
|
||||
include : union
|
||||
refer-glyph : MangleName 'whitesquare'
|
||||
intersection
|
||||
refer-glyph : MangleName 'blacksquare'
|
||||
create-glyph : glyph-construction
|
||||
include : dispiro
|
||||
return : union
|
||||
dispiro
|
||||
widths.center lineWidth
|
||||
flat leftFW [mix top bot 0.25] [heading RIGHTWARD]
|
||||
curl rightFW [mix top bot 0.25] [heading RIGHTWARD]
|
||||
include : dispiro
|
||||
dispiro
|
||||
widths.center lineWidth
|
||||
flat leftFW [mix top bot 0.5] [heading RIGHTWARD]
|
||||
curl rightFW [mix top bot 0.5] [heading RIGHTWARD]
|
||||
include : dispiro
|
||||
dispiro
|
||||
widths.center lineWidth
|
||||
flat leftFW [mix top bot 0.75] [heading RIGHTWARD]
|
||||
curl rightFW [mix top bot 0.75] [heading RIGHTWARD]
|
||||
save [MangleName 'hshadesquare'] [MangleUnicode 0x25A4]
|
||||
|
||||
sketch # vshadesquare, U+25A5
|
||||
define lineWidth : Math.min GEOMETRYSTROKE ((squareRadiusFW * 2 - GEOMETRYSTROKE * 2) * 1 / 11)
|
||||
define r : MosaicWidth / 2 + squareRadiusFW - GEOMETRYSTROKE + lineWidth / 2
|
||||
define l : MosaicWidth / 2 - (r - MosaicWidth / 2)
|
||||
sketch # hshadesquare, U+25A4
|
||||
set-width MosaicWidth
|
||||
include : union
|
||||
refer-glyph : MangleName 'whitesquare'
|
||||
intersection
|
||||
refer-glyph : MangleName 'blacksquare'
|
||||
create-glyph : glyph-construction
|
||||
include : dispiro
|
||||
HShadeShape
|
||||
save [MangleName 'hshadesquare'] [MangleUnicode 0x25A4]
|
||||
|
||||
define [VShadeShape] : begin
|
||||
define lineWidth : Math.min GEOMETRYSTROKE ((squareRadiusFW * 2 - GEOMETRYSTROKE * 2) * 1 / 11)
|
||||
define r : MosaicWidth / 2 + squareRadiusFW - GEOMETRYSTROKE + lineWidth / 2
|
||||
define l : MosaicWidth / 2 - (r - MosaicWidth / 2)
|
||||
return : union
|
||||
dispiro
|
||||
widths.center lineWidth
|
||||
flat [mix l r 0.25] topFW [heading DOWNWARD]
|
||||
curl [mix l r 0.25] bottomFW [heading DOWNWARD]
|
||||
include : dispiro
|
||||
dispiro
|
||||
widths.center lineWidth
|
||||
flat [mix l r 0.5] topFW [heading DOWNWARD]
|
||||
curl [mix l r 0.5] bottomFW [heading DOWNWARD]
|
||||
include : dispiro
|
||||
dispiro
|
||||
widths.center lineWidth
|
||||
flat [mix l r 0.75] topFW [heading DOWNWARD]
|
||||
curl [mix l r 0.75] bottomFW [heading DOWNWARD]
|
||||
|
||||
define [VBarShadeShape] : begin
|
||||
define lineWidth : Math.min GEOMETRYSTROKE ((squareRadiusFW * 2 - GEOMETRYSTROKE * 2) * 1 / 11)
|
||||
define r : MosaicWidth / 2 + squareRadiusFW - GEOMETRYSTROKE + lineWidth / 2
|
||||
define l : MosaicWidth / 2 - (r - MosaicWidth / 2)
|
||||
return : union
|
||||
dispiro
|
||||
widths.center lineWidth
|
||||
flat [mix l r 0.5] topFW [heading DOWNWARD]
|
||||
curl [mix l r 0.5] bottomFW [heading DOWNWARD]
|
||||
|
||||
sketch # vshadesquare, U+25A5
|
||||
set-width MosaicWidth
|
||||
include : union
|
||||
refer-glyph : MangleName 'whitesquare'
|
||||
intersection
|
||||
refer-glyph : MangleName 'blacksquare'
|
||||
VShadeShape
|
||||
save [MangleName 'vshadesquare'] [MangleUnicode 0x25A5]
|
||||
|
||||
sketch # vBarSquare, U+25EB
|
||||
set-width MosaicWidth
|
||||
include : union
|
||||
refer-glyph : MangleName 'whitesquare'
|
||||
intersection
|
||||
refer-glyph : MangleName 'blacksquare'
|
||||
VBarShadeShape
|
||||
save [MangleName 'vBarSquare'] [MangleUnicode 0x25EB]
|
||||
|
||||
sketch # hvshadesquare, U+25A6
|
||||
set-width MosaicWidth
|
||||
include : union
|
||||
|
@ -560,36 +610,42 @@ glyph-block Symbol-Geometric : begin
|
|||
refer-glyph : MangleName 'vshadesquare'
|
||||
save [MangleName 'hvshadesquare'] [MangleUnicode 0x25A6]
|
||||
|
||||
sketch # ddiagshadesquare, U+25A7
|
||||
define [DDiagShadeShape] : begin
|
||||
define lineWidth : Math.min GEOMETRYSTROKE ((squareRadiusFW * 2 - GEOMETRYSTROKE * 2) * 1 / 11)
|
||||
define top : symbolMid + squareRadiusFW
|
||||
define bot : symbolMid - (top - symbolMid)
|
||||
set-width MosaicWidth
|
||||
include : union
|
||||
refer-glyph : MangleName 'whitesquare'
|
||||
intersection
|
||||
refer-glyph : MangleName 'blacksquare'
|
||||
create-glyph : glyph-construction
|
||||
return : glyph-construction
|
||||
foreach [j : range (-10) till 10] : include : dispiro
|
||||
widths.center lineWidth
|
||||
flat leftFW [mix top bot (j / 4)] [heading RIGHTWARD]
|
||||
curl rightFW [mix top bot (j / 4 + 1)] [heading RIGHTWARD]
|
||||
save [MangleName 'ddiagshadesquare'] [MangleUnicode 0x25A7]
|
||||
|
||||
sketch # udiagshadesquare, U+25A8
|
||||
define [UDiagShadeShape] : begin
|
||||
define lineWidth : Math.min GEOMETRYSTROKE ((squareRadiusFW * 2 - GEOMETRYSTROKE * 2) * 1 / 11)
|
||||
define top : symbolMid + squareRadiusFW
|
||||
define bot : symbolMid - (top - symbolMid)
|
||||
return : glyph-construction
|
||||
foreach [j : range (-10) till 10] : include : dispiro
|
||||
widths.center lineWidth
|
||||
flat leftFW [mix top bot (j / 4)] [heading RIGHTWARD]
|
||||
curl rightFW [mix top bot (j / 4 - 1)] [heading RIGHTWARD]
|
||||
|
||||
sketch # ddiagshadesquare, U+25A7
|
||||
set-width MosaicWidth
|
||||
include : union
|
||||
refer-glyph : MangleName 'whitesquare'
|
||||
intersection
|
||||
refer-glyph : MangleName 'blacksquare'
|
||||
create-glyph : glyph-construction
|
||||
foreach [j : range (-10) till 10] : include : dispiro
|
||||
widths.center lineWidth
|
||||
flat leftFW [mix top bot (j / 4)] [heading RIGHTWARD]
|
||||
curl rightFW [mix top bot (j / 4 - 1)] [heading RIGHTWARD]
|
||||
DDiagShadeShape
|
||||
save [MangleName 'ddiagshadesquare'] [MangleUnicode 0x25A7]
|
||||
|
||||
sketch # udiagshadesquare, U+25A8
|
||||
set-width MosaicWidth
|
||||
include : union
|
||||
refer-glyph : MangleName 'whitesquare'
|
||||
intersection
|
||||
refer-glyph : MangleName 'blacksquare'
|
||||
UDiagShadeShape
|
||||
save [MangleName 'udiagshadesquare'] [MangleUnicode 0x25A8]
|
||||
|
||||
sketch # uddiagshadesquare, U+25A9
|
||||
|
@ -597,49 +653,129 @@ glyph-block Symbol-Geometric : begin
|
|||
include : union [refer-glyph : MangleName 'ddiagshadesquare'] [refer-glyph : MangleName 'udiagshadesquare']
|
||||
save [MangleName 'uddiagshadesquare'] [MangleUnicode 0x25A9]
|
||||
|
||||
define [CircleMarkShape] : begin
|
||||
define r : squareRadiusFW - GEOMETRYSTROKE / 2
|
||||
return : spiro-outline
|
||||
g4 MosaicMiddle (symbolMid + r)
|
||||
g4 (MosaicMiddle - r) symbolMid
|
||||
g4 MosaicMiddle (symbolMid - r)
|
||||
g4 (MosaicMiddle + r) symbolMid
|
||||
close
|
||||
sketch # vshadeCircle, U+25A5
|
||||
set-width MosaicWidth
|
||||
include : union
|
||||
refer-glyph : MangleName 'whitecircle'
|
||||
intersection [CircleMarkShape] [VShadeShape]
|
||||
save [MangleName 'vshadeCircle'] [MangleUnicode 0x25CD]
|
||||
|
||||
# partial circles
|
||||
define quarters : list
|
||||
define partialCircleQuarters : list
|
||||
list 0x25D0 1 1 0 0
|
||||
list 0x25D1 0 0 1 1
|
||||
list 0x25D2 0 1 0 1
|
||||
list 0x25D3 1 0 1 0
|
||||
list 0x25D4 0 0 1 0
|
||||
list 0x25D5 0 1 1 1
|
||||
foreach [{u LT LB RT RB} : items-of quarters] : sketch
|
||||
define r : squareRadiusFW - GEOMETRYSTROKE / 2
|
||||
foreach [{u LT LB RT RB} : items-of partialCircleQuarters] : sketch
|
||||
set-width MosaicWidth
|
||||
include : union
|
||||
refer-glyph : MangleName 'whitecircle'
|
||||
intersection
|
||||
spiro-outline
|
||||
g4 MosaicMiddle (symbolMid + r)
|
||||
g4 (MosaicMiddle - r) symbolMid
|
||||
g4 MosaicMiddle (symbolMid - r)
|
||||
g4 (MosaicMiddle + r) symbolMid
|
||||
close
|
||||
CircleMarkShape
|
||||
create-glyph : glyph-construction
|
||||
if LT : include : spiro-outline
|
||||
corner MosaicMiddle symbolMid
|
||||
corner MosaicMiddle (symbolMid + squareRadiusFW)
|
||||
corner (MosaicMiddle - squareRadiusFW) (symbolMid + squareRadiusFW)
|
||||
corner (MosaicMiddle - squareRadiusFW) symbolMid
|
||||
if LB : include : spiro-outline
|
||||
corner MosaicMiddle symbolMid
|
||||
corner MosaicMiddle (symbolMid - squareRadiusFW)
|
||||
corner (MosaicMiddle - squareRadiusFW) (symbolMid - squareRadiusFW)
|
||||
corner (MosaicMiddle - squareRadiusFW) symbolMid
|
||||
if RT : include : spiro-outline
|
||||
corner MosaicMiddle symbolMid
|
||||
corner MosaicMiddle (symbolMid + squareRadiusFW)
|
||||
corner (MosaicMiddle + squareRadiusFW) (symbolMid + squareRadiusFW)
|
||||
corner (MosaicMiddle + squareRadiusFW) symbolMid
|
||||
if RB : include : spiro-outline
|
||||
corner MosaicMiddle symbolMid
|
||||
corner MosaicMiddle (symbolMid - squareRadiusFW)
|
||||
corner (MosaicMiddle + squareRadiusFW) (symbolMid - squareRadiusFW)
|
||||
corner (MosaicMiddle + squareRadiusFW) symbolMid
|
||||
if LT : include : UpperLeftQuarterMark
|
||||
if LB : include : LowerLeftQuarterMark
|
||||
if RT : include : UpperRightQuarterMark
|
||||
if RB : include : LowerRightQuarterMark
|
||||
save [MangleName ('uni' + u)] [MangleUnicode u]
|
||||
|
||||
define arcQuarters : list
|
||||
list 0x25DC 1 0 0 0
|
||||
list 0x25DD 0 0 1 0
|
||||
list 0x25DE 0 0 0 1
|
||||
list 0x25DF 0 1 0 0
|
||||
list 0x25E0 1 0 1 0
|
||||
list 0x25E1 0 1 0 1
|
||||
foreach [{u LT LB RT RB} : items-of arcQuarters] : sketch
|
||||
set-width MosaicWidth
|
||||
include : intersection
|
||||
refer-glyph : MangleName 'whitecircle'
|
||||
create-glyph : glyph-construction
|
||||
if LT : include : UpperLeftQuarterMark
|
||||
if LB : include : LowerLeftQuarterMark
|
||||
if RT : include : UpperRightQuarterMark
|
||||
if RB : include : LowerRightQuarterMark
|
||||
save [MangleName ('uni' + u)] [MangleUnicode u]
|
||||
|
||||
# Partial square
|
||||
define squareParts : list
|
||||
list 0x25E7 1 1 0 0 0 0 0 0
|
||||
list 0x25E8 0 0 1 1 0 0 0 0
|
||||
list 0x25E9 0 0 0 0 1 0 0 0
|
||||
list 0x2B14 0 0 0 0 0 0 1 0
|
||||
list 0x2B15 0 0 0 0 0 1 0 0
|
||||
list 0x25EA 0 0 0 0 0 0 0 1
|
||||
foreach [{u LT LB RT RB LTh LBh RTh RBh} : items-of squareParts] : sketch
|
||||
set-width MosaicWidth
|
||||
include : union
|
||||
refer-glyph : MangleName 'whitesquare'
|
||||
intersection
|
||||
refer-glyph : MangleName 'blacksquare'
|
||||
create-glyph : glyph-construction
|
||||
if LT : include : UpperLeftQuarterMark
|
||||
if LB : include : LowerLeftQuarterMark
|
||||
if RT : include : UpperRightQuarterMark
|
||||
if RB : include : LowerRightQuarterMark
|
||||
if LTh : include : UpperLeftHalfMark
|
||||
if LBh : include : LowerLeftHalfMark
|
||||
if RTh : include : UpperRightHalfMark
|
||||
if RBh : include : LowerRightHalfMark
|
||||
save [MangleName ('uni' + u)] [MangleUnicode u]
|
||||
|
||||
# Partial diamond
|
||||
define diamondParts : list
|
||||
list 0x2B16 1 1 0 0
|
||||
list 0x2B17 0 0 1 1
|
||||
list 0x2B18 1 0 1 0
|
||||
list 0x2B19 0 1 0 1
|
||||
foreach [{u LT LB RT RB LTh LBh RTh RBh} : items-of diamondParts] : sketch
|
||||
set-width MosaicWidth
|
||||
include : union
|
||||
refer-glyph : MangleName 'whitediamond'
|
||||
intersection
|
||||
refer-glyph : MangleName 'blackdiamond'
|
||||
create-glyph : glyph-construction
|
||||
if LT : include : UpperLeftQuarterMark
|
||||
if LB : include : LowerLeftQuarterMark
|
||||
if RT : include : UpperRightQuarterMark
|
||||
if RB : include : LowerRightQuarterMark
|
||||
save [MangleName ('uni' + u)] [MangleUnicode u]
|
||||
|
||||
# Partial triangle
|
||||
define triangleParts : list
|
||||
list 0x25ED 1 1 0 0
|
||||
list 0x25EE 0 0 1 1
|
||||
foreach [{u LT LB RT RB LTh RBh} : items-of triangleParts] : sketch
|
||||
set-width MosaicWidth
|
||||
include : union
|
||||
refer-glyph : MangleName 'whitetriangleup'
|
||||
intersection
|
||||
refer-glyph : MangleName 'blacktriangleup'
|
||||
create-glyph : glyph-construction
|
||||
if LT : include : UpperLeftQuarterMark
|
||||
if LB : include : LowerLeftQuarterMark
|
||||
if RT : include : UpperRightQuarterMark
|
||||
if RB : include : LowerRightQuarterMark
|
||||
if LTh : include : UpperLeftHalfMark
|
||||
if RBh : include : LowerRightHalfMark
|
||||
save [MangleName ('uni' + u)] [MangleUnicode u]
|
||||
|
||||
sketch
|
||||
set-width MosaicWidth
|
||||
include : refer-glyph : MangleName 'whitetriangleup'
|
||||
include : CircleDotAt MosaicMiddle (symbolMid - squareRadiusFW / 3) [Math.max (WIDTH / 6) GEOMETRYSTROKE]
|
||||
save [MangleName 'dottedWhiteTriangle'] [MangleUnicode 0x25EC]
|
||||
|
||||
sketch
|
||||
set-width MosaicWidth
|
||||
include : difference
|
||||
|
@ -653,3 +789,17 @@ glyph-block Symbol-Geometric : begin
|
|||
refer-glyph : MangleName 'blacklongrectangle'
|
||||
refer-glyph : MangleName 'whitecircle'
|
||||
save [MangleName 'uni25D9'] [MangleUnicode 0x25D9]
|
||||
|
||||
sketch
|
||||
set-width MosaicWidth
|
||||
include : intersection
|
||||
refer-glyph : MangleName 'uni25D9'
|
||||
UpperHalfMask
|
||||
save [MangleName 'uni25DA'] [MangleUnicode 0x25DA]
|
||||
|
||||
sketch
|
||||
set-width MosaicWidth
|
||||
include : intersection
|
||||
refer-glyph : MangleName 'uni25D9'
|
||||
LowerHalfMask
|
||||
save [MangleName 'uni25DB'] [MangleUnicode 0x25DB]
|
||||
|
|
|
@ -126,10 +126,6 @@ glyph-block Symbol-Math-Frame-And-Geometry : begin
|
|||
local rightCircle : WIDTH - SB * kCircle
|
||||
local radiusCircle : (rightCircle - leftCircle) / 2
|
||||
|
||||
local radiusBig : (tackTop - tackBot) / 2
|
||||
local leftBig : MIDDLE - radiusBig
|
||||
local rightBig : MIDDLE + radiusBig
|
||||
|
||||
sketch # mathO
|
||||
include : dispiro
|
||||
widths.lhs GEOMETRYSTROKE
|
||||
|
@ -155,31 +151,6 @@ glyph-block Symbol-Math-Frame-And-Geometry : begin
|
|||
arcvh nothing 2
|
||||
close
|
||||
save 'mathOOutline'
|
||||
sketch # mathOBig
|
||||
include : dispiro
|
||||
widths.lhs GEOMETRYSTROKE
|
||||
g4 MIDDLE (symbolMid + radiusBig - O)
|
||||
archv nothing 2
|
||||
g4 (leftBig + O) symbolMid
|
||||
arcvh nothing 2
|
||||
g4 MIDDLE (symbolMid - radiusBig + O)
|
||||
archv nothing 2
|
||||
g4 (rightBig - O) symbolMid
|
||||
arcvh nothing 2
|
||||
close
|
||||
save 'mathOBig'
|
||||
sketch # mathO-outline
|
||||
include : spiro-outline
|
||||
g4 MIDDLE (symbolMid + radiusBig)
|
||||
archv nothing 2
|
||||
g4 (leftBig) symbolMid
|
||||
arcvh nothing 2
|
||||
g4 MIDDLE (symbolMid - radiusBig)
|
||||
archv nothing 2
|
||||
g4 (rightBig) symbolMid
|
||||
arcvh nothing 2
|
||||
close
|
||||
save 'mathOOutlineBig'
|
||||
sketch # mathBoxOutline
|
||||
include : spiro-outline
|
||||
corner leftBox topBox
|
||||
|
@ -195,6 +166,38 @@ glyph-block Symbol-Math-Frame-And-Geometry : begin
|
|||
dispiro [widths.lhs sw] [flat rightBox topBox] [curl leftBox topBox]
|
||||
save 'mathBox'
|
||||
|
||||
for-width-kinds WIDE-WIDTH-1
|
||||
local radiusBig : (tackTop - tackBot) / 2 * [Math.sqrt MosaicWidthScalar]
|
||||
local leftBig : MosaicMiddle - radiusBig
|
||||
local rightBig : MosaicMiddle + radiusBig
|
||||
sketch # mathOBig
|
||||
set-width MosaicWidth
|
||||
include : dispiro
|
||||
widths.lhs GEOMETRYSTROKE
|
||||
g4 MosaicMiddle (symbolMid + radiusBig - O)
|
||||
archv nothing 2
|
||||
g4 (leftBig + O) symbolMid
|
||||
arcvh nothing 2
|
||||
g4 MosaicMiddle (symbolMid - radiusBig + O)
|
||||
archv nothing 2
|
||||
g4 (rightBig - O) symbolMid
|
||||
arcvh nothing 2
|
||||
close
|
||||
save [MangleName 'mathOBig']
|
||||
sketch # mathOOutlineBig
|
||||
set-width MosaicWidth
|
||||
include : spiro-outline
|
||||
g4 MosaicMiddle (symbolMid + radiusBig)
|
||||
archv nothing 2
|
||||
g4 (leftBig) symbolMid
|
||||
arcvh nothing 2
|
||||
g4 MosaicMiddle (symbolMid - radiusBig)
|
||||
archv nothing 2
|
||||
g4 (rightBig) symbolMid
|
||||
arcvh nothing 2
|
||||
close
|
||||
save [MangleName 'mathOOutlineBig']
|
||||
|
||||
do "Geometry"
|
||||
sketch
|
||||
include : intersection
|
||||
|
@ -396,6 +399,44 @@ glyph-block Symbol-Math-Dots-And-Colons : begin
|
|||
include : Ring (symbolMid + PERIODRADIUS - O) (symbolMid - PERIODRADIUS + O) (MIDDLE - PERIODRADIUS + O) (MIDDLE + PERIODRADIUS - O) true
|
||||
save 'mathcdot'
|
||||
|
||||
for-width-kinds WIDE-WIDTH-1
|
||||
sketch # mathcdot
|
||||
set-width MosaicWidth
|
||||
include : Ring (symbolMid + PERIODRADIUS - O) (symbolMid - PERIODRADIUS + O) (MosaicMiddle - PERIODRADIUS + O) (MosaicMiddle + PERIODRADIUS - O) true
|
||||
save [MangleName 'mathcdotBig']
|
||||
|
||||
sketch # plus
|
||||
set-width MosaicWidth
|
||||
include : union
|
||||
HBar SB (MosaicWidth - SB) symbolMid GEOMETRYSTROKE
|
||||
VBar MosaicMiddle [mix symbolMid plusTop MosaicWidthScalar] [mix symbolMid plusBot MosaicWidthScalar] GEOMETRYSTROKE
|
||||
save : MangleName 'innerPlusBig'
|
||||
|
||||
sketch # innerMultiplyStroke1Big
|
||||
set-width MosaicWidth
|
||||
local radius : (RIGHTSB - SB) / 2 * [Math.sqrt MosaicWidthScalar]
|
||||
include : dispiro
|
||||
widths.center GEOMETRYSTROKE
|
||||
flat (MosaicMiddle - radius) (symbolMid - radius)
|
||||
curl (MosaicMiddle + radius) (symbolMid + radius)
|
||||
save : MangleName 'innerMultiplyStroke1Big'
|
||||
|
||||
sketch # innerMultiplyStroke2Big
|
||||
set-width MosaicWidth
|
||||
local radius : (RIGHTSB - SB) / 2 * [Math.sqrt MosaicWidthScalar]
|
||||
include : dispiro
|
||||
widths.center GEOMETRYSTROKE
|
||||
flat (MosaicMiddle + radius) (symbolMid - radius)
|
||||
curl (MosaicMiddle - radius) (symbolMid + radius)
|
||||
save : MangleName 'innerMultiplyStroke2Big'
|
||||
|
||||
sketch # innerMultiplyBig
|
||||
set-width MosaicWidth
|
||||
include : refer-glyph : MangleName "innerMultiplyStroke1Big"
|
||||
include : refer-glyph : MangleName "innerMultiplyStroke2Big"
|
||||
save : MangleName 'innerMultiplyBig'
|
||||
|
||||
|
||||
composite 'mathAsterisk' [refer-glyph 'opAsterisk.low'] [into-unicode 0x2217]
|
||||
|
||||
glyph-block Symbol-Math-Circled : begin
|
||||
|
@ -405,12 +446,14 @@ glyph-block Symbol-Math-Circled : begin
|
|||
composite [refer-glyph 'mathO'] [intersection [refer-glyph 'mathOOutline'] [refer-glyph 'innerMultiply']] [into-unicode 0x2297]
|
||||
composite [refer-glyph 'mathO'] [intersection [refer-glyph 'mathOOutline'] [refer-glyph 'innerMultiplyStroke1']] [into-unicode 0x2298]
|
||||
composite [refer-glyph 'mathO'] [intersection [refer-glyph 'mathOOutline'] [refer-glyph 'mathcdot']] [into-unicode 0x2299]
|
||||
composite [refer-glyph 'mathOBig'] [intersection [refer-glyph 'mathOOutlineBig'] [refer-glyph 'mathcdot']] [into-unicode 0x2A00]
|
||||
composite [refer-glyph 'mathOBig'] [intersection [refer-glyph 'mathOOutlineBig'] [refer-glyph 'innerPlus']] [into-unicode 0x2A01]
|
||||
composite [refer-glyph 'mathOBig'] [intersection [refer-glyph 'mathOOutlineBig'] [refer-glyph 'innerMultiply']] [into-unicode 0x2A02]
|
||||
composite [refer-glyph 'mathO'] [intersection [refer-glyph 'mathOOutline'] [refer-glyph 'smallwhitecircle.hwid']] [into-unicode 0x229A]
|
||||
composite [refer-glyph 'mathO'] [intersection [refer-glyph 'mathOOutline'] [refer-glyph 'mathAsterisk']] [into-unicode 0x229B]
|
||||
|
||||
for-width-kinds WIDE-WIDTH-1
|
||||
composite [MangleName 'uni2A00'] [refer-glyph : MangleName 'mathOBig'] [intersection [refer-glyph : MangleName 'mathOOutlineBig'] [refer-glyph : MangleName 'mathcdotBig']] [into-unicode : MangleUnicode 0x2A00]
|
||||
composite [MangleName 'uni2A01'] [refer-glyph : MangleName 'mathOBig'] [intersection [refer-glyph : MangleName 'mathOOutlineBig'] [refer-glyph : MangleName 'innerPlusBig']] [into-unicode : MangleUnicode 0x2A01]
|
||||
composite [MangleName 'uni2A02'] [refer-glyph : MangleName 'mathOBig'] [intersection [refer-glyph : MangleName 'mathOOutlineBig'] [refer-glyph : MangleName 'innerMultiplyBig']] [into-unicode : MangleUnicode 0x2A02]
|
||||
|
||||
composite
|
||||
refer-glyph 'mathO'
|
||||
intersection
|
||||
|
|
|
@ -346,6 +346,80 @@ glyph-block Symbol-Other-Metric-Marks : begin
|
|||
include : HBar 0 MIDDLE parenBot SHOULDERFINE
|
||||
save 'metmark' 0xE09F
|
||||
|
||||
define MosaicTop fontMetrics.OS_2.sTypoAscender
|
||||
define MosaicBottom fontMetrics.OS_2.sTypoDescender
|
||||
define MarkerSize (UPM / 12)
|
||||
define MarkerBarWidth (UPM / 50)
|
||||
|
||||
sketch # boxMarkLeft
|
||||
set-width 0
|
||||
include : spiro-outline
|
||||
corner 0 parenTop
|
||||
corner 0 (parenTop + MarkerSize * 1.5)
|
||||
corner (-MarkerSize * 1.5) parenTop
|
||||
include : spiro-outline
|
||||
corner 0 parenBot
|
||||
corner 0 (parenBot - MarkerSize * 1.5)
|
||||
corner (-MarkerSize * 1.5) parenBot
|
||||
save 'boxMarkLeft' 0xE096
|
||||
|
||||
sketch # boxMarkRight
|
||||
set-width 0
|
||||
include : spiro-outline
|
||||
corner 0 parenTop
|
||||
corner 0 (parenTop + MarkerSize * 1.5)
|
||||
corner (+MarkerSize * 1.5) parenTop
|
||||
include : spiro-outline
|
||||
corner 0 parenBot
|
||||
corner 0 (parenBot - MarkerSize * 1.5)
|
||||
corner (+MarkerSize * 1.5) parenBot
|
||||
save 'boxMarkRight' 0xE097
|
||||
|
||||
sketch # mosaicMarkLeft
|
||||
set-width 0
|
||||
include : spiro-outline
|
||||
corner 0 MosaicTop
|
||||
corner 0 (MosaicTop + MarkerSize * 1.5)
|
||||
corner (-MarkerSize * 1.5) MosaicTop
|
||||
include : spiro-outline
|
||||
corner 0 MosaicBottom
|
||||
corner 0 (MosaicBottom - MarkerSize * 1.5)
|
||||
corner (-MarkerSize * 1.5) MosaicBottom
|
||||
save 'mosaicMarkLeft' 0xE098
|
||||
|
||||
sketch # mosaicMarkRight
|
||||
set-width 0
|
||||
include : spiro-outline
|
||||
corner 0 MosaicTop
|
||||
corner 0 (MosaicTop + MarkerSize * 1.5)
|
||||
corner (+MarkerSize * 1.5) MosaicTop
|
||||
include : spiro-outline
|
||||
corner 0 MosaicBottom
|
||||
corner 0 (MosaicBottom - MarkerSize * 1.5)
|
||||
corner (+MarkerSize * 1.5) MosaicBottom
|
||||
save 'mosaicMarkRight' 0xE099
|
||||
|
||||
sketch # baselineMarkUnder
|
||||
set-width 0
|
||||
include : HBar (-WIDTH * 2) (WIDTH * 2) 0 MarkerBarWidth
|
||||
save 'baselineMarkUnder' 0xE09A
|
||||
|
||||
sketch # baselineMarkLeft
|
||||
set-width 0
|
||||
include : spiro-outline
|
||||
corner 0 0
|
||||
corner (-MarkerSize * 1.5) (+MarkerSize * 1.5)
|
||||
corner (-MarkerSize * 1.5) (-MarkerSize * 1.5)
|
||||
save 'baselineMarkLeft' 0xE09B
|
||||
|
||||
sketch # baselineMarkRight
|
||||
set-width 0
|
||||
include : spiro-outline
|
||||
corner 0 0
|
||||
corner (+MarkerSize * 1.5) (+MarkerSize * 1.5)
|
||||
corner (+MarkerSize * 1.5) (-MarkerSize * 1.5)
|
||||
save 'baselineMarkRight' 0xE09C
|
||||
|
||||
glyph-block Symbol-Other-Fags : begin
|
||||
glyph-block-import CommonShapes
|
||||
|
||||
|
|
|
@ -179,9 +179,11 @@ define-macro for-width-kinds : syntax-rules
|
|||
{1 '.fwid' $Capture$.metrics.WIDE-WIDTH-0 ($Capture$.metrics.WIDE-WIDTH-0 / 2)}
|
||||
}
|
||||
foreach {FMosaicWide MosaicNameSuffix MosaicWidth MosaicUnitWidth} [items-of WidthKinds] : do
|
||||
define MosaicDesiredWidth @[formOf _desired]
|
||||
define MosaicMiddle : MosaicWidth / 2
|
||||
define MosaicWidthScalar : MosaicWidth / MosaicUnitWidth
|
||||
define [MangleUnicode unicode] : if (MosaicWidth == @[formOf _desired]) unicode nothing
|
||||
define [MangleUnicode unicode _desiredOverride]
|
||||
if (MosaicWidth == (_desiredOverride || MosaicDesiredWidth)) unicode nothing
|
||||
define [MangleName name] : name + MosaicNameSuffix
|
||||
begin @::[_body.map formOf]
|
||||
]
|
||||
|
|
12
verdafile.js
12
verdafile.js
|
@ -560,9 +560,21 @@ const PagesFontExport = task(`pages:font-export`, async target => {
|
|||
}
|
||||
});
|
||||
|
||||
const PagesFastFontExport = task(`pages:fast-font-export`, async target => {
|
||||
const [pagesDir] = await target.need(PagesDir);
|
||||
if (!pagesDir) return;
|
||||
const dirs = await target.need(GroupContents`iosevka`);
|
||||
for (const dir of dirs) {
|
||||
await cp(`${DIST}/${dir}`, path.resolve(pagesDir, "shared/font-import", dir));
|
||||
}
|
||||
});
|
||||
|
||||
const Pages = task(`pages`, async target => {
|
||||
await target.need(PagesDataExport, PagesFontExport);
|
||||
});
|
||||
const PagesFast = task(`pages-fast`, async target => {
|
||||
await target.need(PagesDataExport, PagesFastFontExport);
|
||||
});
|
||||
|
||||
const SampleImagesPre = task(`sample-images:pre`, async target => {
|
||||
const [sans, slab] = await target.need(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue