Aile is almost done

This commit is contained in:
Belleve Invis 2019-08-05 04:27:07 -07:00
parent 4e2ee3d44c
commit 0c10e0da49
16 changed files with 683 additions and 531 deletions

View file

@ -123,9 +123,12 @@ design = ["term", "ss11"]
[buildPlans.iosevka-aile]
family = "Iosevka Aile"
design = ["type", "shape-straight-bar", "diversity-1", "v-at-fourfold", "v-j-straight", 'v-capital-i-straight', 'v-capital-j-straight']
upright = ["v-i-line", "v-l-line"]
italic = ["v-i-tailed", "v-l-tailed"]
design = ["type", "shape-straight-bar", "v-at-fourfold", "v-j-narrow", 'v-capital-i-straight', 'v-capital-j-straight', 'v-g-singlestorey', 'v-r-narrow']
upright = ["v-i-line", "v-l-line", 'v-f-short', 'v-t-short']
italic = ["v-i-line", "v-l-line", 'v-f-short', 'v-t-short']
[buildPlans.iosevka-aile.post]
design = ['wd-expanded-aile', "diversity-2"]
[buildPlans.iosevka-etoile]
family = "Iosevka Etoile"

View file

@ -198,8 +198,9 @@ export as build : define [buildFont para recursive recursiveCodes] : begin
# Space
sketch # space
set-width WIDTH
include markset.e
local df : DivFrame para.diversityF
set-width df.width
include df.markSet.e
save 'space' ' '
# IDKY, but wrapping "metrics" prevents Node.js on Arch modifying it.

View file

@ -298,7 +298,7 @@ export : define [apply] : begin
local pendingGlyphs : records.map : [record] => record.1
return : Miniature
glyphs -- [pendingGlyphs.reduce : [a b] => [a.concat b]]
crowd -- [fallback para.smallCrowd 3.75]
crowd -- 5
scale -- 0.65
unfair -- true
@ -503,9 +503,10 @@ export : define [apply] : begin
local pendingGlyphs : records.map : [record] => record.1
local miniatureFont : Miniature
glyphs -- pendingGlyphs
crowd -- [fallback para.smallCrowd 3.5]
crowd -- 4
scale -- 0.7
unfair -- true
mono -- true
foreach {unicode glyphid pri} [items-of records] : create-glyph [suggestName : 'sup' + glyphid] : glyph-construction
if unicode : assign-unicode unicode
local middle : miniatureFont.(glyphid).advanceWidth / 2
@ -522,9 +523,10 @@ export : define [apply] : begin
local pendingGlyphs : records.map : [record] => record.1
local miniatureFont : Miniature
glyphs -- pendingGlyphs
crowd -- [fallback para.smallCrowd 3.5]
crowd -- 4
scale -- 0.7
unfair -- true
mono -- true
foreach {unicode glyphid pri} [items-of records] : create-glyph [suggestName : 'sub' + glyphid] : glyph-construction
if unicode : assign-unicode unicode
local middle : miniatureFont.(glyphid).advanceWidth / 2
@ -543,6 +545,10 @@ export : define [apply] : begin
set forkedParams.cap0 para.cap
set forkedParams.cap XH
set forkedParams.xheight (XH * XH / CAP)
set forkedParams.diversityM 1
set forkedParams.diversityF 1
set forkedParams.diversityI 1
set forkedParams.diversityII 1
local sf : Fork pendingGlyphs forkedParams
foreach {unicode glyphid tfm} [items-of records] : create-glyph [suggestName : 'smcp' + glyphid] : glyph-construction
if unicode : assign-unicode unicode
@ -554,9 +560,10 @@ export : define [apply] : begin
local pendingGlyphs : records.map : [record] => record.1
local miniatureFont : Miniature
glyphs -- pendingGlyphs
crowd -- [fallback para.smallCrowd2 3.5]
crowd -- 4
scale -- 0.7
unfair -- true
mono -- true
foreach {unicode glyphid} [items-of records] : create-glyph [suggestName : 'comb' + glyphid] : glyph-construction
set-width 0
if unicode : assign-unicode unicode
@ -924,9 +931,9 @@ export : define [apply] : begin
if wide : begin
sketch
include df2.(c2)
include : Translate WIDTH 0
include : Translate df1.(c1).advanceWidth 0
include df1.(c1)
set-width UPM
set-width (df1.(c1).advanceWidth + df2.(c2).advanceWidth)
save glyphName unicode
: else
local kern : SB * 7/8 * (shrink1 + shrink2)

