APL symbols remake (I)
This commit is contained in:
parent
b82ce595ce
commit
ffc50ab30a
9 changed files with 625 additions and 527 deletions
|
@ -41,7 +41,7 @@ export as build : define [buildFont para recursive recursiveCodes] : begin
|
||||||
return nothing
|
return nothing
|
||||||
|
|
||||||
define metrics : calculateMetrics para
|
define metrics : calculateMetrics para
|
||||||
define [object globalTransform MIDDLE CAP XH SB RIGHTSB CONTRAST STROKE SUPERNESS WIDTH TANSLANT OVERLAYPOS DESCENDER parenMid parenTop parenBot operTop operBot plusTop plusBot operMid] metrics
|
define [object globalTransform MIDDLE CAP XH SB RIGHTSB CONTRAST STROKE SUPERNESS WIDTH TANSLANT OVERLAYPOS DESCENDER parenMid parenTop parenBot operTop operBot plusTop plusBot operMid logicTop logicBot] metrics
|
||||||
|
|
||||||
# Anchor parameters
|
# Anchor parameters
|
||||||
define [object MARK BASE] Anchor
|
define [object MARK BASE] Anchor
|
||||||
|
@ -55,9 +55,11 @@ export as build : define [buildFont para recursive recursiveCodes] : begin
|
||||||
|
|
||||||
define markAboveLower {.anchors {.above [ta : new Anchor MIDDLE XH BASE]}}
|
define markAboveLower {.anchors {.above [ta : new Anchor MIDDLE XH BASE]}}
|
||||||
define markAboveOper {.anchors {.above [ta : new Anchor MIDDLE operTop BASE]}}
|
define markAboveOper {.anchors {.above [ta : new Anchor MIDDLE operTop BASE]}}
|
||||||
|
define markAboveLogic {.anchors {.above [ta : new Anchor MIDDLE logicTop BASE]}}
|
||||||
define markAbovePlus {.anchors {.above [ta : new Anchor MIDDLE plusTop BASE]}}
|
define markAbovePlus {.anchors {.above [ta : new Anchor MIDDLE plusTop BASE]}}
|
||||||
define markAboveCap {.anchors {.above [ta : new Anchor MIDDLE CAP BASE]}}
|
define markAboveCap {.anchors {.above [ta : new Anchor MIDDLE CAP BASE]}}
|
||||||
define markBelowLower {.anchors {.below [ta : new Anchor MIDDLE DESCENDER BASE]}}
|
define markBelowLower {.anchors {.below [ta : new Anchor MIDDLE DESCENDER BASE]}}
|
||||||
|
define markBelowLogic {.anchors {.below [ta : new Anchor MIDDLE logicBot BASE]}}
|
||||||
define markBelowOper {.anchors {.below [ta : new Anchor MIDDLE operBot BASE]}}
|
define markBelowOper {.anchors {.below [ta : new Anchor MIDDLE operBot BASE]}}
|
||||||
define markBelowPlus {.anchors {.below [ta : new Anchor MIDDLE plusBot BASE]}}
|
define markBelowPlus {.anchors {.below [ta : new Anchor MIDDLE plusBot BASE]}}
|
||||||
define markBelowZero {.anchors {.below [ta : new Anchor MIDDLE 0 BASE]}}
|
define markBelowZero {.anchors {.below [ta : new Anchor MIDDLE 0 BASE]}}
|
||||||
|
@ -83,6 +85,7 @@ export as build : define [buildFont para recursive recursiveCodes] : begin
|
||||||
b : buildStandardMarkSet markAboveCap markBelowZero markToprightCap markBottomrightZero
|
b : buildStandardMarkSet markAboveCap markBelowZero markToprightCap markBottomrightZero
|
||||||
e : buildStandardMarkSet markAboveLower markBelowZero markToprightLower markBottomrightZero
|
e : buildStandardMarkSet markAboveLower markBelowZero markToprightLower markBottomrightZero
|
||||||
oper : buildStandardMarkSet markAboveOper markBelowOper markToprightLower markBottomrightZero
|
oper : buildStandardMarkSet markAboveOper markBelowOper markToprightLower markBottomrightZero
|
||||||
|
logic : buildStandardMarkSet markAboveLogic markBelowLogic markToprightLower markBottomrightZero
|
||||||
plus : buildStandardMarkSet markAbovePlus markBelowPlus markToprightLower markBottomrightZero
|
plus : buildStandardMarkSet markAbovePlus markBelowPlus markToprightLower markBottomrightZero
|
||||||
p : buildStandardMarkSet markAboveLower markBelowLower markToprightLower markBottomrightLower
|
p : buildStandardMarkSet markAboveLower markBelowLower markToprightLower markBottomrightLower
|
||||||
if : buildStandardMarkSet markAboveCap markBelowLower markToprightCap markBottomrightLower
|
if : buildStandardMarkSet markAboveCap markBelowLower markToprightCap markBottomrightLower
|
||||||
|
|
|
@ -354,7 +354,7 @@ export : define [apply] : begin
|
||||||
apply-transform : Italify
|
apply-transform : Italify
|
||||||
|
|
||||||
define [bracedDottdeDimens width] : begin
|
define [bracedDottdeDimens width] : begin
|
||||||
define sw [adviceBlackness 5]
|
define sw : Math.max (WIDTH * 0.075) [adviceBlackness 5]
|
||||||
define dscale : linreg WIDTH 0.55 UPM 0.65 width
|
define dscale : linreg WIDTH 0.55 UPM 0.65 width
|
||||||
define pscale : linreg WIDTH 0.6 UPM 0.75 width
|
define pscale : linreg WIDTH 0.6 UPM 0.75 width
|
||||||
define l : [Math.max (SB + O * 3) (width / 2 - CAP / 2 * dscale - sw * 2.5)] + OX
|
define l : [Math.max (SB + O * 3) (width / 2 - CAP / 2 * dscale - sw * 2.5)] + OX
|
||||||
|
|
|
@ -685,4 +685,31 @@ export : define [apply] : begin
|
||||||
define [ForceUpright] : glyph-construction
|
define [ForceUpright] : glyph-construction
|
||||||
set this.gizmo : Translate 0 0
|
set this.gizmo : Translate 0 0
|
||||||
|
|
||||||
return [object queryFeatureSelector select-variant italic-variant alias composite into-unicode turned dual hcombine vdual vcombine fwl fwr dwl dwr dwc Ring RingAt DotAt CircleRing CircleRingAt CircleDotAt OShape OShapeOutline OBarLeftShape OBarRightShape LeftwardTopSerif LeftwardBottomSerif RightwardTopSerif RightwardBottomSerif CenterTopSerif CenterBottomSerif DownwardRightSerif UpwardRightSerif DownwardLeftSerif UpwardLeftSerif AIVSerifs AIHSerifs AINSerifs AICyrISerifs AIMSerifs halfXStrand xStrand nShoulderKnots nShoulder mShoulderSpiro HBar HBarTop HBarBottom HOverlayBar VBar VBarLeft VBarRight VerticalHook LegShape LeftHook HooktopLeftBar CurlyTail HCurlyTail FlatSlashShape determineMixR HookShape hookstart hookend CyrDescender refair Fork Miniature Thinner Widen FlipAround ScaleAround Realign ForceUpright]
|
define [Overlay overlay background] : glyph-construction
|
||||||
|
define sw : [adviceBlackness 6] / 2
|
||||||
|
local candidates {}
|
||||||
|
define segs 3
|
||||||
|
if background.anchors : include {.anchors background.anchors}
|
||||||
|
|
||||||
|
foreach [r : range (0 - segs) till (segs)] : foreach [c : range (0 - segs) till (segs)] : do
|
||||||
|
define dx : r / segs * sw
|
||||||
|
define dy : c / segs * sw
|
||||||
|
candidates.push : glyph-construction
|
||||||
|
if background.anchors : include {.anchors background.anchors}
|
||||||
|
include overlay
|
||||||
|
apply-transform : Translate dx dy
|
||||||
|
|
||||||
|
foreach [c : items-of overlay.contours] : foreach [z : items-of c] : if z.on : do
|
||||||
|
define x z.x
|
||||||
|
define y z.y
|
||||||
|
candidates.push : glyph-construction
|
||||||
|
set this.gizmo : Translate 0 0
|
||||||
|
start-from (x - sw) (y - sw)
|
||||||
|
line-to (x + sw) (y - sw)
|
||||||
|
line-to (x + sw) (y + sw)
|
||||||
|
line-to (x - sw) (y + sw)
|
||||||
|
|
||||||
|
include : difference background [union.apply null candidates]
|
||||||
|
include overlay
|
||||||
|
|
||||||
|
return [object queryFeatureSelector select-variant italic-variant alias composite into-unicode turned dual hcombine vdual vcombine fwl fwr dwl dwr dwc Ring RingAt DotAt CircleRing CircleRingAt CircleDotAt OShape OShapeOutline OBarLeftShape OBarRightShape LeftwardTopSerif LeftwardBottomSerif RightwardTopSerif RightwardBottomSerif CenterTopSerif CenterBottomSerif DownwardRightSerif UpwardRightSerif DownwardLeftSerif UpwardLeftSerif AIVSerifs AIHSerifs AINSerifs AICyrISerifs AIMSerifs halfXStrand xStrand nShoulderKnots nShoulder mShoulderSpiro HBar HBarTop HBarBottom HOverlayBar VBar VBarLeft VBarRight VerticalHook LegShape LeftHook HooktopLeftBar CurlyTail HCurlyTail FlatSlashShape determineMixR HookShape hookstart hookend CyrDescender refair Fork Miniature Thinner Widen FlipAround ScaleAround Realign ForceUpright Overlay]
|
||||||
|
|
|
@ -119,6 +119,8 @@ export : define [apply] : begin
|
||||||
|
|
||||||
|
|
||||||
define [LambdaShape sw _top] : glyph-construction
|
define [LambdaShape sw _top] : glyph-construction
|
||||||
|
local cornerdist : HALFSTROKE * HVCONTRAST * [if SLAB 1.2 1]
|
||||||
|
local fine : fallback para.vtipfine : if SLAB 0.9 0.8
|
||||||
local TURN (CAP * 0.1)
|
local TURN (CAP * 0.1)
|
||||||
local curviness 0.2
|
local curviness 0.2
|
||||||
local top : fallback _top CAP
|
local top : fallback _top CAP
|
||||||
|
@ -126,18 +128,18 @@ export : define [apply] : begin
|
||||||
widths.rhs sw
|
widths.rhs sw
|
||||||
flat SB 0 [heading UPWARD]
|
flat SB 0 [heading UPWARD]
|
||||||
curl SB TURN [heading UPWARD]
|
curl SB TURN [heading UPWARD]
|
||||||
quadcontrols 0 curviness
|
quadcontrols 0 curviness 9 unimportant
|
||||||
g4 (MIDDLE - sw / 2) top [widths 0 (sw * 0.8)]
|
g4 (MIDDLE - cornerdist) top [widths 0 (sw * fine)]
|
||||||
include : dispiro
|
include : dispiro
|
||||||
widths.lhs sw
|
widths.lhs sw
|
||||||
flat RIGHTSB 0 [heading UPWARD]
|
flat RIGHTSB 0 [heading UPWARD]
|
||||||
curl RIGHTSB TURN [heading UPWARD]
|
curl RIGHTSB TURN [heading UPWARD]
|
||||||
quadcontrols 0 curviness
|
quadcontrols 0 curviness 9 unimportant
|
||||||
g4 (MIDDLE + sw / 2) top [widths (sw * 0.8) 0]
|
g4 (MIDDLE + cornerdist) top [widths (sw * fine) 0]
|
||||||
|
|
||||||
start-from (MIDDLE - sw / 2) top
|
start-from (MIDDLE - cornerdist) top
|
||||||
line-to (MIDDLE + sw / 2) top
|
line-to (MIDDLE + cornerdist) top
|
||||||
line-to MIDDLE (top - sw)
|
line-to MIDDLE (top - sw * fine)
|
||||||
|
|
||||||
if SLAB : begin
|
if SLAB : begin
|
||||||
include : CenterBottomSerif (SB + sw / 2 * HVCONTRAST) 0 JUT
|
include : CenterBottomSerif (SB + sw / 2 * HVCONTRAST) 0 JUT
|
||||||
|
|
|
@ -326,8 +326,7 @@ export : define [apply] : begin
|
||||||
define topFW : parenMid + squareRadiusFW
|
define topFW : parenMid + squareRadiusFW
|
||||||
define bottomFW : parenMid - squareRadiusFW
|
define bottomFW : parenMid - squareRadiusFW
|
||||||
|
|
||||||
local hollowSW : adviceBlackness 5
|
define [hollowScale w d s] : (w - [fallback s GEOMETRYSTROKE] * [fallback d : WIDTH / shapeWidth]) / w
|
||||||
define [hollowScale w d s] : (w - [fallback s hollowSW] * [fallback d : WIDTH / shapeWidth]) / w
|
|
||||||
|
|
||||||
define [hollow newid unicode oldid zx zy cx cy] : sketch
|
define [hollow newid unicode oldid zx zy cx cy] : sketch
|
||||||
local isWide : glyphs.(oldid).advanceWidth > WIDTH
|
local isWide : glyphs.(oldid).advanceWidth > WIDTH
|
||||||
|
@ -478,7 +477,7 @@ export : define [apply] : begin
|
||||||
|
|
||||||
sketch # whiteparallelogram
|
sketch # whiteparallelogram
|
||||||
define skew : squareRadius * 1 / 4
|
define skew : squareRadius * 1 / 4
|
||||||
define w : hollowSW * (WIDTH / shapeWidth)
|
define w : GEOMETRYSTROKE * (WIDTH / shapeWidth)
|
||||||
set-width shapeWidth
|
set-width shapeWidth
|
||||||
include : intersection
|
include : intersection
|
||||||
begin glyphs.blackparallelogram
|
begin glyphs.blackparallelogram
|
||||||
|
@ -573,7 +572,7 @@ export : define [apply] : begin
|
||||||
save 'blackLonzenge' 0x29EB
|
save 'blackLonzenge' 0x29EB
|
||||||
|
|
||||||
sketch # whiteLonzenge
|
sketch # whiteLonzenge
|
||||||
define w : hollowSW * (WIDTH / shapeWidth)
|
define w : GEOMETRYSTROKE * (WIDTH / shapeWidth)
|
||||||
set-width shapeWidth
|
set-width shapeWidth
|
||||||
include : intersection
|
include : intersection
|
||||||
begin glyphs.blackLonzenge
|
begin glyphs.blackLonzenge
|
||||||
|
@ -597,6 +596,17 @@ export : define [apply] : begin
|
||||||
include FullWidthify
|
include FullWidthify
|
||||||
save 'whiteLonzenge' 0x25CA
|
save 'whiteLonzenge' 0x25CA
|
||||||
|
|
||||||
|
sketch # blackcircle
|
||||||
|
include markset.plus
|
||||||
|
include : spiro-outline
|
||||||
|
g4 MIDDLE (parenMid + squareRadius + O)
|
||||||
|
g4 (left - O) parenMid
|
||||||
|
g4 MIDDLE (parenMid - squareRadius - O)
|
||||||
|
g4 (right + O) parenMid
|
||||||
|
close
|
||||||
|
reverse-last
|
||||||
|
save 'hwblackcircleO'
|
||||||
|
|
||||||
sketch # blackcircle
|
sketch # blackcircle
|
||||||
include markset.plus
|
include markset.plus
|
||||||
include : spiro-outline
|
include : spiro-outline
|
||||||
|
@ -691,8 +701,8 @@ export : define [apply] : begin
|
||||||
hollow 'hwsmallwhitecircle' null 'hwsmallblackcircle' [hollowScale (squareRadius * designParameters.geometric_small_x) 1]
|
hollow 'hwsmallwhitecircle' null 'hwsmallblackcircle' [hollowScale (squareRadius * designParameters.geometric_small_x) 1]
|
||||||
hollow 'smallwhitesquare' 0x25AB 'smallblacksquare' [hollowScale : squareRadius * designParameters.geometric_small_x]
|
hollow 'smallwhitesquare' 0x25AB 'smallblacksquare' [hollowScale : squareRadius * designParameters.geometric_small_x]
|
||||||
hollow 'hwwhitecircle' null 'hwblackcircle'
|
hollow 'hwwhitecircle' null 'hwblackcircle'
|
||||||
let [s : hollowScale squareRadius nothing (hollowSW * [Math.sqrt 2])] : begin
|
let [s : hollowScale squareRadius nothing (GEOMETRYSTROKE * [Math.sqrt 2])] : begin
|
||||||
hollow 'hwwhitediamond' null 'hwblackdiamond' s
|
hollow 'hwwhitediamond' 0x22C4 'hwblackdiamond' s
|
||||||
hollow 'whitediamond' 0x25C7 'blackdiamond' s
|
hollow 'whitediamond' 0x25C7 'blackdiamond' s
|
||||||
hollowWithCenter 'whitediamondWithCenter' 0x25C8 'blackdiamond' s
|
hollowWithCenter 'whitediamondWithCenter' 0x25C8 'blackdiamond' s
|
||||||
let [sts 0.75]
|
let [sts 0.75]
|
||||||
|
@ -703,9 +713,9 @@ export : define [apply] : begin
|
||||||
resized 'smallblacktriangleleft' 0x25C2 'blacktriangleleft' MIDDLE parenMid 0.75
|
resized 'smallblacktriangleleft' 0x25C2 'blacktriangleleft' MIDDLE parenMid 0.75
|
||||||
|
|
||||||
let
|
let
|
||||||
: sl : hollowScale (squareRadius * 2 / [Math.sqrt 3]) nothing (hollowSW * [Math.sqrt 3])
|
: sl : hollowScale (squareRadius * 2 / [Math.sqrt 3]) nothing (GEOMETRYSTROKE * [Math.sqrt 3])
|
||||||
: slt : hollowScale (squareRadius * 2 / [Math.sqrt 3]) nothing (hollowSW * [Math.sqrt 3])
|
: slt : hollowScale (squareRadius * 2 / [Math.sqrt 3]) nothing (GEOMETRYSTROKE * [Math.sqrt 3])
|
||||||
: ss : hollowScale (squareRadius * sts * 2 / [Math.sqrt 3]) nothing (hollowSW * [Math.sqrt 3])
|
: ss : hollowScale (squareRadius * sts * 2 / [Math.sqrt 3]) nothing (GEOMETRYSTROKE * [Math.sqrt 3])
|
||||||
: begin
|
: begin
|
||||||
hollow 'whitetriangleup' 0x25B3 'blacktriangleup' sl nothing MIDDLE (parenMid - squareRadius / 3)
|
hollow 'whitetriangleup' 0x25B3 'blacktriangleup' sl nothing MIDDLE (parenMid - squareRadius / 3)
|
||||||
hollow 'whitetriangledown' 0x25BD 'blacktriangledown' sl nothing MIDDLE (parenMid + squareRadius / 3)
|
hollow 'whitetriangledown' 0x25BD 'blacktriangledown' sl nothing MIDDLE (parenMid + squareRadius / 3)
|
||||||
|
@ -738,9 +748,9 @@ export : define [apply] : begin
|
||||||
# Rounded
|
# Rounded
|
||||||
sketch # roundwhitesquare, U+25A2
|
sketch # roundwhitesquare, U+25A2
|
||||||
set-width shapeWidth
|
set-width shapeWidth
|
||||||
define cr : squareRadiusFW - hollowSW * 2
|
define cr : squareRadiusFW - GEOMETRYSTROKE * 2
|
||||||
include : dispiro
|
include : dispiro
|
||||||
widths.lhs hollowSW
|
widths.lhs GEOMETRYSTROKE
|
||||||
flat (middleFW + 1) (parenMid + squareRadiusFW) [heading LEFTWARD]
|
flat (middleFW + 1) (parenMid + squareRadiusFW) [heading LEFTWARD]
|
||||||
curl (middleFW - cr) (parenMid + squareRadiusFW) [heading LEFTWARD]
|
curl (middleFW - cr) (parenMid + squareRadiusFW) [heading LEFTWARD]
|
||||||
archv
|
archv
|
||||||
|
@ -758,8 +768,8 @@ export : define [apply] : begin
|
||||||
save 'roundwhitesquare' 0x25A2
|
save 'roundwhitesquare' 0x25A2
|
||||||
# Shaded hollow squares
|
# Shaded hollow squares
|
||||||
sketch # hshadesquare, U+25A4
|
sketch # hshadesquare, U+25A4
|
||||||
define lineWidth : Math.min hollowSW ((squareRadiusFW * 2 - hollowSW * 2) * 1 / 11)
|
define lineWidth : Math.min GEOMETRYSTROKE ((squareRadiusFW * 2 - GEOMETRYSTROKE * 2) * 1 / 11)
|
||||||
define top : parenMid + squareRadiusFW - hollowSW + lineWidth / 2
|
define top : parenMid + squareRadiusFW - GEOMETRYSTROKE + lineWidth / 2
|
||||||
define bot : parenMid - (top - parenMid)
|
define bot : parenMid - (top - parenMid)
|
||||||
set-width shapeWidth
|
set-width shapeWidth
|
||||||
include : union
|
include : union
|
||||||
|
@ -781,8 +791,8 @@ export : define [apply] : begin
|
||||||
curl rightFW [mix top bot 0.75] [heading RIGHTWARD]
|
curl rightFW [mix top bot 0.75] [heading RIGHTWARD]
|
||||||
save 'hshadesquare' 0x25A4
|
save 'hshadesquare' 0x25A4
|
||||||
sketch # vshadesquare, U+25A5
|
sketch # vshadesquare, U+25A5
|
||||||
define lineWidth : Math.min hollowSW ((squareRadiusFW * 2 - hollowSW * 2) * 1 / 11)
|
define lineWidth : Math.min GEOMETRYSTROKE ((squareRadiusFW * 2 - GEOMETRYSTROKE * 2) * 1 / 11)
|
||||||
define r : shapeWidth / 2 + squareRadiusFW - hollowSW + lineWidth / 2
|
define r : shapeWidth / 2 + squareRadiusFW - GEOMETRYSTROKE + lineWidth / 2
|
||||||
define l : shapeWidth / 2 - (r - shapeWidth / 2)
|
define l : shapeWidth / 2 - (r - shapeWidth / 2)
|
||||||
set-width shapeWidth
|
set-width shapeWidth
|
||||||
include : union
|
include : union
|
||||||
|
@ -808,7 +818,7 @@ export : define [apply] : begin
|
||||||
include : union glyphs.hshadesquare glyphs.vshadesquare
|
include : union glyphs.hshadesquare glyphs.vshadesquare
|
||||||
save 'hvshadesquare' 0x25A6
|
save 'hvshadesquare' 0x25A6
|
||||||
sketch # ddiagshadesquare, U+25A7
|
sketch # ddiagshadesquare, U+25A7
|
||||||
define lineWidth : Math.min hollowSW ((squareRadiusFW * 2 - hollowSW * 2) * 1 / 11)
|
define lineWidth : Math.min GEOMETRYSTROKE ((squareRadiusFW * 2 - GEOMETRYSTROKE * 2) * 1 / 11)
|
||||||
define top : parenMid + squareRadiusFW
|
define top : parenMid + squareRadiusFW
|
||||||
define bot : parenMid - (top - parenMid)
|
define bot : parenMid - (top - parenMid)
|
||||||
set-width shapeWidth
|
set-width shapeWidth
|
||||||
|
@ -823,7 +833,7 @@ export : define [apply] : begin
|
||||||
curl rightFW [mix top bot (j / 4 + 1)] [heading RIGHTWARD]
|
curl rightFW [mix top bot (j / 4 + 1)] [heading RIGHTWARD]
|
||||||
save 'ddiagshadesquare' 0x25A7
|
save 'ddiagshadesquare' 0x25A7
|
||||||
sketch # udiagshadesquare, U+25A8
|
sketch # udiagshadesquare, U+25A8
|
||||||
define lineWidth : Math.min hollowSW ((squareRadiusFW * 2 - hollowSW * 2) * 1 / 11)
|
define lineWidth : Math.min GEOMETRYSTROKE ((squareRadiusFW * 2 - GEOMETRYSTROKE * 2) * 1 / 11)
|
||||||
define top : parenMid + squareRadiusFW
|
define top : parenMid + squareRadiusFW
|
||||||
define bot : parenMid - (top - parenMid)
|
define bot : parenMid - (top - parenMid)
|
||||||
set-width shapeWidth
|
set-width shapeWidth
|
||||||
|
@ -851,7 +861,7 @@ export : define [apply] : begin
|
||||||
list 0x25D4 0 0 1 0
|
list 0x25D4 0 0 1 0
|
||||||
list 0x25D5 0 1 1 1
|
list 0x25D5 0 1 1 1
|
||||||
foreach [{u LT LB RT RB} : items-of quarters] : sketch
|
foreach [{u LT LB RT RB} : items-of quarters] : sketch
|
||||||
define r : squareRadiusFW - hollowSW / 2
|
define r : squareRadiusFW - GEOMETRYSTROKE / 2
|
||||||
set-width shapeWidth
|
set-width shapeWidth
|
||||||
include : union
|
include : union
|
||||||
begin glyphs.whitecircle
|
begin glyphs.whitecircle
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -517,28 +517,26 @@ export : define [apply] : begin
|
||||||
|
|
||||||
do "Asterisk"
|
do "Asterisk"
|
||||||
local asteriskCenterY : parenTop - LONGJUT * 1.5
|
local asteriskCenterY : parenTop - LONGJUT * 1.5
|
||||||
|
local asteriskKinds {{1.2 STROKE 'asterisk'} {0.85 STROKE 'smallasterisk'} {1 GEOMETRYSTROKE 'opAsterisk'}}
|
||||||
|
foreach [{size stroke name} : items-of asteriskKinds] : begin
|
||||||
|
sketch
|
||||||
|
local radius : LONGJUT * size
|
||||||
|
local fine : stroke * 0.4
|
||||||
|
local final : 0.5 * [Math.min stroke (radius * Math.PI * 2 / 10)]
|
||||||
|
|
||||||
foreach [{size name} : items-of {{1.2 'asterisk.high'} {0.85 'smallasterisk.high'}}] : sketch
|
foreach j [range 0 5] : begin
|
||||||
local radius : LONGJUT * size
|
local s : Math.sin (j / 5 * Math.PI * 2)
|
||||||
local fine : STROKE * 0.4
|
local c : Math.cos (j / 5 * Math.PI * 2)
|
||||||
local final : 0.5 * [Math.min STROKE (radius * Math.PI * 2 / 10)]
|
include : dispiro
|
||||||
|
flat MIDDLE asteriskCenterY [widths fine fine]
|
||||||
|
curl (MIDDLE + radius * s) (asteriskCenterY + radius * c) [widths final final]
|
||||||
|
save (name + '.high')
|
||||||
|
composite (name + '.low') glyphs.(name + '.high')
|
||||||
|
Upright
|
||||||
|
Translate 0 (parenMid - asteriskCenterY)
|
||||||
|
begin markset.plus
|
||||||
|
Italify
|
||||||
|
|
||||||
foreach j [range 0 5] : begin
|
|
||||||
local s : Math.sin (j / 5 * Math.PI * 2)
|
|
||||||
local c : Math.cos (j / 5 * Math.PI * 2)
|
|
||||||
include : dispiro
|
|
||||||
flat MIDDLE asteriskCenterY [widths fine fine]
|
|
||||||
curl (MIDDLE + radius * s) (asteriskCenterY + radius * c) [widths final final]
|
|
||||||
save name
|
|
||||||
|
|
||||||
composite 'asterisk.low' glyphs.'asterisk.high'
|
|
||||||
Upright
|
|
||||||
Translate 0 (parenMid - asteriskCenterY)
|
|
||||||
Italify
|
|
||||||
composite 'smallasterisk.low' glyphs.'smallasterisk.high'
|
|
||||||
Upright
|
|
||||||
Translate 0 (parenMid - asteriskCenterY)
|
|
||||||
Italify
|
|
||||||
select-variant 'asterisk' '*'
|
select-variant 'asterisk' '*'
|
||||||
|
|
||||||
do "Slashes and numbersign"
|
do "Slashes and numbersign"
|
||||||
|
@ -616,6 +614,10 @@ export : define [apply] : begin
|
||||||
set-width WIDTH
|
set-width WIDTH
|
||||||
include : HBarBottom SB RIGHTSB 0
|
include : HBarBottom SB RIGHTSB 0
|
||||||
save 'underscore.high'
|
save 'underscore.high'
|
||||||
|
sketch # underscore.belowBaseline
|
||||||
|
set-width WIDTH
|
||||||
|
include : HBarTop SB RIGHTSB 0
|
||||||
|
save 'underscore.belowBaseline'
|
||||||
|
|
||||||
composite 'underscore.low' glyphs.'underscore.high' [Upright] [Translate 0 (DESCENDER * 0.9)] [Italify]
|
composite 'underscore.low' glyphs.'underscore.high' [Upright] [Translate 0 (DESCENDER * 0.9)] [Italify]
|
||||||
select-variant 'underscore' '_'
|
select-variant 'underscore' '_'
|
||||||
|
|
|
@ -19,6 +19,8 @@ export : define [calculateMetrics para] : begin
|
||||||
define parenBot (parenMid - (CAP - XH) * 2.6)
|
define parenBot (parenMid - (CAP - XH) * 2.6)
|
||||||
define operTop : mix parenMid parenTop 0.8
|
define operTop : mix parenMid parenTop 0.8
|
||||||
define operBot : mix parenMid parenBot 0.8
|
define operBot : mix parenMid parenBot 0.8
|
||||||
|
define logicTop : mix parenMid operTop 0.75
|
||||||
|
define logicBot : mix parenMid operBot 0.75
|
||||||
define plusTop : parenMid + (WIDTH - SB * 2) * 0.55
|
define plusTop : parenMid + (WIDTH - SB * 2) * 0.55
|
||||||
define plusBot : parenMid - (WIDTH - SB * 2) * 0.55
|
define plusBot : parenMid - (WIDTH - SB * 2) * 0.55
|
||||||
define operMid parenMid
|
define operMid parenMid
|
||||||
|
@ -134,6 +136,7 @@ export : define [calculateMetrics para] : begin
|
||||||
define MVERTSTROKE : adviceBlackness : fallback para.lllcrowdedness (3 + 1 / 3)
|
define MVERTSTROKE : adviceBlackness : fallback para.lllcrowdedness (3 + 1 / 3)
|
||||||
define OVERLAYSTROKE : adviceBlackness 3.75
|
define OVERLAYSTROKE : adviceBlackness 3.75
|
||||||
define OPERATORSTROKE : adviceBlackness 3.2
|
define OPERATORSTROKE : adviceBlackness 3.2
|
||||||
|
define GEOMETRYSTROKE : adviceBlackness 4.5
|
||||||
define SHOULDERFINE : if para.shoulderfine (STROKE * para.shoulderfine) [adviceBlackness 10]
|
define SHOULDERFINE : if para.shoulderfine (STROKE * para.shoulderfine) [adviceBlackness 10]
|
||||||
|
|
||||||
define SUPERNESS : fallback para.superness 2
|
define SUPERNESS : fallback para.superness 2
|
||||||
|
@ -147,7 +150,7 @@ export : define [calculateMetrics para] : begin
|
||||||
|
|
||||||
return [object
|
return [object
|
||||||
UPM WIDTH SB CAP XH DESCENDER CONTRAST
|
UPM WIDTH SB CAP XH DESCENDER CONTRAST
|
||||||
parenMid parenTop parenBot operTop operBot plusTop plusBot operMid Italify Upright Scale Translate Rotate globalTransform
|
parenMid parenTop parenBot operTop operBot logicTop logicBot plusTop plusBot operMid Italify Upright Scale Translate Rotate globalTransform
|
||||||
TANSLANT SINSLANT COSSLANT HVCONTRAST UPWARD DOWNWARD RIGHTWARD LEFTWARD
|
TANSLANT SINSLANT COSSLANT HVCONTRAST UPWARD DOWNWARD RIGHTWARD LEFTWARD
|
||||||
Upward Downward Leftward Rightward
|
Upward Downward Leftward Rightward
|
||||||
O OX OXHOOK HOOK AHOOK SHOOK RHOOK JHOOK FHOOK HOOKX SMOOTH SMALLSMOOTH STROKE DOTSIZE PERIODSIZE
|
O OX OXHOOK HOOK AHOOK SHOOK RHOOK JHOOK FHOOK HOOKX SMOOTH SMALLSMOOTH STROKE DOTSIZE PERIODSIZE
|
||||||
|
@ -155,7 +158,7 @@ export : define [calculateMetrics para] : begin
|
||||||
TAILADJX TAILADJY LBALANCE IBALANCE LBALANCE2 IBALANCE2 JBALANCE JBALANCE2 TBALANCE TBALANCE2 RBALANCE RBALANCE2
|
TAILADJX TAILADJY LBALANCE IBALANCE LBALANCE2 IBALANCE2 JBALANCE JBALANCE2 TBALANCE TBALANCE2 RBALANCE RBALANCE2
|
||||||
FBALANCE ONEBALANCE FULLWIDTH FULLWIDTH1 FULLWIDTH2 FULLWIDTH3 OXE ESS ESSQUESTION XO CAPO HALFSTROKE RIGHTSB FWRSB
|
FBALANCE ONEBALANCE FULLWIDTH FULLWIDTH1 FULLWIDTH2 FULLWIDTH3 OXE ESS ESSQUESTION XO CAPO HALFSTROKE RIGHTSB FWRSB
|
||||||
MIDDLE FWMIDDLE CAPMIDDLE CAP_SMOOTH DOTRADIUS PERIODRADIUS SIDEJUT SMOOTHA SMOOTHB SMALLSMOOTHA SMALLSMOOTHB CORRECTION_OMIDX CORRECTION_OMIDS
|
MIDDLE FWMIDDLE CAPMIDDLE CAP_SMOOTH DOTRADIUS PERIODRADIUS SIDEJUT SMOOTHA SMOOTHB SMALLSMOOTHA SMALLSMOOTHB CORRECTION_OMIDX CORRECTION_OMIDS
|
||||||
WHITENESS adviceBlackness MVERTSTROKE OVERLAYSTROKE OPERATORSTROKE SHOULDERFINE SUPERNESS superxy
|
WHITENESS adviceBlackness MVERTSTROKE OVERLAYSTROKE OPERATORSTROKE GEOMETRYSTROKE SHOULDERFINE SUPERNESS superxy
|
||||||
adviceSSmooth adviceGlottalStopSmooth shoulderMidSlope]
|
adviceSSmooth adviceGlottalStopSmooth shoulderMidSlope]
|
||||||
|
|
||||||
export : define [setFontMetrics para metrics font] : begin
|
export : define [setFontMetrics para metrics font] : begin
|
||||||
|
|
|
@ -135,7 +135,7 @@ define-macro save : syntax-rules
|
||||||
define-macro glyph-module-entry : syntax-rules
|
define-macro glyph-module-entry : syntax-rules
|
||||||
`[glyph-module-entry @::_opts] : begin
|
`[glyph-module-entry @::_opts] : begin
|
||||||
define optionalImports : object
|
define optionalImports : object
|
||||||
commonShapes `[define [object queryFeatureSelector select-variant italic-variant alias composite into-unicode turned hcombine vcombine dual vdual fwl fwr dwl dwr dwc Ring RingAt DotAt CircleRing CircleRingAt CircleDotAt OShape OShapeOutline OBarLeftShape OBarRightShape LeftwardTopSerif LeftwardBottomSerif RightwardTopSerif RightwardBottomSerif CenterTopSerif CenterBottomSerif DownwardRightSerif UpwardRightSerif DownwardLeftSerif UpwardLeftSerif AIVSerifs AIHSerifs AINSerifs AICyrISerifs AIMSerifs halfXStrand xStrand nShoulderKnots nShoulder mShoulderSpiro HBar HBarTop HBarBottom HOverlayBar VBar VBarLeft VBarRight VerticalHook LegShape LeftHook HooktopLeftBar CurlyTail HCurlyTail FlatSlashShape determineMixR HookShape hookstart hookend CyrDescender refair Fork Miniature Thinner Widen FlipAround ScaleAround Realign ForceUpright] $capture.commonShapes]
|
commonShapes `[define [object queryFeatureSelector select-variant italic-variant alias composite into-unicode turned hcombine vcombine dual vdual fwl fwr dwl dwr dwc Ring RingAt DotAt CircleRing CircleRingAt CircleDotAt OShape OShapeOutline OBarLeftShape OBarRightShape LeftwardTopSerif LeftwardBottomSerif RightwardTopSerif RightwardBottomSerif CenterTopSerif CenterBottomSerif DownwardRightSerif UpwardRightSerif DownwardLeftSerif UpwardLeftSerif AIVSerifs AIHSerifs AINSerifs AICyrISerifs AIMSerifs halfXStrand xStrand nShoulderKnots nShoulder mShoulderSpiro HBar HBarTop HBarBottom HOverlayBar VBar VBarLeft VBarRight VerticalHook LegShape LeftHook HooktopLeftBar CurlyTail HCurlyTail FlatSlashShape determineMixR HookShape hookstart hookend CyrDescender refair Fork Miniature Thinner Widen FlipAround ScaleAround Realign ForceUpright Overlay] $capture.commonShapes]
|
||||||
|
|
||||||
overmarks `[define [object markExtend markHalfStroke markStress markFine markMiddle markDotsRadius aboveMarkTop aboveMarkBot aboveMarkMid belowMarkBot belowMarkTop commaOvershoot commaOvershoot2 commaAboveRadius TildeShape] $capture.overmarks]
|
overmarks `[define [object markExtend markHalfStroke markStress markFine markMiddle markDotsRadius aboveMarkTop aboveMarkBot aboveMarkMid belowMarkBot belowMarkTop commaOvershoot commaOvershoot2 commaAboveRadius TildeShape] $capture.overmarks]
|
||||||
|
|
||||||
|
@ -153,14 +153,14 @@ define-macro glyph-module-entry : syntax-rules
|
||||||
define [object metrics $NamedParameterPair$ $donothing$ para recursive recursiveCodes variantSelector font glyphs glyphList unicodeGlyphs create-glyph $save$ save-glyph spirofns markset MARK BASE AS_BASE ALSO_METRICS pickHash dependencyProfile getDependencyProfile buildFont newtemp tagged TempFont includeGlyphPart compsiteMarkSet] $capture
|
define [object metrics $NamedParameterPair$ $donothing$ para recursive recursiveCodes variantSelector font glyphs glyphList unicodeGlyphs create-glyph $save$ save-glyph spirofns markset MARK BASE AS_BASE ALSO_METRICS pickHash dependencyProfile getDependencyProfile buildFont newtemp tagged TempFont includeGlyphPart compsiteMarkSet] $capture
|
||||||
define [object
|
define [object
|
||||||
UPM WIDTH SB CAP XH DESCENDER CONTRAST
|
UPM WIDTH SB CAP XH DESCENDER CONTRAST
|
||||||
parenMid parenTop parenBot operTop operBot plusTop plusBot operMid Italify Upright Scale Translate Rotate globalTransform
|
parenMid parenTop parenBot operTop operBot logicTop logicBot plusTop plusBot operMid Italify Upright Scale Translate Rotate globalTransform
|
||||||
TANSLANT SINSLANT COSSLANT HVCONTRAST UPWARD DOWNWARD RIGHTWARD LEFTWARD Upward Downward Leftward Rightward
|
TANSLANT SINSLANT COSSLANT HVCONTRAST UPWARD DOWNWARD RIGHTWARD LEFTWARD Upward Downward Leftward Rightward
|
||||||
O OX OXHOOK HOOK AHOOK SHOOK RHOOK JHOOK FHOOK HOOKX SMOOTH SMALLSMOOTH STROKE DOTSIZE PERIODSIZE
|
O OX OXHOOK HOOK AHOOK SHOOK RHOOK JHOOK FHOOK HOOKX SMOOTH SMALLSMOOTH STROKE DOTSIZE PERIODSIZE
|
||||||
BARPOS GBARPOS PBARPOS EBARPOS OVERLAYPOS FIVEBARPOS LONGJUT JUT VJUT ACCENT ACCENTX CTHIN CTHINB SLAB
|
BARPOS GBARPOS PBARPOS EBARPOS OVERLAYPOS FIVEBARPOS LONGJUT JUT VJUT ACCENT ACCENTX CTHIN CTHINB SLAB
|
||||||
TAILADJX TAILADJY LBALANCE IBALANCE LBALANCE2 IBALANCE2 JBALANCE JBALANCE2 TBALANCE TBALANCE2 RBALANCE RBALANCE2
|
TAILADJX TAILADJY LBALANCE IBALANCE LBALANCE2 IBALANCE2 JBALANCE JBALANCE2 TBALANCE TBALANCE2 RBALANCE RBALANCE2
|
||||||
FBALANCE ONEBALANCE FULLWIDTH FULLWIDTH1 FULLWIDTH2 FULLWIDTH3 OXE ESS ESSQUESTION XO CAPO HALFSTROKE RIGHTSB FWRSB
|
FBALANCE ONEBALANCE FULLWIDTH FULLWIDTH1 FULLWIDTH2 FULLWIDTH3 OXE ESS ESSQUESTION XO CAPO HALFSTROKE RIGHTSB FWRSB
|
||||||
MIDDLE FWMIDDLE CAPMIDDLE CAP_SMOOTH DOTRADIUS PERIODRADIUS SIDEJUT SMOOTHA SMOOTHB SMALLSMOOTHA SMALLSMOOTHB CORRECTION_OMIDX CORRECTION_OMIDS
|
MIDDLE FWMIDDLE CAPMIDDLE CAP_SMOOTH DOTRADIUS PERIODRADIUS SIDEJUT SMOOTHA SMOOTHB SMALLSMOOTHA SMALLSMOOTHB CORRECTION_OMIDX CORRECTION_OMIDS
|
||||||
WHITENESS adviceBlackness MVERTSTROKE OVERLAYSTROKE OPERATORSTROKE SHOULDERFINE SUPERNESS superxy
|
WHITENESS adviceBlackness MVERTSTROKE OVERLAYSTROKE OPERATORSTROKE GEOMETRYSTROKE SHOULDERFINE SUPERNESS superxy
|
||||||
adviceSSmooth adviceGlottalStopSmooth shoulderMidSlope] metrics
|
adviceSSmooth adviceGlottalStopSmooth shoulderMidSlope] metrics
|
||||||
define [object
|
define [object
|
||||||
g4 g2 corner flat curl close end straight
|
g4 g2 corner flat curl close end straight
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue