Merge pull request #2757 from jmcwilliams403/UnicodeWeightGrade

Refine glyph shape of Information Source (`U+2139`).
This commit is contained in:
Belleve 2025-05-03 10:26:50 -10:00 committed by GitHub
commit 85c49f6e6d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 94 additions and 88 deletions

5
changes/33.2.3.md Normal file
View file

@ -0,0 +1,5 @@
* Refine shape of the following characters:
- INFORMATION SOURCE (`U+2139`).
- TRIANGLE-HEADED RIGHTWARDS ARROW (`U+279D`).
- HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW (`U+279E`).
- MATHEMATICAL DOUBLE-STRUCK CAPITAL B (`U+1D539`).

View file

@ -39,7 +39,7 @@ export : define [calculateMetrics para] : begin
# Transform constructors
define [Italify angle shift] : begin
local slope : Math.tan ([fallback angle para.slopeAngle] / 180 * Math.PI)
local slope : Math.tan : [fallback angle para.slopeAngle] / 180 * Math.PI
return : new Transform 1 slope 0 1 [fallback shift : (-slope) * SymbolMid] 0
define [Upright angle shift] [Italify angle shift :.inverse]
define [Scale sx sy] : new Transform sx 0 0 [fallback sy sx] 0 0
@ -49,16 +49,16 @@ export : define [calculateMetrics para] : begin
define GlobalTransform : Italify para.slopeAngle
define TanSlope GlobalTransform.xy
define SinSlope : Math.sin (para.slopeAngle / 180 * Math.PI)
define CosSlope : Math.cos (para.slopeAngle / 180 * Math.PI)
define SinSlope : Math.sin : para.slopeAngle / 180 * Math.PI
define CosSlope : Math.cos : para.slopeAngle / 180 * Math.PI
define HVContrast : Contrast * CosSlope + SinSlope * TanSlope
define [HSwToV sw] : sw * HVContrast
define [VSwToH sw] : sw / HVContrast
# Orient parameters
define Upward : new Point Point.Type.Corner (-HVContrast) 0
define Downward : new Point Point.Type.Corner HVContrast 0
define Rightward : new Point Point.Type.Corner 0 1
define Downward : new Point Point.Type.Corner (+HVContrast) 0
define Rightward : new Point Point.Type.Corner 0 (+1)
define Leftward : new Point Point.Type.Corner 0 (-1)
# Style parameters
@ -77,7 +77,7 @@ export : define [calculateMetrics para] : begin
define SmallArchDepth para.smallArchDepth
# Weight Control
define BaseFillRate : Math.min 0.95 : 2 * HVContrast * para.stroke / (Width - SB * 2)
define BaseFillRate : Math.min 0.95 : [HSwToV : 2 * para.stroke] / (Width - SB * 2)
define WeightControlFactor : [Math.atanh BaseFillRate] / BaseFillRate
define [StrokeWeightControlSigmoid x] : Math.tanh : WeightControlFactor * x
@ -112,22 +112,22 @@ export : define [calculateMetrics para] : begin
define AccentStackOffset para.accentStackOffset
define AccentWidth para.accentWidth
define AccentClearance para.accentClearance
define AccentHeight para.accentHeight
define AccentHeight para.accentHeight
define CThin : fallback para.cthin 0.75
define CThinB : fallback para.cthinb 0.5
define CThin : fallback para.cthin 0.75
define CThinB : fallback para.cthinb 0.50
define SLAB para.slab
define [IBalance df] : df.adws * df.adws * [fallback para.ibalance (LongJut * 0.04)] # Serifed
define [IBalance2 df] : df.adws * [fallback para.ibalance2 (LongJut * 0.14)] # Hooky, Tailed
define JBalance : fallback para.jbalance 0
define JBalance2 : fallback para.jbalance2 (QuarterStroke + LongJut * 0.04)
define TBalance : fallback para.tbalance JBalance
define JBalance : fallback para.jbalance 0
define JBalance2 : fallback para.jbalance2 (LongJut * 0.04 + QuarterStroke)
define TBalance : fallback para.tbalance JBalance
define TBalance2 : fallback para.tbalance2 TBalance
define RBalance : fallback para.rbalance (JBalance * 0.3)
define RBalance2 : fallback para.rbalance2 0
define FBalance : fallback para.fbalance 0
define FBalance : fallback para.fbalance 0
define OneBalance : fallback para.onebalance 0
# derived metrics
@ -190,11 +190,12 @@ export : define [calculateMetrics para] : begin
define GeometryStroke : AdviceStroke 4
define ShoulderFine : Math.min (Stroke * para.shoulderFineMin) : AdviceStroke 24
define [UnicodeWeightGrade n s] : begin
define kw : 10 - s - n / 200
define [mulPow ss] : (0.25 + ss / 8) * [StrokeWidthBlend 2 1]
define kMul : [Math.pow (n / 100) : mulPow s] / [Math.pow 4 : mulPow 2]
define kAdj : GeometryStroke / [AdviceStroke 6]
define [UnicodeWeightGrade n _scl _swRef] : begin
define scl : fallback _scl 1
define kw : 10 - scl - n / 200
define [mulPow s] : (0.25 + s / 8) * [StrokeWidthBlend 2 1]
define kMul : [Math.pow (n / 100) : mulPow scl] / [Math.pow 4 : mulPow 2]
define kAdj : [fallback _swRef Stroke] / [AdviceStroke 6]
return : kMul * kAdj * [AdviceStroke kw]
define [AdviceGlottalStopArchDepth y sign] : begin