View file

@ -416,8 +416,6 @@ export : define [apply] : begin
curl rightx righty
end [function : set this.cleanmore true]
define [xStrand _leftx lefty _rightx righty turn straight tension] : glyph-construction
local middlex : mix _leftx _rightx 0.5
local middley : mix lefty righty 0.5
@ -445,7 +443,7 @@ export : define [apply] : begin
define [mShoulderSpiro] : params [left right top bottom width fine diversity] : glyph-construction
local fix : TANSLANT * STROKE * HVCONTRAST * width / STROKE
local sm : SMALLSMOOTH * 0.7
local sm : SMALLSMOOTH * 0.7 * [fallback diversity 1]
include : spiro-outline
corner (right - width * HVCONTRAST) bottom
curl (right - width * HVCONTRAST) (top - sm + fix)
@ -670,7 +668,7 @@ export : define [apply] : begin
: else : throw ex
return forkFont.glyfMap
define [Miniature] : params [glyphs crowd scale [slantAngle para.slantAngle] unfair [sbscale 0.5]] : begin
define [Miniature] : params [glyphs crowd scale [slantAngle para.slantAngle] unfair [sbscale (WIDTH / UPM)] [mono false]] : begin
local forkedPara : Object.create para
forkedPara.stroke = [adviceBlackness crowd] / scale
forkedPara.ess = para.ess * forkedPara.stroke / para.stroke
@ -679,6 +677,8 @@ export : define [apply] : begin
forkedPara.sb = SB * sbscale
forkedPara.slantAngle = slantAngle
forkedPara.unfair = unfair
if mono : begin
forkedPara.diversityM = 1
return : Fork glyphs forkedPara
define [Thinner glyphs p] : begin
@ -688,9 +688,6 @@ export : define [apply] : begin
forkedPara.jut = JUT * p
forkedPara.longjut = LONGJUT * p
forkedPara.diversityM = 1
forkedPara.diversityM = 1
forkedPara.diversityI = 1
forkedPara.diversityF = 1
#forkedPara.hookx = HOOKX * p
return : Fork glyphs forkedPara

File diff suppressed because it is too large Load diff

View file

