Skip to content

SarasaNZSSlab NFM v0.1.2

Choose a tag to compare

@AkaraChen AkaraChen released this 27 Jul 07:49
649c5a5

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=W glyphs (☰ ⚡ ㆴ) 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 with narrow-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.