View file

@ -987,8 +987,8 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
define [SquiggleArrowBar kL kR] : begin
return : spiro-outline
SquiggleArrowBarSide 0.3 (-0.25) arrowSB arrowRSB kL kR (SymbolMid + arrowSw / 2)
[SquiggleArrowBarSide 0.25 (-0.3) arrowSB arrowRSB kL kR (SymbolMid - arrowSw / 2)].reverse
SquiggleArrowBarSide 0.3 (-0.25) arrowSB arrowRSB kL kR (SymbolMid + halfArrowSw)
[SquiggleArrowBarSide 0.25 (-0.3) arrowSB arrowRSB kL kR (SymbolMid - halfArrowSw)].reverse
create-glyph [MangleName 'squiggleArrowLeft'] [MangleUnicode 0x21DC] : glyph-proc
set-width MosaicWidth
@ -1006,8 +1006,8 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
define [LongSquiggleArrowBar kL kR] : begin
return : spiro-outline
SquiggleArrowBarSide 0.3 (-0.25) l r kL kR (SymbolMid + arrowSw / 2)
[SquiggleArrowBarSide 0.25 (-0.3) l r kL kR (SymbolMid - arrowSw / 2)].reverse
SquiggleArrowBarSide 0.3 (-0.25) l r kL kR (SymbolMid + halfArrowSw)
[SquiggleArrowBarSide 0.25 (-0.3) l r kL kR (SymbolMid - halfArrowSw)].reverse
create-glyph 'longSquiggleArrowLeft' 0x2B33 : glyph-proc
set-width MosaicWidth
@ -1062,7 +1062,7 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
MkArrow [ThickArrowShape 'blackSemiHookR'] [MangleName 'uni27A6'] [MangleUnicode 0x27A6] arrowSB SymbolMid arrowRSB SymbolMid
do "Barb arrows"
define BarbHeavyWideHeaded : BarbArrowShape 0.25 : UnicodeWeightGrade 900 MosaicWidthScalar
define BarbHeavyWideHeaded : BarbArrowShape 0.25 : UnicodeWeightGrade 900 MosaicWidthScalar GeometryStroke
MkArrow BarbHeavyWideHeaded [MangleName 'uni2794'] [MangleUnicode 0x2794] arrowSB SymbolMid arrowRSB SymbolMid
define [BarbGroup prefix b k w] : begin
@ -1105,18 +1105,18 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
MkArrow [WeightedTrigArrowShape sw w h] [MangleName "\(prefix)Right"] [MangleUnicode : b + 2] arrowSB SymbolMid arrowRSB SymbolMid
MkArrow [WeightedTrigArrowShape sw w h] [MangleName "\(prefix)Down"] [MangleUnicode : b + 3] arrowMidX arrowTop arrowMidX arrowBot
TrigGroup 'trigArrowSmallHead' 0x1F800 [UnicodeWeightGrade 300 MosaicWidthScalar] Size.Small.size
TrigGroup 'trigArrowMediumHead' 0x1F804 [UnicodeWeightGrade 500 MosaicWidthScalar] Size.Medium.size
TrigGroup 'trigArrowLargeHead' 0x1F808 [UnicodeWeightGrade 700 MosaicWidthScalar] Size.Large.size
TrigGroup 'trigArrowSmallEqHead' 0x1F810 [UnicodeWeightGrade 300 MosaicWidthScalar] Size.Small.size (Size.Small.size * eqHeight)
TrigGroup 'trigArrowEqHead' 0x1F814 [UnicodeWeightGrade 400 MosaicWidthScalar] 1 eqHeight
TrigGroup 'trigArrowEqHeadHeavy' 0x1F818 [UnicodeWeightGrade 500 MosaicWidthScalar] 1 eqHeight
TrigGroup 'trigArrowLargeEqHeadHeavy' 0x1F81C [UnicodeWeightGrade 700 MosaicWidthScalar] Size.Large.size (Size.Large.size * eqHeight)
TrigGroup 'trigArrowNarrowShaft' 0x1F820 [UnicodeWeightGrade 300 MosaicWidthScalar] 1
TrigGroup 'trigArrowMediumShaft' 0x1F824 [UnicodeWeightGrade 500 MosaicWidthScalar] 1
TrigGroup 'trigArrowBoldShaft' 0x1F828 [UnicodeWeightGrade 700 MosaicWidthScalar] 1
TrigGroup 'trigArrowHeavyShaft' 0x1F82C [UnicodeWeightGrade 900 MosaicWidthScalar] 1
TrigGroup 'trigArrowVeryHeavyShaft' 0x1F830 [UnicodeWeightGrade 1000 MosaicWidthScalar] 1
TrigGroup 'trigArrowSmallHead' 0x1F800 [UnicodeWeightGrade 300 MosaicWidthScalar GeometryStroke] Size.Small.size
TrigGroup 'trigArrowMediumHead' 0x1F804 [UnicodeWeightGrade 500 MosaicWidthScalar GeometryStroke] Size.Medium.size
TrigGroup 'trigArrowLargeHead' 0x1F808 [UnicodeWeightGrade 700 MosaicWidthScalar GeometryStroke] Size.Large.size
TrigGroup 'trigArrowSmallEqHead' 0x1F810 [UnicodeWeightGrade 300 MosaicWidthScalar GeometryStroke] Size.Small.size (Size.Small.size * eqHeight)
TrigGroup 'trigArrowEqHead' 0x1F814 [UnicodeWeightGrade 400 MosaicWidthScalar GeometryStroke] 1 eqHeight
TrigGroup 'trigArrowEqHeadHeavy' 0x1F818 [UnicodeWeightGrade 500 MosaicWidthScalar GeometryStroke] 1 eqHeight
TrigGroup 'trigArrowLargeEqHeadHeavy' 0x1F81C [UnicodeWeightGrade 700 MosaicWidthScalar GeometryStroke] Size.Large.size (Size.Large.size * eqHeight)
TrigGroup 'trigArrowNarrowShaft' 0x1F820 [UnicodeWeightGrade 300 MosaicWidthScalar GeometryStroke] 1
TrigGroup 'trigArrowMediumShaft' 0x1F824 [UnicodeWeightGrade 500 MosaicWidthScalar GeometryStroke] 1
TrigGroup 'trigArrowBoldShaft' 0x1F828 [UnicodeWeightGrade 700 MosaicWidthScalar GeometryStroke] 1
TrigGroup 'trigArrowHeavyShaft' 0x1F82C [UnicodeWeightGrade 900 MosaicWidthScalar GeometryStroke] 1
TrigGroup 'trigArrowVeryHeavyShaft' 0x1F830 [UnicodeWeightGrade 1000 MosaicWidthScalar GeometryStroke] 1
TrigGroup 'fingerPost' 0x1F834 (2 * (trigArrowSize - o)) 1
TrigGroup 'trigArrowHeavy' 0x1F844 (2 * (trigArrowSize - o)) kMedium
@ -1124,12 +1124,12 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
TrigGroupSquat 'trigArrowCompressed' 0x1F83C (2 * Geom.Size * Size.Small.size) kMedium kSmall
TrigGroupSquat 'trigArrowCompressedHeavy' 0x1F840 (2 * Geom.Size * Size.MediumSmall.size) kMedium kSmall
MkArrow [WeightedTrigArrowShape [UnicodeWeightGrade 300 MosaicWidthScalar] 1] [MangleName "uni279D"] [MangleUnicode 0x279D] arrowSB SymbolMid arrowRSB SymbolMid
MkArrow [WeightedTrigArrowShape [UnicodeWeightGrade 700 MosaicWidthScalar] 1] [MangleName "uni279E"] [MangleUnicode 0x279E] arrowSB SymbolMid arrowRSB SymbolMid
MkArrow [WeightedTrigArrowShape [UnicodeWeightGrade 400 MosaicWidthScalar GeometryStroke] 1] [MangleName "uni279D"] [MangleUnicode 0x279D] arrowSB SymbolMid arrowRSB SymbolMid
MkArrow [WeightedTrigArrowShape [UnicodeWeightGrade 900 MosaicWidthScalar GeometryStroke] 1] [MangleName "uni279E"] [MangleUnicode 0x279E] arrowSB SymbolMid arrowRSB SymbolMid
MkArrow [WeightedTrigArrowShape (2 * Geom.Size * Size.Medium.size) kMedium kSmall] [MangleName "trigArrowSquatBlackRight"] [MangleUnicode 0x27A7] (arrowMidX - squatRange) SymbolMid (arrowMidX + squatRange) SymbolMid
do "Round-stroke arrows"
define sw : UnicodeWeightGrade 900 MosaicWidthScalar
define sw : UnicodeWeightGrade 900 MosaicWidthScalar GeometryStroke
MkArrow [RoundArrow.Shape sw] [MangleName 'heavyRoundArrowRight'] [MangleUnicode 0x279C] arrowSB SymbolMid arrowRSB SymbolMid
do "Sans-serif Arrows"