@ -118,55 +118,40 @@ export : define [apply] : begin
save 'gamma' 0x3B3
define [LambdaShape sw _top barStraight] : 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 curviness 0.2
local top : fallback _top CAP
if barStraight : begin
include : dispiro
widths.rhs sw
flat (SB + O * 2) 0 [heading UPWARD]
g4 (MIDDLE - cornerdist) top [widths 0 (sw * fine)]
include : dispiro
widths.lhs sw
flat (RIGHTSB - O * 2) 0 [heading UPWARD]
g4 (MIDDLE + cornerdist) top [widths (sw * fine) 0]
: else : begin
include : dispiro
widths.rhs sw
flat SB 0 [heading UPWARD]
curl SB TURN [heading UPWARD]
quadcontrols 0 curviness 9 unimportant
g4 (MIDDLE - cornerdist) top [widths 0 (sw * fine)]
include : dispiro
widths.lhs sw
flat RIGHTSB 0 [heading UPWARD]
curl RIGHTSB TURN [heading UPWARD]
quadcontrols 0 curviness 9 unimportant
g4 (MIDDLE + cornerdist) top [widths (sw * fine) 0]
start-from (MIDDLE - cornerdist) top
line-to (MIDDLE + cornerdist) top
line-to MIDDLE (top - sw * fine)
define [LambdaShape top sw barStraight div] : glyph-construction
local df : DivFrame [fallback div 1]
include : VShape top sw barStraight div
include : FlipAround df.middle (top / 2)
if SLAB : begin
include : CenterBottomSerif (SB + sw / 2 * HVCONTRAST) 0 JUT
tag-contour 'serif'
include : CenterBottomSerif (RIGHTSB - sw / 2 * HVCONTRAST) 0 JUT
tag-contour 'serif'
define [DeltaMaskShape top sw barStraight div] : begin
local df : DivFrame [fallback div 1]
local sbCor : if barStraight ((top / CAP) * (OX * [if SLAB 1 4])) 0
return : spiro-outline
corner (SB + sbCor) 0
corner (df.rightSB - sbCor) 0
corner df.middle CAP
define [DeltaShape top sw barStraight div] : glyph-construction
include : LambdaShape top sw barStraight div
eject-contour 'serif'
include : intersection
HBarBottom 0 WIDTH 0 sw
DeltaMaskShape top sw barStraight div
sketch # Lambda
include markset.capital
include : LambdaShape STROKE CAP para.straightBar
include : LambdaShape CAP STROKE para.straightBar
save 'Lambda' 0x39B
save 'latinLambda' 0x245
sketch # Delta
include glyphs.Lambda AS_BASE
include : HBarBottom (SB + HALFSTROKE) (RIGHTSB - HALFSTROKE) 0
eject-contour 'serif'
include markset.capital
include : DeltaShape CAP STROKE para.straightBar
save 'Delta' 0x394
sketch
@ -227,27 +212,28 @@ export : define [apply] : begin
save 'cyrbe' 0x431
define [SmallEpsilonShape top hook] : glyph-construction
local stroke : adviceBlackness2 2.875 2 top
local midx : mix SB RIGHTSB 0.65
local midy : top * OVERLAYPOS
local sma : top - [mix (midy + HALFSTROKE) (top - O - STROKE) (SMOOTHB / (SMOOTHA + SMOOTHB))] - TANSLANT * HVCONTRAST * STROKE
local smb : [mix (STROKE + O) (midy - HALFSTROKE) (SMOOTHB / (SMOOTHA + SMOOTHB))] + TANSLANT * HVCONTRAST * STROKE
local fine : STROKE * CTHIN
local sma : top - [mix (midy + stroke / 2) (top - O - stroke) (SMOOTHB / (SMOOTHA + SMOOTHB))] - TANSLANT * HVCONTRAST * STROKE
local smb : [mix (STROKE + O) (midy - stroke / 2) (SMOOTHB / (SMOOTHA + SMOOTHB))] + TANSLANT * HVCONTRAST * stroke
local fine : stroke * CTHIN
include : dispiro
widths.lhs
g4 (RIGHTSB + O) (top - [fallback hook SHOOK])
hookstart (top - O)
g4 (SB + OXE) (top - sma)
arcvh
flat MIDDLE (midy - (fine - HALFSTROKE)) [widths.heading fine 0 RIGHTWARD]
curl midx (midy - (fine - HALFSTROKE)) [heading RIGHTWARD]
flat MIDDLE (midy - (fine - stroke / 2)) [widths.heading fine 0 RIGHTWARD]
curl midx (midy - (fine - stroke / 2)) [heading RIGHTWARD]
include : dispiro
widths.rhs
g4 (RIGHTSB - O) [fallback hook SHOOK]
hookstart O
g4 (SB + OXE + O * 2) smb
arcvh
flat MIDDLE (midy + (fine - HALFSTROKE)) [widths.heading 0 fine RIGHTWARD]
curl midx (midy + (fine - HALFSTROKE)) [heading RIGHTWARD]
flat MIDDLE (midy + (fine - stroke / 2)) [widths.heading 0 fine RIGHTWARD]
curl midx (midy + (fine - stroke / 2)) [heading RIGHTWARD]
sketch # epsilon
include markset.e
@ -261,27 +247,28 @@ export : define [apply] : begin
save 'latinEpsilon' 0x190
define [CyrZeShape top hook] : glyph-construction
local stroke : adviceBlackness2 2.875 2 top
local midx : mix RIGHTSB SB 0.65
local midy : top * OVERLAYPOS
local smb : top - [mix (midy + HALFSTROKE) (top - O - STROKE) (SMOOTHA / (SMOOTHA + SMOOTHB))] + TANSLANT * HVCONTRAST * STROKE
local sma : [mix (STROKE + O) (midy - HALFSTROKE) (SMOOTHA / (SMOOTHA + SMOOTHB))] - TANSLANT * HVCONTRAST * STROKE
local fine : STROKE * CTHIN
local smb : top - [mix (midy + stroke / 2) (top - O - stroke) (SMOOTHA / (SMOOTHA + SMOOTHB))] + TANSLANT * HVCONTRAST * stroke
local sma : [mix (stroke + O) (midy - stroke / 2) (SMOOTHA / (SMOOTHA + SMOOTHB))] - TANSLANT * HVCONTRAST * stroke
local fine : stroke * CTHIN
include : dispiro
widths.rhs
g4 (SB - O) (top - [fallback hook SHOOK])
hookstart (top - O)
g4 (RIGHTSB - OXE) (top - smb)
arcvh
flat MIDDLE (midy - (fine - HALFSTROKE)) [widths.heading 0 fine LEFTWARD]
curl midx (midy - (fine - HALFSTROKE)) [heading LEFTWARD]
flat MIDDLE (midy - (fine - stroke / 2)) [widths.heading 0 fine LEFTWARD]
curl midx (midy - (fine - stroke / 2)) [heading LEFTWARD]
include : dispiro
widths.lhs
g4 (SB + O) [fallback hook SHOOK]
hookstart O
g4 (RIGHTSB - OXE - O * 2) sma
arcvh
flat MIDDLE (midy + (fine - HALFSTROKE)) [widths.heading fine 0 LEFTWARD]
curl midx (midy + (fine - HALFSTROKE)) [heading LEFTWARD]
flat MIDDLE (midy + (fine - stroke / 2)) [widths.heading fine 0 LEFTWARD]
curl midx (midy + (fine - stroke / 2)) [heading LEFTWARD]
sketch # cyrZe
include markset.capital
@ -1578,7 +1565,7 @@ export : define [apply] : begin
straight.left.start eleft top [heading LEFTWARD]
archv
flat SB (top - SMOOTHA)
curl SB SMOOTHB
curl SB (SMOOTHB)
arcvh
straight.right.end eleft 0 [heading RIGHTWARD]
@ -1608,14 +1595,15 @@ export : define [apply] : begin
define [aeepart div] : glyph-construction
local df : DivFrame div
local eLeft : df.middle - df.mvs / 2 * HVCONTRAST + 0.1
local eMiddle : [mix eLeft (df.rightSB - OX * 2) 0.5] - df.mvs * TANSLANT
local barbottom (XH * EBARPOS - HALFSTROKE)
local stroke : adviceBlackness2 2.875 3 XH df.div
local eLeft : df.middle - stroke / 2 * HVCONTRAST + 0.1
local eMiddle : [mix eLeft (df.rightSB - OX * 2) 0.5] - stroke * TANSLANT
local barbottom (XH * EBARPOS - stroke / 2)
local sma : SMALLSMOOTHA * 0.6 * df.div
local smb : SMALLSMOOTHB * 0.6 * df.div
include : dispiro
widths.lhs df.mvs
widths.lhs stroke
flat (df.rightSB - OX * 2) barbottom [heading UPWARD]
curl (df.rightSB - OX * 2) (XH - smb)
arcvh
@ -1623,14 +1611,15 @@ export : define [apply] : begin
archv
flat eLeft (XH - sma)
curl eLeft smb
hookend O true df.mvs
g4 (df.rightSB - OX * 2) (AHOOK + df.mvs * TANSLANT) [heading UPWARD]
include : HBarBottom (eLeft + df.mvs / 2) (df.rightSB - OX * 2 - df.mvs / 2) barbottom df.mvs
hookend O true stroke
g4 (df.rightSB - OX * 2) (AHOOK + stroke * TANSLANT) [heading UPWARD]
include : HBarBottom (eLeft + stroke / 2) (df.rightSB - OX * 2 - stroke / 2) barbottom stroke
define [aeapart div] : glyph-construction
local df : DivFrame div
local bartop (XH * OVERLAYPOS * 1.02 + HALFSTROKE)
local abarRight : df.middle + df.mvs / 2 * HVCONTRAST - 0.1
local stroke : adviceBlackness2 2.875 3 XH df.div
local bartop (XH * OVERLAYPOS * 1.02 + stroke / 2)
local abarRight : df.middle + stroke / 2 * HVCONTRAST - 0.1
local lowmiddle : mix (SB + OX * 2) abarRight 0.5
local barsmooth : mix SB abarRight 0.7
@ -1638,9 +1627,9 @@ export : define [apply] : begin
local smb : SMALLSMOOTHB * 0.6 * df.div
include : dispiro
widths.rhs df.mvs
g4 (SB + OX) (XH - AHOOK - df.mvs * TANSLANT) [heading UPWARD]
hookstart XO true df.mvs
widths.rhs stroke
g4 (SB + OX) (XH - AHOOK - stroke * TANSLANT) [heading UPWARD]
hookstart XO true stroke
flat abarRight (XH - smb)
curl abarRight smb
arcvh
@ -1653,8 +1642,9 @@ export : define [apply] : begin
define [oeopart div] : glyph-construction
local df : DivFrame div
local abarRight : df.middle + df.mvs / 2 * HVCONTRAST
include : OShape XH 0 (SB + OX) (abarRight + OX) df.mvs (SMALLSMOOTHA * 0.6 * df.div) (SMALLSMOOTHB * 0.6 * df.div)
local stroke : adviceBlackness2 2.875 3 XH df.div
local abarRight : df.middle + stroke / 2 * HVCONTRAST
include : OShape XH 0 (SB + OX) (abarRight + OX) stroke (SMALLSMOOTHA * 0.6 * df.div) (SMALLSMOOTHB * 0.6 * df.div)
sketch # ae
local df : DivFrame para.diversityM
@ -2282,4 +2272,4 @@ export : define [apply] : begin
include g
save 'bidentalpercussive' 0x2AD
return [object LambdaShape SigmaShape PiShape EzhShape]
return [object LambdaShape DeltaMaskShape DeltaShape SigmaShape PiShape EzhShape]

