BabelStone Blog

Sunday, 27 August 2006

BabelMap : Unicode in Colour

A new release of BabelMap which fixes certain problems that may be encountered by users of non-English locales when they select the option to display all styles of fonts. Many thanks to Nocturnal Dreamer for helping me get to the bottom of it all. John Cowan also had some good suggestions for improving the Composite Font Mappings dialog, but I'm afraid that I haven't been able to do anything about this yet.

On Friday someone somewhere mentioned that colour coding characters according to a selected property would be quite useful. I thought so too, so I have quickly added such a feature into the latest release. You can now select any of the following properties from the "Colour Coding" option of the "Options" menu, and each character in the BabelMap grid will then be highlighted in a particular colour according to the value of that property for the character. Even if you select no colour coding then you still get some colour coding now, as assigned characters will be displayed on a white background and unassigned code points will be rendered in grey.

This, for example, is what the Basic Latin block looks like if you select colour coding by General Category :

The tables below show what colours are used for each value of the various properties other than Script. I'll leave it as an exercise to the reader to work out what colour I've used for each of the sixty-four scripts defined in Unicode 5.0.

Colour Coding by General Category
Colour General Category
red Lu (Letter, Uppercase)
yellow Ll (Letter, Lowercase)
orange red Lt (Letter, Titlecase)
salmon Lm (Letter, Modifier)
crimson Lo (Letter, Other)
pink Mn (Mark, Nonspacing)
hot pink Mc (Mark, Spacing Combining)
deep pink Me (Mark, Enclosing)
violet Nd (Number, Decimal Digit)
fuchsia Nl (Number, Letter)
purple No (Number, Other)
green yellow Pc (Punctuation, Connector)
lime Pd (Punctuation, Dash)
light green Ps (Punctuation, Open)
spring green Pe (Punctuation, Close)
sea green Pi (Punctuation, Initial Quote)
forest green Pf (Punctuation, Final Quote)
olive drab Po (Punctuation, Other)
teal Sm (Symbol, Math)
cyan Sc (Symbol, Currency)
steel blue Sk (Symbol, Modifier)
royal blue So (Symbol, Other)
white Zs (Separator, Space)
khaki Zl (Separator, Line)
dark khaki Zp (Separator, Paragraph)
brown Cc (Other, Control)
peru Cf (Other, Format)
chocolate Co (Other, Private Use)
dark slate gray Cs (Other, Surrogate)
gray Cn (Other, Not Assigned)

Colour Coding by Canonical Combining Class
Colour Canonical Combining Class
white 0
violet 1 (Overlays and interior)
indigo 7 (Nuktas)
coral 8 (Hiragana/Katakana voicing marks)
yellow 9 (Viramas)
red 10-199 (fixed position classes)
green yellow 200 (Below left attached)
lime 202 (Below attached)
spring green 204 (Below right attached)
olive drab 208 (Left attached)
teal 210 (Right attached)
aqua 212 (Above left attached)
sky blue 214 (Above attached)
steel blue 216 (Above right attached)
slate blue 218 (Below left)
royal blue 220 (Below)
pink 222 (Below right)
hot pink 224 (Left)
deep pink 226 (Right)
sandy brown 228 (Above left)
peru 230 (Above)
chocolate 232 (Above right)
sienna 233 (Double below)
brown 234 (Double above)
gold 240 (Below - iota subscript))
gray Unassigned

Colour Coding by Bidi Class
Colour Bidi Class
white L (Left-to-Right)
fuchsia LRE (Left-to-Right Embedding)
purple LRO (Left-to-Right Override)
green R (Right-to-Left)
lime AL (Right-to-Left Arabic)
cyan RLE (Right-to-Left Embedding)
teal RLO (Right-to-Left Override)
orange red PDF (Pop Directional Format)
sandy brown EN (European Number)
chocoloate ES (European Number Separator)
brown ET (European Number Terminator)
steel blue AN (Arabic Number)
salmon CS (Common Number Separator)
crimson NSM (Non-Spacing Mark)
pink BN (Boundary Neutral)
khaki B (Paragraph Separator)
dark khaki S (Segment Separator)
yellow WS (Whitespace)
royal blue ON (Other Neutrals)

Colour Coding by Bidi Mirrored
Colour Bidi Mirrored ?
White No
Red Yes
gray Unassigned

Colour Coding by Decomposition Type
Colour Decomposition Type
white None
red Canonical
sky blue <font>
medium blue <noBreak>
pale violet red <initial>
fuchsia <medial>
slate blue <final>
purple <isolated>
aqua <circle>
green yellow <super>
lime green <sub>
gold <vertical>
orange red <wide>
dark khaki <narrow>
peru <small>
olive drab <square>
steel blue <fraction>
green <compat>
gray Unassigned

Colour Coding by Numeric Type
Colour Numeric Type
white None
red Decimal Digit
green Digit
blue Numeric
gray Unassigned

Colour Coding by Unicode Version
Colour Unicode Version
white 1.0.0 (4,716 characters)
pink 1.0.1 (21,204 characters)
deep pink 1.1 (1,657 characters)
green yellow 2.0 (11,373 characters)
lime green 2.1 (2 characters)
salmon 3.0 (10,307 characters)
crimson 3.1 (44,946 characters)
red 3.2 (1,016 characters)
sandy brown 4.0 (1,226 characters)
chocolate 4.1 (1,273 characters)
sky blue 5.0 (1,369 characters)
gray Unassigned



Index of BabelStone Blog Posts