View file

@ -37,8 +37,8 @@ glyph-block Symbol-Geometric-Ballot-Box : for-width-kinds WideWidth1
define bbGap : Math.max (Geom.Size / 6) [AdviceStroke 5 Geom.Scalar]
define swMark : Math.min GeometryStroke : AdviceStroke 5 Geom.Scalar
define lightSwMark : UnicodeWeightGrade 300 Geom.Scalar
define boldSwMark : UnicodeWeightGrade 700 Geom.Scalar
define lightSwMark : UnicodeWeightGrade 300 Geom.Scalar GeometryStroke
define boldSwMark : UnicodeWeightGrade 700 Geom.Scalar GeometryStroke
define bbSize : Geom.Size - bbGap - swMark * 0.75
define circXSize : (Geom.Size - bbGap) * Math.SQRT1_2 - swMark * 0.75

View file

@ -237,7 +237,7 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1
do "Diamond minus white X"
create-glyph [MangleName "blackDiamondMinusWhiteX"] [MangleUnicode 0x2756] : glyph-proc
set-width Geom.Width
local gap : Math.max (0.2 * Geom.Size) [UnicodeWeightGrade 400 Geom.Scalar]
local gap : Math.max (0.2 * Geom.Size) [UnicodeWeightGrade 400 Geom.Scalar GeometryStroke]
include : difference
refer-glyph : MangleName "blackDiamond"
dispiro