View file

@ -754,18 +754,19 @@ export : define [apply] : begin
set-width 0
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
local hsw : [adviceBlackness 3.5] / STROKE * markHalfStroke
local extend : (belowMarkTop - belowMarkBot - markHalfStroke) * 1.25
include : dispiro
g4.down.start (markMiddle - extend) belowMarkTop [widths.heading markHalfStroke markHalfStroke DOWNWARD]
g4.down.start (markMiddle - extend) belowMarkTop [widths.heading hsw hsw DOWNWARD]
arcvh
g4.right.mid [mix markMiddle (markMiddle - extend) 0.5] (belowMarkBot + markHalfStroke) [heading RIGHTWARD]
g4.right.mid [mix markMiddle (markMiddle - extend) 0.5] (belowMarkBot + hsw) [heading RIGHTWARD]
archv
g4.up.end markMiddle belowMarkTop [heading UPWARD]
include : dispiro
g4.down.start markMiddle belowMarkTop [widths.heading markHalfStroke markHalfStroke DOWNWARD]
g4.down.start markMiddle belowMarkTop [widths.heading hsw hsw DOWNWARD]
arcvh
g4.right.mid [mix markMiddle (markMiddle + extend) 0.5] (belowMarkBot + markHalfStroke) [heading RIGHTWARD]
g4.right.mid [mix markMiddle (markMiddle + extend) 0.5] (belowMarkBot + hsw) [heading RIGHTWARD]
archv
g4.up.end (markMiddle + extend) belowMarkTop [heading UPWARD]
@ -1177,13 +1178,14 @@ export : define [apply] : begin
local fine : 0.3 * OVERLAYSTROKE
local dx : WIDTH * 0
local dy : WIDTH * 0.3
local gap : Math.max (fine * 2) (WIDTH / 8)
set-anchor 'slash' MARK markMiddle (XH / 2) markMiddle (XH / 2)
include : dispiro
flat (MIDDLE - dx - WIDTH - fine * 2) (XH / 2 - dy) [widths fine fine]
curl (MIDDLE + dx - WIDTH - fine * 2) (XH / 2 + dy)
flat (MIDDLE - dx - WIDTH - gap) (XH / 2 - dy) [widths fine fine]
curl (MIDDLE + dx - WIDTH - gap) (XH / 2 + dy)
include : dispiro
flat (MIDDLE - dx - WIDTH + fine * 2) (XH / 2 - dy) [widths fine fine]
curl (MIDDLE + dx - WIDTH + fine * 2) (XH / 2 + dy)
flat (MIDDLE - dx - WIDTH + gap) (XH / 2 - dy) [widths fine fine]
curl (MIDDLE + dx - WIDTH + gap) (XH / 2 + dy)
save 'arrDblVStrokeOver'
sketch # slashOver

