APL symbols remake (I)

This commit is contained in:
belleve 2018-08-17 00:28:00 +08:00
parent b82ce595ce
commit ffc50ab30a
9 changed files with 625 additions and 527 deletions

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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