View file

@ -136,12 +136,12 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
StdBlackShape SquareShape 'blackSquare' 0x25A0
StdWhiteShape SquareShape 'whiteSquare' 0x25A1
StdWhiteShape SquareShape 'lightWhiteSquare' 0x1F78E {.sw [UnicodeWeightGrade 300 Geom.Scalar]}
StdWhiteShape SquareShape 'mediumWhiteSquare' 0x1F78F {.sw [UnicodeWeightGrade 500 Geom.Scalar]}
StdWhiteShape SquareShape 'boldWhiteSquare' 0x1F790 {.sw [UnicodeWeightGrade 700 Geom.Scalar]}
StdWhiteShape SquareShape 'heavyWhiteSquare' 0x1F791 {.sw [UnicodeWeightGrade 900 Geom.Scalar]}
StdWhiteShape SquareShape 'veryHeavyWhiteSquare' 0x1F792 {.sw [UnicodeWeightGrade 1000 Geom.Scalar]}
StdWhiteShape SquareShape 'exHeavyWhiteSquare' 0x1F793 {.sw [UnicodeWeightGrade 1100 Geom.Scalar]}
StdWhiteShape SquareShape 'lightWhiteSquare' 0x1F78E {.sw [UnicodeWeightGrade 300 Geom.Scalar GeometryStroke]}
StdWhiteShape SquareShape 'mediumWhiteSquare' 0x1F78F {.sw [UnicodeWeightGrade 500 Geom.Scalar GeometryStroke]}
StdWhiteShape SquareShape 'boldWhiteSquare' 0x1F790 {.sw [UnicodeWeightGrade 700 Geom.Scalar GeometryStroke]}
StdWhiteShape SquareShape 'heavyWhiteSquare' 0x1F791 {.sw [UnicodeWeightGrade 900 Geom.Scalar GeometryStroke]}
StdWhiteShape SquareShape 'veryHeavyWhiteSquare' 0x1F792 {.sw [UnicodeWeightGrade 1000 Geom.Scalar GeometryStroke]}
StdWhiteShape SquareShape 'exHeavyWhiteSquare' 0x1F793 {.sw [UnicodeWeightGrade 1100 Geom.Scalar GeometryStroke]}
StdBlackShape SquareShape 'blackLargeSquare' 0x2B1B Size.Large
StdBlackShape SquareShape 'blackMediumSquare' 0x25FC Size.Medium
@ -161,7 +161,7 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
StdWhiteContainingBlackShape SquareShape 'whiteSquareWithCenter' 0x25A3
StdWhiteContainingBlackShape SquareShape 'whiteSquareContainingBlackVerySmallSquare' 0x1F794 Size.TinyInner
StdWhiteContainingBlackShape SquareShape 'whiteSquareContainingBlackMediumSquare' 0x1F795 Size.MediumInner
StdWhiteContainingBlackShape SquareShape 'heavyWhiteSquareContainingBlackMediumSquare' 0x1CE05 : Object.assign Size.TinyInner {.sw [UnicodeWeightGrade 900 Geom.Scalar]}
StdWhiteContainingBlackShape SquareShape 'heavyWhiteSquareContainingBlackMediumSquare' 0x1CE05 : Object.assign Size.TinyInner {.sw [UnicodeWeightGrade 900 Geom.Scalar GeometryStroke]}
StdGeomTargetShape SquareShape 'squareTarget' 0x1F796
@ -447,7 +447,7 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
g4 [mix cx [mix cx (cx - size) 0.5] p] [mix cy [mix (cy + size) cy 0.5] p]
close
StdWhiteShape DiamondLazongeShape 'whiteConcaveSidedDiamond' 0x27E1 [Object.assign {.} Size.Oblique {.sw (Math.SQRT2 * [UnicodeWeightGrade 600 Geom.Scalar])}]
StdWhiteShape DiamondLazongeShape 'whiteConcaveSidedDiamond' 0x27E1 [Object.assign {.} Size.Oblique {.sw (Math.SQRT2 * [UnicodeWeightGrade 600 Geom.Scalar GeometryStroke])}]
StdBlackShape DiamondLazongeShape 'lightFourPointedBlackCusp' 0x2BCC Size.Oblique
StdWhiteShape DiamondLazongeShape 'whiteFourPointedBlackCusp' 0x2BCE Size.ObliqueSA
@ -472,12 +472,12 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
StdBlackShape CircleShape 'blackCircle' 0x25CF
StdWhiteShape CircleShape 'whiteCircle' 0x25CB
StdWhiteShape CircleShape 'mediumWhiteCircle' 0x1F785 {.sw [UnicodeWeightGrade 600 Geom.Scalar]}
StdWhiteShape CircleShape 'boldWhiteCircle' 0x1F786 {.sw [UnicodeWeightGrade 700 Geom.Scalar]}
StdWhiteShape CircleShape 'heavyWhiteCircle' 0x1F787 {.sw [UnicodeWeightGrade 900 Geom.Scalar]}
StdWhiteShape CircleShape 'veryHeavyWhiteCircle' 0x1F788 {.sw [UnicodeWeightGrade 1000 Geom.Scalar]}
StdWhiteShape CircleShape 'exHeavyWhiteCircle' 0x1F789 {.sw [UnicodeWeightGrade 1100 Geom.Scalar]}
StdWhiteShape CircleShape 'heavyLargeCircle' 0x2B55 [Object.assign {.sw [UnicodeWeightGrade 900 Geom.Scalar]} Size.Large]
StdWhiteShape CircleShape 'mediumWhiteCircle' 0x1F785 {.sw [UnicodeWeightGrade 600 Geom.Scalar GeometryStroke]}
StdWhiteShape CircleShape 'boldWhiteCircle' 0x1F786 {.sw [UnicodeWeightGrade 700 Geom.Scalar GeometryStroke]}
StdWhiteShape CircleShape 'heavyWhiteCircle' 0x1F787 {.sw [UnicodeWeightGrade 900 Geom.Scalar GeometryStroke]}
StdWhiteShape CircleShape 'veryHeavyWhiteCircle' 0x1F788 {.sw [UnicodeWeightGrade 1000 Geom.Scalar GeometryStroke]}
StdWhiteShape CircleShape 'exHeavyWhiteCircle' 0x1F789 {.sw [UnicodeWeightGrade 1100 Geom.Scalar GeometryStroke]}
StdWhiteShape CircleShape 'heavyLargeCircle' 0x2B55 [Object.assign {.sw [UnicodeWeightGrade 900 Geom.Scalar GeometryStroke]} Size.Large]
StdBlackShape CircleShape 'blackVerySmallCircle' null Size.VerySmall
StdBlackShape CircleShape 'blackSmallCircle' null Size.Small
@ -572,7 +572,7 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
define [PentagramSw c] {.sw ([AdviceStroke c : Math.sqrt Geom.Scalar] * [Math.sqrt 5])}
StdBlackShape [RegularPolygonFill 5 2 1.1 0] 'blackStar' 0x2605
StdWhiteShape [RegularPolygonFill 5 2 1.1 0] 'whiteStar' 0x2606 [PentagramSw 5.5]
StdWhiteShape [RegularPolygonFill 5 2 1.1 0] 'lightWhiteStar' null {.sw ([UnicodeWeightGrade 300 : Math.sqrt Geom.Scalar] * [Math.sqrt 5])}
StdWhiteShape [RegularPolygonFill 5 2 1.1 0] 'lightWhiteStar' null {.sw ([UnicodeWeightGrade 300 [Math.sqrt Geom.Scalar] GeometryStroke] * [Math.sqrt 5])}
StdWhiteShape [RegularPolygonFill 5 2 1.1 0] 'whiteMediumStar' 0x2B50 [Object.assign [PentagramSw 7] Size.Medium]
StdBlackShape [RegularPolygonFill 5 2 1.1 0] 'blackSmallStar' 0x2B51 Size.Small
StdWhiteShape [RegularPolygonFill 5 2 1.1 0] 'whiteSmallStar' 0x2B52 [Object.assign [PentagramSw 3] Size.Small]

