Remove concept "quasi-proportional grade"; Change QP into a spacing grade.

This commit is contained in:
be5invis 2020-12-27 15:07:03 -08:00
parent abed5aba95
commit 5b02c9e02c
7 changed files with 24 additions and 32 deletions

View file

@ -454,10 +454,10 @@ inherits = "ss14"
[buildPlans.iosevka-aile] [buildPlans.iosevka-aile]
family = "Iosevka Aile" family = "Iosevka Aile"
desc = "Sans-serif" desc = "Sans-serif"
spacing = "quasi-proportional"
no-cv-ss = true no-cv-ss = true
no-ligation = true no-ligation = true
snapshotFamily = 'iosevka-aile' snapshotFamily = 'iosevka-aile'
quasiProportionalDiversity = 2
[buildPlans.iosevka-aile.variants.design] [buildPlans.iosevka-aile.variants.design]
at = 'fourfold' at = 'fourfold'
@ -512,11 +512,11 @@ css = "normal"
[buildPlans.iosevka-etoile] [buildPlans.iosevka-etoile]
family = "Iosevka Etoile" family = "Iosevka Etoile"
desc = "Slab-serif" desc = "Slab-serif"
spacing = "quasi-proportional"
serifs = 'slab' serifs = 'slab'
no-cv-ss = true no-cv-ss = true
no-ligation = true no-ligation = true
snapshotFamily = 'iosevka-etoile' snapshotFamily = 'iosevka-etoile'
quasiProportionalDiversity = 1
[buildPlans.iosevka-etoile.variants.design] [buildPlans.iosevka-etoile.variants.design]
at = 'fourfold' at = 'fourfold'
@ -537,10 +537,10 @@ css = "normal"
[buildPlans.iosevka-sparkle] [buildPlans.iosevka-sparkle]
family = "Iosevka Sparkle" family = "Iosevka Sparkle"
desc = "Hybrid, like iA Writers Duo" desc = "Hybrid, like iA Writers Duo"
spacing = "quasi-proportional"
no-cv-ss = true no-cv-ss = true
no-ligation = true no-ligation = true
snapshotFamily = 'iosevka-sparkle' snapshotFamily = 'iosevka-sparkle'
quasiProportionalDiversity = 1
[buildPlans.iosevka-sparkle.variants.design] [buildPlans.iosevka-sparkle.variants.design]
at = 'fourfold' at = 'fourfold'

View file

@ -497,7 +497,7 @@ glyph-block Autobuild-Transformed-Mathematical : begin
define [tfSansItalic a] : begin [tfSans a] [tfItalic a] define [tfSansItalic a] : begin [tfSans a] [tfItalic a]
define [tfSansBoldItalic a] : begin [tfSans a] [tfBold a] [tfItalic a] define [tfSansBoldItalic a] : begin [tfSans a] [tfBold a] [tfItalic a]
define [tfTypeWriter a] : begin define [tfTypeWriter a] : begin
set a.shape.quasiProportionalDiversity 0 set a.shape.isQuasiProportional false
if (a.derivingVariants && a.derivingVariants.mathtt) if (a.derivingVariants && a.derivingVariants.mathtt)
set a.variants a.derivingVariants.mathtt set a.variants a.derivingVariants.mathtt
@ -581,7 +581,7 @@ glyph-block Autobuild-Transformed-Mathematical : begin
CreateMathAliasable SLAB 'mathsz' 'mathbi' tfSansBoldItalic 0x1D7AA LowerGreek CreateMathAliasable SLAB 'mathsz' 'mathbi' tfSansBoldItalic 0x1D7AA LowerGreek
# Math Typewriter # Math Typewriter
local doTypewriter : para.quasiProportionalDiversity > 0 local doTypewriter : not para.isQuasiProportional
CreateMathAliasable doTypewriter 'mathtt' null tfTypeWriter 0x1D670 UpperLatin CreateMathAliasable doTypewriter 'mathtt' null tfTypeWriter 0x1D670 UpperLatin
CreateMathAliasable doTypewriter 'mathtt' null tfTypeWriter 0x1D68A LowerLatin CreateMathAliasable doTypewriter 'mathtt' null tfTypeWriter 0x1D68A LowerLatin
CreateMathAliasable doTypewriter 'mathtt' null tfTypeWriter 0x1D7F6 Digits CreateMathAliasable doTypewriter 'mathtt' null tfTypeWriter 0x1D7F6 Digits

View file

