Revamp the weight grades

This commit is contained in:
be5invis 2020-10-29 22:34:30 -07:00
parent 23fc0eede6
commit e01065074a
75 changed files with 195 additions and 243 deletions

View file

@ -33,7 +33,7 @@ glyph-block Autobuild-Enclosure-Shared : begin
local rs : new Set
local gniPart : fnBuildup gidPart
local grs : AnyDerivingCv.query [query-glyph gidPart]
if grs : foreach gr [items-of grs] : begin
if (para.enableCvSs && grs) : foreach gr [items-of grs] : begin
local relatedGidPart : gr.get [query-glyph gidPart]
local gniRelated : fnBuildup relatedGidPart
if [query-glyph gniPart] : begin
@ -54,7 +54,7 @@ glyph-block Autobuild-Enclosure-Shared : begin
local restInfo : demand.slice 2
local origJobGlyphGn : CircName unicode prefix parts suffix
local demandDecomposable globallyDecomposable
local demandDecomposable : para.enableCvSs && globallyDecomposable
foreach part [items-of parts] : if [query-glyph part] : begin
local g : query-glyph part
local relatedGlyphs : AnyDerivingCv.query g
@ -66,12 +66,14 @@ glyph-block Autobuild-Enclosure-Shared : begin
local jobsRel : if demandDecomposable decomposableRelJobs nonDecomposable
jobsOrig.push { origJobGlyphGn unicode parts :: restInfo }
local mesh : getGrMesh parts AnyDerivingCv query-glyph
foreach {gr fromParts toParts} [items-of mesh] : do
local fromGn : CircNameNoCheck unicode prefix fromParts suffix
local toGn : CircName unicode prefix toParts suffix
jobsRel.push { toGn null toParts :: restInfo }
if [not demandDecomposable] : relApplications.push : list gr fromGn toGn
if para.enableCvSs : begin
local mesh : getGrMesh parts AnyDerivingCv query-glyph
foreach {gr fromParts toParts} [items-of mesh] : do
local fromGn : CircNameNoCheck unicode prefix fromParts suffix
local toGn : CircName unicode prefix toParts suffix
jobsRel.push { toGn null toParts :: restInfo }
if [not demandDecomposable] : relApplications.push { gr fromGn toGn }
return : object nonDecomposable decomposableJobs decomposableRelJobs relApplications
glyph-block-export CreateDerivedFontFromJobs
@ -1047,17 +1049,17 @@ glyph-block Autobuild-Pnonetic-Ligatures : if [not recursive] : begin
foreach [{unicode c1 c2 mak} : items-of records] : begin
local glyphName : PhoneticLigatureGlyphName c1 c2
define [maskOut] : new-glyph : glyph-proc
local s 0
local step (-OX)
local dist (Stroke * 2)
define dfg1 : df1.queryByNameEnsured c1
define dfg2 : df2.queryByNameEnsured c2
while (s < dist) : begin
local maskOuts {}
local s 0
local step (-OX)
local dist (Stroke * 2)
while (s < dist) : do
maskOuts.push : new-glyph : glyph-proc
define dfg1 : df1.queryByNameEnsured c1
define dfg2 : df2.queryByNameEnsured c2
include dfg2
include : Translate step 0
set s : s + step
include : Translate (dfg1.advanceWidth * wadj1 - kern) 0
include : Translate (s + dfg1.advanceWidth * wadj1 - kern) 0
set s : s + step
create-glyph glyphName unicode : glyph-proc
set-width CWidth
@ -1068,11 +1070,9 @@ glyph-block Autobuild-Pnonetic-Ligatures : if [not recursive] : begin
local refW : sumChildrenWidth - kern
include dfg2
include : Translate (dfg1.advanceWidth * wadj1 - kern) 0
include : difference
intersection
Rect (CAP * 2) (Descender * 2) (-CWidth) (dfg1.advanceWidth * wadj1 - kern + dfg2.advanceWidth * wadj2 / 2)
glyph-proc : include dfg1
maskOut
local leftHalf : intersection dfg1
Rect (CAP * 2) (Descender * 2) (-CWidth) (dfg1.advanceWidth * wadj1 - kern + dfg2.advanceWidth * wadj2 / 2)
include : difference.apply null { leftHalf :: maskOuts}
include : Upright
include : Translate (-refW / 2) 0
include : Scale [clamp 0 1 ((CWidth - SB * 1.25) / (CWidth - SB * 2) * CWidth / refW)] 1

View file

@ -74,7 +74,7 @@ export all : define [buildGlyphs para recursive recursiveCodes] : begin
glyphObject.setWidth Width
glyphObject.gizmo = GlobalTransform
glyphObject.include actions true true
warnAboutBrokenGlyph glyphObject ensuredGlyphName
warnAboutBrokenGlyph glyphObject ensuredGlyphName saveGlyphName
if saveGlyphName : begin
if (saveGlyphName.0 != '.' && [glyphStore.queryByName saveGlyphName])
@ -86,7 +86,7 @@ export all : define [buildGlyphs para recursive recursiveCodes] : begin
return glyphObject
define [warnAboutBrokenGlyph g ensuredGlyphName] : begin
define [warnAboutBrokenGlyph g ensuredGlyphName saveGlyphName] : begin
local complexity 0
local broken false
if g.contours : begin
@ -95,9 +95,10 @@ export all : define [buildGlyphs para recursive recursiveCodes] : begin
if [not : isFinite z.x] : set broken true
if [not : isFinite z.y] : set broken true
if ([not recursive] && (broken || complexity > 0x7fff)) : begin
if ([not recursive] && (broken || complexity > 4096)) : begin
console.log 'Possible broken shape found in' ensuredGlyphName 'Complexity' complexity
console.log 'Family' para.naming.family para.naming.weight para.naming.width para.naming.slope
if saveGlyphName : throw : new Error "Overcomplicated \(saveGlyphName)"
define [$assignUnicodeImpl$ g unicode] : begin
local u unicode

View file

@ -217,7 +217,7 @@ glyph-block Letter-Greek-Lower-Epsilon : begin
define StdBlend 0.65
define [SmallEpsilonShapeDim top bot blend] : begin
local stroke : adviceBlackness2 2.875 2 (top - bot)
local stroke : adviceBlackness2 2 3 (top - bot)
local midx : mix SB RightSB blend
local midy : mix bot top OverlayPos
local sma : top - [mix (midy + stroke / 2) (top - O - stroke) (SmoothB / (SmoothA + SmoothB))] - TanSlope * HVContrast * stroke
@ -261,7 +261,7 @@ glyph-block Letter-Greek-Lower-Epsilon : begin
include : SmallEpsilonShape CAP 0 StdBlend Hook
define [CyrZeShapeDim top bot blend] : begin
local stroke : adviceBlackness2 2.875 2 (top - bot)
local stroke : adviceBlackness2 2 3 (top - bot)
local midx : mix RightSB SB blend
local midy : mix bot top OverlayPos
local smb : top - [mix (midy + stroke / 2) (top - O - stroke) (SmoothA / (SmoothA + SmoothB))] + TanSlope * HVContrast * stroke

View file

@ -965,7 +965,7 @@ glyph-block Letter-Latin-Lower-A : begin
glyph-block-import Marks : markHalfStroke
glyph-block-import Letter-Shared-Shapes : RightwardTailedBar DToothlessRise DMBlend
define ADoubleStoreyStroke : adviceBlackness2 2.875 2 XH
define ADoubleStoreyStroke : adviceBlackness2 2 3 XH
define ADoubleStoreySmoothA : SmoothAOf (Smooth * [StrokeWidthBlend 0.9 0.81 ADoubleStoreyStroke]) Width
define ADoubleStoreySmoothB : SmoothBOf (Smooth * [StrokeWidthBlend 0.9 0.81 ADoubleStoreyStroke]) Width
@ -1365,7 +1365,7 @@ glyph-block Letter-Latin-X : begin
: else : begin
local height : Math.abs (lefty - righty)
local slabClearance : if slab [adviceBlackness2 3 2 height] 0
local slabClearance : if slab [adviceBlackness2 2 3 height] 0
local turnyleft : mix lefty righty [if slab [Math.max turn (slabClearance / height)] turn]
local cyleft : mix turnyleft righty tension
local straightxleft : mix leftx rightx pStraight
@ -2104,7 +2104,7 @@ glyph-block Letter-Latin-Upper-B : begin
glyph-block-import Letter-Shared-Metrics : BowlXDepth
define [BShape] : params [top [barPos 0.52] [topArcShift 0] [topArcInnerShift 0]] : glyph-proc
local stroke : adviceBlackness2 2.875 2 top
local stroke : adviceBlackness2 2 3 top
local bowl : top * barPos + stroke * (1 - barPos)
local barleft SB
local mockBowlDepth : BowlXDepth top (bowl - stroke) barleft RightSB stroke
@ -2163,7 +2163,7 @@ glyph-block Letter-Latin-Upper-B : begin
include : LeftHook SB CAP
define [ItalicCyrveShape top] : glyph-proc
local stroke : adviceBlackness2 2.875 2 top
local stroke : adviceBlackness2 2 3 top
local mid : mix RightSB SB 0.65
local midy : top * HBarPos
local smb : top - [mix (midy + stroke / 2) (top - O - stroke) (SmoothA / (SmoothA + SmoothB))] + TanSlope * HVContrast * stroke
@ -2189,7 +2189,7 @@ glyph-block Letter-Latin-Upper-B : begin
curl mid (midy + (fine - stroke / 2)) [widths.heading fine 0 Leftward]
define [ClosedEpsilonShape top] : glyph-proc
local stroke : adviceBlackness2 2.875 2 top
local stroke : adviceBlackness2 2 3 top
local mid : mix SB RightSB 0.65
local midy : top * HBarPos
local sma : top - [mix (midy + stroke / 2) (top - O - stroke) (SmoothB / (SmoothA + SmoothB))] - TanSlope * HVContrast * stroke
@ -2236,7 +2236,7 @@ glyph-block Letter-Latin-Upper-B : begin
create-glyph 'Bbar' 0x243 : glyph-proc
include [refer-glyph 'B'] AS_BASE
local stroke : adviceBlackness2 2.875 2 CAP
local stroke : adviceBlackness2 2 3 CAP
include : HOverlayBar
mix SB 0 0.7
mix SB RightSB 0.5
@ -2884,13 +2884,14 @@ glyph-block Letter-Latin-Lower-R : begin
glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend
local dfN : DivFrame 1
local dfR : DivFrame para.diversityF
local rStraight 0
local rSerifed 1
local rNarrow 2
local rEarless 3
define [RDim mode] : begin
define [RDim df mode] : begin
local rBalanceMultiplier : match mode [0 1] [1 (4 / 3)] [2 (1 / 2)] [3 1]
local rHookMultiplier : match mode [0 1] [1 (2 / 3)] [2 1] [3 1]
local rHookSwMultiplier : match mode [0 0] [1 (1 / 4)] [2 0] [3 0]
@ -2907,11 +2908,11 @@ glyph-block Letter-Latin-Lower-R : begin
local [rTopSerif y] : tagged 'serifLT'
LeftwardTopSerif rSerifX y (rSerifLeftJut + HalfStroke * HVContrast)
local fine : ShoulderFine * CThin
local rHookX : dfR.rightSB + RBalance2 * rBalanceMultiplier - (OX - O)
local rHookX : df.rightSB + RBalance2 * rBalanceMultiplier - (OX - O)
local rmiddle : match mode
0 : mix (rbar - fine) rHookX (0.54 + 2 * TanSlope * Stroke / Width)
1 : mix (rbar - fine) rHookX (0.59 + 2 * TanSlope * Stroke / Width)
2 : mix rHookX dfR.width (3 / 8)
2 : mix rHookX df.width (3 / 8)
3 : mix (rbar - Stroke * HVContrast) rHookX 0.5
local mixpin : match mode
0 : 0.65 + 4 * TanSlope * Stroke / Width
@ -2924,7 +2925,7 @@ glyph-block Letter-Latin-Lower-R : begin
return : object rbar rBottomSerif rTopSerif fine rmiddle skew rHookX rHookY hookSuperness
define [StandardLowerRShape df md doTopSerif doBottomSerif] : glyph-proc
define [object rbar rBottomSerif rTopSerif fine rmiddle skew rHookX rHookY hookSuperness] : RDim md
define [object rbar rBottomSerif rTopSerif fine rmiddle skew rHookX rHookY hookSuperness] : RDim df md
include : dispiro
widths.lhs
g4.up.start rHookX (XH - rHookY - Stroke * 0.5) [heading Upward]
@ -2938,7 +2939,7 @@ glyph-block Letter-Latin-Lower-R : begin
if doTopSerif : include : rTopSerif XH
define [NarrowLowerRshape df md doTopSerif doBottomSerif] : glyph-proc
define [object rbar fine rmiddle] : RDim md
define [object rbar fine rmiddle] : RDim df md
include : dispiro
widths.lhs
g4.left.mid (rmiddle - CorrectionOMidS * [linreg 72 0.75 108 1 Stroke]) (XH - O)
@ -2948,7 +2949,7 @@ glyph-block Letter-Latin-Lower-R : begin
set-base-anchor 'overlay' (rbar - Stroke * 0.25) (XH * 0.5)
define [EarlessCornerLowerRShape df md doTopSerif doBottomSerif] : glyph-proc
define [object rbar rmiddle rHookX rHookY hookSuperness] : RDim md
define [object rbar rmiddle rHookX rHookY hookSuperness] : RDim df md
include : dispiro
widths.lhs
g4.up.start rHookX (XH - rHookY - Stroke * 0.5) [heading Upward]
@ -2959,7 +2960,7 @@ glyph-block Letter-Latin-Lower-R : begin
set-base-anchor 'overlay' (rbar - Stroke * 0.25) (XH * 0.5)
define [EarlessRoundedLowerRShape df md doTopSerif doBottomSerif] : glyph-proc
define [object rbar rmiddle rHookX rHookY hookSuperness] : RDim md
define [object rbar rmiddle rHookX rHookY hookSuperness] : RDim df md
local hx : Math.max rHookX (rbar + 1.25 * Stroke)
include : dispiro
widths.lhs
@ -2972,11 +2973,11 @@ glyph-block Letter-Latin-Lower-R : begin
create-glyph : glyph-proc
set-width dfR.width
include : dfR.markSet.e
create-derived "r.straight" : StandardLowerRShape dfR rStraight 0 0
create-derived "r.serifed" : StandardLowerRShape dfR rSerifed 1 1
create-derived "r.top-serifed" : StandardLowerRShape dfR rSerifed 1 0
create-derived "r.earlessCorner" : EarlessCornerLowerRShape dfR rEarless 0 0
create-derived "r.earlessRounded" : EarlessRoundedLowerRShape dfR rEarless 0 0
create-derived "r.straight" : StandardLowerRShape dfN rStraight 0 0
create-derived "r.serifed" : StandardLowerRShape dfN rSerifed 1 1
create-derived "r.top-serifed" : StandardLowerRShape dfN rSerifed 1 0
create-derived "r.earlessCorner" : EarlessCornerLowerRShape dfN rEarless 0 0
create-derived "r.earlessRounded" : EarlessRoundedLowerRShape dfN rEarless 0 0
create-glyph 'r.narrow' : glyph-proc
set-width dfR.width
@ -2985,105 +2986,108 @@ glyph-block Letter-Latin-Lower-R : begin
select-variant 'r' 'r'
define [TurnRMarks] : compositeBaseAnchors [dfR.markSet.e]
begin {.baseAnchors {.bottomright {.x (dfR.rightSB - RBalance) .y 0}}}
turned 'turnr' 0x279 'r' dfR.middle (XH / 2) [TurnRMarks]
define [HalfAdvance] : this.advanceWidth / 2
define [TurnRMarks k] : glyph-proc
local df : DivFrame (currentGlyph.advanceWidth / Width)
local mx : compositeBaseAnchors [df.markSet.(k)]
begin {.baseAnchors {.bottomright {.x (df.rightSB - RBalance) .y 0}}}
include mx
turned 'turnr' 0x279 'r' HalfAdvance (XH / 2) [TurnRMarks 'e']
do
define [SmallRLongLegShape F mode doTopSerif] : glyph-proc
define [object rbar rBottomSerif] : RDim mode
include : F dfR mode doTopSerif 0
define [SmallRLongLegShape F df mode doTopSerif] : glyph-proc
set-width df.width
include : df.markSet.p
define [object rbar rBottomSerif] : RDim df mode
include : F df mode doTopSerif 0
eject-contour 'serifLB'
include : VBarRight rbar Descender 0
if SLAB : include : rBottomSerif Descender
create-glyph : glyph-proc
set-width dfR.width
include : dfR.markSet.p
create-derived 'rlongleg.straight'
SmallRLongLegShape StandardLowerRShape rStraight 0
create-derived 'rlongleg.serifed'
SmallRLongLegShape StandardLowerRShape rSerifed 1
create-derived 'rlongleg.top-serifed'
SmallRLongLegShape StandardLowerRShape rSerifed 1
create-derived 'rlongleg.earlessCorner'
SmallRLongLegShape EarlessCornerLowerRShape rEarless 0
create-derived 'rlongleg.earlessRounded'
SmallRLongLegShape EarlessRoundedLowerRShape rEarless 0
create-derived 'rlongleg.narrow'
SmallRLongLegShape NarrowLowerRshape rNarrow 0
create-glyph 'rlongleg.straight'
SmallRLongLegShape StandardLowerRShape dfN rStraight 0
create-glyph 'rlongleg.serifed'
SmallRLongLegShape StandardLowerRShape dfN rSerifed 1
create-glyph 'rlongleg.top-serifed'
SmallRLongLegShape StandardLowerRShape dfN rSerifed 1
create-glyph 'rlongleg.earlessCorner'
SmallRLongLegShape EarlessCornerLowerRShape dfN rEarless 0
create-glyph 'rlongleg.earlessRounded'
SmallRLongLegShape EarlessRoundedLowerRShape dfN rEarless 0
create-glyph 'rlongleg.narrow'
SmallRLongLegShape NarrowLowerRshape dfR rNarrow 0
select-variant 'rlongleg' 0x27C (follow -- 'r')
define [TurnRLongLegMarks] : compositeBaseAnchors [dfR.markSet.b]
begin {.baseAnchors {.bottomright {.x (dfR.rightSB - RBalance) .y 0}}}
turned 'turnrlongleg' 0x27A 'rlongleg' dfR.middle (XH / 2) [TurnRLongLegMarks]
turned 'turnrlongleg' 0x27A 'rlongleg' HalfAdvance (XH / 2) [TurnRMarks 'b']
do
define [SmallRRTailShape F mode doTopSerif] : glyph-proc
define [object rbar] : RDim mode
include : F dfR mode doTopSerif 0
define [SmallRRTailShape F df mode doTopSerif] : glyph-proc
set-width df.width
include : df.markSet.p
define [object rbar] : RDim df mode
include : F df mode doTopSerif 0
eject-contour 'serifLB'
include : new-glyph : glyph-proc
include : refer-glyph "rtailBR"
include : Upright
include : Translate rbar 0
include : Italify
create-glyph : glyph-proc
set-width dfR.width
include : dfR.markSet.p
create-derived 'rrtail.straight'
SmallRRTailShape StandardLowerRShape rStraight 0
create-derived 'rrtail.serifed'
SmallRRTailShape StandardLowerRShape rSerifed 1
create-derived 'rrtail.top-serifed'
SmallRRTailShape StandardLowerRShape rSerifed 1
create-derived 'rrtail.earlessCorner'
SmallRRTailShape EarlessCornerLowerRShape rEarless 0
create-derived 'rrtail.earlessRounded'
SmallRRTailShape EarlessRoundedLowerRShape rEarless 0
create-derived 'rrtail.narrow'
SmallRRTailShape NarrowLowerRshape rNarrow 0
create-glyph 'rrtail.straight'
SmallRRTailShape StandardLowerRShape dfN rStraight 0
create-glyph 'rrtail.serifed'
SmallRRTailShape StandardLowerRShape dfN rSerifed 1
create-glyph 'rrtail.top-serifed'
SmallRRTailShape StandardLowerRShape dfN rSerifed 1
create-glyph 'rrtail.earlessCorner'
SmallRRTailShape EarlessCornerLowerRShape dfN rEarless 0
create-glyph 'rrtail.earlessRounded'
SmallRRTailShape EarlessRoundedLowerRShape dfN rEarless 0
create-glyph 'rrtail.narrow'
SmallRRTailShape NarrowLowerRshape dfR rNarrow 0
select-variant 'rrtail' 0x27D (follow -- 'r')
turned 'smallLetterTurnedRWithTail' 0x2C79 'rrtail' dfR.middle (XH / 2) [dfR.markSet.b]
turned 'smallLetterTurnedRWithTail' 0x2C79 'rrtail' HalfAdvance (XH / 2) : glyph-proc
local df : DivFrame (currentGlyph.advanceWidth / Width)
include : df.markSet.b
do
define [TurnRRTailShape F mode doBottomSerif] : glyph-proc
define [object rbar] : RDim mode
include : F dfR mode 0 doBottomSerif
define [TurnRRTailShape F df mode doBottomSerif] : glyph-proc
set-width df.width
include : df.markSet.p
define [object rbar] : RDim df mode
include : F df mode 0 doBottomSerif
eject-contour 'serifLT'
include : FlipAround dfR.middle (XH / 2)
include : FlipAround df.middle (XH / 2)
include : new-glyph : glyph-proc
include : refer-glyph "rtailBR"
include : Upright
include : Translate (dfR.rightSB - rbar + dfR.leftSB + Stroke * HVContrast) 0
include : Translate (df.rightSB - rbar + df.leftSB + Stroke * HVContrast) 0
include : Italify
create-glyph : glyph-proc
set-width dfR.width
include : dfR.markSet.p
create-derived 'turnrrtail.straight'
TurnRRTailShape StandardLowerRShape rStraight 0
create-derived 'turnrrtail.serifed'
TurnRRTailShape StandardLowerRShape rSerifed 1
create-derived 'turnrrtail.top-serifed'
TurnRRTailShape StandardLowerRShape rSerifed 0
create-derived 'turnrrtail.narrow'
TurnRRTailShape NarrowLowerRshape rNarrow 0
create-glyph 'turnrrtail.straight'
TurnRRTailShape StandardLowerRShape dfN rStraight 0
create-glyph 'turnrrtail.serifed'
TurnRRTailShape StandardLowerRShape dfN rSerifed 1
create-glyph 'turnrrtail.top-serifed'
TurnRRTailShape StandardLowerRShape dfN rSerifed 0
create-glyph 'turnrrtail.narrow'
TurnRRTailShape NarrowLowerRshape dfR rNarrow 0
select-variant 'turnrrtail' 0x27B
create-glyph 'rflap.straight' : glyph-proc
set-width dfR.width
include : dfR.markSet.e
define [object rBottomSerif] : RDim rEarless
include : EarlessRoundedLowerRShape dfR rEarless 0 0
set-width dfN.width
include : dfN.markSet.e
define [object rBottomSerif] : RDim dfN rEarless
include : EarlessRoundedLowerRShape dfN rEarless 0 0
create-derived 'rflap.serifed' : rBottomSerif 0
create-glyph 'rflap.narrow' : glyph-proc
set-width dfR.width
include : dfR.markSet.e
define [object rbar rBottomSerif rmiddle] : RDim rNarrow
define [object rbar rBottomSerif rmiddle] : RDim dfR rNarrow
include : dispiro
widths.lhs
@ -3225,7 +3229,7 @@ glyph-block Letter-Latin-C : begin
create-glyph 'ccurlytail' 0x255 : glyph-proc
include : MarkSet.e
local stroke : adviceBlackness2 2.875 2 XH
local stroke : adviceBlackness2 2 3 XH
local fine : adviceBlackness2 3 3 XH
local rinner : ((XH * 0.45) - fine * 1.5) / 2
local m1 : SB + O + stroke * HVContrast
@ -3252,11 +3256,11 @@ glyph-block Letter-Latin-C : begin
create-glyph 'cyrl/Ye' 0x404 : glyph-proc
include [refer-glyph "C"] AS_BASE
include : HBar SB [mix RightSB SB 0.25] (CAP / 2) [adviceBlackness2 4 2 CAP]
include : HBar SB [mix RightSB SB 0.25] (CAP / 2) [adviceBlackness2 2 4 CAP]
create-glyph 'cyrl/ye' 0x454 : glyph-proc
include [refer-glyph "c"] AS_BASE
include : HBar SB [mix RightSB SB 0.25] (XH / 2) [adviceBlackness2 4 2 XH]
include : HBar SB [mix RightSB SB 0.25] (XH / 2) [adviceBlackness2 2 4 XH]
create-glyph 'grek/sigma' 0x3C3 : glyph-proc
include : MarkSet.e
@ -3487,7 +3491,7 @@ glyph-block Letter-Latin-Lower-G : begin
define l : mix 0 SB 0.3
define r : mix Width RightSB 0.3
define bwDoubleStorey : Math.min [adviceBlackness 5] (0.5 / 3 * (CAP - Stroke * 4))
define bwSingleStorey : adviceBlackness2 4 2 XH
define bwSingleStorey : adviceBlackness2 2 4 XH
create-glyph 'gbar.doubleStorey' : glyph-proc
include [refer-glyph "g.doubleStorey"] AS_BASE
include : HBar l r [query-glyph "g.doubleStorey"].baseAnchors.overlay.y bwDoubleStorey
@ -4381,7 +4385,7 @@ glyph-block Letter-Latin-Lower-M : begin
define [SmallMBottomRightSerif df top rbot] : glyph-proc
if (df.width > para.refJut * 7) : begin
if [not para.isItalic] : begin
if para.isItalic : begin
include : tagged 'serifRB' : intersection
CenterBottomSerif (df.rightSB - 0.5 * df.mvs * HVContrast) rbot Jut df.mvs
Rect top rbot (df.rightSB + O) df.width
@ -4917,7 +4921,7 @@ glyph-block Letter-Latin-Upper-F : begin
return { jutTop jutBot }
define [FShape] : params [top pyBar noSerif] : glyph-proc
define stroke : adviceBlackness2 2.875 2 CAP
define stroke : adviceBlackness2 2 3 CAP
define xFBarLeft : SB * 1.5
include : VBarLeft (xFBarLeft) 0 top stroke
include : HBarTop (xFBarLeft - O) RightSB top stroke
@ -4930,7 +4934,7 @@ glyph-block Letter-Latin-Upper-F : begin
include : DownwardRightSerif RightSB top jutTop
define [RevFShape] : params [top pyBar noSerif] : glyph-proc
define stroke : adviceBlackness2 2.875 2 CAP
define stroke : adviceBlackness2 2 3 CAP
define xFBarRight : Width - SB * 1.5
include : VBarRight (xFBarRight) 0 top stroke
include : HBarTop SB (xFBarRight + O) top stroke
@ -5260,7 +5264,7 @@ glyph-block Letter-Latin-Upper-E : begin
glyph-block-export EShape
define [EShape] : params [top pyBar noSerif] : glyph-proc
define stroke : adviceBlackness2 2.875 2 CAP
define stroke : adviceBlackness2 2 3 CAP
define xEBarLeft : SB * 1.5
include : FShape top pyBar true
include : HBarBottom (xEBarLeft - O) RightSB 0 stroke
@ -5273,7 +5277,7 @@ glyph-block Letter-Latin-Upper-E : begin
glyph-block-export RevEShape
define [RevEShape] : params [top pyBar noSerif] : glyph-proc
define stroke : adviceBlackness2 2.875 2 CAP
define stroke : adviceBlackness2 2 3 CAP
define xEBarRight : Width - SB * 1.5
include : RevFShape top pyBar true
include : HBarBottom SB (xEBarRight + O) 0 stroke
@ -5329,11 +5333,11 @@ glyph-block Letter-Latin-Lower-E : begin
create-glyph 'e' 'e' : glyph-proc
include : MarkSet.e
include : SmallEShape XH [adviceBlackness2 2.875 2 XH]
include : SmallEShape XH [adviceBlackness2 2 3 XH]
create-glyph 'Schwa' 0x18F : glyph-proc
include : MarkSet.capital
include : SmallEShape CAP [adviceBlackness2 2.875 2 CAP]
include : SmallEShape CAP [adviceBlackness2 2 3 CAP]
include : FlipAround Middle (CAP / 2)
alias 'cyrl/ie' 0x435 'e'
@ -5362,7 +5366,7 @@ glyph-block Letter-Latin-Lower-E : begin
create-glyph 'reve' 0x258 : glyph-proc
include : MarkSet.e
include : RevSmallEShape XH [adviceBlackness2 2.875 2 XH]
include : RevSmallEShape XH [adviceBlackness2 2 3 XH]
glyph-block Letter-Latin-Upper-T : begin
@ -5574,7 +5578,7 @@ glyph-block Letter-Latin-S : begin
return : alsoThruThem {{(0.5 - dist) tension} {(0.5 + dist) (1 - tension)}} [widths.center stroke]
define [SStroke] : begin
local stroke : adviceBlackness2 2.875 2 CAP
local stroke : adviceBlackness2 2 3 CAP
local ess : Ess * stroke / Stroke
define smooth : adviceSSmooth CAP (-1) stroke
return : dispiro
@ -5588,7 +5592,7 @@ glyph-block Letter-Latin-S : begin
g4 (SB + SOBot) Hook
define [RevSStroke] : begin
local stroke : adviceBlackness2 2.875 2 CAP
local stroke : adviceBlackness2 2 3 CAP
local ess : Ess * stroke / Stroke
local smooth : adviceSSmooth CAP 0.5 stroke
return : dispiro
@ -5602,8 +5606,8 @@ glyph-block Letter-Latin-S : begin
g4 (RightSB - SOBot) Hook
define [sStroke] : begin
define stroke : adviceBlackness2 2.875 2 XH
define ess : adviceBlackness2 3.2 2.2 XH
define stroke : adviceBlackness2 2 3 XH
define ess : adviceBlackness2 2.2 3.2 XH
define strokeCoeff : StrokeWidthBlend 0 1 stroke
define smooth : adviceSSmooth XH (-1) stroke
return : dispiro
@ -5617,8 +5621,8 @@ glyph-block Letter-Latin-S : begin
g4 (SB + SOBot) SHook
define [sStrokePhoneticRight] : begin
define stroke : adviceBlackness2 2.875 2 XH
define ess : adviceBlackness2 3.2 2.2 XH
define stroke : adviceBlackness2 2 3 XH
define ess : adviceBlackness2 2.2 3.2 XH
define strokeCoeff : StrokeWidthBlend 0 1 stroke
define smooth : adviceSSmooth XH (-1) stroke
return : dispiro
@ -5633,8 +5637,8 @@ glyph-block Letter-Latin-S : begin
curl SB 0
define [RevsStroke] : begin
define stroke : adviceBlackness2 2.875 2 XH
define ess : adviceBlackness2 3.2 2.2 XH
define stroke : adviceBlackness2 2 3 XH
define ess : adviceBlackness2 2.2 3.2 XH
define strokeCoeff : StrokeWidthBlend 0 1 stroke
define smooth : adviceSSmooth XH 0.75 stroke
return : dispiro
@ -5691,7 +5695,7 @@ glyph-block Letter-Latin-S : begin
local start : currentGlyph.gizmo.unapply stroke.lhsKnots.(stroke.lhsKnots.length - 1)
include : new-glyph : glyph-proc
local sw : adviceBlackness2 2.875 2 XH
local sw : adviceBlackness2 2 3 XH
include : refer-glyph "rtailBR"
include : Upright
include : Translate (start.x + sw * HVContrast) 0
@ -5705,7 +5709,7 @@ glyph-block Letter-Latin-S : begin
local stroke : [SStroke].call currentGlyph
local start : currentGlyph.gizmo.unapply stroke.lhsKnots.(stroke.lhsKnots.length - 1)
local sw : adviceBlackness2 2.875 2 CAP
local sw : adviceBlackness2 2 3 CAP
include : dispiro
widths.lhs [adviceBlackness 4.5]
g4 start.x start.y
@ -5719,7 +5723,7 @@ glyph-block Letter-Latin-S : begin
local stroke : [sStroke].call currentGlyph
local start : currentGlyph.gizmo.unapply stroke.lhsKnots.(stroke.lhsKnots.length - 1)
local sw : adviceBlackness2 2.875 2 XH
local sw : adviceBlackness2 2 3 XH
include : dispiro
widths.lhs [adviceBlackness 4.5]
g4 start.x start.y
@ -6009,7 +6013,7 @@ glyph-block Letter-Latin-Eszet : begin
SB + swOuter * HVContrast + (RightSB - SB - Stroke) * 0.1
mix SB RightSB 0.3
define widthInner : Width - swOuter * HVContrast - (RightSB - SB - Stroke) * 0.1
define swInner : adviceBlackness2 3 2 XH (widthInner / Width)
define swInner : adviceBlackness2 2 3 XH (widthInner / Width)
define sTopY : XH + swInner / 8
define smooth : SmoothBOf (swInner + (widthInner / Width) * ([adviceSSmooth XH (-1) swInner] - swInner)) widthInner
define sTurnX : Math.max sEndX [mix SB RightSB 0.3]
@ -6076,7 +6080,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin
define eBarPos : designParameters.upperEBarPos SLAB
define sw : Math.min df.mvs : adviceBlackness2 3 3 CAP df.div
define eleft : df.middle - sw * 0.25 * HVContrast
define fine : adviceBlackness2 4 3 CAP df.div
define fine : adviceBlackness2 3 4 CAP df.div
define swVJut : Math.min sw ((df.rightSB - eleft - sw * HVContrast) * (4 / 5))
set-width df.width
@ -6454,7 +6458,7 @@ glyph-block Letter-Latin-Ezh : begin
include : MarkSet.e
local p (SmallSmoothB / (SmallSmoothA + SmallSmoothB))
include : EzhShape XH Descender nothing nothing p
local fine : adviceBlackness2 5 3 (XH - Descender)
local fine : adviceBlackness2 3 5 (XH - Descender)
local rinner : (XH * 0.4 - fine * 1.5) / 2
local m1 : RightSB - Stroke * HVContrast - OX
local x2 : RightSB - HalfStroke

View file

@ -15,9 +15,9 @@ glyph-block Marks : begin
### Combining marks
glyph-block-export markExtend markHalfStroke markFine
local markExtend (AccentX * 0.5)
local markHalfStroke : 0.5 * [adviceBlackness2 3.5 3.375 XH]
local markHalfStroke : 0.5 * [adviceBlackness2 3.375 3.5 XH]
local markStress : markHalfStroke * 1.1
local markFine : markHalfStroke * 0.9
local markFine : Math.min (markHalfStroke * 0.9) (0.5 * [adviceBlackness2 3.875 4.25 XH])
glyph-block-export markMiddle
local markMiddle (-Middle)
@ -1045,16 +1045,17 @@ glyph-block Marks : begin
define [HornShape attX attY overshootX overshootY yrP] : glyph-proc
local [object radius hornFine hornStroke startX startY] : HornDim attX attY overshootX overshootY yrP
local swStart : Math.min (radius / 2) ShoulderFine
include : union
RingAt (startX - radius) startY (radius + OX / 2)
RingAt (startX - radius) startY (radius + OX)
dispiro
g4.down.start (startX + OX) (startY) [widths.rhs.heading [Math.min (radius / 2) ShoulderFine] Downward]
g4.down.start (startX + OX) (startY) [widths.rhs.heading swStart Downward]
arcvh
g4.left.mid (startX - radius) (startY - radius) [heading Leftward]
g4.left.mid (startX - radius) (startY - radius) [widths.rhs.heading [mix swStart hornFine 0.25] Leftward]
archv
g4.up.mid (startX - 2 * radius) (startY) [heading Upward]
g4.up.mid (startX - 2 * radius) (startY) [widths.rhs.heading [mix swStart hornFine 0.5] Upward]
arcvh
g4.right.mid (startX - radius) (startY + radius) [heading Rightward]
g4.right.mid (startX - radius) (startY + radius) [widths.rhs.heading [mix swStart hornFine 0.75] Rightward]
archv
g4.down.mid startX startY [widths.rhs.heading hornFine Downward]
quadcontrols.g4 0 0.75 16 : object : blend : lambda [t]

View file

@ -543,7 +543,7 @@ glyph-block Digits-Eight : begin
local EightPr : StrokeWidthBlend 0.85 0.925
define [EightShape top] : begin
local stroke : adviceBlackness2 2.875 2 CAP
local stroke : adviceBlackness2 2 3 CAP
local p 0.96
local l (SB + OX)
local r (RightSB - OX)

View file

@ -258,7 +258,7 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
MkArrow [HookArrowShape 1] [MangleName 'hookarrowdownleft'] [MangleUnicode 0x2926] arrowDiagRSB arrowDiagTop arrowDiagSB arrowDiagBot
do "Half Circle Arrow"
local arcSW : adviceBlackness 4 MosaicWidthScalar
local arcSW : Math.min OperatorStroke [adviceBlackness 4 MosaicWidthScalar]
local headSize : mix arcSW arrowSize 0.5
local hsx0 : HVContrast * arcSW / 2
local hsx : hsx0 + headSize / 2

View file

@ -1452,7 +1452,7 @@ glyph-block Symbol-Punctuation-Percentages : begin
local m : mix l r (1 / 2)
local sma : SmoothA * 0.5 * para.diversityM
local smb : SmoothB * 0.5 * para.diversityM
local sw : adviceBlackness2 5 4 CAP para.diversityM
local sw : adviceBlackness2 4 5 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)]
@ -1475,7 +1475,7 @@ glyph-block Symbol-Punctuation-Percentages : begin
local fill : ((r2 - l1) - gap) / 2
local r1 : l1 + fill
local l2 : r1 + gap
local swp : adviceBlackness 4
local swp : adviceBlackness2 4 5 CAP para.diversityM
include : OShape otop 0 l1 r1 swp sma smb
include : OShape otop 0 l2 r2 swp sma smb
@ -1488,7 +1488,7 @@ glyph-block Symbol-Punctuation-Percentages : begin
local l2 : r1 + gap
local r2 : l2 + fill
local l3 : r2 + gap
local swp : adviceBlackness2 5 6.5 CAP para.diversityM
local swp : adviceBlackness2 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

View file

@ -76,15 +76,16 @@ export : define [calculateMetrics para] : begin
# We will estimate blackness using lower-case 'e'
define DarknessMockWidth : if (Width < HalfUPM) (HalfUPM * [Math.pow (Width / HalfUPM) 0.5]) Width
define DarknessMockWidth2 : HalfUPM * [Math.pow (Width / HalfUPM) 0.5]
define BaseFillRate : 1 / 2 + para.stroke / ([Math.max HalfUPM DarknessMockWidth2] - SB * 2)
define [InverseCrowdedness c] : [Math.tanh c] / c
define [adviceBlackness crowdedness div mul] : begin
define [BaseFillRate con] : 1 / 2 + para.stroke / ([Math.max HalfUPM DarknessMockWidth2] - SB * 2)
define [InverseCrowdedness con cow] : [Math.tanh (cow * [Math.sqrt con])] / (cow * [Math.sqrt con])
define [adviceBlacknessImpl con cow div mul] : begin
local gap : DarknessMockWidth * [fallback div 1] - SB * 2
local shrink : BaseFillRate * [InverseCrowdedness crowdedness]
local shrink : [BaseFillRate con] * [InverseCrowdedness con cow]
return : Math.min para.stroke ([fallback mul 1] * gap * shrink)
define [adviceBlackness cow div mul] : adviceBlacknessImpl HVContrast cow div mul
define [adviceBlackness2 cowX cowY refH div] : Math.min
adviceBlackness cowX (refH / DarknessMockWidth2)
adviceBlackness cowY div
adviceBlacknessImpl HVContrast cowX div
adviceBlacknessImpl 1 cowY (refH / DarknessMockWidth2)
define Stroke : adviceBlackness 2

Binary file not shown.

Before

Width:  |  Height:  |  Size: 374 KiB

After

Width:  |  Height:  |  Size: 375 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 364 KiB

After

Width:  |  Height:  |  Size: 363 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 387 KiB

After

Width:  |  Height:  |  Size: 388 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 KiB

After

Width:  |  Height:  |  Size: 177 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 310 KiB

After

Width:  |  Height:  |  Size: 310 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 965 KiB

After

Width:  |  Height:  |  Size: 972 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 321 KiB

After

Width:  |  Height:  |  Size: 322 KiB

Before After
Before After

View file

@ -26,8 +26,6 @@ plusSize = 0.52 # Size of plus and arith symbols
pictSize = 1.10 # Size of pictograms
arrowHeight = 1.50 # Height of arrows
contrast = 1.11111 # Stroke width contrast.
slopeAngle = 0 # slope angle, in degrees.
derivedSlopeAngle = 10 # Slope angle of derived letters requiring italics

View file

@ -1,17 +1,18 @@
[shapeWeight.blend.400]
stroke = 72 # Primary stroke width
sb = 60 # Primary sidebearings
essx = 1.12 # Proportion of widen of center of "S"
dotsize = 125 # Size of dots
periodsize = 140 # Size of period
stroke = 72 # Primary stroke width
contrast = 1.11 # Stroke width contrast
sb = 60 # Primary sidebearings
essx = 1.12 # Proportion of widen of center of "S"
dotsize = 125 # Size of dots
periodsize = 140 # Size of period
jut = 85 # Length of slab serif
refJut = 85 # Reference JUT, used in `m`
vjut = 145 # Length of vertical slab serif
longjut = 175 # Length of long serifs, like that in `i`.
jut = 85 # Length of slab serif
refJut = 85 # Reference JUT, used in `m`
vjut = 145 # Length of vertical slab serif
longjut = 175 # Length of long serifs, like that in `i`.
smooth = 195 # Vertical arc size in capital letters.
smallsmooth = 200 # Vertical arc size in lowercase letters.
smooth = 195 # Vertical arc size in capital letters.
smallsmooth = 200 # Vertical arc size in lowercase letters.
rbalance = 60
rbalance2 = 15
@ -21,7 +22,7 @@ jbalance = 63
fbalance = 6
onebalance = 30
hook = 155 # Hook depth in most letters.
hook = 155 # Hook depth in most letters.
ahook = 130
shook = 110
jhook = 135
@ -34,115 +35,61 @@ cthinb = 0.5
vtipfine = 0.8
vtipfineSlab = 0.9
[shapeWeight.blend.100]
stroke = 18
contrast = 1.08
sb = 72
essx = 1.12
dotsize = 53
periodsize = 55
jut = 70
vjut = 145
smooth = 195
rhook = 110
rbalance = 60
rbalance2 = 15
cthin = 0.9
cthinb = 0.9
vtipfine = 1
vtipfineSlab = 1
stroke = 18
sb = 72
dotsize = 53
periodsize = 55
[shapeWeight.blend.200]
jut = 75
vjut = 145
smooth = 195
rhook = 110
rbalance = 60
rbalance2 = 15
cthin = 0.75
cthinb = 0.75
vtipfine = 1
vtipfineSlab = 1
stroke = 36
sb = 68
dotsize = 70
periodsize = 77
[shapeWeight.blend.300]
jut = 80
vjut = 145
smooth = 195
rhook = 110
rbalance = 60
rbalance2 = 15
cthin = 0.75
cthinb = 0.5
vtipfine = 0.9
vtipfineSlab = 0.9
stroke = 56
sb = 64
dotsize = 100
periodsize = 115
[shapeWeight.blend.500]
essx = 1.12
jut = 85
vjut = 157
smooth = 200
rhook = 110
rbalance = 60
rbalance2 = 15
stroke = 84
sb = 57
dotsize = 135
periodsize = 160
[shapeWeight.blend.600]
essx = 1.07
jut = 85
vjut = 170
smooth = 203
rhook = 110
rbalance = 55
rbalance2 = 20
stroke = 97
sb = 54
dotsize = 145
periodsize = 168
# Interpolated
[shapeWeight.blend.700]
essx = 1.06
jut = 89
vjut = 179
smooth = 206
rhook = 95
rbalance = 52
rbalance2 = 23
stroke = 106
sb = 50
dotsize = 157
periodsize = 180
# Interpolated
[shapeWeight.blend.800]
essx = 1.05
jut = 96
vjut = 189
smooth = 210
rhook = 97
rbalance = 50
rbalance2 = 25
stroke = 116
sb = 45
dotsize = 167
periodsize = 188
# Interpolated
[shapeWeight.blend.900]
essx = 1.03
jut = 100
vjut = 199
smooth = 215
rhook = 105
rbalance = 50
rbalance2 = 25
stroke = 126
stroke = 116
contrast = 1.16
sb = 42
essx = 1.05
dotsize = 180
periodsize = 200
jut = 95
vjut = 200
smooth = 215
rbalance = 50
rbalance2 = 25