View file

@ -97,11 +97,11 @@ glyph-block Symbol-Geometric-Rotational : begin
for-width-kinds WideWidth1 : begin
define Geom : GeometricDim MosaicUnitWidth MosaicWidth
define lightSw : UnicodeWeightGrade 300 Geom.Scalar
define normalSw : UnicodeWeightGrade 400 Geom.Scalar
define semiBoldSw : UnicodeWeightGrade 600 Geom.Scalar
define boldSw : UnicodeWeightGrade 700 Geom.Scalar
define heavySw : UnicodeWeightGrade 900 Geom.Scalar
define lightSw : UnicodeWeightGrade 300 Geom.Scalar GeometryStroke
define normalSw : UnicodeWeightGrade 400 Geom.Scalar GeometryStroke
define semiBoldSw : UnicodeWeightGrade 600 Geom.Scalar GeometryStroke
define boldSw : UnicodeWeightGrade 700 Geom.Scalar GeometryStroke
define heavySw : UnicodeWeightGrade 900 Geom.Scalar GeometryStroke
define [for-rotational-pointing sides phase mag gap fn] : begin
local shapes {}

View file

@ -140,7 +140,7 @@ glyph-block Symbol-Geometric-Shaded-Narrow : for-width-kinds WideWidth4
define Geom : GeometricDim MosaicUnitWidth MosaicWidth
create-glyph [MangleName 'symbolForDeleteFormTwo'] [MangleUnicode 0x2425] : glyph-proc
local sw : UnicodeWeightGrade 300 Geom.Scalar
local sw : UnicodeWeightGrade 300 Geom.Scalar GeometryStroke
local gap : 0.75 * sw + [Math.max (Geom.Size * 0.125) (sw / 2)]
set-width Geom.Width
include : intersection