@ -122,7 +122,7 @@ export : define [calculateMetrics para] : begin
define OneBalance : fallback para.onebalance 0 define OneBalance : fallback para.onebalance 0
# derived metrics # derived metrics
define WideWidth0 : if (para.quasiProportionalDiversity === 0) (Width * 2) UPM define WideWidth0 : if para.isQuasiProportional (Width * 2) UPM
define WideWidth1 : if (para.spacing >= 1) WideWidth0 Width define WideWidth1 : if (para.spacing >= 1) WideWidth0 Width
define WideWidth2 : if (para.spacing >= 2) WideWidth0 Width define WideWidth2 : if (para.spacing >= 2) WideWidth0 Width

View file

@ -192,7 +192,7 @@ export : define [assignFontNames para metrics font] : begin
if (minorVersion > 99 || patchVersion > 9) : throw : new Error "Version number overflow" if (minorVersion > 99 || patchVersion > 9) : throw : new Error "Version number overflow"
set font.head.fontRevision : majorVersion + (minorVersion * 10 + patchVersion) / 1000 set font.head.fontRevision : majorVersion + (minorVersion * 10 + patchVersion) / 1000
if (para.quasiProportionalDiversity === 0) : begin if [not para.isQuasiProportional] : begin
set font.OS_2.panose.bProportion 9 # Monospaced set font.OS_2.panose.bProportion 9 # Monospaced
set font.post.isFixedPitch true set font.post.isFixedPitch true
: else : begin : else : begin

View file

@ -11,8 +11,6 @@ function initPara(data, argv) {
apply(para, data, ["shapeWeight"], { shapeWeight: argv.shape.weight }); apply(para, data, ["shapeWeight"], { shapeWeight: argv.shape.weight });
apply(para, data, ["shapeWidth"], { shapeWidth: argv.shape.width }); apply(para, data, ["shapeWidth"], { shapeWidth: argv.shape.width });
apply(para, data, [`s-${argv.shape.slope}`]); apply(para, data, [`s-${argv.shape.slope}`]);
apply(para, data, [`diversity-${argv.shape.quasiProportionalDiversity}`]);
para.quasiProportionalDiversity = argv.shape.quasiProportionalDiversity || 0;
if (argv.featureControl.noCvSs) para.enableCvSs = false; if (argv.featureControl.noCvSs) para.enableCvSs = false;
if (argv.featureControl.noLigation) para.enableLigation = false; if (argv.featureControl.noLigation) para.enableLigation = false;
return para; return para;

View file

@ -67,6 +67,12 @@ slab = 0
# Old style number height # Old style number height
onumZeroHeightRatio = 1.145 onumZeroHeightRatio = 1.145
# Reset diversity
diversityM = 1
diversityF = 1
diversityI = 1
diversityII = 1
[verbose] [verbose]
verbose = true verbose = true
@ -90,6 +96,15 @@ spacing = 0
enableLigation = false enableLigation = false
forceMonospace = true forceMonospace = true
# Quasi-proportional
[spacing-quasi-proportional]
spacing = 3
isQuasiProportional = true
diversityM = 1.25
diversityF = 0.75
diversityI = 0.75
diversityII = 0.50
###### Slopes ###### Slopes
[s-italic] [s-italic]
isItalic = true isItalic = true
@ -98,23 +113,3 @@ slopeAngle = 9.4
[s-oblique] [s-oblique]
isOblique = true isOblique = true
slopeAngle = 9.4 slopeAngle = 9.4
###### Diversity
[diversity-0]
diversityM = 1
diversityF = 1
diversityI = 1
diversityII = 1
[diversity-1]
diversityM = 1.25
diversityF = 1.00
diversityI = 0.75
diversityII = 0.75
[diversity-2]
diversityM = 1.25
diversityF = 0.75
diversityI = 0.75
diversityII = 0.5

View file

@ -158,8 +158,7 @@ const FontInfoOf = computed.group("metadata:font-info-of", async (target, fileNa
spacing: bp.spacing || null, spacing: bp.spacing || null,
weight: sfi.shapeWeight, weight: sfi.shapeWeight,
slope: sfi.slope, slope: sfi.slope,
width: sfi.shapeWidth, width: sfi.shapeWidth
quasiProportionalDiversity: bp["quasiProportionalDiversity"] || 0
}, },
// Menu // Menu
menu: { menu: {
@ -689,7 +688,7 @@ const ReleaseNotePackagesFile = file(`${BUILD}/release-packages.json`, async (t,
releaseNoteGroups[k] = { releaseNoteGroups[k] = {
subGroups, subGroups,
slab: primePlan.serifs === "slab", slab: primePlan.serifs === "slab",
quasiProportional: primePlan.quasiProportionalDiversity > 0 quasiProportional: primePlan.spacing === "quasi-proportional"
}; };
} }
await fs.promises.writeFile(out.full, JSON.stringify(releaseNoteGroups, null, " ")); await fs.promises.writeFile(out.full, JSON.stringify(releaseNoteGroups, null, " "));