Spaces and separators

This is a quick guide for typedesigners how to add some typographic useful separators and spaces to their typefaces. The following list contains by far not all separators in the unicode charts, but in my opinion it should be a good start for an advanced typographic usage.

SPACE uni0020

SPACE uni0020 is the most used space, that separates words, sentences etc. The width depends on the design of your typeface. It should be wide enough to apparently separates words from each other, but also not too wide so it does not cause gaps in the text.

EM QUAD uni2001 As the name already says this space is one Em wide or a quad (originally from Quadrat). A quad is a metal spacer used in letterpress typesetting. The term was later adopted in digital fonts and is one Em wide – that is usually 1000 UPM for Post Script flavoured fonts and 2048 UPM for True Type fonts. So in use Em Quad is nominally equal to the type size in points.

EN QUAD uni2000  is a space that is one En wide: half the width of an Em quad. That is usually 500 UPM for Post Script flavoured fonts and 1024 UPM for True Type fonts.

EM SPACE uni2003 is usually equal to Em Quad. But it may scale by the condensation factor of a font. That means if you have condensed variations of your typeface Em Space can be optically adjusted and be less than  1000 UPM for Post Script flavoured fonts and less than 2048 UPM for True Type fonts.

EN SPACE uni2002 is ½ the width of an Em Space.

THREE PER EM SPACE uni2004 is a ⅓ of an Em Space. Also called Thick Space.

FOUR PER EM SPACE uni2005 is a ¼ of an Em Space. Also called Mid Space.

SIX PER EM SPACE uni2006 is a ⅙ of an Em Space. It is sometimes equated to Thin Space.

FIGURE SPACE uni2007 is equal to the width of the tabular figures. If your typeface does not have tabular figures I would recommend to do it with the width of the zero digit uni0030.

PUNCTUATION SPACE uni2008 usually with the width of a period uni002E. It is used after quotedblleft (“) or quoterleft (‘)and before quotedblright (”) or quoteright (’) and sometimes questionmark (?) or exclam (!), unless a punctuation mark appears there. 

THIN SPACE uni2009 a 1/5 of an Em, it could be also 1/6. It is used for example for: abbreviation ( i. d. R.), date (1. Mai 2006 or 31. 12. 06), numbers (IBAN DE34 1005 4687 0302 9954 00), abbreviation with number (§ 315c,   Nr. 2,   S. 78 ff), numbers with unit signs or currency (220 V, 37 °C, 33 %,   20 €), mathematical equation (3 + 6 = 5 + 4).

HAIR SPACE uni200A should be the thinnest space in your typeface. I recommend to make it thiner than the Thin Space.

NO BREAK SPACE uni00A0 Also called nbspace (NBSP), or required space, or hard space, or fixed space. It is a space character that prevents an automatic line break at its position. Usually it hast the width of a Space.

NARROW NO BREAK SPACE uni202F Also called narrownbspace (NNBSP) It is a narrow form of a No Break Space, typically the width of a thin space or a Four Per Em Space. Here is some additional information wich I found on Wikepedia:
»It was introduced in Unicode 3.0 for Mongolian,[6] to separate a suffix[7] from the word stem without indicating a word boundary. It is also required for big punctuation in French, sometimes inaccurately referred to as “double punctuation” (before ;, ?, !, », › and after «, ‹; today often also before :), in Russian (before em dash [—]), and in German between multi-part abbreviations (e.g. “z. B.”, “d. h.”, “v. l. n. r.”).[8] When used with Mongolian, its width is usually one third of the normal space; in other contexts, its width is about 70% of the normal space but may resemble that of the thin space (U+2009), at least with some fonts.[9] Also starting from release 34 of Unicode Common Locale Data Repository (CLDR) the NNBSP is used in numbers as thousands group separator for French locale.[10]«

ZERO WIDTH SPACE uni200B Also abbreviated ZWSP has a 0 width. It is intended for invisible word separation when using scripts that do not use visible space between words. It is also used for line break control. ZWSP has no width, but its presence between two characters does not prevent increased letter spacing in justification.

ZERO WIDTH JOINER uni200D Also abbreviated ZWJ has a 0 width. It is used in some  scripts such as Arabic, or Indic scripts. When it is placed between two characters that would otherwise not be connected, a ZWJ causes them to be printed in their connected forms.
When a ZWJ is placed between two emoji characters, it can also result in a new emoji.

ZERO WIDTH NON JOINER uni200C Also abbreviated ZWNJ has a 0 width. When placed between two characters that would otherwise be connected into a ligature, a ZWNJ causes them to be printed in their initial forms. 

CARRIAGE RETURN  or CR uni000D it reset a position to the beginning of a line of text.

.notdef is shown in Apps when some character is missing in your font. you can design some funny stuff for a notdef.

NULL uni0000 According to Apple True Type specification – the second glyph (glyph index 1) must be the NULL glyph. This glyph must have no contours and zero advance width. FontLab 7 adds it automatically when you export a TTF or an OTF.

If you want to reed and learn more about the usage of spaces – Typeseeds is a wonderful source.

State 01.05.2020 I might change this text over time, as I learn more during my work.