View file

@ -280,7 +280,7 @@ export : define [apply] : begin
arrow ArrowShape 'arrowrightSK' null (arrowSB + fine / 2) symbolMid arrowRSB symbolMid
arrow ArrowShape 'arrowupSK' null arrowMidX (arrowBot + fine / 2) arrowMidX arrowTop
arrow ArrowShape 'arrowdownSK' null arrowMidX (arrowTop - fine / 2) arrowMidX arrowBot
arrow ArrowShape 'arrowupleftTK' null arrowRSB arrowBot arrowSB (arrowTop - fine * 1.5)
arrow ArrowShape 'arrowupleftTK' null arrowRSB arrowBot arrowSB (arrowTop - [Math.max (arrowWidth / 8) (fine * 1.5)])
composite 'arrowbarleft' glyphs.arrowleftK [VBar arrowSB (symbolMid - arrowSize) (symbolMid + arrowSize) fine] [into-unicode 0x21E4]
composite 'arrowbarright' glyphs.arrowrightK [VBar arrowRSB (symbolMid - arrowSize) (symbolMid + arrowSize) fine] [into-unicode 0x21E5]

View file

@ -181,9 +181,11 @@ export : define [apply] : begin
save 'liraSymbol' 0x20A4
sketch # won
include glyphs.W AS_BASE
include : HOverlayBar [mix SB 0 0.7] [mix RIGHTSB WIDTH 0.7] (CAP * 0.6)
include : HOverlayBar [mix SB 0 0.7] [mix RIGHTSB WIDTH 0.7] (CAP * 0.35)
local df : DivFrame para.diversityM
set-width df.width
include glyphs.W AS_BASE ALSO_METRICS
include : HOverlayBar [mix SB 0 0.7] [mix df.rightSB df.width 0.7] (CAP * 0.6)
include : HOverlayBar [mix SB 0 0.7] [mix df.rightSB df.width 0.7] (CAP * 0.35)
save 'won' 0x20A9
sketch # frenchFranc