View file

@ -32,18 +32,18 @@ glyph-block Symbol-Geometric-Stars : for-width-kinds WideWidth1
Geom.MidY + Geom.Size * mag * [Math.cos angle]
include : spiro-outline corners
define extThinSw : UnicodeWeightGrade 100 Geom.Scalar
define extLightSw : UnicodeWeightGrade 200 Geom.Scalar
define lightSw : UnicodeWeightGrade 300 Geom.Scalar
define semiLightSw : UnicodeWeightGrade 350 Geom.Scalar
define normalSw : UnicodeWeightGrade 400 Geom.Scalar
define mediumSw : UnicodeWeightGrade 500 Geom.Scalar
define semiBoldSw : UnicodeWeightGrade 600 Geom.Scalar
define boldSw : UnicodeWeightGrade 700 Geom.Scalar
define exBoldSw : UnicodeWeightGrade 800 Geom.Scalar
define heavySw : UnicodeWeightGrade 900 Geom.Scalar
define veryHeavySw : UnicodeWeightGrade 1000 Geom.Scalar
define exHeavySw : UnicodeWeightGrade 1100 Geom.Scalar
define extThinSw : UnicodeWeightGrade 100 Geom.Scalar GeometryStroke
define extLightSw : UnicodeWeightGrade 200 Geom.Scalar GeometryStroke
define lightSw : UnicodeWeightGrade 300 Geom.Scalar GeometryStroke
define semiLightSw : UnicodeWeightGrade 350 Geom.Scalar GeometryStroke
define normalSw : UnicodeWeightGrade 400 Geom.Scalar GeometryStroke
define mediumSw : UnicodeWeightGrade 500 Geom.Scalar GeometryStroke
define semiBoldSw : UnicodeWeightGrade 600 Geom.Scalar GeometryStroke
define boldSw : UnicodeWeightGrade 700 Geom.Scalar GeometryStroke
define exBoldSw : UnicodeWeightGrade 800 Geom.Scalar GeometryStroke
define heavySw : UnicodeWeightGrade 900 Geom.Scalar GeometryStroke
define veryHeavySw : UnicodeWeightGrade 1000 Geom.Scalar GeometryStroke
define exHeavySw : UnicodeWeightGrade 1100 Geom.Scalar GeometryStroke
define AsteriskCfg : list
* { .name 'saltire' .unicode 0x2613 .sides 4 .phase (1/8) .sw normalSw }

