From: Philippe Verdy <>
Date: Sat, 27 Jun 2015 19:33:44 +0200

2015-06-27 17:48 GMT+02:00 Marcel Schneider <>:

> On Fri, Jun 26, Richard Wordingham <>
> wrote:
> > On Fri, 26 Jun 2015 12:48:39 +0200 (CEST) Marcel Schneider <
>> wrote:
> >> To do traditional French typography on the PC, a justifying no-break
> >> space is needed along with the colon, because this punctuation must
> >> be placed in the middle between the word it belongs to and the
> >> following word. According to the Standard, page 799 (ยง 23.2), such a
> >> space is obtained by bracketing a white space with word joiners:
> >> U+2060 U+0020 U+2060. To make this colon readily available on
> >> keyboard, I should therefore program the sequence: {VK_OEM_2 /*T34
> >> B09*/ ,3 ,0x2060 ,'
> >> ' ,0x2060 ,':' ,NONE ,NONE ,NONE ,NONE ,NONE ,NONE ,NONE ,NONE ,NONE
> > For readability, I strongly recommend 0x0020 over ' ' in this context.
> I pasted the line from the C source, where all ASCII characters, including
> 0x20, are written in clear. To ensure readibility, I inserted a line break
> before this line. This line break must have been deleted. I don't write
> 0x0020 in C when it's not necessary. However I take notice of your
> recommendation.
> > What is the behavioural difference between <U+2060, U+0020, U+2060> and
> U+00A0?
> The difference appears in word processing, where justification works with
> U+0020, while all other spaces, including U+00A0, are not justified.

This is untrue, U+00A0 is not a fixed-width space and it remains
justifiable as well.

However it has a default width (when not justified) which is too large for
the "fine" we want (its width and justificabiality is exactly like the
regular SPACE U+0020, the only difference beting that it is normally not
breakabke before or after it).

That's why there's NNBSP U+202F whose default width when not justified is
narrower (about one half the regular 0.5em SPACE, or one third in English
typography, i.e. between 1/6 and 1/4 em: the NNBSP glyph should be sized by
default to about 1/5em (0.2em) to work with both conventions, unless the
language can be determined.

The "hairy space" is even thinner (about 0.1em, or nearly 1px in CSS sizes
with default font sizes used in HTML of 13pt at 96 logical dpi; on hiDPI
displays or in zoomed in modes working at higher physical resolutions, the
96 logical dpi of CSS will map to dppx equal to several times the logical
dpi, and there will be more than 1 physical pixel: the CSS pixel unit is a
logical one and the 13pt default font map to about 17.3 logical pixels, and
the hairy space is then about 1/17 the em square width, but it is generally
rounded up to 1/10 em; the exact metric depends on several rendering
factors and visual hints, but it should be the minimum distince that
separates two dots and make them visibly and contrastedly separated,
without bluring, it is about the same distance that separates the dot above
the vertical stem of a "i")

NNBSP however will normally not be justified, its width remains constant
when NBSP will be expanded like other spaces. This also makes NBSP not
suitable for French punctuations and group separators, as it could be
really too large (just like the regular SPACE).

As group separators, some are arguing that this space should be replaced by
the punctuation space (to match the same width as the comma used as the
decimal separator in French). But traditionally, the metal typographs just
did not make this discriminination only introduced on computers dur to
legacy softwares.
Received on Sat Jun 27 2015 - 12:35:11 CDT

This archive was generated by hypermail 2.2.0 : Sat Jun 27 2015 - 12:35:12 CDT