View file

@ -15,9 +15,11 @@ export : define [apply] : begin
save 'micro' 0xB5
sketch # forall
include : LambdaShape OPERATORSTROKE
include : LambdaShape CAP OPERATORSTROKE para.straightBar
eject-contour 'serif'
include : HBar (SB + OPERATORSTROKE) (RIGHTSB - OPERATORSTROKE) (XH / 2) OPERATORSTROKE
include : intersection
DeltaMaskShape CAP OPERATORSTROKE para.straightBar
HBar 0 WIDTH (XH / 2) OPERATORSTROKE
include : FlipAround MIDDLE (CAP / 2)
save 'forall' 0x2200
@ -44,10 +46,7 @@ export : define [apply] : begin
sketch # increment
include markset.capital
include : LambdaShape OPERATORSTROKE
eject-contour 'serif'
include : HBarBottom (SB + (OPERATORSTROKE / 2)) (RIGHTSB - (OPERATORSTROKE / 2)) 0 OPERATORSTROKE
include : DeltaShape CAP OPERATORSTROKE para.straightBar
save 'increment' 0x2206
turned 'nabla' 0x2207 'increment' MIDDLE (CAP / 2)

View file

@ -232,7 +232,7 @@ export : define [apply] : begin
include : VBarLeft (l + hsp) (nsBot - (MIDDLE - l - hsp) * skew) (nsTop - (MIDDLE - l - hsp) * skew) fine
include : VBarRight (r - hsp) (nsBot - (MIDDLE - r + hsp) * skew) (nsTop - (MIDDLE - r + hsp) * skew) fine
save-glyph 'flatTone' 0x266D : sketch
local yTerminal : mix nsBot nsTop 0.5
local yTerminal : mix nsBot nsTop 0.55
local curly 0.65
local curly2 1.1
local curly3 0.3
@ -245,7 +245,7 @@ export : define [apply] : begin
widths.lhs fine
g4 l (nsBot - 1)
alsothru 0.5 curly3
g4.up.mid (r - O + 1) ([mix nsBot yTerminal curly] + (r - l) * skew) [widths.lhs (fine + 1)]
g4.up.mid (r - O + 1) ([mix nsBot yTerminal curly] + (r - l) * skew - TANSLANT * para.smoothadjust) [widths.lhs (fine + 1)]
g4.left.mid ([mix l r 0.5] - CORRECTION_OMIDX * fine) ([mix nsBot yTerminal curly2] + (r - l) * skew / 2 + 1)
g4 l (yTerminal + 1)
difference
@ -253,7 +253,7 @@ export : define [apply] : begin
corner l (nsBot - UPM)
corner l nsBot
alsothru 0.5 curly3
g4.up.mid (r - O) ([mix nsBot yTerminal curly] + (r - l) * skew)
g4.up.mid (r - O) ([mix nsBot yTerminal curly] + (r - l) * skew - TANSLANT * para.smoothadjust)
g4.left.mid ([mix l r 0.5] - CORRECTION_OMIDX * fine) ([mix nsBot yTerminal curly2] + (r - l) * skew / 2)
corner l yTerminal
corner l (yTerminal + 1)
@ -271,7 +271,7 @@ export : define [apply] : begin
corner (l - UPM) nsTop
corner (l - UPM) (nsBot - UPM)
save-glyph 'neutralTone' 0x266E : sketch
local k 0.25
local k : 0.25 - (STROKE * 0.25 / (nsTop - nsBot))
local kr 0.5
local ll (l + hsp * kr)
local rr (r - hsp * kr)
@ -487,8 +487,9 @@ export : define [apply] : begin
local startY : symbolMid - offsetY * (n - 1) / 2
local bar : adviceBlackness n
local fine : adviceBlackness 5
include : HBar SB (MIDDLE - fine / 2 * HVCONTRAST) (startY + offsetY * m) bar
include : HBar (MIDDLE + fine / 2 * HVCONTRAST) RIGHTSB (startY + offsetY * m) bar
local gap : Math.max (WIDTH / 8) (fine)
include : HBar SB (MIDDLE - gap / 2 * HVCONTRAST) (startY + offsetY * m) bar
include : HBar (MIDDLE + gap / 2 * HVCONTRAST) RIGHTSB (startY + offsetY * m) bar
define [yang m n] : glyph-construction
local offsetY : (2 / 3) * (operBot - operTop) / n

