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] [buildPlans.iosevka-aile]
family = "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'] 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"] upright = ["v-i-line", "v-l-line", 'v-f-short', 'v-t-short']
italic = ["v-i-tailed", "v-l-tailed"] 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] [buildPlans.iosevka-etoile]
family = "Iosevka Etoile" family = "Iosevka Etoile"

View file

@ -198,8 +198,9 @@ export as build : define [buildFont para recursive recursiveCodes] : begin
# Space # Space
sketch # space sketch # space
set-width WIDTH local df : DivFrame para.diversityF
include markset.e set-width df.width
include df.markSet.e
save 'space' ' ' save 'space' ' '
# IDKY, but wrapping "metrics" prevents Node.js on Arch modifying it. # 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 local pendingGlyphs : records.map : [record] => record.1
return : Miniature return : Miniature
glyphs -- [pendingGlyphs.reduce : [a b] => [a.concat b]] glyphs -- [pendingGlyphs.reduce : [a b] => [a.concat b]]
crowd -- [fallback para.smallCrowd 3.75] crowd -- 5
scale -- 0.65 scale -- 0.65
unfair -- true unfair -- true
@ -503,9 +503,10 @@ export : define [apply] : begin
local pendingGlyphs : records.map : [record] => record.1 local pendingGlyphs : records.map : [record] => record.1
local miniatureFont : Miniature local miniatureFont : Miniature
glyphs -- pendingGlyphs glyphs -- pendingGlyphs
crowd -- [fallback para.smallCrowd 3.5] crowd -- 4
scale -- 0.7 scale -- 0.7
unfair -- true unfair -- true
mono -- true
foreach {unicode glyphid pri} [items-of records] : create-glyph [suggestName : 'sup' + glyphid] : glyph-construction foreach {unicode glyphid pri} [items-of records] : create-glyph [suggestName : 'sup' + glyphid] : glyph-construction
if unicode : assign-unicode unicode if unicode : assign-unicode unicode
local middle : miniatureFont.(glyphid).advanceWidth / 2 local middle : miniatureFont.(glyphid).advanceWidth / 2
@ -522,9 +523,10 @@ export : define [apply] : begin
local pendingGlyphs : records.map : [record] => record.1 local pendingGlyphs : records.map : [record] => record.1
local miniatureFont : Miniature local miniatureFont : Miniature
glyphs -- pendingGlyphs glyphs -- pendingGlyphs
crowd -- [fallback para.smallCrowd 3.5] crowd -- 4
scale -- 0.7 scale -- 0.7
unfair -- true unfair -- true
mono -- true
foreach {unicode glyphid pri} [items-of records] : create-glyph [suggestName : 'sub' + glyphid] : glyph-construction foreach {unicode glyphid pri} [items-of records] : create-glyph [suggestName : 'sub' + glyphid] : glyph-construction
if unicode : assign-unicode unicode if unicode : assign-unicode unicode
local middle : miniatureFont.(glyphid).advanceWidth / 2 local middle : miniatureFont.(glyphid).advanceWidth / 2
@ -543,6 +545,10 @@ export : define [apply] : begin
set forkedParams.cap0 para.cap set forkedParams.cap0 para.cap
set forkedParams.cap XH set forkedParams.cap XH
set forkedParams.xheight (XH * XH / CAP) 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 local sf : Fork pendingGlyphs forkedParams
foreach {unicode glyphid tfm} [items-of records] : create-glyph [suggestName : 'smcp' + glyphid] : glyph-construction foreach {unicode glyphid tfm} [items-of records] : create-glyph [suggestName : 'smcp' + glyphid] : glyph-construction
if unicode : assign-unicode unicode if unicode : assign-unicode unicode
@ -554,9 +560,10 @@ export : define [apply] : begin
local pendingGlyphs : records.map : [record] => record.1 local pendingGlyphs : records.map : [record] => record.1
local miniatureFont : Miniature local miniatureFont : Miniature
glyphs -- pendingGlyphs glyphs -- pendingGlyphs
crowd -- [fallback para.smallCrowd2 3.5] crowd -- 4
scale -- 0.7 scale -- 0.7
unfair -- true unfair -- true
mono -- true
foreach {unicode glyphid} [items-of records] : create-glyph [suggestName : 'comb' + glyphid] : glyph-construction foreach {unicode glyphid} [items-of records] : create-glyph [suggestName : 'comb' + glyphid] : glyph-construction
set-width 0 set-width 0
if unicode : assign-unicode unicode if unicode : assign-unicode unicode
@ -924,9 +931,9 @@ export : define [apply] : begin
if wide : begin if wide : begin
sketch sketch
include df2.(c2) include df2.(c2)
include : Translate WIDTH 0 include : Translate df1.(c1).advanceWidth 0
include df1.(c1) include df1.(c1)
set-width UPM set-width (df1.(c1).advanceWidth + df2.(c2).advanceWidth)
save glyphName unicode save glyphName unicode
: else : else
local kern : SB * 7/8 * (shrink1 + shrink2) local kern : SB * 7/8 * (shrink1 + shrink2)

