Keyboard

↓ ↑
move between the rows you can see
→
open a feature, then step into it
←
close a feature, or step out to the one above
Enter
go to the page in focus
Tab
the same rows, plus everything else on the page
/
search the whole report
m
open or close the navigation drawer
Esc
leave the search box, or close the drawer
?
this list

Measures a code point as zero, one, or two columns

All 23 scenarios hold

The formatter measures alignment in terminal display columns, not in characters. These rules say how wide a value renders in a monospaced font. The Column width feature and the Cell padding and alignment feature build on them.

A code point renders at one of three widths. The script of the code point decides which. An ordinary letter, digit or sign takes one column, in any alphabet. A glyph drawn on a square body takes two columns. A code point that draws no glyph of its own takes none. There are two kinds of such code point: a control character, and a mark that combines with the letter before it.

Each row holds the code point as a number, because the two zero-width kinds have no glyph to write. Each row carries one code point per script or kind of its width:

One column: A, z, 0, æ, «, alpha, Cyrillic pe, Arabic meem, Hebrew shin, a box-drawing corner, the euro sign, the summation sign. Two columns: the ideograph for middle, the ideograph for you, the hiragana ko, the Hangul syllable guk, a grinning face, fullwidth A. No columns: the null character, a line feed, a tab, a combining acute accent, a combining diaeresis.

expected outcome broken scenario
ScenarioCode pointWidth?
An ordinary letter, digit or sign
  • 65
  • 122
  • 48
  • 230
  • 171
  • 945
  • 1055
  • 1605
  • 1513
  • 9484
  • 8364
  • 8721
1
A glyph drawn on a square body
  • 20013
  • 20320
  • 12371
  • 44397
  • 128512
  • 65313
2
A control character or a combining mark
  • 0
  • 10
  • 9
  • 769
  • 776
0