View file

@ -1009,8 +1009,8 @@ export : define [apply] : begin
local m : mix l r (1 / 2)
local sma : SMOOTHA * 0.5 * para.diversityM
local smb : SMOOTHB * 0.5 * para.diversityM
local sw : adviceBlackness 4 para.diversityM
local fine : adviceBlackness 5 para.diversityM
local sw : adviceBlackness2 5 4 CAP para.diversityM
local fine : adviceBlackness2 5 5 CAP para.diversityM
local cor : HVCONTRAST / [Math.sqrt (1 - [Math.pow ((r - l - sw) / (CAP - 0)) 2])]
local pTerm : (fine / 2) / [Math.hypot CAP (r - l)]
local pFine : 1 / 2 - (STROKE / 2) / [Math.hypot CAP (r - l)]
@ -1045,9 +1045,9 @@ export : define [apply] : begin
local l2 : r1 + gap
local r2 : l2 + fill
local l3 : r2 + gap
local swp : adviceBlackness 6
local smap : SMOOTHA * (1/3)
local smbp : SMOOTHB * (1/3)
local swp : adviceBlackness2 5 6.5 CAP para.diversityM
local smap : SMOOTHA * (1/3) * para.diversityM
local smbp : SMOOTHB * (1/3) * para.diversityM
include : OShape otop 0 l1 r1 swp smap smbp
include : OShape otop 0 l2 r2 swp smap smbp
include : OShape otop 0 l3 r3 swp smap smbp

View file

@ -134,6 +134,7 @@ export : define [calculateMetrics para] : begin
# We will estimate blackness using lower-case 'e'
define WHITENESS : ((XH - STROKE * 3) * (RIGHTSB - SB) * (1 / 3)) / (XH * (RIGHTSB - SB))
define [adviceBlackness crowdedness div] : Math.min STROKE (((WIDTH * [fallback div 1]) - SB * 2) * (1 - WHITENESS) / (crowdedness * HVCONTRAST))
define [adviceBlackness2 cowX cowY refH div] : Math.min [adviceBlackness cowX (refH / WIDTH)] [adviceBlackness cowY div]
define [MVERTSTROKE_D div] : adviceBlackness [fallback para.lllcrowdedness (3 + 1 / 3)] div
define MVERTSTROKE : MVERTSTROKE_D 1
define OVERLAYSTROKE : adviceBlackness 3.75
@ -144,8 +145,9 @@ export : define [calculateMetrics para] : begin
define SUPERNESS : fallback para.superness 2
define [superxy x] : Math.pow (1 - [Math.pow x SUPERNESS]) (1 / SUPERNESS)
define [adviceSSmooth y sign] : begin
local ss : y * 0.21 + STROKE * 0.22 * [clamp 1 2 : linreg 126 1 137 1.025 STROKE] + 0.035 * (RIGHTSB - SB)
define [adviceSSmooth y sign _stroke] : begin
local stroke : fallback _stroke STROKE
local ss : y * 0.21 + stroke * 0.22 * [clamp 1 2 : linreg 126 1 137 1.025 stroke] + 0.035 * (RIGHTSB - SB)
return : ss + sign * TANSLANT * para.smoothadjust * (ss / SMALLSMOOTH)
define [adviceGlottalStopSmooth y sign] : ((y - STROKE) * 0.24 + STROKE * 0.625) + sign * TANSLANT * para.smoothadjust
define [shoulderMidSlope _fine _stroke _dir] : 0.5 * HVCONTRAST * ([fallback _stroke STROKE] - [fallback _fine SHOULDERFINE]) / [fallback _stroke STROKE] + [fallback _dir 1] * TANSLANT
@ -160,7 +162,7 @@ export : define [calculateMetrics para] : begin
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
MIDDLE FWMIDDLE CAPMIDDLE CAP_SMOOTH DOTRADIUS PERIODRADIUS SIDEJUT SMOOTHA SMOOTHB SMALLSMOOTHA SMALLSMOOTHB CORRECTION_OMIDX CORRECTION_OMIDS
WHITENESS adviceBlackness MVERTSTROKE MVERTSTROKE_D OVERLAYSTROKE OPERATORSTROKE GEOMETRYSTROKE SHOULDERFINE SUPERNESS superxy
WHITENESS adviceBlackness adviceBlackness2 MVERTSTROKE MVERTSTROKE_D OVERLAYSTROKE OPERATORSTROKE GEOMETRYSTROKE SHOULDERFINE SUPERNESS superxy
adviceSSmooth adviceGlottalStopSmooth shoulderMidSlope]
export : define [setFontMetrics para metrics font] : begin