View file

@ -416,8 +416,6 @@ export : define [apply] : begin
curl rightx righty curl rightx righty
end [function : set this.cleanmore true] end [function : set this.cleanmore true]
define [xStrand _leftx lefty _rightx righty turn straight tension] : glyph-construction define [xStrand _leftx lefty _rightx righty turn straight tension] : glyph-construction
local middlex : mix _leftx _rightx 0.5 local middlex : mix _leftx _rightx 0.5
local middley : mix lefty righty 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 define [mShoulderSpiro] : params [left right top bottom width fine diversity] : glyph-construction
local fix : TANSLANT * STROKE * HVCONTRAST * width / STROKE local fix : TANSLANT * STROKE * HVCONTRAST * width / STROKE
local sm : SMALLSMOOTH * 0.7 local sm : SMALLSMOOTH * 0.7 * [fallback diversity 1]
include : spiro-outline include : spiro-outline
corner (right - width * HVCONTRAST) bottom corner (right - width * HVCONTRAST) bottom
curl (right - width * HVCONTRAST) (top - sm + fix) curl (right - width * HVCONTRAST) (top - sm + fix)
@ -670,7 +668,7 @@ export : define [apply] : begin
: else : throw ex : else : throw ex
return forkFont.glyfMap 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 local forkedPara : Object.create para
forkedPara.stroke = [adviceBlackness crowd] / scale forkedPara.stroke = [adviceBlackness crowd] / scale
forkedPara.ess = para.ess * forkedPara.stroke / para.stroke forkedPara.ess = para.ess * forkedPara.stroke / para.stroke
@ -679,6 +677,8 @@ export : define [apply] : begin
forkedPara.sb = SB * sbscale forkedPara.sb = SB * sbscale
forkedPara.slantAngle = slantAngle forkedPara.slantAngle = slantAngle
forkedPara.unfair = unfair forkedPara.unfair = unfair
if mono : begin
forkedPara.diversityM = 1
return : Fork glyphs forkedPara return : Fork glyphs forkedPara
define [Thinner glyphs p] : begin define [Thinner glyphs p] : begin
@ -688,9 +688,6 @@ export : define [apply] : begin
forkedPara.jut = JUT * p forkedPara.jut = JUT * p
forkedPara.longjut = LONGJUT * p forkedPara.longjut = LONGJUT * p
forkedPara.diversityM = 1 forkedPara.diversityM = 1
forkedPara.diversityM = 1
forkedPara.diversityI = 1
forkedPara.diversityF = 1
#forkedPara.hookx = HOOKX * p #forkedPara.hookx = HOOKX * p
return : Fork glyphs forkedPara 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 save 'gamma' 0x3B3
define [LambdaShape sw _top barStraight] : glyph-construction define [LambdaShape top sw barStraight div] : glyph-construction
local cornerdist : HALFSTROKE * HVCONTRAST * [if SLAB 1.2 1] local df : DivFrame [fallback div 1]
local fine : fallback para.vtipfine : if SLAB 0.9 0.8 include : VShape top sw barStraight div
local TURN (CAP * 0.1) include : FlipAround df.middle (top / 2)
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)
if SLAB : begin if SLAB : begin
include : CenterBottomSerif (SB + sw / 2 * HVCONTRAST) 0 JUT include : CenterBottomSerif (SB + sw / 2 * HVCONTRAST) 0 JUT
tag-contour 'serif' tag-contour 'serif'
include : CenterBottomSerif (RIGHTSB - sw / 2 * HVCONTRAST) 0 JUT include : CenterBottomSerif (RIGHTSB - sw / 2 * HVCONTRAST) 0 JUT
tag-contour 'serif' 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 sketch # Lambda
include markset.capital include markset.capital
include : LambdaShape STROKE CAP para.straightBar include : LambdaShape CAP STROKE para.straightBar
save 'Lambda' 0x39B save 'Lambda' 0x39B
save 'latinLambda' 0x245 save 'latinLambda' 0x245
sketch # Delta sketch # Delta
include glyphs.Lambda AS_BASE include markset.capital
include : HBarBottom (SB + HALFSTROKE) (RIGHTSB - HALFSTROKE) 0 include : DeltaShape CAP STROKE para.straightBar
eject-contour 'serif'
save 'Delta' 0x394 save 'Delta' 0x394
sketch sketch
@ -227,27 +212,28 @@ export : define [apply] : begin
save 'cyrbe' 0x431 save 'cyrbe' 0x431
define [SmallEpsilonShape top hook] : glyph-construction define [SmallEpsilonShape top hook] : glyph-construction
local stroke : adviceBlackness2 2.875 2 top
local midx : mix SB RIGHTSB 0.65 local midx : mix SB RIGHTSB 0.65
local midy : top * OVERLAYPOS local midy : top * OVERLAYPOS
local sma : top - [mix (midy + HALFSTROKE) (top - O - STROKE) (SMOOTHB / (SMOOTHA + SMOOTHB))] - TANSLANT * HVCONTRAST * STROKE local sma : top - [mix (midy + stroke / 2) (top - O - stroke) (SMOOTHB / (SMOOTHA + SMOOTHB))] - TANSLANT * HVCONTRAST * STROKE
local smb : [mix (STROKE + O) (midy - HALFSTROKE) (SMOOTHB / (SMOOTHA + SMOOTHB))] + TANSLANT * HVCONTRAST * STROKE local smb : [mix (STROKE + O) (midy - stroke / 2) (SMOOTHB / (SMOOTHA + SMOOTHB))] + TANSLANT * HVCONTRAST * stroke
local fine : STROKE * CTHIN local fine : stroke * CTHIN
include : dispiro include : dispiro
widths.lhs widths.lhs
g4 (RIGHTSB + O) (top - [fallback hook SHOOK]) g4 (RIGHTSB + O) (top - [fallback hook SHOOK])
hookstart (top - O) hookstart (top - O)
g4 (SB + OXE) (top - sma) g4 (SB + OXE) (top - sma)
arcvh arcvh
flat MIDDLE (midy - (fine - HALFSTROKE)) [widths.heading fine 0 RIGHTWARD] flat MIDDLE (midy - (fine - stroke / 2)) [widths.heading fine 0 RIGHTWARD]
curl midx (midy - (fine - HALFSTROKE)) [heading RIGHTWARD] curl midx (midy - (fine - stroke / 2)) [heading RIGHTWARD]
include : dispiro include : dispiro
widths.rhs widths.rhs
g4 (RIGHTSB - O) [fallback hook SHOOK] g4 (RIGHTSB - O) [fallback hook SHOOK]
hookstart O hookstart O
g4 (SB + OXE + O * 2) smb g4 (SB + OXE + O * 2) smb
arcvh arcvh
flat MIDDLE (midy + (fine - HALFSTROKE)) [widths.heading 0 fine RIGHTWARD] flat MIDDLE (midy + (fine - stroke / 2)) [widths.heading 0 fine RIGHTWARD]
curl midx (midy + (fine - HALFSTROKE)) [heading RIGHTWARD] curl midx (midy + (fine - stroke / 2)) [heading RIGHTWARD]
sketch # epsilon sketch # epsilon
include markset.e include markset.e
@ -261,27 +247,28 @@ export : define [apply] : begin
save 'latinEpsilon' 0x190 save 'latinEpsilon' 0x190
define [CyrZeShape top hook] : glyph-construction define [CyrZeShape top hook] : glyph-construction
local stroke : adviceBlackness2 2.875 2 top
local midx : mix RIGHTSB SB 0.65 local midx : mix RIGHTSB SB 0.65
local midy : top * OVERLAYPOS local midy : top * OVERLAYPOS
local smb : top - [mix (midy + HALFSTROKE) (top - O - STROKE) (SMOOTHA / (SMOOTHA + SMOOTHB))] + TANSLANT * HVCONTRAST * STROKE local smb : top - [mix (midy + stroke / 2) (top - O - stroke) (SMOOTHA / (SMOOTHA + SMOOTHB))] + TANSLANT * HVCONTRAST * stroke
local sma : [mix (STROKE + O) (midy - HALFSTROKE) (SMOOTHA / (SMOOTHA + SMOOTHB))] - TANSLANT * HVCONTRAST * STROKE local sma : [mix (stroke + O) (midy - stroke / 2) (SMOOTHA / (SMOOTHA + SMOOTHB))] - TANSLANT * HVCONTRAST * stroke
local fine : STROKE * CTHIN local fine : stroke * CTHIN
include : dispiro include : dispiro
widths.rhs widths.rhs
g4 (SB - O) (top - [fallback hook SHOOK]) g4 (SB - O) (top - [fallback hook SHOOK])
hookstart (top - O) hookstart (top - O)
g4 (RIGHTSB - OXE) (top - smb) g4 (RIGHTSB - OXE) (top - smb)
arcvh arcvh
flat MIDDLE (midy - (fine - HALFSTROKE)) [widths.heading 0 fine LEFTWARD] flat MIDDLE (midy - (fine - stroke / 2)) [widths.heading 0 fine LEFTWARD]
curl midx (midy - (fine - HALFSTROKE)) [heading LEFTWARD] curl midx (midy - (fine - stroke / 2)) [heading LEFTWARD]
include : dispiro include : dispiro
widths.lhs widths.lhs
g4 (SB + O) [fallback hook SHOOK] g4 (SB + O) [fallback hook SHOOK]
hookstart O hookstart O
g4 (RIGHTSB - OXE - O * 2) sma g4 (RIGHTSB - OXE - O * 2) sma
arcvh arcvh
flat MIDDLE (midy + (fine - HALFSTROKE)) [widths.heading fine 0 LEFTWARD] flat MIDDLE (midy + (fine - stroke / 2)) [widths.heading fine 0 LEFTWARD]
curl midx (midy + (fine - HALFSTROKE)) [heading LEFTWARD] curl midx (midy + (fine - stroke / 2)) [heading LEFTWARD]
sketch # cyrZe sketch # cyrZe
include markset.capital include markset.capital
@ -1578,7 +1565,7 @@ export : define [apply] : begin
straight.left.start eleft top [heading LEFTWARD] straight.left.start eleft top [heading LEFTWARD]
archv archv
flat SB (top - SMOOTHA) flat SB (top - SMOOTHA)
curl SB SMOOTHB curl SB (SMOOTHB)
arcvh arcvh
straight.right.end eleft 0 [heading RIGHTWARD] straight.right.end eleft 0 [heading RIGHTWARD]
@ -1608,14 +1595,15 @@ export : define [apply] : begin
define [aeepart div] : glyph-construction define [aeepart div] : glyph-construction
local df : DivFrame div local df : DivFrame div
local eLeft : df.middle - df.mvs / 2 * HVCONTRAST + 0.1 local stroke : adviceBlackness2 2.875 3 XH df.div
local eMiddle : [mix eLeft (df.rightSB - OX * 2) 0.5] - df.mvs * TANSLANT local eLeft : df.middle - stroke / 2 * HVCONTRAST + 0.1
local barbottom (XH * EBARPOS - HALFSTROKE) 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 sma : SMALLSMOOTHA * 0.6 * df.div
local smb : SMALLSMOOTHB * 0.6 * df.div local smb : SMALLSMOOTHB * 0.6 * df.div
include : dispiro include : dispiro
widths.lhs df.mvs widths.lhs stroke
flat (df.rightSB - OX * 2) barbottom [heading UPWARD] flat (df.rightSB - OX * 2) barbottom [heading UPWARD]
curl (df.rightSB - OX * 2) (XH - smb) curl (df.rightSB - OX * 2) (XH - smb)
arcvh arcvh
@ -1623,14 +1611,15 @@ export : define [apply] : begin
archv archv
flat eLeft (XH - sma) flat eLeft (XH - sma)
curl eLeft smb curl eLeft smb
hookend O true df.mvs hookend O true stroke
g4 (df.rightSB - OX * 2) (AHOOK + df.mvs * TANSLANT) [heading UPWARD] g4 (df.rightSB - OX * 2) (AHOOK + stroke * TANSLANT) [heading UPWARD]
include : HBarBottom (eLeft + df.mvs / 2) (df.rightSB - OX * 2 - df.mvs / 2) barbottom df.mvs include : HBarBottom (eLeft + stroke / 2) (df.rightSB - OX * 2 - stroke / 2) barbottom stroke
define [aeapart div] : glyph-construction define [aeapart div] : glyph-construction
local df : DivFrame div local df : DivFrame div
local bartop (XH * OVERLAYPOS * 1.02 + HALFSTROKE) local stroke : adviceBlackness2 2.875 3 XH df.div
local abarRight : df.middle + df.mvs / 2 * HVCONTRAST - 0.1 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 lowmiddle : mix (SB + OX * 2) abarRight 0.5
local barsmooth : mix SB abarRight 0.7 local barsmooth : mix SB abarRight 0.7
@ -1638,9 +1627,9 @@ export : define [apply] : begin
local smb : SMALLSMOOTHB * 0.6 * df.div local smb : SMALLSMOOTHB * 0.6 * df.div
include : dispiro include : dispiro
widths.rhs df.mvs widths.rhs stroke
g4 (SB + OX) (XH - AHOOK - df.mvs * TANSLANT) [heading UPWARD] g4 (SB + OX) (XH - AHOOK - stroke * TANSLANT) [heading UPWARD]
hookstart XO true df.mvs hookstart XO true stroke
flat abarRight (XH - smb) flat abarRight (XH - smb)
curl abarRight smb curl abarRight smb
arcvh arcvh
@ -1653,8 +1642,9 @@ export : define [apply] : begin
define [oeopart div] : glyph-construction define [oeopart div] : glyph-construction
local df : DivFrame div local df : DivFrame div
local abarRight : df.middle + df.mvs / 2 * HVCONTRAST local stroke : adviceBlackness2 2.875 3 XH df.div
include : OShape XH 0 (SB + OX) (abarRight + OX) df.mvs (SMALLSMOOTHA * 0.6 * df.div) (SMALLSMOOTHB * 0.6 * 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 sketch # ae
local df : DivFrame para.diversityM local df : DivFrame para.diversityM
@ -2282,4 +2272,4 @@ export : define [apply] : begin
include g include g
save 'bidentalpercussive' 0x2AD 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-width 0
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
local hsw : [adviceBlackness 3.5] / STROKE * markHalfStroke
local extend : (belowMarkTop - belowMarkBot - markHalfStroke) * 1.25 local extend : (belowMarkTop - belowMarkBot - markHalfStroke) * 1.25
include : dispiro 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 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 archv
g4.up.end markMiddle belowMarkTop [heading UPWARD] g4.up.end markMiddle belowMarkTop [heading UPWARD]
include : dispiro include : dispiro
g4.down.start markMiddle belowMarkTop [widths.heading markHalfStroke markHalfStroke DOWNWARD] g4.down.start markMiddle belowMarkTop [widths.heading hsw hsw DOWNWARD]
arcvh 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 archv
g4.up.end (markMiddle + extend) belowMarkTop [heading UPWARD] g4.up.end (markMiddle + extend) belowMarkTop [heading UPWARD]
@ -1177,13 +1178,14 @@ export : define [apply] : begin
local fine : 0.3 * OVERLAYSTROKE local fine : 0.3 * OVERLAYSTROKE
local dx : WIDTH * 0 local dx : WIDTH * 0
local dy : WIDTH * 0.3 local dy : WIDTH * 0.3
local gap : Math.max (fine * 2) (WIDTH / 8)
set-anchor 'slash' MARK markMiddle (XH / 2) markMiddle (XH / 2) set-anchor 'slash' MARK markMiddle (XH / 2) markMiddle (XH / 2)
include : dispiro include : dispiro
flat (MIDDLE - dx - WIDTH - fine * 2) (XH / 2 - dy) [widths fine fine] flat (MIDDLE - dx - WIDTH - gap) (XH / 2 - dy) [widths fine fine]
curl (MIDDLE + dx - WIDTH - fine * 2) (XH / 2 + dy) curl (MIDDLE + dx - WIDTH - gap) (XH / 2 + dy)
include : dispiro include : dispiro
flat (MIDDLE - dx - WIDTH + fine * 2) (XH / 2 - dy) [widths fine fine] flat (MIDDLE - dx - WIDTH + gap) (XH / 2 - dy) [widths fine fine]
curl (MIDDLE + dx - WIDTH + fine * 2) (XH / 2 + dy) curl (MIDDLE + dx - WIDTH + gap) (XH / 2 + dy)
save 'arrDblVStrokeOver' save 'arrDblVStrokeOver'
sketch # slashOver sketch # slashOver

View file

@ -280,7 +280,7 @@ export : define [apply] : begin
arrow ArrowShape 'arrowrightSK' null (arrowSB + fine / 2) symbolMid arrowRSB symbolMid arrow ArrowShape 'arrowrightSK' null (arrowSB + fine / 2) symbolMid arrowRSB symbolMid
arrow ArrowShape 'arrowupSK' null arrowMidX (arrowBot + fine / 2) arrowMidX arrowTop arrow ArrowShape 'arrowupSK' null arrowMidX (arrowBot + fine / 2) arrowMidX arrowTop
arrow ArrowShape 'arrowdownSK' null arrowMidX (arrowTop - fine / 2) arrowMidX arrowBot 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 '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] 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 save 'liraSymbol' 0x20A4
sketch # won sketch # won
include glyphs.W AS_BASE local df : DivFrame para.diversityM
include : HOverlayBar [mix SB 0 0.7] [mix RIGHTSB WIDTH 0.7] (CAP * 0.6) set-width df.width
include : HOverlayBar [mix SB 0 0.7] [mix RIGHTSB WIDTH 0.7] (CAP * 0.35) 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 save 'won' 0x20A9
sketch # frenchFranc sketch # frenchFranc

View file

@ -15,9 +15,11 @@ export : define [apply] : begin
save 'micro' 0xB5 save 'micro' 0xB5
sketch # forall sketch # forall
include : LambdaShape OPERATORSTROKE include : LambdaShape CAP OPERATORSTROKE para.straightBar
eject-contour 'serif' 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) include : FlipAround MIDDLE (CAP / 2)
save 'forall' 0x2200 save 'forall' 0x2200
@ -44,10 +46,7 @@ export : define [apply] : begin
sketch # increment sketch # increment
include markset.capital include markset.capital
include : LambdaShape OPERATORSTROKE include : DeltaShape CAP OPERATORSTROKE para.straightBar
eject-contour 'serif'
include : HBarBottom (SB + (OPERATORSTROKE / 2)) (RIGHTSB - (OPERATORSTROKE / 2)) 0 OPERATORSTROKE
save 'increment' 0x2206 save 'increment' 0x2206
turned 'nabla' 0x2207 'increment' MIDDLE (CAP / 2) 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 : 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 include : VBarRight (r - hsp) (nsBot - (MIDDLE - r + hsp) * skew) (nsTop - (MIDDLE - r + hsp) * skew) fine
save-glyph 'flatTone' 0x266D : sketch save-glyph 'flatTone' 0x266D : sketch
local yTerminal : mix nsBot nsTop 0.5 local yTerminal : mix nsBot nsTop 0.55
local curly 0.65 local curly 0.65
local curly2 1.1 local curly2 1.1
local curly3 0.3 local curly3 0.3
@ -245,7 +245,7 @@ export : define [apply] : begin
widths.lhs fine widths.lhs fine
g4 l (nsBot - 1) g4 l (nsBot - 1)
alsothru 0.5 curly3 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.left.mid ([mix l r 0.5] - CORRECTION_OMIDX * fine) ([mix nsBot yTerminal curly2] + (r - l) * skew / 2 + 1)
g4 l (yTerminal + 1) g4 l (yTerminal + 1)
difference difference
@ -253,7 +253,7 @@ export : define [apply] : begin
corner l (nsBot - UPM) corner l (nsBot - UPM)
corner l nsBot corner l nsBot
alsothru 0.5 curly3 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) 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
corner l (yTerminal + 1) corner l (yTerminal + 1)
@ -271,7 +271,7 @@ export : define [apply] : begin
corner (l - UPM) nsTop corner (l - UPM) nsTop
corner (l - UPM) (nsBot - UPM) corner (l - UPM) (nsBot - UPM)
save-glyph 'neutralTone' 0x266E : sketch save-glyph 'neutralTone' 0x266E : sketch
local k 0.25 local k : 0.25 - (STROKE * 0.25 / (nsTop - nsBot))
local kr 0.5 local kr 0.5
local ll (l + hsp * kr) local ll (l + hsp * kr)
local rr (r - hsp * kr) local rr (r - hsp * kr)
@ -487,8 +487,9 @@ export : define [apply] : begin
local startY : symbolMid - offsetY * (n - 1) / 2 local startY : symbolMid - offsetY * (n - 1) / 2
local bar : adviceBlackness n local bar : adviceBlackness n
local fine : adviceBlackness 5 local fine : adviceBlackness 5
include : HBar SB (MIDDLE - fine / 2 * HVCONTRAST) (startY + offsetY * m) bar local gap : Math.max (WIDTH / 8) (fine)
include : HBar (MIDDLE + fine / 2 * HVCONTRAST) RIGHTSB (startY + offsetY * m) bar 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 define [yang m n] : glyph-construction
local offsetY : (2 / 3) * (operBot - operTop) / n 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 m : mix l r (1 / 2)
local sma : SMOOTHA * 0.5 * para.diversityM local sma : SMOOTHA * 0.5 * para.diversityM
local smb : SMOOTHB * 0.5 * para.diversityM local smb : SMOOTHB * 0.5 * para.diversityM
local sw : adviceBlackness 4 para.diversityM local sw : adviceBlackness2 5 4 CAP para.diversityM
local fine : adviceBlackness 5 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 cor : HVCONTRAST / [Math.sqrt (1 - [Math.pow ((r - l - sw) / (CAP - 0)) 2])]
local pTerm : (fine / 2) / [Math.hypot CAP (r - l)] local pTerm : (fine / 2) / [Math.hypot CAP (r - l)]
local pFine : 1 / 2 - (STROKE / 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 l2 : r1 + gap
local r2 : l2 + fill local r2 : l2 + fill
local l3 : r2 + gap local l3 : r2 + gap
local swp : adviceBlackness 6 local swp : adviceBlackness2 5 6.5 CAP para.diversityM
local smap : SMOOTHA * (1/3) local smap : SMOOTHA * (1/3) * para.diversityM
local smbp : SMOOTHB * (1/3) local smbp : SMOOTHB * (1/3) * para.diversityM
include : OShape otop 0 l1 r1 swp smap smbp include : OShape otop 0 l1 r1 swp smap smbp
include : OShape otop 0 l2 r2 swp smap smbp include : OShape otop 0 l2 r2 swp smap smbp
include : OShape otop 0 l3 r3 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' # We will estimate blackness using lower-case 'e'
define WHITENESS : ((XH - STROKE * 3) * (RIGHTSB - SB) * (1 / 3)) / (XH * (RIGHTSB - SB)) 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 [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_D div] : adviceBlackness [fallback para.lllcrowdedness (3 + 1 / 3)] div
define MVERTSTROKE : MVERTSTROKE_D 1 define MVERTSTROKE : MVERTSTROKE_D 1
define OVERLAYSTROKE : adviceBlackness 3.75 define OVERLAYSTROKE : adviceBlackness 3.75
@ -144,8 +145,9 @@ export : define [calculateMetrics para] : begin
define SUPERNESS : fallback para.superness 2 define SUPERNESS : fallback para.superness 2
define [superxy x] : Math.pow (1 - [Math.pow x SUPERNESS]) (1 / SUPERNESS) define [superxy x] : Math.pow (1 - [Math.pow x SUPERNESS]) (1 / SUPERNESS)
define [adviceSSmooth y sign] : begin define [adviceSSmooth y sign _stroke] : begin
local ss : y * 0.21 + STROKE * 0.22 * [clamp 1 2 : linreg 126 1 137 1.025 STROKE] + 0.035 * (RIGHTSB - SB) 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) return : ss + sign * TANSLANT * para.smoothadjust * (ss / SMALLSMOOTH)
define [adviceGlottalStopSmooth y sign] : ((y - STROKE) * 0.24 + STROKE * 0.625) + sign * TANSLANT * para.smoothadjust 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 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 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 MVERTSTROKE_D OVERLAYSTROKE OPERATORSTROKE GEOMETRYSTROKE SHOULDERFINE SUPERNESS superxy WHITENESS adviceBlackness adviceBlackness2 MVERTSTROKE MVERTSTROKE_D 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

