Reduce word spacing in quasi proportional mode (#2673)

* Reduce word spacing in quasi proportional mode

Currently Iosevka has word spacing that's quite a bit wider than many other quasi-proportional fonts. This change adjusts that, imo resulting in easier to read text.

I created a small preview site to demo the difference here: https://jul-sh.github.io/demo-word-spacing-iosevka/

Fixes #2656

* Make space width a seperate param with metric override field

* change space width to 7/12, update release notes

---------

Co-authored-by: Juliette Pluto <git@jul.sh>
Co-authored-by: Belleve <belleve@typeof.net>
This commit is contained in:
jul-sh 2025-02-07 01:10:55 -05:00 committed by GitHub
parent d251811dc9
commit 6bf84e8af8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 9 additions and 2 deletions

View file

@ -16,3 +16,6 @@
- ARMENIAN SMALL LETTER FEH (`U+0586`).
- ARMENIAN SMALL LIGATURE ECH YIWN (`U+0587`).
- CYRILLIC CAPITAL LETTER HWE (`U+A694`).
* Adjusted width of spaces in quasi-porportional
- Slightly narrower by default
- Adjustable via metric override

View file

@ -14,7 +14,7 @@ glyph-block Spaces : begin
set currentGlyph.glyphRank (9998)
create-glyph 'space' ' ' : glyph-proc
local df : include : DivFrame para.advanceScaleI
local df : include : DivFrame para.advanceScaleSp
alias 'nbsp' 0xA0 'space'
@ -23,7 +23,7 @@ glyph-block Spaces : begin
include : df.markSet.plus
create-glyph 'markBaseSpace' 0xEF0D : glyph-proc
local df : include : DivFrame para.advanceScaleI
local df : include : DivFrame para.advanceScaleSp
include : df.markSet.e
create-glyph 'sp1' : glyph-proc

View file

@ -46,6 +46,7 @@ const validMetricOverrideFields = new Set([
"essRatio",
"archDepth",
"smallArchDepth",
"advanceScaleSp",
]);
///////////////////////////////////////////////////////////////////////////////////////////////////

View file

@ -84,6 +84,7 @@ advanceScaleT = 1 # T-like letters
advanceScaleF = 1 # f-like letters
advanceScaleI = 1 # i-like letters (with serifs/tails)
advanceScaleII = 1 # Extra-narrow letters (like i without serifs/tails)
advanceScaleSp = 1 # Whitespace characters
# OS/2 and POST fixed metrics
@ -139,6 +140,7 @@ advanceScaleT = 1.1666666666666 # 7/6
advanceScaleF = 0.8333333333333 # 5/6
advanceScaleI = 0.6666666666666 # 4/6
advanceScaleII = 0.5 # 3/6
advanceScaleSp = 0.5833333333333 # 7/12
[spacing-quasi-proportional-extension-only]
spacing = 3
@ -149,6 +151,7 @@ advanceScaleT = 1.1666666666666 # 7/6
advanceScaleF = 1.00
advanceScaleI = 1.00
advanceScaleII = 1.00
advanceScaleSp = 1.00
###### Slopes
[slope-italic]