Skip to content

FusionPixel12 NFM v0.1.1

Choose a tag to compare

@AkaraChen AkaraChen released this 27 Jul 17:08
9a41106

FusionPixel12 NFM v0.1.1

Fixes Chinese quotes (and the rest of the ambiguous-width punctuation) painting on top of the next character in terminals.

The bug

Fusion's zh_hans flavor draws “ ” ‘ ’ … · ‥ ․ ‧ at 1200 — two cells — with the ink parked in the right half of the em box. A terminal never asks the font how wide a character is: it sizes the cell from wcwidth, and EAW=Ambiguous codepoints get exactly one cell in every default configuration.

So got 600 of cell but 1200 of ink, and the overflow landed on the following character — “心里颇不宁静” rendered with the opening quote stamped across .

Upstream's latin / ja / ko flavors of the same release draw those same nine at 600; only the zh_hans / zh_hant flavors use the full-width -ZH_CN forms, so only this build was affected.

The fix

·
v0.1.0 1200 1200
v0.1.1 600 600

New pipeline step 03-narrow-ambiguous.sh transplants the half-width drawings from the latin flavor of the same pinned release — same 12px grid, same hand, nothing scaled or redrawn. It runs before the Nerd patch so the head bbox recompute sees the final outlines.

Targets are derived by comparing the two flavors rather than hard-coded, so a future upstream bump stays honest. A donor glyph whose ink escapes [0, 600], or a base glyph shared by more than one codepoint, is a hard failure rather than a silent squeeze.

verify.py --check-eaw now gates all nine at half advance with ink inside the cell, wired into both 05-verify.sh and package-release.sh so a regression can't ship.

Same class of bug and same remedy as serif/'s 06-narrow-symbols.sh, which pulls 1-cell symbols from Sarasa Term.

Unchanged

Base, grid, the 31 hand-drawn ligatures, and the Nerd Fonts v3.4.0 icon set are all identical to v0.1.0. Pipeline steps were renumbered: nerd-patch 03→04, verify 04→05.

Verified

calt ok: 31 ligature rules, samples present
eaw ok: 9 ambiguous punctuation glyph(s) @ half=600
nerd ok: 5/5 sample PUA present @ half=600
ok half=600 full=1200

Install

Copy FusionPixel12NFM-Regular.ttf into your OS fonts directory, replacing the v0.1.0 file. In your terminal/editor pick family FusionPixel12 NFM, set size to a multiple of 12px (12 / 24 / 36) for crisp pixels, and enable font ligatures.

Build

cd pixel && ./scripts/build.sh

Note: the pinned nerdfonts/patcher Docker image still ships without fontforge (upstream breakage; latest is the same digest). Use brew install fontforge + NERD_PATCH_METHOD=fontforge ./scripts/04-nerd-patch.sh until it is republished.


PR: #14 · Issue: KIT-250

Fusion Pixel Font is OFL-1.1; the ligature drawings and build scripts are MIT.