@ -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] 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] geometricSymbols `[define [object ArrowShape] $capture.geometricSymbols]
local opts : _opts.map formOf 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 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 MVERTSTROKE_D OVERLAYSTROKE OPERATORSTROKE GEOMETRYSTROKE SHOULDERFINE SUPERNESS superxy WHITENESS adviceBlackness adviceBlackness2 MVERTSTROKE MVERTSTROKE_D 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

View file

@ -88,6 +88,7 @@ noCJKV = true
diversityM = 1 diversityM = 1
diversityF = 1 diversityF = 1
diversityI = 1 diversityI = 1
diversityII = 1
[verbose] [verbose]
verbose = true verbose = true
@ -244,8 +245,8 @@ spacing = 3
# HANDLE WITH EXTREME CARE # HANDLE WITH EXTREME CARE
# Expanded : I heard someone want it being wider... # Expanded : I heard someone want it being wider...
[wd-expanded.multiplies] [wd-expanded.multiplies]
width = 1.15 width = 1.20
sb = 1.15 sb = 2.0
[expanded] [expanded]
inherits = ['wd-expanded'] inherits = ['wd-expanded']
@ -263,7 +264,19 @@ straightBar = 1
[diversity-1] [diversity-1]
diversityM = 1.25 diversityM = 1.25
diversityF = 1.00
diversityI = 0.75 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 ###### Full-width codes
[xx-type] [xx-type]

View file

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