View file

@ -200,6 +200,7 @@ glyph-block Symbol-Letter : begin
glyph-block-import Common-Derivatives
glyph-block-import Letter-Latin-X : XStrand
glyph-block-import Letter-Shared-Shapes : FlatHookDepth
glyph-block-import Mark-Above : aboveMarkMid
alias 'eulerConst' 0x2107 'latn/Epsilon'
alias 'scruple' 0x2108 'cyrl/E'
@ -334,12 +335,12 @@ glyph-block Symbol-Letter : begin
create-glyph 'informationSource' 0x2139 : glyph-proc
include : MarkSet.b
local sw : UnicodeWeightGrade 900 1
local sw : clamp para.canonicalStrokeWidthMin para.canonicalStrokeWidthMax : UnicodeWeightGrade 900
include : VBar.m Middle 0 XH sw
include : HSerif.lt (Middle - [HSwToV : 0.5 * sw]) XH (LongJut / 2)
include : HSerif.lb (Middle - [HSwToV : 0.5 * sw]) 0 (LongJut / 2)
include : HSerif.rb (Middle + [HSwToV : 0.5 * sw]) 0 (LongJut / 2)
include : DotAt Middle (XH + AccentStackOffset) (DotRadius * sw / Stroke)
include : DotAt Middle aboveMarkMid (DotRadius * sw / Stroke)
turned 'turnAmpersand' 0x214B 'ampersand' Middle (CAP / 2)