View file

@ -141,7 +141,7 @@ define-macro glyph-module-entry : syntax-rules
letterBasic `[define [object ISerifShape IotaShape LShape Belt VShape VHooktopShape WShape WHooktopShape YShape yBaseKnots SmallYShape KShape BShape ItalicCyrveShape PShape RShape CyrYaShape CShape GShape NShape UShape LatinUpsilon2Shape MShape SmallMShape HShape FShape fovershoot LongSShape EShape SmallEShape RevSmallEShape TShape SmallTShape] $capture.letterBasic]
letterExt `[define [object LambdaShape SigmaShape PiShape EzhShape] $capture.letterExt]
letterExt `[define [object LambdaShape DeltaShape DeltaMaskShape SigmaShape PiShape EzhShape] $capture.letterExt]
geometricSymbols `[define [object ArrowShape] $capture.geometricSymbols]
local opts : _opts.map formOf
@ -160,7 +160,7 @@ define-macro glyph-module-entry : syntax-rules
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
MIDDLE FWMIDDLE CAPMIDDLE CAP_SMOOTH DOTRADIUS PERIODRADIUS SIDEJUT SMOOTHA SMOOTHB SMALLSMOOTHA SMALLSMOOTHB CORRECTION_OMIDX CORRECTION_OMIDS
WHITENESS adviceBlackness MVERTSTROKE MVERTSTROKE_D OVERLAYSTROKE OPERATORSTROKE GEOMETRYSTROKE SHOULDERFINE SUPERNESS superxy
WHITENESS adviceBlackness adviceBlackness2 MVERTSTROKE MVERTSTROKE_D OVERLAYSTROKE OPERATORSTROKE GEOMETRYSTROKE SHOULDERFINE SUPERNESS superxy
adviceSSmooth adviceGlottalStopSmooth shoulderMidSlope] metrics
define [object
g4 g2 corner flat curl close end straight

View file

@ -88,6 +88,7 @@ noCJKV = true
diversityM = 1
diversityF = 1
diversityI = 1
diversityII = 1
[verbose]
verbose = true
@ -244,8 +245,8 @@ spacing = 3
# HANDLE WITH EXTREME CARE
# Expanded : I heard someone want it being wider...
[wd-expanded.multiplies]
width = 1.15
sb = 1.15
width = 1.20
sb = 2.0
[expanded]
inherits = ['wd-expanded']
@ -263,7 +264,19 @@ straightBar = 1
[diversity-1]
diversityM = 1.25
diversityF = 1.00
diversityI = 0.75
diversityII = 0.75
[diversity-2]
diversityM = 1.25
diversityF = 0.75
diversityI = 0.75
diversityII = 0.5
[wd-expanded-aile.multiplies]
width = 1.152 # 576mem for normal char
sb = 1.375
###### Full-width codes
[xx-type]

View file

@ -268,7 +268,7 @@ dotlessj = "straight"
tag = "cv65"
[simple.v-capital-i-straight]
I = "straight"
I = "line" # set on purpose to use II diversity
tag = "cv66"
[simple.v-capital-i-serifed]
@ -283,6 +283,21 @@ tag = "cv68"
J = 'serifed'
tag = "cv69"
[simple.v-f-short]
f = 'short-straight'
[simple.v-t-short]
t = 'short'
[simple.v-r-standard]
r = "standard"
[simple.v-r-narrow]
r = "narrow"
[simple.v-j-narrow]
dotlessj = "narrow"
[default]
design = [
@ -305,6 +320,7 @@ design = [
'v-percent-rings',
'v-capital-i-serifed',
'v-capital-j-serifed',
'v-r-standard',
'others'
]
upright = [