Fix a disjoint stroke of Outlined Curly Z under some weights (#2195).

This commit is contained in:
be5invis 2024-02-04 11:47:39 -08:00
parent fb3bd84c33
commit fc4eb71e4b
27 changed files with 90 additions and 90 deletions

View file

@ -1,5 +1,4 @@
* \[**BREAKING**\] Add separate serifed variants for digits `2` through `5`. As a result, current variants are reordered (#1965). * \[**BREAKING**\] Add separate serifed variants for digits `2` through `5`. As a result, current variants are reordered (#1965). Change of variant names:
* \[**Breaking**\] Change of variant names:
- `two`.`straight-neck``two`.`straight-neck-serifless` - `two`.`straight-neck``two`.`straight-neck-serifless`
- `two`.`curly-neck``two`.`curly-neck-serifless` - `two`.`curly-neck``two`.`curly-neck-serifless`
- `three`.`flat-top``three`.`flat-top-serifless` - `three`.`flat-top``three`.`flat-top-serifless`
@ -13,3 +12,4 @@
- `five`.`upright-flat``five`.`upright-flat-serifless` - `five`.`upright-flat``five`.`upright-flat-serifless`
- `five`.`oblique-arched``five`.`oblique-arched-serifless` - `five`.`oblique-arched``five`.`oblique-arched-serifless`
- `five`.`oblique-flat``five`.`oblique-flat-serifless` - `five`.`oblique-flat``five`.`oblique-flat-serifless`
* Fix a disjoint stroke of Outlined Curly `Z` under some weights (#2195).

80
package-lock.json generated
View file

@ -1,12 +1,12 @@
{ {
"name": "@iosevka/monorepo", "name": "@iosevka/monorepo",
"version": "28.1.0", "version": "29.0.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@iosevka/monorepo", "name": "@iosevka/monorepo",
"version": "28.1.0", "version": "29.0.0",
"workspaces": [ "workspaces": [
"packages/*", "packages/*",
"tools/*" "tools/*"
@ -3974,16 +3974,16 @@
}, },
"packages/font": { "packages/font": {
"name": "@iosevka/font", "name": "@iosevka/font",
"version": "28.1.0", "version": "29.0.0",
"dependencies": { "dependencies": {
"@iarna/toml": "^2.2.5", "@iarna/toml": "^2.2.5",
"@iosevka/font-glyphs": "28.1.0", "@iosevka/font-glyphs": "29.0.0",
"@iosevka/font-otl": "28.1.0", "@iosevka/font-otl": "29.0.0",
"@iosevka/geometry": "28.1.0", "@iosevka/geometry": "29.0.0",
"@iosevka/geometry-cache": "28.1.0", "@iosevka/geometry-cache": "29.0.0",
"@iosevka/glyph": "28.1.0", "@iosevka/glyph": "29.0.0",
"@iosevka/param": "28.1.0", "@iosevka/param": "29.0.0",
"@iosevka/util": "28.1.0", "@iosevka/util": "29.0.0",
"harfbuzzjs": "^0.3.4", "harfbuzzjs": "^0.3.4",
"ot-builder": "^1.7.3", "ot-builder": "^1.7.3",
"semver": "^7.5.4" "semver": "^7.5.4"
@ -3991,100 +3991,100 @@
}, },
"packages/font-glyphs": { "packages/font-glyphs": {
"name": "@iosevka/font-glyphs", "name": "@iosevka/font-glyphs",
"version": "28.1.0", "version": "29.0.0",
"dependencies": { "dependencies": {
"@iosevka/font-kits": "28.1.0", "@iosevka/font-kits": "29.0.0",
"@iosevka/geometry": "28.1.0", "@iosevka/geometry": "29.0.0",
"@iosevka/geometry-cache": "28.1.0", "@iosevka/geometry-cache": "29.0.0",
"@iosevka/glyph": "28.1.0", "@iosevka/glyph": "29.0.0",
"@iosevka/util": "28.1.0", "@iosevka/util": "29.0.0",
"typo-geom": "^0.14.0" "typo-geom": "^0.14.0"
} }
}, },
"packages/font-kits": { "packages/font-kits": {
"name": "@iosevka/font-kits", "name": "@iosevka/font-kits",
"version": "28.1.0", "version": "29.0.0",
"dependencies": { "dependencies": {
"@iosevka/geometry": "28.1.0", "@iosevka/geometry": "29.0.0",
"@iosevka/glyph": "28.1.0", "@iosevka/glyph": "29.0.0",
"@iosevka/util": "28.1.0" "@iosevka/util": "29.0.0"
} }
}, },
"packages/font-otl": { "packages/font-otl": {
"name": "@iosevka/font-otl", "name": "@iosevka/font-otl",
"version": "28.1.0", "version": "29.0.0",
"dependencies": { "dependencies": {
"@iosevka/font-glyphs": "28.1.0", "@iosevka/font-glyphs": "29.0.0",
"@iosevka/glyph": "28.1.0", "@iosevka/glyph": "29.0.0",
"toposort": "^2.0.2" "toposort": "^2.0.2"
} }
}, },
"packages/geometry": { "packages/geometry": {
"name": "@iosevka/geometry", "name": "@iosevka/geometry",
"version": "28.1.0", "version": "29.0.0",
"dependencies": { "dependencies": {
"@iosevka/util": "28.1.0", "@iosevka/util": "29.0.0",
"spiro": "^3.0.0", "spiro": "^3.0.0",
"typo-geom": "^0.14.0" "typo-geom": "^0.14.0"
} }
}, },
"packages/geometry-cache": { "packages/geometry-cache": {
"name": "@iosevka/geometry-cache", "name": "@iosevka/geometry-cache",
"version": "28.1.0", "version": "29.0.0",
"dependencies": { "dependencies": {
"@iosevka/geometry": "28.1.0", "@iosevka/geometry": "29.0.0",
"@msgpack/msgpack": "^2.8.0" "@msgpack/msgpack": "^2.8.0"
} }
}, },
"packages/glyph": { "packages/glyph": {
"name": "@iosevka/glyph", "name": "@iosevka/glyph",
"version": "28.1.0", "version": "29.0.0",
"dependencies": { "dependencies": {
"@iosevka/geometry": "28.1.0" "@iosevka/geometry": "29.0.0"
} }
}, },
"packages/param": { "packages/param": {
"name": "@iosevka/param", "name": "@iosevka/param",
"version": "28.1.0", "version": "29.0.0",
"dependencies": { "dependencies": {
"@iosevka/util": "28.1.0" "@iosevka/util": "29.0.0"
} }
}, },
"packages/util": { "packages/util": {
"name": "@iosevka/util", "name": "@iosevka/util",
"version": "28.1.0" "version": "29.0.0"
}, },
"tools/amend-readme": { "tools/amend-readme": {
"name": "@iosevka/amend-readme", "name": "@iosevka/amend-readme",
"version": "28.1.0", "version": "29.0.0",
"dependencies": { "dependencies": {
"@iarna/toml": "^2.2.5", "@iarna/toml": "^2.2.5",
"@iosevka/param": "28.1.0", "@iosevka/param": "29.0.0",
"@unicode/unicode-15.1.0": "^1.5.2" "@unicode/unicode-15.1.0": "^1.5.2"
} }
}, },
"tools/data-export": { "tools/data-export": {
"name": "@iosevka/data-export", "name": "@iosevka/data-export",
"version": "28.1.0", "version": "29.0.0",
"dependencies": { "dependencies": {
"@iarna/toml": "^2.2.5", "@iarna/toml": "^2.2.5",
"@iosevka/param": "28.1.0", "@iosevka/param": "29.0.0",
"@unicode/unicode-15.1.0": "^1.5.2", "@unicode/unicode-15.1.0": "^1.5.2",
"cldr": "^7.5.0" "cldr": "^7.5.0"
} }
}, },
"tools/generate-samples": { "tools/generate-samples": {
"name": "@iosevka/generate-samples", "name": "@iosevka/generate-samples",
"version": "28.1.0", "version": "29.0.0",
"dependencies": { "dependencies": {
"@iosevka/data-export": "28.1.0" "@iosevka/data-export": "29.0.0"
} }
}, },
"tools/misc": { "tools/misc": {
"name": "@iosevka/misc", "name": "@iosevka/misc",
"version": "28.1.0", "version": "29.0.0",
"dependencies": { "dependencies": {
"@iosevka/util": "28.1.0", "@iosevka/util": "29.0.0",
"semver": "^7.5.4", "semver": "^7.5.4",
"wawoff2": "^2.0.1" "wawoff2": "^2.0.1"
} }

View file

@ -1,6 +1,6 @@
{ {
"name": "@iosevka/monorepo", "name": "@iosevka/monorepo",
"version": "28.1.0", "version": "29.0.0",
"workspaces": [ "workspaces": [
"packages/*", "packages/*",
"tools/*" "tools/*"

View file

@ -1,6 +1,6 @@
{ {
"name": "@iosevka/font-glyphs", "name": "@iosevka/font-glyphs",
"version": "28.1.0", "version": "29.0.0",
"private": true, "private": true,
"exports": { "exports": {
".": "./src/index.mjs", ".": "./src/index.mjs",
@ -8,11 +8,11 @@
"./unicode-knowledge": "./src/meta/unicode-knowledge.mjs" "./unicode-knowledge": "./src/meta/unicode-knowledge.mjs"
}, },
"dependencies": { "dependencies": {
"@iosevka/font-kits": "28.1.0", "@iosevka/font-kits": "29.0.0",
"@iosevka/geometry": "28.1.0", "@iosevka/geometry": "29.0.0",
"@iosevka/geometry-cache": "28.1.0", "@iosevka/geometry-cache": "29.0.0",
"@iosevka/glyph": "28.1.0", "@iosevka/glyph": "29.0.0",
"@iosevka/util": "28.1.0", "@iosevka/util": "29.0.0",
"typo-geom": "^0.14.0" "typo-geom": "^0.14.0"
} }
} }

View file

@ -50,8 +50,8 @@ glyph-block Letter-Latin-Ezh : begin
spiro-outline spiro-outline
corner (-Width) bot corner (-Width) bot
corner (-Width) (2 * top) corner (-Width) (2 * top)
corner (ezhRight - xDiagWidth) (2 * top) corner (ezhRight - xDiagWidth + 0.1) (2 * top)
corner (ezhRight - xDiagWidth) (top - yFootHeight) corner (ezhRight - xDiagWidth + 0.1) (top - yFootHeight)
corner (ezhLeft + xDiagWidth) yMidBar corner (ezhLeft + xDiagWidth) yMidBar
corner (ezhLeft + xDiagWidth) bot corner (ezhLeft + xDiagWidth) bot
dispiro dispiro
@ -61,7 +61,7 @@ glyph-block Letter-Latin-Ezh : begin
g2.right.mid (SB + xHookDepth) (top - O) [widths.rhs.heading Stroke Rightward] g2.right.mid (SB + xHookDepth) (top - O) [widths.rhs.heading Stroke Rightward]
flat [mix (SB + xMockTailDepth) ezhRight kTop] (top - kTop * yTailDepth) flat [mix (SB + xMockTailDepth) ezhRight kTop] (top - kTop * yTailDepth)
curl [mix (SB + xMockTailDepth) ezhRight 4] (top - 4 * yTailDepth) curl [mix (SB + xMockTailDepth) ezhRight 4] (top - 4 * yTailDepth)
include : VBar.r ezhRight top (top - yFootHeight) (xDiagWidth / HVContrast) include : VBar.r ezhRight top (top - yFootHeight) (xDiagWidth / HVContrast)
include : dispiro include : dispiro
corner ezhRight (top - yFootHeight) [widths.rhs (Stroke / HVContrast)] corner ezhRight (top - yFootHeight) [widths.rhs (Stroke / HVContrast)]
@ -218,7 +218,7 @@ glyph-block Letter-Latin-Ezh : begin
include : dispiro include : dispiro
corner ezhLeft (top - Stroke) [widths.lhs (Stroke / HVContrast)] corner ezhLeft (top - Stroke) [widths.lhs (Stroke / HVContrast)]
corner ezhRight yMidBar [widths.rhs (Stroke / HVContrast)] corner ezhRight yMidBar [widths.rhs (Stroke / HVContrast)]
include : dispiro include : dispiro
widths.lhs widths.lhs
flat ezhRight yMidBar [heading Leftward] flat ezhRight yMidBar [heading Leftward]

View file

@ -84,8 +84,8 @@ glyph-block Letter-Latin-Z : begin
corner SB 0 corner SB 0
corner (-Width) 0 corner (-Width) 0
corner (-Width) (2 * top) corner (-Width) (2 * top)
corner (RightSB - xDiagWidth) (2 * top) corner (RightSB - xDiagWidth + 0.1) (2 * top)
corner (RightSB - xDiagWidth) (top - yFootHeight) corner (RightSB - xDiagWidth + 0.1) (top - yFootHeight)
dispiro dispiro
flat (SB + OX) (top - yHookDepth) [widths.rhs.heading hookTerminalWidth Upward] flat (SB + OX) (top - yHookDepth) [widths.rhs.heading hookTerminalWidth Upward]
curl (SB + OX) (top - yHookDepth + yHookStraightDepth) [heading Upward] curl (SB + OX) (top - yHookDepth + yHookStraightDepth) [heading Upward]
@ -97,7 +97,7 @@ glyph-block Letter-Latin-Z : begin
include : dispiro include : dispiro
corner RightSB (top - yFootHeight) [widths.rhs (Stroke / HVContrast)] corner RightSB (top - yFootHeight) [widths.rhs (Stroke / HVContrast)]
corner SB [if (mode == MODE-ZSWASH) 0 yFootHeight] [widths.lhs (Stroke / HVContrast)] corner SB [if (mode == MODE-ZSWASH) 0 yFootHeight] [widths.lhs (Stroke / HVContrast)]
include : VBar.r RightSB top (top - yFootHeight) (xDiagWidth / HVContrast) include : VBar.r RightSB top (top - yFootHeight) (xDiagWidth / HVContrast)
if (mode != MODE-ZSWASH) : include : VBar.l SB 0 yFootHeight (xDiagWidth / HVContrast) if (mode != MODE-ZSWASH) : include : VBar.l SB 0 yFootHeight (xDiagWidth / HVContrast)
@ -120,8 +120,8 @@ glyph-block Letter-Latin-Z : begin
([Just MODE-ZDESC] || [Just MODE-ZSWASH]) : no-shape ([Just MODE-ZDESC] || [Just MODE-ZSWASH]) : no-shape
__ : intersection __ : intersection
spiro-outline spiro-outline
corner (SB + xDiagWidth) yFootHeight corner (SB + xDiagWidth - 0.1) yFootHeight
corner (SB + xDiagWidth) (-top) corner (SB + xDiagWidth - 0.1) (-top)
corner (2 * Width) (-top) corner (2 * Width) (-top)
corner (2 * Width) (top) corner (2 * Width) (top)
corner RightSB top corner RightSB top

View file

@ -1,14 +1,14 @@
{ {
"name": "@iosevka/font-kits", "name": "@iosevka/font-kits",
"version": "28.1.0", "version": "29.0.0",
"private": true, "private": true,
"exports": { "exports": {
"./boole-kit": "./src/boole-kit.mjs", "./boole-kit": "./src/boole-kit.mjs",
"./spiro-kit": "./src/spiro-kit.mjs" "./spiro-kit": "./src/spiro-kit.mjs"
}, },
"dependencies": { "dependencies": {
"@iosevka/geometry": "28.1.0", "@iosevka/geometry": "29.0.0",
"@iosevka/glyph": "28.1.0", "@iosevka/glyph": "29.0.0",
"@iosevka/util": "28.1.0" "@iosevka/util": "29.0.0"
} }
} }

View file

@ -1,13 +1,13 @@
{ {
"name": "@iosevka/font-otl", "name": "@iosevka/font-otl",
"version": "28.1.0", "version": "29.0.0",
"private": true, "private": true,
"exports": { "exports": {
".": "./src/index.mjs" ".": "./src/index.mjs"
}, },
"dependencies": { "dependencies": {
"@iosevka/font-glyphs": "28.1.0", "@iosevka/font-glyphs": "29.0.0",
"@iosevka/glyph": "28.1.0", "@iosevka/glyph": "29.0.0",
"toposort": "^2.0.2" "toposort": "^2.0.2"
} }
} }

View file

@ -1,6 +1,6 @@
{ {
"name": "@iosevka/font", "name": "@iosevka/font",
"version": "28.1.0", "version": "29.0.0",
"private": true, "private": true,
"exports": { "exports": {
".": "./src/index.mjs", ".": "./src/index.mjs",
@ -10,13 +10,13 @@
}, },
"dependencies": { "dependencies": {
"@iarna/toml": "^2.2.5", "@iarna/toml": "^2.2.5",
"@iosevka/font-glyphs": "28.1.0", "@iosevka/font-glyphs": "29.0.0",
"@iosevka/font-otl": "28.1.0", "@iosevka/font-otl": "29.0.0",
"@iosevka/geometry": "28.1.0", "@iosevka/geometry": "29.0.0",
"@iosevka/geometry-cache": "28.1.0", "@iosevka/geometry-cache": "29.0.0",
"@iosevka/glyph": "28.1.0", "@iosevka/glyph": "29.0.0",
"@iosevka/param": "28.1.0", "@iosevka/param": "29.0.0",
"@iosevka/util": "28.1.0", "@iosevka/util": "29.0.0",
"harfbuzzjs": "^0.3.4", "harfbuzzjs": "^0.3.4",
"ot-builder": "^1.7.3", "ot-builder": "^1.7.3",
"semver": "^7.5.4" "semver": "^7.5.4"

View file

@ -1,12 +1,12 @@
{ {
"name": "@iosevka/geometry-cache", "name": "@iosevka/geometry-cache",
"version": "28.1.0", "version": "29.0.0",
"private": true, "private": true,
"exports": { "exports": {
".": "./src/index.mjs" ".": "./src/index.mjs"
}, },
"dependencies": { "dependencies": {
"@iosevka/geometry": "28.1.0", "@iosevka/geometry": "29.0.0",
"@msgpack/msgpack": "^2.8.0" "@msgpack/msgpack": "^2.8.0"
} }
} }

View file

@ -1,6 +1,6 @@
{ {
"name": "@iosevka/geometry", "name": "@iosevka/geometry",
"version": "28.1.0", "version": "29.0.0",
"private": true, "private": true,
"exports": { "exports": {
".": "./src/index.mjs", ".": "./src/index.mjs",
@ -13,7 +13,7 @@
"./spiro-control": "./src/spiro-control.mjs" "./spiro-control": "./src/spiro-control.mjs"
}, },
"dependencies": { "dependencies": {
"@iosevka/util": "28.1.0", "@iosevka/util": "29.0.0",
"spiro": "^3.0.0", "spiro": "^3.0.0",
"typo-geom": "^0.14.0" "typo-geom": "^0.14.0"
} }

View file

@ -1,6 +1,6 @@
{ {
"name": "@iosevka/glyph", "name": "@iosevka/glyph",
"version": "28.1.0", "version": "29.0.0",
"private": true, "private": true,
"exports": { "exports": {
".": "./src/glyph.mjs", ".": "./src/glyph.mjs",
@ -9,6 +9,6 @@
"./relation": "./src/relation.mjs" "./relation": "./src/relation.mjs"
}, },
"dependencies": { "dependencies": {
"@iosevka/geometry": "28.1.0" "@iosevka/geometry": "29.0.0"
} }
} }

View file

@ -1,6 +1,6 @@
{ {
"name": "@iosevka/param", "name": "@iosevka/param",
"version": "28.1.0", "version": "29.0.0",
"private": true, "private": true,
"exports": { "exports": {
".": "./src/index.mjs", ".": "./src/index.mjs",
@ -9,6 +9,6 @@
"./metric-override": "./src/metric-override.mjs" "./metric-override": "./src/metric-override.mjs"
}, },
"dependencies": { "dependencies": {
"@iosevka/util": "28.1.0" "@iosevka/util": "29.0.0"
} }
} }

View file

@ -1,6 +1,6 @@
{ {
"name": "@iosevka/util", "name": "@iosevka/util",
"version": "28.1.0", "version": "29.0.0",
"private": true, "private": true,
"exports": { "exports": {
".": "./src/index.mjs", ".": "./src/index.mjs",

View file

@ -1,13 +1,13 @@
{ {
"name": "@iosevka/amend-readme", "name": "@iosevka/amend-readme",
"version": "28.1.0", "version": "29.0.0",
"private": true, "private": true,
"exports": { "exports": {
".": "./src/index.mjs" ".": "./src/index.mjs"
}, },
"dependencies": { "dependencies": {
"@iarna/toml": "^2.2.5", "@iarna/toml": "^2.2.5",
"@iosevka/param": "28.1.0", "@iosevka/param": "29.0.0",
"@unicode/unicode-15.1.0": "^1.5.2" "@unicode/unicode-15.1.0": "^1.5.2"
} }
} }

View file

@ -1,6 +1,6 @@
{ {
"name": "@iosevka/data-export", "name": "@iosevka/data-export",
"version": "28.1.0", "version": "29.0.0",
"private": true, "private": true,
"exports": { "exports": {
".": "./src/index.mjs", ".": "./src/index.mjs",
@ -10,7 +10,7 @@
}, },
"dependencies": { "dependencies": {
"@iarna/toml": "^2.2.5", "@iarna/toml": "^2.2.5",
"@iosevka/param": "28.1.0", "@iosevka/param": "29.0.0",
"@unicode/unicode-15.1.0": "^1.5.2", "@unicode/unicode-15.1.0": "^1.5.2",
"cldr": "^7.5.0" "cldr": "^7.5.0"
} }

View file

@ -1,11 +1,11 @@
{ {
"name": "@iosevka/generate-samples", "name": "@iosevka/generate-samples",
"version": "28.1.0", "version": "29.0.0",
"private": true, "private": true,
"exports": { "exports": {
".": "./src/index.mjs" ".": "./src/index.mjs"
}, },
"dependencies": { "dependencies": {
"@iosevka/data-export": "28.1.0" "@iosevka/data-export": "29.0.0"
} }
} }

View file

@ -1,10 +1,10 @@
{ {
"name": "@iosevka/misc", "name": "@iosevka/misc",
"version": "28.1.0", "version": "29.0.0",
"private": true, "private": true,
"dependencies": { "dependencies": {
"semver": "^7.5.4", "semver": "^7.5.4",
"wawoff2": "^2.0.1", "wawoff2": "^2.0.1",
"@iosevka/util": "28.1.0" "@iosevka/util": "29.0.0"
} }
} }