diff --git a/changes/10.4.0.md b/changes/10.4.0.md index 63048b57d..78def9528 100644 --- a/changes/10.4.0.md +++ b/changes/10.4.0.md @@ -1,2 +1,3 @@ * Change the shape of Eng (`U+014A`) into "N with Hook", to follow Unicode code chart (#1239). - * Increase shoulder arc thickness of lowercase `r` for better thickness contrast (#1243). \ No newline at end of file + * Increase shoulder arc thickness of lowercase `r` for better thickness contrast (#1243). + * Fixed width and removal logic for Long Leftwards Arrow (`U+27F5`) and Long Rightwards Arrow (`U+27F6`) (#1245). diff --git a/doc/custom-build.md b/doc/custom-build.md index 75d6c4201..fb0ac2dab 100644 --- a/doc/custom-build.md +++ b/doc/custom-build.md @@ -46,6 +46,7 @@ Inside the plan, top-level properties include: * `family`: String, defines the family name of your custom variant. * `spacing`: Optional, String, denotes the spacing of the custom variant. Valid values include: + - `normal`: The normal monospace font. - `quasi-proportional`: The font will become quasi-proportional. - `term`: Make the symbols' width suitable for terminal emulators. Arrows and geometric symbols will become narrower. - `fontconfig-mono`: Apply `term` spacing changes and further apply changes to be compatible with FontConfig's Mono spacing, which recognizes a font as monospace if and only if its every non-combining characters having the same width. The changes include: diff --git a/font-src/glyphs/symbol/arrow.ptl b/font-src/glyphs/symbol/arrow.ptl index b321e95c3..a14c4f9e0 100644 --- a/font-src/glyphs/symbol/arrow.ptl +++ b/font-src/glyphs/symbol/arrow.ptl @@ -286,9 +286,11 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 MkArrow ArrowShape [MangleName 'arrowDownRight'] [MangleUnicode 0x2198] arrowDiagSB arrowDiagTop arrowDiagRSB arrowDiagBot MkArrow ArrowShape [MangleName 'arrowDownLeft'] [MangleUnicode 0x2199] arrowDiagRSB arrowDiagTop arrowDiagSB arrowDiagBot - define kLong 0.5 - MkArrow ArrowShape [MangleName 'longArrowLeft'] [MangleUnicode 0x27F5] [mix MosaicWidth arrowRSB kLong] SymbolMid [mix 0 arrowSB kLong] SymbolMid - MkArrow ArrowShape [MangleName 'longArrowRight'] [MangleUnicode 0x27F6] [mix 0 arrowSB kLong] SymbolMid [mix MosaicWidth arrowRSB kLong] SymbolMid + # These arrows are always wide. In force-monospace variants they will be deleted + if (MosaicWidthScalar > 1 && !para.forceMonospace) : begin + define kLong 0.5 + MkArrow ArrowShape 'longArrowLeft' 0x27F5 [mix MosaicWidth arrowRSB kLong] SymbolMid [mix 0 arrowSB kLong] SymbolMid + MkArrow ArrowShape 'longArrowRight' 0x27F6 [mix 0 arrowSB kLong] SymbolMid [mix MosaicWidth arrowRSB kLong] SymbolMid do "Dash Straight Arrow" MkArrow DashArrowShape [MangleName 'dashArrowLeft'] [MangleUnicode 0x21E0] arrowRSB SymbolMid arrowSB SymbolMid diff --git a/package-lock.json b/package-lock.json index 18e3d1a27..71f88695b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "iosevka", - "version": "10.3.4", + "version": "10.4.0", "lockfileVersion": 1, "requires": true, "dependencies": {