From 7cf45a0cd6b28bfecc79f407b8dc26a82d35cd94 Mon Sep 17 00:00:00 2001 From: Belleve Invis Date: Wed, 4 Mar 2020 18:44:06 -0800 Subject: [PATCH] Move version to RC -- worth doing it --- build-plans.toml | 343 ++++++------------ changes/3.0.0-beta.4.md | 5 - changes/3.0.0-rc.1.md | 11 + gen/build-glyphs.ptl | 2 +- glyphs/autobuild-enclosure.ptl | 72 ++-- glyphs/common-shapes.ptl | 35 +- glyphs/symbol-arrow.ptl | 4 +- glyphs/symbol-geometric.ptl | 2 +- glyphs/symbol-math.ptl | 21 +- glyphs/symbol-mosaic.ptl | 4 +- glyphs/symbol-other.ptl | 2 +- glyphs/symbol-punctuation.ptl | 26 +- meta/aesthetics.ptl | 16 +- meta/macros.ptl | 8 +- package.json | 2 +- parameters.toml | 84 +---- utility/generate-release-note/index.js | 5 +- .../deprecated-packages.md | 14 +- .../release-note-fragments/packages-desc.md | 7 +- 19 files changed, 218 insertions(+), 445 deletions(-) delete mode 100644 changes/3.0.0-beta.4.md create mode 100644 changes/3.0.0-rc.1.md diff --git a/build-plans.toml b/build-plans.toml index 1e6ff5748..bc362fb74 100644 --- a/build-plans.toml +++ b/build-plans.toml @@ -3,84 +3,52 @@ [buildPlans.iosevka] family = "Iosevka" +[buildPlans.iosevka-fixed] +family = "Iosevka Fixed" +design = ["sp-fixed"] + [buildPlans.iosevka-term] family = "Iosevka Term" -design = ["term"] - -[buildPlans.iosevka-type] -family = "Iosevka Type" -design = ["type"] - -[buildPlans.iosevka-term-lig] -family = "Iosevka TermLig" -design = ["termlig"] - -[buildPlans.iosevka-cc] -family = "IosevkaCC" -design = ["cc"] +design = ["sp-term"] # Slab [buildPlans.iosevka-slab] family = "Iosevka Slab" design = ["slab"] +[buildPlans.iosevka-fixed-slab] +family = "Iosevka Fixed Slab" +design = ["sp-fixed", "slab"] + [buildPlans.iosevka-term-slab] family = "Iosevka Term Slab" -design = ["term", "slab"] - -[buildPlans.iosevka-type-slab] -family = "Iosevka Type Slab" -design = ["type", "slab"] - -[buildPlans.iosevka-term-lig-slab] -family = "Iosevka TermLig Slab" -design = ["termlig", "slab"] - -[buildPlans.iosevka-cc-slab] -family = "IosevkaCC Slab" -design = ["cc", "slab"] +design = ["sp-term", "slab"] # Curly [buildPlans.iosevka-curly] family = "Iosevka Curly" design = ["ss20", "v-at-fourfold"] +[buildPlans.iosevka-fixed-curly] +family = "Iosevka Fixed Curly" +design = ["sp-fixed", "ss20", "v-at-fourfold"] + [buildPlans.iosevka-term-curly] family = "Iosevka Term Curly" -design = ["term", "ss20", "v-at-fourfold"] - -[buildPlans.iosevka-type-curly] -family = "Iosevka Type Curly" -design = ["type", "ss20", "v-at-fourfold"] - -[buildPlans.iosevka-term-lig-curly] -family = "Iosevka TermLig Curly" -design = ["termlig", "ss20", "v-at-fourfold"] - -[buildPlans.iosevka-cc-curly] -family = "IosevkaCC Curly" -design = ["cc", "ss20", "v-at-fourfold"] +design = ["sp-term", "ss20", "v-at-fourfold"] # Curly Slab [buildPlans.iosevka-curly-slab] family = "Iosevka Curly Slab" design = ["slab", "ss20", "v-at-fourfold"] +[buildPlans.iosevka-fixed-curly-slab] +family = "Iosevka Fixed Curly Slab" +design = ["sp-fixed", "slab", "ss20", "v-at-fourfold"] + [buildPlans.iosevka-term-curly-slab] family = "Iosevka Term Curly Slab" -design = ["term", "slab", "ss20", "v-at-fourfold"] - -[buildPlans.iosevka-type-curly-slab] -family = "Iosevka Type Curly Slab" -design = ["type", "slab", "ss20", "v-at-fourfold"] - -[buildPlans.iosevka-term-lig-curly-slab] -family = "Iosevka TermLig Curly Slab" -design = ["termlig", "slab", "ss20", "v-at-fourfold"] - -[buildPlans.iosevka-cc-curly-slab] -family = "IosevkaCC Curly Slab" -design = ["cc", "slab", "ss20", "v-at-fourfold"] +design = ["sp-term", "slab", "ss20", "v-at-fourfold"] ################################################################################################### # SSxx @@ -88,119 +56,91 @@ design = ["cc", "slab", "ss20", "v-at-fourfold"] family = "Iosevka SS01" design = ["ss01"] +[buildPlans.iosevka-fixed-ss01] +family = "Iosevka Fixed SS01" +design = ["sp-fixed", "ss01"] + [buildPlans.iosevka-term-ss01] family = "Iosevka Term SS01" -design = ["term", "ss01"] - -[buildPlans.iosevka-type-ss01] -family = "Iosevka Type SS01" -design = ["type", "ss01"] - -[buildPlans.iosevka-term-lig-ss01] -family = "Iosevka TermLig SS01" -design = ["termlig", "ss01"] +design = ["sp-term", "ss01"] [buildPlans.iosevka-ss02] family = "Iosevka SS02" design = ["ss02"] +[buildPlans.iosevka-fixed-ss02] +family = "Iosevka Fixed SS02" +design = ["sp-fixed", "ss02"] + [buildPlans.iosevka-term-ss02] family = "Iosevka Term SS02" -design = ["term", "ss02"] - -[buildPlans.iosevka-type-ss02] -family = "Iosevka Type SS02" -design = ["type", "ss02"] - -[buildPlans.iosevka-term-lig-ss02] -family = "Iosevka TermLig SS02" -design = ["termlig", "ss02"] +design = ["sp-term", "ss02"] [buildPlans.iosevka-ss03] family = "Iosevka SS03" design = ["ss03"] +[buildPlans.iosevka-fixed-ss03] +family = "Iosevka Fixed SS03" +design = ["sp-fixed", "ss03"] + [buildPlans.iosevka-term-ss03] family = "Iosevka Term SS03" -design = ["term", "ss03"] - -[buildPlans.iosevka-type-ss03] -family = "Iosevka Type SS03" -design = ["type", "ss03"] - -[buildPlans.iosevka-term-lig-ss03] -family = "Iosevka TermLig SS03" -design = ["termlig", "ss03"] +design = ["sp-term", "ss03"] [buildPlans.iosevka-ss04] family = "Iosevka SS04" design = ["ss04"] +[buildPlans.iosevka-fixed-ss04] +family = "Iosevka Fixed SS04" +design = ["sp-fixed", "ss04"] + [buildPlans.iosevka-term-ss04] family = "Iosevka Term SS04" -design = ["term", "ss04"] - -[buildPlans.iosevka-type-ss04] -family = "Iosevka Type SS04" -design = ["type", "ss04"] - -[buildPlans.iosevka-term-lig-ss04] -family = "Iosevka TermLig SS04" -design = ["termlig", "ss04"] +design = ["sp-term", "ss04"] [buildPlans.iosevka-ss05] family = "Iosevka SS05" design = ["ss05"] +[buildPlans.iosevka-fixed-ss05] +family = "Iosevka Fixed SS05" +design = ["sp-fixed", "ss05"] + [buildPlans.iosevka-term-ss05] family = "Iosevka Term SS05" -design = ["term", "ss05"] - -[buildPlans.iosevka-type-ss05] -family = "Iosevka Type SS05" -design = ["type", "ss05"] - -[buildPlans.iosevka-term-lig-ss05] -family = "Iosevka TermLig SS05" -design = ["termlig", "ss05"] +design = ["sp-term", "ss05"] [buildPlans.iosevka-ss06] family = "Iosevka SS06" design = ["ss06"] +[buildPlans.iosevka-fixed-ss06] +family = "Iosevka Fixed SS06" +design = ["sp-fixed", "ss06"] + [buildPlans.iosevka-term-ss06] family = "Iosevka Term SS06" -design = ["term", "ss06"] - -[buildPlans.iosevka-type-ss06] -family = "Iosevka Type SS06" -design = ["type", "ss06"] - -[buildPlans.iosevka-term-lig-ss06] -family = "Iosevka TermLig SS06" -design = ["termlig", "ss06"] +design = ["sp-term", "ss06"] [buildPlans.iosevka-ss07] family = "Iosevka SS07" design = ["ss07"] +[buildPlans.iosevka-fixed-ss07] +family = "Iosevka Fixed SS07" +design = ["sp-fixed", "ss07"] + [buildPlans.iosevka-term-ss07] family = "Iosevka Term SS07" -design = ["term", "ss07"] - -[buildPlans.iosevka-type-ss07] -family = "Iosevka Type SS07" -design = ["type", "ss07"] - -[buildPlans.iosevka-term-lig-ss07] -family = "Iosevka TermLig SS07" -design = ["termlig", "ss07"] +design = ["sp-term", "ss07"] # The SS08 has curly bars, so apply ss20 first @@ -208,102 +148,78 @@ design = ["termlig", "ss07"] family = "Iosevka SS08" design = ["ss20", "ss08"] +[buildPlans.iosevka-fixed-ss08] +family = "Iosevka Fixed SS08" +design = ["sp-fixed", "ss20", "ss08"] + [buildPlans.iosevka-term-ss08] family = "Iosevka Term SS08" -design = ["term", "ss20", "ss08"] - -[buildPlans.iosevka-type-ss08] -family = "Iosevka Type SS08" -design = ["type", "ss20", "ss08"] - -[buildPlans.iosevka-term-lig-ss08] -family = "Iosevka TermLig SS08" -design = ["termlig", "ss20", "ss08"] +design = ["sp-term", "ss20", "ss08"] [buildPlans.iosevka-ss09] family = "Iosevka SS09" design = ["ss09"] +[buildPlans.iosevka-fixed-ss09] +family = "Iosevka Fixed SS09" +design = ["sp-fixed", "ss09"] + [buildPlans.iosevka-term-ss09] family = "Iosevka Term SS09" -design = ["term", "ss09"] - -[buildPlans.iosevka-type-ss09] -family = "Iosevka Type SS09" -design = ["type", "ss09"] - -[buildPlans.iosevka-term-lig-ss09] -family = "Iosevka TermLig SS09" -design = ["termlig", "ss09"] +design = ["sp-term", "ss09"] [buildPlans.iosevka-ss10] family = "Iosevka SS10" design = ["ss10"] +[buildPlans.iosevka-fixed-ss10] +family = "Iosevka Fixed SS10" +design = ["sp-fixed", "ss10"] + [buildPlans.iosevka-term-ss10] family = "Iosevka Term SS10" -design = ["term", "ss10"] - -[buildPlans.iosevka-type-ss10] -family = "Iosevka Type SS10" -design = ["type", "ss10"] - -[buildPlans.iosevka-term-lig-ss10] -family = "Iosevka TermLig SS10" -design = ["termlig", "ss10"] +design = ["sp-term", "ss10"] [buildPlans.iosevka-ss11] family = "Iosevka SS11" design = ["ss11"] +[buildPlans.iosevka-fixed-ss11] +family = "Iosevka Fixed SS11" +design = ["sp-fixed", "ss11"] + [buildPlans.iosevka-term-ss11] family = "Iosevka Term SS11" -design = ["term", "ss11"] - -[buildPlans.iosevka-type-ss11] -family = "Iosevka Type SS11" -design = ["type", "ss11"] - -[buildPlans.iosevka-term-lig-ss11] -family = "Iosevka TermLig SS11" -design = ["termlig", "ss11"] +design = ["sp-term", "ss11"] [buildPlans.iosevka-ss12] family = "Iosevka SS12" design = ["ss12"] +[buildPlans.iosevka-fixed-ss12] +family = "Iosevka Fixed SS12" +design = ["sp-fixed", "ss12"] + [buildPlans.iosevka-term-ss12] family = "Iosevka Term SS12" -design = ["term", "ss12"] - -[buildPlans.iosevka-type-ss12] -family = "Iosevka Type SS12" -design = ["type", "ss12"] - -[buildPlans.iosevka-term-lig-ss12] -family = "Iosevka TermLig SS12" -design = ["termlig", "ss12"] +design = ["sp-term", "ss12"] [buildPlans.iosevka-ss13] family = "Iosevka SS13" design = ["ss13"] +[buildPlans.iosevka-fixed-ss13] +family = "Iosevka Fixed SS13" +design = ["sp-fixed", "ss13"] + [buildPlans.iosevka-term-ss13] family = "Iosevka Term SS13" -design = ["term", "ss13"] - -[buildPlans.iosevka-type-ss13] -family = "Iosevka Type SS13" -design = ["type", "ss13"] - -[buildPlans.iosevka-term-lig-ss13] -family = "Iosevka TermLig SS13" -design = ["termlig", "ss13"] +design = ["sp-term", "ss13"] ################################################################################################### # Proportional families @@ -366,93 +282,70 @@ css = "normal" # Standard set 01-iosevka = "iosevka" -02-iosevka-term = "iosevka-term" -03-iosevka-type = "iosevka-type" -04-iosevka-term-lig = "iosevka-term-lig" -05-iosevka-slab = "iosevka-slab" +02-iosevka-fixed = "iosevka-fixed" +03-iosevka-term = "iosevka-term" +04-iosevka-slab = "iosevka-slab" +05-iosevka-fixed-slab = "iosevka-fixed-slab" 06-iosevka-term-slab = "iosevka-term-slab" -07-iosevka-type-slab = "iosevka-type-slab" -08-iosevka-term-lig-slab = "iosevka-term-lig-slab" -09-iosevka-curly = "iosevka-curly" -10-iosevka-term-curly = "iosevka-term-curly" -11-iosevka-type-curly = "iosevka-type-curly" -12-iosevka-term-lig-curly = "iosevka-term-lig-curly" -13-iosevka-curly-slab = "iosevka-curly-slab" -14-iosevka-term-curly-slab = "iosevka-term-curly-slab" -15-iosevka-type-curly-slab = "iosevka-type-curly-slab" -16-iosevka-term-lig-curly-slab = "iosevka-term-lig-curly-slab" - -# "CC" variants (deprecated -- will be removed in next release) -iosevka-cc-DEPRECATED = "iosevka-cc" -iosevka-cc-slab-DEPRECATED = "iosevka-cc-slab" -iosevka-cc-curly-DEPRECATED = "iosevka-cc-curly" -iosevka-cc-curly-slab-DEPRECATED = "iosevka-cc-curly-slab" +07-iosevka-curly = "iosevka-curly" +08-iosevka-fixed-curly = "iosevka-fixed-curly" +09-iosevka-term-curly = "iosevka-term-curly" +10-iosevka-curly-slab = "iosevka-curly-slab" +11-iosevka-fixed-curly-slab = "iosevka-fixed-curly-slab" +12-iosevka-term-curly-slab = "iosevka-term-curly-slab" # Style set variants iosevka-ss01 = "iosevka-ss01" +iosevka-fixed-ss01 = "iosevka-fixed-ss01" iosevka-term-ss01 = "iosevka-term-ss01" -iosevka-type-ss01 = "iosevka-type-ss01" -iosevka-term-lig-ss01 = "iosevka-term-lig-ss01" iosevka-ss02 = "iosevka-ss02" +iosevka-fixed-ss02 = "iosevka-fixed-ss02" iosevka-term-ss02 = "iosevka-term-ss02" -iosevka-type-ss02 = "iosevka-type-ss02" -iosevka-term-lig-ss02 = "iosevka-term-lig-ss02" iosevka-ss03 = "iosevka-ss03" +iosevka-fixed-ss03 = "iosevka-fixed-ss03" iosevka-term-ss03 = "iosevka-term-ss03" -iosevka-type-ss03 = "iosevka-type-ss03" -iosevka-term-lig-ss03 = "iosevka-term-lig-ss03" iosevka-ss04 = "iosevka-ss04" +iosevka-fixed-ss04 = "iosevka-fixed-ss04" iosevka-term-ss04 = "iosevka-term-ss04" -iosevka-type-ss04 = "iosevka-type-ss04" -iosevka-term-lig-ss04 = "iosevka-term-lig-ss04" iosevka-ss05 = "iosevka-ss05" +iosevka-fixed-ss05 = "iosevka-fixed-ss05" iosevka-term-ss05 = "iosevka-term-ss05" -iosevka-type-ss05 = "iosevka-type-ss05" -iosevka-term-lig-ss05 = "iosevka-term-lig-ss05" iosevka-ss06 = "iosevka-ss06" +iosevka-fixed-ss06 = "iosevka-fixed-ss06" iosevka-term-ss06 = "iosevka-term-ss06" -iosevka-type-ss06 = "iosevka-type-ss06" -iosevka-term-lig-ss06 = "iosevka-term-lig-ss06" iosevka-ss07 = "iosevka-ss07" +iosevka-fixed-ss07 = "iosevka-fixed-ss07" iosevka-term-ss07 = "iosevka-term-ss07" -iosevka-type-ss07 = "iosevka-type-ss07" -iosevka-term-lig-ss07 = "iosevka-term-lig-ss07" iosevka-ss08 = "iosevka-ss08" +iosevka-fixed-ss08 = "iosevka-fixed-ss08" iosevka-term-ss08 = "iosevka-term-ss08" -iosevka-type-ss08 = "iosevka-type-ss08" -iosevka-term-lig-ss08 = "iosevka-term-lig-ss08" iosevka-ss09 = "iosevka-ss09" +iosevka-fixed-ss09 = "iosevka-fixed-ss09" iosevka-term-ss09 = "iosevka-term-ss09" -iosevka-type-ss09 = "iosevka-type-ss09" -iosevka-term-lig-ss09 = "iosevka-term-lig-ss09" iosevka-ss10 = "iosevka-ss10" +iosevka-fixed-ss10 = "iosevka-fixed-ss10" iosevka-term-ss10 = "iosevka-term-ss10" -iosevka-type-ss10 = "iosevka-type-ss10" -iosevka-term-lig-ss10 = "iosevka-term-lig-ss10" iosevka-ss11 = "iosevka-ss11" +iosevka-fixed-ss11 = "iosevka-fixed-ss11" iosevka-term-ss11 = "iosevka-term-ss11" -iosevka-type-ss11 = "iosevka-type-ss11" -iosevka-term-lig-ss11 = "iosevka-term-lig-ss11" iosevka-ss12 = "iosevka-ss12" +iosevka-fixed-ss12 = "iosevka-fixed-ss12" iosevka-term-ss12 = "iosevka-term-ss12" -iosevka-type-ss12 = "iosevka-type-ss12" -iosevka-term-lig-ss12 = "iosevka-term-lig-ss12" iosevka-ss13 = "iosevka-ss13" +iosevka-fixed-ss13 = "iosevka-fixed-ss13" iosevka-term-ss13 = "iosevka-term-ss13" -iosevka-type-ss13 = "iosevka-type-ss13" -iosevka-term-lig-ss13 = "iosevka-term-lig-ss13" # Experimental variants iosevka-aile = "iosevka-aile" @@ -464,33 +357,29 @@ iosevka-sparkle = "iosevka-sparkle" [collectPlans.iosevka] from = [ "iosevka", - "iosevka-term", - "iosevka-type", - "iosevka-term-lig" + "iosevka-fixed", + "iosevka-term" ] [collectPlans.iosevka-slab] from = [ "iosevka-slab", - "iosevka-term-slab", - "iosevka-type-slab", - "iosevka-term-lig-slab" + "iosevka-fixed-slab", + "iosevka-term-slab" ] [collectPlans.iosevka-curly] from = [ "iosevka-curly", - "iosevka-term-curly", - "iosevka-type-curly", - "iosevka-term-lig-curly" + "iosevka-fixed-curly", + "iosevka-term-curly" ] [collectPlans.iosevka-curly-slab] from = [ "iosevka-curly-slab", - "iosevka-term-curly-slab", - "iosevka-type-curly-slab", - "iosevka-term-lig-curly-slab" + "iosevka-fixed-curly-slab", + "iosevka-term-curly-slab" ] [collectPlans.iosevka-aile] diff --git a/changes/3.0.0-beta.4.md b/changes/3.0.0-beta.4.md deleted file mode 100644 index 98e7641b9..000000000 --- a/changes/3.0.0-beta.4.md +++ /dev/null @@ -1,5 +0,0 @@ -* Fix “Lucida” style's `one` character. -* Added weight “Book”. -* Fix broken shape of heavy curly V, etc. -* Improve double-line arrow ligations. -* Add diamond-shaped `<>` ligation, and enabled that for Haskell. \ No newline at end of file diff --git a/changes/3.0.0-rc.1.md b/changes/3.0.0-rc.1.md new file mode 100644 index 000000000..ca8a69db5 --- /dev/null +++ b/changes/3.0.0-rc.1.md @@ -0,0 +1,11 @@ +* The packaging and spacing is significantly changed: + * `Iosevka` → Kept, but made arrows and geometric symbols wide. + * `Iosevka Term` → `Iosevka Fixed`. + * `Iosevka TermLig` → `Iosevka Term`. + * `Iosevka Type` → Removed. + * `Iosevka CC` → Removed. +* Fix “Lucida” style's `one` character. +* Added weight “Book”. +* Fix broken shape of heavy curly V, etc. +* Improve double-line arrow ligations. +* Add diamond-shaped `<>` ligation, and enabled that for Haskell. diff --git a/gen/build-glyphs.ptl b/gen/build-glyphs.ptl index ae80e73e9..14bca460c 100644 --- a/gen/build-glyphs.ptl +++ b/gen/build-glyphs.ptl @@ -170,7 +170,7 @@ export as build : define [buildFont font para] : begin set font.GPOS otl.GPOS set font.GDEF otl.GDEF - if (para.spacing == 0) : begin + if (para.forceMonospace && para.spacing == 0) : begin set gs.glyphList : gs.glyphList.filter [lambda [g] : g.advanceWidth <= para.width] set font.glyfMap gs.glyphs diff --git a/glyphs/autobuild-enclosure.ptl b/glyphs/autobuild-enclosure.ptl index 06393604f..135127d01 100644 --- a/glyphs/autobuild-enclosure.ptl +++ b/glyphs/autobuild-enclosure.ptl @@ -21,7 +21,7 @@ glyph-block AutoBuild-Enclosure : begin # Build miniature glyphs : circled, superscripts, subscripts... # Circled - define circleWidthClasses {{'hwid' WIDTH 0.12} {'fwid' FULLWIDTH0 0.08}} + define circleWidthClasses {{'hwid' WIDTH 0.12} {'fwid' WIDE-WIDTH-0 0.08}} define [AdjustDigitCount digits width] : Math.max 1 (digits * WIDTH / width) define [EnclosureStrokeScale dscale digits width] : dscale / [Math.pow [AdjustDigitCount digits width] 0.66] @@ -333,45 +333,45 @@ glyph-block AutoBuild-Enclosure : begin if [not recursive] : do "Single-digit circled" local compositions : list - list 0xA9 {'C'} FULLWIDTH2 - list 0x1F12F {'turnC'} FULLWIDTH2 - list 0xAE {'R'} FULLWIDTH2 - list 0x2117 {'P'} FULLWIDTH2 - list 0x24EA {'zero'} FULLWIDTH1 - compositions.push { null {'space'} FULLWIDTH1 } + list 0xA9 {'C'} WIDE-WIDTH-2 + list 0x1F12F {'turnC'} WIDE-WIDTH-2 + list 0xAE {'R'} WIDE-WIDTH-2 + list 0x2117 {'P'} WIDE-WIDTH-2 + list 0x24EA {'zero'} WIDE-WIDTH-1 + compositions.push { null {'space'} WIDE-WIDTH-1 } foreach [j : range 1 till 9] : compositions.push : list 0x2460 + j - 1 digitGlyphNames j - begin FULLWIDTH1 - foreach [j : range 0 26] : compositions.push {(0x24B6 + j) {unicodeGlyphs.(['A'.charCodeAt 0] + j).name} FULLWIDTH1} - foreach [j : range 0 26] : compositions.push {(0x24D0 + j) {unicodeGlyphs.(['a'.charCodeAt 0] + j).name} FULLWIDTH1 0.5 (XH/2)} + begin WIDE-WIDTH-1 + foreach [j : range 0 26] : compositions.push {(0x24B6 + j) {unicodeGlyphs.(['A'.charCodeAt 0] + j).name} WIDE-WIDTH-1} + foreach [j : range 0 26] : compositions.push {(0x24D0 + j) {unicodeGlyphs.(['a'.charCodeAt 0] + j).name} WIDE-WIDTH-1 0.5 (XH/2)} createCircledGlyphs 1 compositions if [not recursive] : do "Double-digit circled" local compositions : list - compositions.push { null {'space'} FULLWIDTH1 } + compositions.push { null {'space'} WIDE-WIDTH-1 } foreach [j : range 10 till 20] : compositions.push : list 0x2460 + j - 1 digitGlyphNames j - begin FULLWIDTH1 + begin WIDE-WIDTH-1 foreach [j : range 21 till 35] : compositions.push : list 0x3251 + j - 21 digitGlyphNames j - begin FULLWIDTH1 + begin WIDE-WIDTH-1 foreach [j : range 36 till 50] : compositions.push : list 0x32B1 + j - 36 digitGlyphNames j - begin FULLWIDTH1 + begin WIDE-WIDTH-1 createCircledGlyphs 2 compositions if [not recursive] : do "Single-digit inset circled" local compositions : list - list 0x24FF {'zero'} FULLWIDTH1 + list 0x24FF {'zero'} WIDE-WIDTH-1 foreach [j : range 1 till 9] : compositions.push : list 0x2776 + j - 1 digitGlyphNames j - begin FULLWIDTH1 - foreach [j : range 0 26] : compositions.push {(0x1F150 + j) {unicodeGlyphs.(['A'.charCodeAt 0] + j).name} FULLWIDTH1} + begin WIDE-WIDTH-1 + foreach [j : range 0 26] : compositions.push {(0x1F150 + j) {unicodeGlyphs.(['A'.charCodeAt 0] + j).name} WIDE-WIDTH-1} createInsetCircledGlyphs 1 compositions if [not recursive] : do "Double-digit inset circled" @@ -379,47 +379,47 @@ glyph-block AutoBuild-Enclosure : begin foreach [j : range 10 till 10] : compositions.push : list 0x2776 + j - 1 digitGlyphNames j - begin FULLWIDTH1 + begin WIDE-WIDTH-1 foreach [j : range 11 till 20] : compositions.push : list 0x24EB + j - 11 digitGlyphNames j - begin FULLWIDTH1 + begin WIDE-WIDTH-1 createInsetCircledGlyphs 2 compositions if [not recursive] : do "boxed" local compositions {} - compositions.push { null {'space'} FULLWIDTH1 } - foreach [j : range 0 26] : compositions.push {(0x1F130 + j) {unicodeGlyphs.(['A'.charCodeAt 0] + j).name} FULLWIDTH1} + compositions.push { null {'space'} WIDE-WIDTH-1 } + foreach [j : range 0 26] : compositions.push {(0x1F130 + j) {unicodeGlyphs.(['A'.charCodeAt 0] + j).name} WIDE-WIDTH-1} createBoxedGlyphs 1 compositions if [not recursive] : do "inset boxed" local compositions {} - foreach [j : range 0 26] : compositions.push {(0x1F170 + j) {unicodeGlyphs.(['A'.charCodeAt 0] + j).name} FULLWIDTH1} + foreach [j : range 0 26] : compositions.push {(0x1F170 + j) {unicodeGlyphs.(['A'.charCodeAt 0] + j).name} WIDE-WIDTH-1} createInsetBoxedGlyphs 1 compositions if [not recursive] : do "inset mosaic" local compositions {} - compositions.push { 0x1FBB1 { unicodeGlyphs.(0x2714).name } FULLWIDTH } - compositions.push { 0x1FBB4 { unicodeGlyphs.(0x21B2).name } FULLWIDTH } - compositions.push { 0x1FBC4 { unicodeGlyphs.(0x003F).name } FULLWIDTH } + compositions.push { 0x1FBB1 { unicodeGlyphs.(0x2714).name } WIDE-WIDTH-1 } + compositions.push { 0x1FBB4 { unicodeGlyphs.(0x21B2).name } WIDE-WIDTH-1 } + compositions.push { 0x1FBC4 { unicodeGlyphs.(0x003F).name } WIDE-WIDTH-1 } createInsetMosaicGlyphs 1 compositions if [not recursive] : do "Single-digit double circled" local compositions {} - compositions.push { null {'space'} FULLWIDTH1 } + compositions.push { null {'space'} WIDE-WIDTH-1 } foreach [j : range 1 till 9] : compositions.push : list 0x24F5 + j - 1 digitGlyphNames j - begin FULLWIDTH1 + begin WIDE-WIDTH-1 createDoubleCircledGlyphs 1 compositions if [not recursive] : do "Double-digit double circled" local compositions {} - compositions.push { null {'space'} FULLWIDTH1 } + compositions.push { null {'space'} WIDE-WIDTH-1 } foreach [j : range 10 till 10] : compositions.push : list 0x24F5 + j - 1 digitGlyphNames j - begin FULLWIDTH1 + begin WIDE-WIDTH-1 createDoubleCircledGlyphs 2 compositions if [not recursive] : do "Single-digit braced" @@ -427,9 +427,9 @@ glyph-block AutoBuild-Enclosure : begin foreach [j : range 1 till 9] : compositions.push : list 0x2474 + j - 1 digitGlyphNames j - begin FULLWIDTH1 - foreach [j : range 0 26] : compositions.push {(0x249C + j) {unicodeGlyphs.(['a'.charCodeAt 0] + j).name} FULLWIDTH1 0.5 (XH/2)} - foreach [j : range 0 26] : compositions.push {(0x1F110 + j) {unicodeGlyphs.(['A'.charCodeAt 0] + j).name} FULLWIDTH1} + begin WIDE-WIDTH-1 + foreach [j : range 0 26] : compositions.push {(0x249C + j) {unicodeGlyphs.(['a'.charCodeAt 0] + j).name} WIDE-WIDTH-1 0.5 (XH/2)} + foreach [j : range 0 26] : compositions.push {(0x1F110 + j) {unicodeGlyphs.(['A'.charCodeAt 0] + j).name} WIDE-WIDTH-1} createBracedGlyphs 1 compositions if [not recursive] : do "Double-digit braced" @@ -437,16 +437,16 @@ glyph-block AutoBuild-Enclosure : begin foreach [j : range 10 till 20] : compositions.push : list 0x2474 + j - 1 digitGlyphNames j - begin FULLWIDTH1 + begin WIDE-WIDTH-1 createBracedGlyphs 2 compositions if [not recursive] : do "Single-digit dotted" local compositions : list - list 0x1F100 {'zero'} FULLWIDTH1 + list 0x1F100 {'zero'} WIDE-WIDTH-1 foreach [j : range 1 till 9] : compositions.push : list 0x2488 + j - 1 digitGlyphNames j - begin FULLWIDTH1 + begin WIDE-WIDTH-1 createDottedGlyphs 1 compositions if [not recursive] : do "Double-digit dotted" @@ -454,5 +454,5 @@ glyph-block AutoBuild-Enclosure : begin foreach [j : range 10 till 20] : compositions.push : list 0x2488 + j - 1 digitGlyphNames j - begin FULLWIDTH1 + begin WIDE-WIDTH-1 createDottedGlyphs 2 compositions diff --git a/glyphs/common-shapes.ptl b/glyphs/common-shapes.ptl index 54cf288e1..2dfb6a883 100644 --- a/glyphs/common-shapes.ptl +++ b/glyphs/common-shapes.ptl @@ -102,39 +102,6 @@ glyph-block CommonShapes : begin apply-transform : Italify define [vdual newid unicode id spacing] : vcombine [fallback newid : 'double' + id] unicode id id spacing - # Full-width derivatives - define [fwl newid unicode id shift wk] : create-glyph [fallback newid : 'fwl' + id] : glyph-construction - if unicode : assign-unicode unicode - include glyphs.(id) - set-width [fallback wk FULLWIDTH] - apply-transform : Translate [fallback shift 0] 0 - - define [fwr newid unicode id shift wk] : create-glyph [fallback newid : 'fwr' + id] : glyph-construction - if unicode : assign-unicode unicode - include glyphs.(id) - set-width [fallback wk FULLWIDTH] - apply-transform : Translate ([fallback wk FULLWIDTH] - WIDTH + [fallback shift 0]) 0 - - define [dwl newid unicode id shift] : create-glyph [fallback newid : 'dwl' + id] : glyph-construction - if unicode : assign-unicode unicode - include glyphs.(id) - set-width UPM - apply-transform : Translate [fallback shift 0] 0 - - define [dwr newid unicode id shift] : create-glyph [fallback newid : 'dwr' + id] : glyph-construction - if unicode : assign-unicode unicode - include glyphs.(id) - set-width UPM - apply-transform : Translate (UPM - WIDTH + [fallback shift 0]) 0 - - define [dwc newid unicode id shift] : create-glyph [fallback newid : 'dwc' + id] : glyph-construction - if unicode : assign-unicode unicode - include glyphs.(id) - set-width UPM - apply-transform : Translate ((UPM - WIDTH) / 2 + [fallback shift 0]) 0 - - - ###### COMMON SHAPES define [Rect u d l r transformShiftOnly] : create-glyph : glyph-construction local my ((u + d) / 2) @@ -812,4 +779,4 @@ glyph-block CommonShapes : begin apply-transform : Translate xt yt include g - glyph-block-export queryFeatureSelector select-variant italic-variant alias composite into-unicode turned dual hcombine vdual vcombine fwl fwr dwl dwr dwc Rect Ring RingAt DotAt CircleRing CircleRingAt CircleDotAt OShape OShapeOutline OBarLeftShape OBarRightShape LeftwardTopSerif LeftwardBottomSerif RightwardTopSerif RightwardBottomSerif CenterTopSerif CenterBottomSerif DownwardRightSerif UpwardRightSerif DownwardLeftSerif UpwardLeftSerif AIVSerifs AIHSerifs AINSerifs AICyrISerifs AIMSerifs halfXStrand xStrand nShoulderKnots nShoulder mShoulderSpiro HBar HBarTop HBarBottom HOverlayBar VBar VBarLeft VBarRight VerticalHook LegShape LeftHook HooktopLeftBar CurlyTail HCurlyTail FlatSlashShape determineMixR hookstart hookend CyrDescender refair Fork Miniature Thinner Widen FlipAround ScaleAround Realign ForceUpright Overlay diagCor CreateWaveShape NameUni PointingTo + glyph-block-export queryFeatureSelector select-variant italic-variant alias composite into-unicode turned dual hcombine vdual vcombine Rect Ring RingAt DotAt CircleRing CircleRingAt CircleDotAt OShape OShapeOutline OBarLeftShape OBarRightShape LeftwardTopSerif LeftwardBottomSerif RightwardTopSerif RightwardBottomSerif CenterTopSerif CenterBottomSerif DownwardRightSerif UpwardRightSerif DownwardLeftSerif UpwardLeftSerif AIVSerifs AIHSerifs AINSerifs AICyrISerifs AIMSerifs halfXStrand xStrand nShoulderKnots nShoulder mShoulderSpiro HBar HBarTop HBarBottom HOverlayBar VBar VBarLeft VBarRight VerticalHook LegShape LeftHook HooktopLeftBar CurlyTail HCurlyTail FlatSlashShape determineMixR hookstart hookend CyrDescender refair Fork Miniature Thinner Widen FlipAround ScaleAround Realign ForceUpright Overlay diagCor CreateWaveShape NameUni PointingTo diff --git a/glyphs/symbol-arrow.ptl b/glyphs/symbol-arrow.ptl index 7e530f920..6f77158f4 100644 --- a/glyphs/symbol-arrow.ptl +++ b/glyphs/symbol-arrow.ptl @@ -14,7 +14,7 @@ glyph-block Symbol-Arrow : begin glyph-block-export [ArrowShape exportArrowShape] ### Arrowheads - for-width-kinds FULLWIDTH2 + for-width-kinds WIDE-WIDTH-1 define arrowHeight : para.arrowSize * (WIDTH - SB) define arrowWidth : Math.min (MosaicWidth - SB) arrowHeight define arrowMidX : MosaicWidth / 2 @@ -382,7 +382,7 @@ glyph-block Symbol-Arrow : begin vcombine [MangleName 'uni21CC'] [MangleUnicode 0x21CC] [MangleName 'arrowrightHL'] [MangleName 'arrowleftHL'] (arrowSize) vcombine [MangleName 'uni21B9'] [MangleUnicode 0x21B9] [MangleName 'arrowbarright'] [MangleName 'arrowbarleft'] (arrowSize * 1.75) - if (MosaicWidth == FULLWIDTH2) : set exportArrowShape ArrowShape + if (MosaicWidth == WIDE-WIDTH-1) : set exportArrowShape ArrowShape alias 'longArrowLeft' 0x27F5 'arrowleft.fwid' alias 'longArrowRight' 0x27F6 'arrowright.fwid' diff --git a/glyphs/symbol-geometric.ptl b/glyphs/symbol-geometric.ptl index 8eff7f384..bb05dba4c 100644 --- a/glyphs/symbol-geometric.ptl +++ b/glyphs/symbol-geometric.ptl @@ -11,7 +11,7 @@ glyph-block Symbol-Geometric : begin glyph-block-import CommonShapes ### Standard geometric shapes - for-width-kinds FULLWIDTH2 + for-width-kinds WIDE-WIDTH-1 define mosaicMiddle : MosaicWidth / 2 define left : mix MIDDLE SB 1.1 diff --git a/glyphs/symbol-math.ptl b/glyphs/symbol-math.ptl index c8384ee13..35758e27a 100644 --- a/glyphs/symbol-math.ptl +++ b/glyphs/symbol-math.ptl @@ -71,7 +71,7 @@ glyph-block Symbol-Math-Letter-Like : begin save 'increment' 0x2206 turned 'nabla' 0x2207 'increment' MIDDLE (CAP / 2) - if [not recursive] : for-width-kinds FULLWIDTH2 : do + if [not recursive] : for-width-kinds WIDE-WIDTH-1 : do local s : (RIGHTSB - SB - O * 4 + (MosaicWidth - WIDTH) * 0.5) / CAP local df : Miniature glyphs -- {'eight' 'rotetedpropto'} @@ -371,29 +371,24 @@ glyph-block Symbol-Math-Arith : begin glyph-block Symbol-Math-Dots-And-Colons : begin glyph-block-import CommonShapes local radius1 PERIODRADIUS - local radius : Math.min PERIODRADIUS - linreg WIDTH (0.5 * [adviceBlackness 3.5] * PERIODSIZE / STROKE) UPM PERIODRADIUS FULLWIDTH3 - local left : mix 0 FULLWIDTH3 (1 / 4) - local right : mix 0 FULLWIDTH3 (3 / 4) + local radius : Math.min PERIODRADIUS (0.5 * [adviceBlackness 3.5] * PERIODSIZE / STROKE) + local left : mix 0 WIDTH (1 / 4) + local right : mix 0 WIDTH (3 / 4) sketch - set-width FULLWIDTH3 - include : Ring (XH - O) (XH - radius * 2 + O) (FULLWIDTH3 / 2 - radius + O) (FULLWIDTH3 / 2 + radius - O) true + include : Ring (XH - O) (XH - radius * 2 + O) (MIDDLE - radius + O) (MIDDLE + radius - O) true include : Ring (radius * 2 - O) O (left - radius + O) (left + radius - O) true include : Ring (radius * 2 - O) O (right - radius + O) (right + radius - O) true save 'therefore' 0x2234 sketch - set-width FULLWIDTH3 include : Ring (XH - O) (XH - radius * 2 + O) (left - radius + O) (left + radius - O) true include : Ring (XH - O) (XH - radius * 2 + O) (right - radius + O) (right + radius - O) true - include : Ring (radius * 2 - O) O (FULLWIDTH3 / 2 - radius + O) (FULLWIDTH3 / 2 + radius - O) true + include : Ring (radius * 2 - O) O (MIDDLE - radius + O) (MIDDLE + radius - O) true save 'because' 0x2235 sketch - set-width FULLWIDTH3 - include : Ring (PERIODRADIUS * 2 - O) O (FULLWIDTH3 / 2 - PERIODRADIUS + O) (FULLWIDTH3 / 2 + PERIODRADIUS - O) true - include : Ring (XH - O) (XH - PERIODRADIUS * 2 + O) (FULLWIDTH3 / 2 - PERIODRADIUS + O) (FULLWIDTH3 / 2 + PERIODRADIUS - O) true + include : Ring (PERIODRADIUS * 2 - O) O (MIDDLE - PERIODRADIUS + O) (MIDDLE + PERIODRADIUS - O) true + include : Ring (XH - O) (XH - PERIODRADIUS * 2 + O) (MIDDLE - PERIODRADIUS + O) (MIDDLE + PERIODRADIUS - O) true save 'mathcolon' 0x2236 sketch # coloncolon - set-width FULLWIDTH3 include : Ring (radius * 2 - O) O (left - radius + O) (left + radius - O) true include : Ring (radius * 2 - O) O (right - radius + O) (right + radius - O) true include : Ring (XH - O) (XH - radius * 2 + O) (left - radius + O) (left + radius - O) true diff --git a/glyphs/symbol-mosaic.ptl b/glyphs/symbol-mosaic.ptl index 246c05994..f7daac77f 100644 --- a/glyphs/symbol-mosaic.ptl +++ b/glyphs/symbol-mosaic.ptl @@ -13,7 +13,7 @@ glyph-block Symbol-Mosaic : begin define MosaicTop fontMetrics.OS_2.sTypoAscender define MosaicBottom fontMetrics.OS_2.sTypoDescender - for-width-kinds FULLWIDTH + for-width-kinds WIDE-WIDTH-2 define top MosaicTop define bottom MosaicBottom @@ -749,7 +749,7 @@ glyph-block Symbol-Mosaic-Powerline : begin define MosaicTop fontMetrics.OS_2.sTypoAscender define MosaicBottom fontMetrics.OS_2.sTypoDescender - for-width-kinds FULLWIDTH + for-width-kinds WIDE-WIDTH-2 local pwlMidOrig : (MosaicTop + MosaicBottom) / 2 local pwlTop : (MosaicTop - pwlMidOrig) * para.powerlineScaleY + para.powerlineShiftY + pwlMidOrig local pwlBot : (MosaicBottom - pwlMidOrig) * para.powerlineScaleY + para.powerlineShiftY + pwlMidOrig diff --git a/glyphs/symbol-other.ptl b/glyphs/symbol-other.ptl index 6269485b6..d85f07d6b 100644 --- a/glyphs/symbol-other.ptl +++ b/glyphs/symbol-other.ptl @@ -472,7 +472,7 @@ glyph-block Symbol-Other-Powerline-And-GUI : begin save 'pwlLock' 0xE0A2 - for-width-kinds FULLWIDTH + for-width-kinds WIDE-WIDTH-1 do "arrowheadShapedPointer" define scaffold : object set scaffold.top : mix uiFigBot uiFigTop 0.85 diff --git a/glyphs/symbol-punctuation.ptl b/glyphs/symbol-punctuation.ptl index 906efe9c6..40b4bc464 100644 --- a/glyphs/symbol-punctuation.ptl +++ b/glyphs/symbol-punctuation.ptl @@ -33,7 +33,7 @@ glyph-block Symbol-Punctuation : begin save 'nbsp' 0xA0 sketch # em-space - set-width FULLWIDTH + set-width WIDE-WIDTH-1 save 'emquad' 0x2001 save 'emsp' 0x2003 @@ -809,13 +809,13 @@ glyph-block Symbol-Punctuation : begin save 'enDash' 0x2013 sketch # emDash - set-width FULLWIDTH - include : HBar 0 FULLWIDTH symbolMid + set-width WIDE-WIDTH-1 + include : HBar 0 WIDE-WIDTH-1 symbolMid save 'emDash' 0x2014 sketch # doubleEmDash - set-width (FULLWIDTH * 2) - include : HBar 0 (FULLWIDTH * 2) symbolMid + set-width (WIDE-WIDTH-1 * 2) + include : HBar 0 (WIDE-WIDTH-1 * 2) symbolMid save 'doubleEmDash' alias 'horizontalBar' 0x2015 'emDash' @@ -823,8 +823,7 @@ glyph-block Symbol-Punctuation : begin do 'Interpuncts' sketch # interpunct - set-width FULLWIDTH3 - include : DotAt (FULLWIDTH3 / 2) symbolMid (PERIODRADIUS - O) + include : DotAt MIDDLE symbolMid (PERIODRADIUS - O) save 'period.center' save 'interpunct' 0xB7 save 'greekbullet' 0x387 @@ -832,7 +831,7 @@ glyph-block Symbol-Punctuation : begin save 'hyphenpoint' 0x2027 sketch # whitebullet - set-width FULLWIDTH + set-width WIDE-WIDTH-1 local s : [adviceBlackness 5] * 0.75 include : difference DotAt FWMIDDLE symbolMid (PERIODRADIUS - O) @@ -914,15 +913,6 @@ glyph-block Symbol-Punctuation : begin apply-transform : Translate dist 0 save 'revertDoubleQuote' - fwr nothing 0x201A 'lowSingleQuote' 0 FULLWIDTH3 - fwr nothing 0x2018 'openSingleQuote' 0 FULLWIDTH3 - fwl nothing 0x2019 'closeSingleQuote' 0 FULLWIDTH3 - fwr nothing 0x201B 'revertSingleQuote' 0 FULLWIDTH3 - fwr nothing 0x201E 'lowDoubleQuote' 0 FULLWIDTH3 - fwr nothing 0x201C 'openDoubleQuote' 0 FULLWIDTH3 - fwl nothing 0x201D 'closeDoubleQuote' 0 FULLWIDTH3 - fwr nothing 0x201F 'revertDoubleQuote' 0 FULLWIDTH3 - sketch # prime local wide : WIDTH * 0.1 include : dispiro @@ -1045,7 +1035,7 @@ glyph-block Symbol-Punctuation : begin include : HBar SB RIGHTSB [mix parenTop parenBot 0.67] save 'doubledagger' 0x2021 - for-width-kinds FULLWIDTH "Ellipsis" + for-width-kinds WIDE-WIDTH-1 "Ellipsis" define [DotRadius darkness space] : begin return : 0.5 * [adviceBlackness darkness (space / WIDTH)] * PERIODSIZE / STROKE diff --git a/meta/aesthetics.ptl b/meta/aesthetics.ptl index edb2d7903..9645a3858 100644 --- a/meta/aesthetics.ptl +++ b/meta/aesthetics.ptl @@ -106,12 +106,10 @@ export : define [calculateMetrics para] : begin define ONEBALANCE : fallback para.onebalance 0 # derived metrics - define NO_DIVERSITY : para.diversityM == 1 && para.diversityF == 1 && para.diversityI == 1 && para.diversityII == 1 - define FULLWIDTH0 : if NO_DIVERSITY (WIDTH * 2) UPM - define FULLWIDTH : if (para.spacing >= 2) FULLWIDTH0 WIDTH - define FULLWIDTH1 : if (para.spacing >= 1) FULLWIDTH0 WIDTH - define FULLWIDTH2 : if (para.spacing >= 2) FULLWIDTH0 WIDTH - define FULLWIDTH3 : if (para.spacing >= 3) FULLWIDTH0 WIDTH + define MONOSPACE : para.diversityM == 1 && para.diversityF == 1 && para.diversityI == 1 && para.diversityII == 1 + define WIDE-WIDTH-0 : if MONOSPACE (WIDTH * 2) UPM + define WIDE-WIDTH-1 : if (para.spacing >= 1) WIDE-WIDTH-0 WIDTH + define WIDE-WIDTH-2 : if (para.spacing >= 2) WIDE-WIDTH-0 WIDTH define OXE : OX - O define ESS : STROKE * [fallback para.essx CONTRAST] @@ -120,9 +118,9 @@ export : define [calculateMetrics para] : begin define CAPO : CAP - O define HALFSTROKE : STROKE / 2 define RIGHTSB : WIDTH - SB - define FWRSB : FULLWIDTH - SB + define FWRSB : WIDE-WIDTH-1 - SB define MIDDLE : WIDTH / 2 - define FWMIDDLE : FULLWIDTH / 2 + define FWMIDDLE : WIDE-WIDTH-1 / 2 define CAPMIDDLE : CAP / 2 define CAP_SMOOTH : CAP - SMOOTH define DOTRADIUS : DOTSIZE / 2 @@ -185,7 +183,7 @@ export : define [calculateMetrics para] : begin O OX OXHOOK HOOK AHOOK SHOOK RHOOK JHOOK FHOOK HOOKX SMOOTH SMALLSMOOTH STROKE DOTSIZE PERIODSIZE BARPOS GBARPOS EBARPOS OVERLAYPOS FIVEBARPOS LONGJUT JUT VJUT ACCENT ACCENTX CTHIN CTHINB SLAB TAILADJX TAILADJY LBALANCE IBALANCE LBALANCE2 IBALANCE2 JBALANCE JBALANCE2 TBALANCE TBALANCE2 RBALANCE RBALANCE2 - FBALANCE ONEBALANCE FULLWIDTH FULLWIDTH0 FULLWIDTH1 FULLWIDTH2 FULLWIDTH3 OXE ESS ESSQUESTION XO CAPO HALFSTROKE RIGHTSB FWRSB + FBALANCE ONEBALANCE WIDE-WIDTH-0 WIDE-WIDTH-1 WIDE-WIDTH-2 OXE ESS ESSQUESTION XO CAPO HALFSTROKE RIGHTSB FWRSB MIDDLE FWMIDDLE CAPMIDDLE CAP_SMOOTH DOTRADIUS PERIODRADIUS SIDEJUT SMOOTHA SMOOTHB SMALLSMOOTHA SMALLSMOOTHB CORRECTION_OMIDX CORRECTION_OMIDS WHITENESS adviceBlackness adviceBlackness2 MVERTSTROKE MVERTSTROKE_D OVERLAYSTROKE OPERATORSTROKE GEOMETRYSTROKE SHOULDERFINE SUPERNESS superxy adviceSSmooth adviceGlottalStopSmooth shoulderMidSlope] diff --git a/meta/macros.ptl b/meta/macros.ptl index 729055e34..cd3bbe657 100644 --- a/meta/macros.ptl +++ b/meta/macros.ptl @@ -142,7 +142,7 @@ define-macro glyph-block-import : syntax-rules define allExports : object CommonShapes `[queryFeatureSelector select-variant italic-variant alias composite - into-unicode turned hcombine vcombine dual vdual fwl fwr dwl dwr dwc Rect Ring RingAt + into-unicode turned hcombine vcombine dual vdual Rect Ring RingAt DotAt CircleRing CircleRingAt CircleDotAt OShape OShapeOutline OBarLeftShape OBarRightShape LeftwardTopSerif LeftwardBottomSerif RightwardTopSerif RightwardBottomSerif CenterTopSerif CenterBottomSerif DownwardRightSerif @@ -177,7 +177,7 @@ define-macro for-width-kinds : syntax-rules `[for-width-kinds @_desired @::_body] : dirty `[ do \\ define WidthKinds { {'.hwid' $Capture$.metrics.WIDTH $Capture$.metrics.WIDTH} - {'.fwid' $Capture$.metrics.FULLWIDTH0 ($Capture$.metrics.FULLWIDTH0 / 2)} + {'.fwid' $Capture$.metrics.WIDE-WIDTH-0 ($Capture$.metrics.WIDE-WIDTH-0 / 2)} } foreach {suffix MosaicWidth MosaicUnitWidth} [items-of WidthKinds] : do define [MangleUnicode unicode] : if (MosaicWidth == @[formOf _desired]) unicode nothing @@ -226,8 +226,8 @@ define-macro glyph-block : syntax-rules AHOOK SHOOK RHOOK JHOOK FHOOK HOOKX SMOOTH SMALLSMOOTH STROKE DOTSIZE PERIODSIZE BARPOS GBARPOS EBARPOS OVERLAYPOS FIVEBARPOS LONGJUT JUT VJUT ACCENT ACCENTX CTHIN CTHINB SLAB TAILADJX TAILADJY LBALANCE IBALANCE LBALANCE2 IBALANCE2 JBALANCE JBALANCE2 TBALANCE - TBALANCE2 RBALANCE RBALANCE2 FBALANCE ONEBALANCE FULLWIDTH FULLWIDTH0 FULLWIDTH1 - FULLWIDTH2 FULLWIDTH3 OXE ESS ESSQUESTION XO CAPO HALFSTROKE RIGHTSB FWRSB MIDDLE + TBALANCE2 RBALANCE RBALANCE2 FBALANCE ONEBALANCE WIDE-WIDTH-0 WIDE-WIDTH-1 + WIDE-WIDTH-2 OXE ESS ESSQUESTION XO CAPO HALFSTROKE RIGHTSB FWRSB MIDDLE FWMIDDLE CAPMIDDLE CAP_SMOOTH DOTRADIUS PERIODRADIUS SIDEJUT SMOOTHA SMOOTHB SMALLSMOOTHA SMALLSMOOTHB CORRECTION_OMIDX CORRECTION_OMIDS adviceBlackness adviceBlackness2 MVERTSTROKE MVERTSTROKE_D OVERLAYSTROKE OPERATORSTROKE GEOMETRYSTROKE diff --git a/package.json b/package.json index bff54a154..03b728078 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iosevka", - "version": "3.0.0-beta.4", + "version": "3.0.0-rc.1", "main": "./generate.js", "engines": { "node": ">=8.4.0" diff --git a/parameters.toml b/parameters.toml index b81f4f942..ebc4ad719 100644 --- a/parameters.toml +++ b/parameters.toml @@ -41,7 +41,7 @@ isOblique = false # Use oblique shapes? lllcrowdedness = 3.33333333 -spacing = 1 # Spacing indicator +spacing = 1 # Spacing indicator # Powerline-specific parameters powerlineScaleY = 1 # Vertical scale @@ -49,9 +49,6 @@ powerlineScaleX = 1 # Horizontal scale powerlineShiftY = 0 # Vertical shift powerlineShiftX = 0 # Horizontal shift -# Full-width codes -fullwidth_codes = [] - # Diversity widths diversityM = 1 diversityF = 1 @@ -257,22 +254,16 @@ overshootx = -16 sb = 1.1 ### Spacings -[term] +# Fixed variant +[sp-fixed] spacing = 0 enableLigation = false +forceMonospace = true -# Term variant with ligations -[termlig] +# Terminal variant +[sp-term] spacing = 0 -[type] -inherits = ["xx-type"] -spacing = 2 - -[cc] -inherits = ["xx-cc"] -spacing = 3 - ###### Widths # NOTE: this section is highly experimental # HANDLE WITH EXTREME CARE @@ -316,69 +307,6 @@ enableLigation = false [no-cv-ss] enableCvSs = false -###### Full-width codes -[xx-type] -spacing = 2 -[xx-type.appends] -fullwidth_codes = [ - 8212, #— - 8251, #※ - # 8451, #℃ - 8719, #∏ - 8720, - 8721, #∑ - 8733, #∝ - 8734, #∞ - 8736, #∠ - 8748, #∫∫ - 8749, #∫∫∫ - 8978, #⌒ - 8896,8897,8898,8899 -] - -[xx-cc] -inherits = ["xx-type"] -spacing = 3 -[xx-cc.appends] -fullwidth_codes = [ - 164, #¤ - 177, #± - 215, #× - 247, #÷ - 711, #ˇ - 713, #ˉ - 167, #§ - 8741, #∥ - 8743, #∧ - 8744, #∨ - 8745, #∩ - 8746, #∪ - 8214, #‖ - 8242, #′ - 8243, #″ - 8747, #∫ - 8750, #∮ - 8764, #∽ - 8765, #∽ - 8776, #≈ - 8780, #≌ - 8800, #≠ - 8801, #≡ - 8804, #≤ - 8805, #≥ - 8814, #≮ - 8815, #≯ - 8866, - 8867, - 8868, - 8869, #⊥ - 8816,8817,8834,8835,8836,8837, - 8853, #⊕ - 8854, - 8857, #⊙ - 8712, #∈ -] - ###### Leading [leading-750] leading = 750 diff --git a/utility/generate-release-note/index.js b/utility/generate-release-note/index.js index 23f1b8357..fcd1601ad 100644 --- a/utility/generate-release-note/index.js +++ b/utility/generate-release-note/index.js @@ -98,9 +98,8 @@ const PackageShapes = { const PackageSpacings = { // spacingDesc, ligation, spacingNameSuffix "": ["Default", true, ""], - term: ["Terminal", false, "Term"], - type: ["Typesetting", true, "Type"], - "term-lig": ["Terminal-Ligature", true, "TermLig"] + fixed: ["Fixed", false, "Fixed"], + term: ["Terminal", true, "Term"] }; async function GeneratePackageList(out) { diff --git a/utility/generate-release-note/release-note-fragments/deprecated-packages.md b/utility/generate-release-note/release-note-fragments/deprecated-packages.md index 496d94ac2..3ee775e64 100644 --- a/utility/generate-release-note/release-note-fragments/deprecated-packages.md +++ b/utility/generate-release-note/release-note-fragments/deprecated-packages.md @@ -1,8 +1,10 @@ -### Deprecated Series +### Packaging Reorganization -The “CC” series, which is intended to made width-compatible with legacy East Asian fonts from Iosevka 2.x is considered deprecated and will be removed soon. The variants include: +Since Iosevka 3.0.0-rc.1, the following packaging reorganization is introduced: -* `iosevka-cc-DEPRECATED-` -* `iosevka-cc-slab-DEPRECATED-` -* `iosevka-cc-curly-DEPRECATED-` -* `iosevka-cc-curly-slab-DEPRECATED-` \ No newline at end of file + * `Iosevka Term` → `Iosevka Fixed`. + * `Iosevka TermLig` → `Iosevka Term`. + * `Iosevka Type` → Removed. + * `Iosevka CC` → Removed. + +The default Iosevka family's spacing is also updated to focus on code editing solely. \ No newline at end of file diff --git a/utility/generate-release-note/release-note-fragments/packages-desc.md b/utility/generate-release-note/release-note-fragments/packages-desc.md index a5f640588..7b612a7fc 100644 --- a/utility/generate-release-note/release-note-fragments/packages-desc.md +++ b/utility/generate-release-note/release-note-fragments/packages-desc.md @@ -3,10 +3,9 @@ Iosevka provides a large variety of variants. Prebuilt variants are described below. - **Spacing** : How wide some specific characters are. - - _Default_: The default variant with ligatures and semantic full-width glyphs. - - _Terminal_ (“Term”): Exact monospaced font without ligatures and full-width glyphs. Since some environments cannot interpret Iosevka as monospaced, and have difficulties with ligatures included, you can use Iosevka Term as an alternative. - - _Terminal-Ligature_ (“TermLig”):Exact monospaced font with ligatures. - - _Typesetting_ (“Type”): Similar to _Default_, but more mathematical symbols are wider. + - _Default_: The default variant with ligatures. Various symbols, like arrows, are wide (2-column). + - _Terminal_ (“Term”):A narrower variant focusing terminal uses. Arrows and many other symbols are narrow. + - _Fixed_: Exact monospaced font without ligatures and wide glyphs. Since some environments cannot interpret Iosevka as monospaced, and have difficulties with ligatures included, you can use Iosevka Term as an alternative. - **Shape** : Key shape parameters: - *Slab*: Letters will contain slab serif. - *Curly*: Letters like `k`, `x`, `v`, `A`, `R` will have curly leg shapes.