SarasaNZSSlab NFM v0.1.2
Fixes the long-standing "⏵⏵ renders full-width / columns don't line up" bug.
What was wrong
A terminal never asks the font how wide a character is — it sizes the cell from Unicode's East_Asian_Width table via wcwidth(). U+23F5 ⏵ is EAW=N (neutral), so every terminal gives it exactly one cell, with no setting that can change that. v0.1.1 shipped it at advance 1000 — one cell of space, two cells of ink. 1006 codepoints were affected (⏵ ▸ ✓ ⌘ ⌥ ⌫ ↑ ⇧ ➔ …).
v0.1.1's fix targeted OS/2.xAvgCharWidth and the head bbox, which addressed the right-margin gap but not per-glyph advances.
What changed
| v0.1.1 | v0.1.2 | |
|---|---|---|
U+23F5 ⏵ advance |
1000 | 500 |
| EAW violations | 1033 | 0 |
2:1 grid (A=500 / 中=1000) |
OK | OK |
| Nerd icons at half cell | 9496 | 9496 |
- 860 symbols take upstream Sarasa Term's properly designed 1-cell drawings; the remaining 146 are x-compressed and centred.
- 23
EAW=Wglyphs (☰ ⚡ ㆴ) that shipped at half advance are re-centred in the full cell. - Ambiguous-width symbols (
▶ → ① ×,EAW=A) intentionally stay full-width — terminals let you choose 1 or 2 cells for those. Set your terminal to "ambiguous = wide", or rebuild withnarrow-symbol-widths.py --include-ambiguous.
Outlines, Nerd icon set and CJK metrics are otherwise unchanged. New gate: verify-2to1.py --check-eaw.
Install
Zip SarasaNZSSlabNFM-0.1.2.zip, or the individual TTFs. Pick family SarasaNZSSlab NFM. Restart the terminal after installing.