Aile is almost done
This commit is contained in:
parent
4e2ee3d44c
commit
0c10e0da49
16 changed files with 683 additions and 531 deletions
|
@ -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"
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
@ -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]
|
|
@ -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
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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 = [
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue