Revamp the weight grades
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Before Width: | Height: | Size: 374 KiB After Width: | Height: | Size: 375 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 364 KiB After Width: | Height: | Size: 363 KiB |
Before Width: | Height: | Size: 387 KiB After Width: | Height: | Size: 388 KiB |
Before Width: | Height: | Size: 176 KiB After Width: | Height: | Size: 177 KiB |
Before Width: | Height: | Size: 310 KiB After Width: | Height: | Size: 310 KiB |
Before Width: | Height: | Size: 965 KiB After Width: | Height: | Size: 972 KiB |
Before Width: | Height: | Size: 321 KiB After Width: | Height: | Size: 322 KiB |
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|