View file

@ -11,9 +11,8 @@ glyph-block Symbol-Pictograph-Checking-Marks : begin
for-width-kinds WideWidth1 : do
define Geom : GeometricDim MosaicUnitWidth MosaicWidth
define lightSw : UnicodeWeightGrade 300 Geom.Scalar
# define mediumSw : UnicodeWeightGrade 500 Geom.Scalar
define heavySw : UnicodeWeightGrade 900 Geom.Scalar
define lightSw : UnicodeWeightGrade 300 Geom.Scalar GeometryStroke
define heavySw : UnicodeWeightGrade 900 Geom.Scalar GeometryStroke
define ptMaxWidth : MosaicWidth - SB
define ptHeight0 : 1.5 * (Width - SB / 2) * ((MosaicWidth / MosaicUnitWidth) ** (1 / 4))
@ -70,9 +69,9 @@ glyph-block Symbol-Pictograph-Checking-Marks : begin
do "Decorative angular brackets"
define Geom : GeometricDim Width Width
define mediumSw : UnicodeWeightGrade 500 Geom.Scalar
define heavySw : UnicodeWeightGrade 900 Geom.Scalar
define xHeavySw : UnicodeWeightGrade 1100 Geom.Scalar
define mediumSw : UnicodeWeightGrade 500 Geom.Scalar GeometryStroke
define heavySw : UnicodeWeightGrade 900 Geom.Scalar GeometryStroke
define xHeavySw : UnicodeWeightGrade 1100 Geom.Scalar GeometryStroke
define HeightConfig : object
# suffix width scale height scale

View file

@ -16,9 +16,9 @@ glyph-block Symbol-Geometric-Clock : for-width-kinds WideWidth1
define pMin 0.8
define pSec 0.9
define extLightSw : UnicodeWeightGrade 200 Geom.Scalar
define lightSw : UnicodeWeightGrade 300 Geom.Scalar
define mediumSw : UnicodeWeightGrade 500 Geom.Scalar
define extLightSw : UnicodeWeightGrade 200 Geom.Scalar GeometryStroke
define lightSw : UnicodeWeightGrade 300 Geom.Scalar GeometryStroke
define mediumSw : UnicodeWeightGrade 500 Geom.Scalar GeometryStroke
define dotSize : Math.max (0.6 * mediumSw) (0.1 * Geom.Size)

View file

@ -13,9 +13,9 @@ glyph-block Symbol-Cross : for-width-kinds WideWidth1
define Geom : GeometricDim MosaicUnitWidth MosaicWidth
define Size : GeometricSizes Geom
define normalSw : UnicodeWeightGrade 400 Geom.Scalar
define mediumSw : UnicodeWeightGrade 500 Geom.Scalar
define heavySw : UnicodeWeightGrade 900 Geom.Scalar
define normalSw : UnicodeWeightGrade 400 Geom.Scalar GeometryStroke
define mediumSw : UnicodeWeightGrade 500 Geom.Scalar GeometryStroke
define heavySw : UnicodeWeightGrade 900 Geom.Scalar GeometryStroke
define pBottom 2
define pShortBar 0.6