diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ddfaf8d4c..2e571ac243 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ ## Modifications since version 2.x +### 3.7.1 + + * Fix broken line height under Macintosh (#704). + + ### 3.7.0 * Make `v-k-cursive` visible in Upright and Oblique; Split variant selectors for `k` and `K` (#700). diff --git a/README.md b/README.md index 853a7936ea..39509bc372 100644 --- a/README.md +++ b/README.md @@ -194,7 +194,7 @@ Since version 2.0, Iosevka would no longer support building via `makefile`. To i - + 3. Run `npm run build -- contents::` and the built fonts would be avaliable in `dist/`. Aside from `contents::`, other options are: diff --git a/changes/3.7.1.md b/changes/3.7.1.md new file mode 100644 index 0000000000..614c95bf68 --- /dev/null +++ b/changes/3.7.1.md @@ -0,0 +1 @@ + * Fix broken line height under Macintosh (#704). \ No newline at end of file diff --git a/font-src/gen/empty-font.js b/font-src/gen/empty-font.js index 77ce6851a9..bb4e614092 100644 --- a/font-src/gen/empty-font.js +++ b/font-src/gen/empty-font.js @@ -42,7 +42,18 @@ module.exports = function () { }, OS_2: { achVendID: "BE5N", - panose: [2, 0, 5, 9, 0, 0, 0, 0, 0, 0], + panose: { + bFamilyType: 2, + bSerifStyle: 0, + bWeight: 5, + bProportion: 9, + bContrast: 3, + bStrokeVariation: 0, + bArmStyle: 0, + bLetterform: 0, + bMidline: 0, + bXHeight: 4 + }, fsSelection: 192, fsType: 0, sCapHeight: 0, diff --git a/font-src/meta/aesthetics.ptl b/font-src/meta/aesthetics.ptl index 6a398dd6e0..487d682a49 100644 --- a/font-src/meta/aesthetics.ptl +++ b/font-src/meta/aesthetics.ptl @@ -205,28 +205,30 @@ export : define [calculateMetrics para] : begin export : define [setFontMetrics para metrics fm] : begin define [object CAP Descender XH Width] metrics - # Metric metadata - # Note: we use 1000upm in design, and (1000 * upmsacle)upm in production, to avoid rounding error. - define asc : para.leading * CAP / (CAP - Descender) - define desc : para.leading * Descender / (CAP - Descender) - define descenderPad : fallback para.descenderPad 0 + + define leading : Math.round para.leading + define asc : Math.round : leading * CAP / (CAP - Descender) + define desc : Math.round : leading * Descender / (CAP - Descender) + define descenderPad : Math.round : fallback para.descenderPad 0 + define winMetricAscenderPad : Math.round : fallback para.winMetricAscenderPad 0 + define winMetricDescenderPad : Math.round : fallback para.winMetricDescenderPad 0 set fm.OS_2.xAvgCharWidth Width set fm.head.unitsPerEm 1000 set fm.hhea.ascender asc - set fm.OS_2.usWinAscent (asc + [fallback para.winMetricAscenderPad 0]) + set fm.OS_2.usWinAscent (asc + winMetricAscenderPad) set fm.OS_2.sTypoAscender asc set fm.hhea.descender (Descender - descenderPad) - set fm.OS_2.usWinDescent ([Math.abs desc] + descenderPad + [fallback para.winMetricDescenderPad 0]) + set fm.OS_2.usWinDescent ([Math.abs desc] + descenderPad + winMetricDescenderPad) set fm.OS_2.sTypoDescender (desc - descenderPad) - set fm.hhea.lineGap (para.leading - asc + Descender) - set fm.OS_2.sTypoLineGap (para.leading - asc + desc) + set fm.hhea.lineGap (leading - asc + Descender) + set fm.OS_2.sTypoLineGap (leading - asc + desc) set fm.OS_2.sxHeight XH set fm.OS_2.sCapHeight CAP - set fm.post.italicAngle (0 - para.slopeAngle) + set fm.post.italicAngle [Math.round (0 - para.slopeAngle)] export : define [compositeBaseAnchors] : begin diff --git a/font-src/meta/naming.ptl b/font-src/meta/naming.ptl index 2de403c63c..d218b93c49 100644 --- a/font-src/meta/naming.ptl +++ b/font-src/meta/naming.ptl @@ -171,7 +171,7 @@ export : define [assignFontNames para metrics font] : begin # Weight, width and slope set font.OS_2.usWeightClass para.naming.weight set font.OS_2.usWidthClass para.naming.width - set font.OS_2.panose.2 : 1 + para.naming.weight / 100 + set font.OS_2.panose.bWeight : 1 + para.naming.weight / 100 set font.OS_2.fsSelection : object oblique : not : not isOblique bold : not : not isBold @@ -193,8 +193,8 @@ export : define [assignFontNames para metrics font] : begin set font.head.fontRevision : majorVersion + (minorVersion * 10 + patchVersion) / 1000 if (para.diversityM == 1 && para.diversityF == 1 && para.diversityI == 1 && para.diversityII == 1) : begin - set font.OS_2.panose.3 9 # Monospaced - set font.post.isFixedPitch true + set font.OS_2.panose.bProportion 9 # Monospaced + set font.post.isFixedPitch true : else : begin - set font.OS_2.panose.3 0 - set font.post.isFixedPitch false + set font.OS_2.panose.bProportion 0 + set font.post.isFixedPitch false diff --git a/images/charvars.png b/images/charvars.png index 0302920658..4d4e373a7d 100644 Binary files a/images/charvars.png and b/images/charvars.png differ diff --git a/images/iosevka-aile.png b/images/iosevka-aile.png index c9531389cf..9634c42772 100644 Binary files a/images/iosevka-aile.png and b/images/iosevka-aile.png differ diff --git a/images/iosevka-curly-slab.png b/images/iosevka-curly-slab.png index 6696380e43..9ca6a77f2e 100644 Binary files a/images/iosevka-curly-slab.png and b/images/iosevka-curly-slab.png differ diff --git a/images/iosevka-curly.png b/images/iosevka-curly.png index ec66f4b711..89f96c90a4 100644 Binary files a/images/iosevka-curly.png and b/images/iosevka-curly.png differ diff --git a/images/iosevka-etoile.png b/images/iosevka-etoile.png index c14ba396ed..b2508de470 100644 Binary files a/images/iosevka-etoile.png and b/images/iosevka-etoile.png differ diff --git a/images/iosevka-fixed-curly-slab.png b/images/iosevka-fixed-curly-slab.png index b72da4fc91..47e065b95c 100644 Binary files a/images/iosevka-fixed-curly-slab.png and b/images/iosevka-fixed-curly-slab.png differ diff --git a/images/iosevka-fixed-curly.png b/images/iosevka-fixed-curly.png index f17dc553db..4b621e072f 100644 Binary files a/images/iosevka-fixed-curly.png and b/images/iosevka-fixed-curly.png differ diff --git a/images/iosevka-fixed-slab.png b/images/iosevka-fixed-slab.png index 021ee55c7b..67093d293e 100644 Binary files a/images/iosevka-fixed-slab.png and b/images/iosevka-fixed-slab.png differ diff --git a/images/iosevka-fixed-ss01.png b/images/iosevka-fixed-ss01.png index b87b7342c9..043390af89 100644 Binary files a/images/iosevka-fixed-ss01.png and b/images/iosevka-fixed-ss01.png differ diff --git a/images/iosevka-fixed-ss02.png b/images/iosevka-fixed-ss02.png index 1a226044b1..55c4cc2c78 100644 Binary files a/images/iosevka-fixed-ss02.png and b/images/iosevka-fixed-ss02.png differ diff --git a/images/iosevka-fixed-ss03.png b/images/iosevka-fixed-ss03.png index db3998afb5..682631ac68 100644 Binary files a/images/iosevka-fixed-ss03.png and b/images/iosevka-fixed-ss03.png differ diff --git a/images/iosevka-fixed-ss04.png b/images/iosevka-fixed-ss04.png index 8100248a58..8a05190e57 100644 Binary files a/images/iosevka-fixed-ss04.png and b/images/iosevka-fixed-ss04.png differ diff --git a/images/iosevka-fixed-ss05.png b/images/iosevka-fixed-ss05.png index 29b5ab216e..57c8927bd5 100644 Binary files a/images/iosevka-fixed-ss05.png and b/images/iosevka-fixed-ss05.png differ diff --git a/images/iosevka-fixed-ss06.png b/images/iosevka-fixed-ss06.png index 698ae63213..cc34772dbc 100644 Binary files a/images/iosevka-fixed-ss06.png and b/images/iosevka-fixed-ss06.png differ diff --git a/images/iosevka-fixed-ss07.png b/images/iosevka-fixed-ss07.png index ae1069ddf6..7f1d949169 100644 Binary files a/images/iosevka-fixed-ss07.png and b/images/iosevka-fixed-ss07.png differ diff --git a/images/iosevka-fixed-ss08.png b/images/iosevka-fixed-ss08.png index f89ff07e36..ec99c848ea 100644 Binary files a/images/iosevka-fixed-ss08.png and b/images/iosevka-fixed-ss08.png differ diff --git a/images/iosevka-fixed-ss09.png b/images/iosevka-fixed-ss09.png index e12ea8034c..44b7174ad2 100644 Binary files a/images/iosevka-fixed-ss09.png and b/images/iosevka-fixed-ss09.png differ diff --git a/images/iosevka-fixed-ss10.png b/images/iosevka-fixed-ss10.png index 435235c35e..50892bda86 100644 Binary files a/images/iosevka-fixed-ss10.png and b/images/iosevka-fixed-ss10.png differ diff --git a/images/iosevka-fixed-ss11.png b/images/iosevka-fixed-ss11.png index 97f957be70..525350dabd 100644 Binary files a/images/iosevka-fixed-ss11.png and b/images/iosevka-fixed-ss11.png differ diff --git a/images/iosevka-fixed-ss12.png b/images/iosevka-fixed-ss12.png index 24fa0bf75b..105f9dfbd8 100644 Binary files a/images/iosevka-fixed-ss12.png and b/images/iosevka-fixed-ss12.png differ diff --git a/images/iosevka-fixed-ss13.png b/images/iosevka-fixed-ss13.png index ce99c2d1f5..20cac3d271 100644 Binary files a/images/iosevka-fixed-ss13.png and b/images/iosevka-fixed-ss13.png differ diff --git a/images/iosevka-fixed-ss14.png b/images/iosevka-fixed-ss14.png index 0a2768af4c..e41351dcc1 100644 Binary files a/images/iosevka-fixed-ss14.png and b/images/iosevka-fixed-ss14.png differ diff --git a/images/iosevka-fixed.png b/images/iosevka-fixed.png index 8441e19bc5..e3192148d1 100644 Binary files a/images/iosevka-fixed.png and b/images/iosevka-fixed.png differ diff --git a/images/iosevka-slab.png b/images/iosevka-slab.png index 524c784c4a..bb328f0733 100644 Binary files a/images/iosevka-slab.png and b/images/iosevka-slab.png differ diff --git a/images/iosevka-sparkle.png b/images/iosevka-sparkle.png index c192cc2cc5..8028fda161 100644 Binary files a/images/iosevka-sparkle.png and b/images/iosevka-sparkle.png differ diff --git a/images/iosevka-ss01.png b/images/iosevka-ss01.png index b11ae32aa4..bcfc9f3f2b 100644 Binary files a/images/iosevka-ss01.png and b/images/iosevka-ss01.png differ diff --git a/images/iosevka-ss02.png b/images/iosevka-ss02.png index 0741db188c..090dadf061 100644 Binary files a/images/iosevka-ss02.png and b/images/iosevka-ss02.png differ diff --git a/images/iosevka-ss03.png b/images/iosevka-ss03.png index fe8c835e46..8aeb67780c 100644 Binary files a/images/iosevka-ss03.png and b/images/iosevka-ss03.png differ diff --git a/images/iosevka-ss04.png b/images/iosevka-ss04.png index d24ca00a99..50c08db56e 100644 Binary files a/images/iosevka-ss04.png and b/images/iosevka-ss04.png differ diff --git a/images/iosevka-ss05.png b/images/iosevka-ss05.png index fe7c009eea..c724497cc1 100644 Binary files a/images/iosevka-ss05.png and b/images/iosevka-ss05.png differ diff --git a/images/iosevka-ss06.png b/images/iosevka-ss06.png index 9410289cc7..3406c765ec 100644 Binary files a/images/iosevka-ss06.png and b/images/iosevka-ss06.png differ diff --git a/images/iosevka-ss07.png b/images/iosevka-ss07.png index 7991aff22e..86c1a49b32 100644 Binary files a/images/iosevka-ss07.png and b/images/iosevka-ss07.png differ diff --git a/images/iosevka-ss08.png b/images/iosevka-ss08.png index 502804e060..bb5f2e2eb9 100644 Binary files a/images/iosevka-ss08.png and b/images/iosevka-ss08.png differ diff --git a/images/iosevka-ss09.png b/images/iosevka-ss09.png index 195d73ed78..b9f2d835c0 100644 Binary files a/images/iosevka-ss09.png and b/images/iosevka-ss09.png differ diff --git a/images/iosevka-ss10.png b/images/iosevka-ss10.png index 73095898e3..1337aa8de4 100644 Binary files a/images/iosevka-ss10.png and b/images/iosevka-ss10.png differ diff --git a/images/iosevka-ss11.png b/images/iosevka-ss11.png index 83d9460e7c..3ee0a742bf 100644 Binary files a/images/iosevka-ss11.png and b/images/iosevka-ss11.png differ diff --git a/images/iosevka-ss12.png b/images/iosevka-ss12.png index 53c06afd36..545f5ea443 100644 Binary files a/images/iosevka-ss12.png and b/images/iosevka-ss12.png differ diff --git a/images/iosevka-ss13.png b/images/iosevka-ss13.png index 2aca4350cd..f4d9da1bb3 100644 Binary files a/images/iosevka-ss13.png and b/images/iosevka-ss13.png differ diff --git a/images/iosevka-ss14.png b/images/iosevka-ss14.png index e54375942a..1e1f74cccd 100644 Binary files a/images/iosevka-ss14.png and b/images/iosevka-ss14.png differ diff --git a/images/iosevka-term-curly-slab.png b/images/iosevka-term-curly-slab.png index e27759d4a8..60ce7d79b6 100644 Binary files a/images/iosevka-term-curly-slab.png and b/images/iosevka-term-curly-slab.png differ diff --git a/images/iosevka-term-curly.png b/images/iosevka-term-curly.png index 316ab89947..5a0ca8f48c 100644 Binary files a/images/iosevka-term-curly.png and b/images/iosevka-term-curly.png differ diff --git a/images/iosevka-term-slab.png b/images/iosevka-term-slab.png index d029430d3d..9bea7a43b3 100644 Binary files a/images/iosevka-term-slab.png and b/images/iosevka-term-slab.png differ diff --git a/images/iosevka-term-ss01.png b/images/iosevka-term-ss01.png index d0a6448865..045856eddf 100644 Binary files a/images/iosevka-term-ss01.png and b/images/iosevka-term-ss01.png differ diff --git a/images/iosevka-term-ss02.png b/images/iosevka-term-ss02.png index 17a5865c6d..6067d822e7 100644 Binary files a/images/iosevka-term-ss02.png and b/images/iosevka-term-ss02.png differ diff --git a/images/iosevka-term-ss03.png b/images/iosevka-term-ss03.png index 8184594e26..a61d6c48f8 100644 Binary files a/images/iosevka-term-ss03.png and b/images/iosevka-term-ss03.png differ diff --git a/images/iosevka-term-ss04.png b/images/iosevka-term-ss04.png index bcdc751d01..aff5d2f139 100644 Binary files a/images/iosevka-term-ss04.png and b/images/iosevka-term-ss04.png differ diff --git a/images/iosevka-term-ss05.png b/images/iosevka-term-ss05.png index 7148cafe2a..f387a4e763 100644 Binary files a/images/iosevka-term-ss05.png and b/images/iosevka-term-ss05.png differ diff --git a/images/iosevka-term-ss06.png b/images/iosevka-term-ss06.png index 4dd42943dc..e8b3e199ab 100644 Binary files a/images/iosevka-term-ss06.png and b/images/iosevka-term-ss06.png differ diff --git a/images/iosevka-term-ss07.png b/images/iosevka-term-ss07.png index cb3b0542b5..e84481235c 100644 Binary files a/images/iosevka-term-ss07.png and b/images/iosevka-term-ss07.png differ diff --git a/images/iosevka-term-ss08.png b/images/iosevka-term-ss08.png index 013c41a61d..60e3a3c620 100644 Binary files a/images/iosevka-term-ss08.png and b/images/iosevka-term-ss08.png differ diff --git a/images/iosevka-term-ss09.png b/images/iosevka-term-ss09.png index ab7c7c0e4e..995837a77b 100644 Binary files a/images/iosevka-term-ss09.png and b/images/iosevka-term-ss09.png differ diff --git a/images/iosevka-term-ss10.png b/images/iosevka-term-ss10.png index 5472046522..271768123d 100644 Binary files a/images/iosevka-term-ss10.png and b/images/iosevka-term-ss10.png differ diff --git a/images/iosevka-term-ss11.png b/images/iosevka-term-ss11.png index 0692e43b9f..ff54167e43 100644 Binary files a/images/iosevka-term-ss11.png and b/images/iosevka-term-ss11.png differ diff --git a/images/iosevka-term-ss12.png b/images/iosevka-term-ss12.png index f413713bea..14440424d7 100644 Binary files a/images/iosevka-term-ss12.png and b/images/iosevka-term-ss12.png differ diff --git a/images/iosevka-term-ss13.png b/images/iosevka-term-ss13.png index e59e2c19b0..13eff8816a 100644 Binary files a/images/iosevka-term-ss13.png and b/images/iosevka-term-ss13.png differ diff --git a/images/iosevka-term-ss14.png b/images/iosevka-term-ss14.png index f3dede3f39..c0f47cf255 100644 Binary files a/images/iosevka-term-ss14.png and b/images/iosevka-term-ss14.png differ diff --git a/images/iosevka-term.png b/images/iosevka-term.png index 463e400513..f2fcdb61ec 100644 Binary files a/images/iosevka-term.png and b/images/iosevka-term.png differ diff --git a/images/iosevka.png b/images/iosevka.png index 87ef2c54c1..7d8e8c45ff 100644 Binary files a/images/iosevka.png and b/images/iosevka.png differ diff --git a/images/languages.png b/images/languages.png index f19f63c2b1..e415d6c577 100644 Binary files a/images/languages.png and b/images/languages.png differ diff --git a/images/ligations.png b/images/ligations.png index 3b266c0da1..fae2bc524c 100644 Binary files a/images/ligations.png and b/images/ligations.png differ diff --git a/images/matrix.png b/images/matrix.png index 5d176cb609..4c334ea571 100644 Binary files a/images/matrix.png and b/images/matrix.png differ diff --git a/images/preview-all.png b/images/preview-all.png index 26d0f2d41a..c67245efc6 100644 Binary files a/images/preview-all.png and b/images/preview-all.png differ diff --git a/images/stylesets.png b/images/stylesets.png index 348f3f8a7c..e0f13314d7 100644 Binary files a/images/stylesets.png and b/images/stylesets.png differ diff --git a/images/weights.png b/images/weights.png index fce563f1c9..04580f279b 100644 Binary files a/images/weights.png and b/images/weights.png differ diff --git a/package.json b/package.json index 5f3ffd0d3a..4836678450 100644 --- a/package.json +++ b/package.json @@ -1,21 +1,22 @@ { "name": "iosevka", - "version": "3.7.0", + "version": "3.7.1", "main": "./font-src/index.js", "scripts": { - "bump-ver": "node utility/update-package-json-version/index", "build": "verda -f verdafile.js", + "bump-ver": "node utility/update-package-json-version/index", "clean": "verda -f verdafile.js clean", "install": "node utility/check-env" }, "dependencies": { "@iarna/toml": "^2.2.5", + "@unicode/unicode-13.0.0": "^1.0.2", "cldr": "^5.7.0", - "ejs": "^3.1.3", + "ejs": "^3.1.5", "fs-extra": "^9.0.1", "object-assign": "^4.1.1", - "ot-builder": "^0.10.28", - "otb-ttc-bundle": "^0.10.28", + "ot-builder": "^0.10.31", + "otb-ttc-bundle": "^0.10.31", "patel": "^0.33.1", "semver": "^7.3.2", "spiro": "^2.0.0", @@ -24,14 +25,13 @@ "ttf2woff": "^2.0.2", "ttf2woff2": "^3.0.0", "typo-geom": "^0.11.0", - "@unicode/unicode-13.0.0": "^1.0.0", - "verda": "^1.1.0", + "verda": "^1.1.1", "which": "^2.0.2" }, "devDependencies": { - "eslint": "^7.6.0", - "eslint-config-prettier": "^6.11.0", - "prettier": "^2.0.5" + "eslint": "^7.12.0", + "eslint-config-prettier": "^6.14.0", + "prettier": "^2.1.2" }, "engines": { "node": ">=12.16.0"