In word processing and digital typesetting, a non-breaking space (" ") (also called no-break space, non-breakable space (NBSP), hard space, or fixed space) is a space character that prevents an automatic line break at its position. In some formats, including HTML, it also prevents consecutive whitespace characters from collapsing into a single space.
In HTML, the common non-breaking space, which is the same width as the ordinary space character, is encoded as
In Unicode, it is encoded as
Non-breaking space characters with other widths also exist.
Uses and variations
Text-processing software typically assumes that an automatic line break may be inserted anywhere a space character occurs; a non-breaking space prevents this from happening (provided the software recognizes the character). For example, if the text "100 km" (according to the style guide) will not quite fit at the end of a line, the software may insert a line break between "100" and "km". To avoid this undesirable behaviour, the editor may choose to use a non-breaking space between "100" and "km". This guarantees that the text "100 km" will not be broken: if it does not fit at the end of a line it is moved in its entirety to the next line.
A second common application of non-breaking spaces is in plain text file formats such as SGML, HTML, TeX and LaTeX, which treat sequences of whitespace characters (space, newline, tab, form feed, etc.) as if they were a single character. Such "collapsing" of whitespace allows the author to neatly arrange the source text using line breaks, indentation and other forms of spacing without affecting the final typeset result.
In contrast, non-breaking spaces are not merged with neighboring whitespace characters when displayed, and can therefore be used by an author to insert additional visible space in the resulting output. Conversely, indiscriminate use (see the recommended use in style guides), in addition to a normal space, gives extraneous space in the output.
Other non-breaking variants, defined in Unicode:
- U+2007 figure space (HTML
). Produces a space somewhat equal to the figures (0–9) characters.
- U+202F narrow no-break space (HTML
NNBSP). It was introduced in Unicode 3.0 for Mongolian, to separate a suffix from the word stem without indicating a word boundary. It is also required for double punctuation in Canadian French (before " ; ? ! ") and Russian (before " — "). When used with Mongolian, its width is usually one third of the normal space; in other contexts, its width resembles that of the thin space (U+2009), at least with some fonts.
- U+2060 word-joiner (HTML
WJ): encoded in Unicode since version 3.2. The word-joiner does not produce any space, and prohibits a line break at its position.
|Format||Representation of non-breaking space|
|Unicode and ISO/IEC 10646||U+00A0 no-break space
|CP1252 (Windows's default in most Germanic or Romance locales.)||
|CP437, CP850, CP866||
|HTML (including Wikitext)||
Unicode defines several other non-break space characters. See #Width variation. Encoding remarks:
- Word joiner, encoded in Unicode 3.2 and above as U+2060, and in HTML as
- The Byte Order Mark, U+FEFF, officially named "Zero Width No-Break Space", was also used with the same meaning as the word joiner, but in current documents this use is deprecated. See also Zero-width non-breaking space.
Keyboard entry methods
It is rare for national or international standards on keyboard layouts to define an input method for the non-breaking space. An exception is the Finnish multilingual keyboard, accepted as the national standard SFS 5966 in 2008. According to the SFS setting, the non-breaking space can be entered with the key combination AltGr + Space.
|Microsoft Windows||Alt+0+1+6+0 or Alt+2+5+5 (doesn't always work)|
|Apple Mac OS X||⌥ Opt+Space|
|Linux or Unix using X11||Compose, Space, Space|
|GNU Emacs||Ctrl+X 8 Space|
|Vim||Ctrl+K, Space, Space; or Ctrl+K, ⇧ Shift+N, ⇧ Shift+S|
|Dreamweaver, LibreOffice, Microsoft Word,
OpenOffice.org (since 3.0)
|FrameMaker, LyX, OpenOffice.org (before 3.0),
|Mac Adobe InDesign||⌥ Opt+⌘ Cmd+X|
Apart from this, applications and environments often have methods of entering unicode entities directly via their code point, e.g. via the Alt Numpad input method. (Non-breaking space has codepoint 255 decimal (FF hex) in codepage 437 and codepage 850, and codepoint 160 decimal (A0 hex) in codepage 1252.)
- Hyphens in computing, for information about hard and non-breaking hyphens
- List of XML and HTML character entity references
- Orphans and widows
- Sentence spacing in digital media
- Space (punctuation)
- Zero-width space, a non-spacing break
- "Justify Just or Just Justify", M. Elyaakoubi and A. Lazrek. Journal of Electronic Publishing, vol. 13, issue 1, 2010. DOI 10.3998/3336451.0013.105.
- "Structure", HTML 4.01, W3, 1999-12-24.
- "Text", CSS 2.1, W3.
- ISO/IEC 10646-1:1993/FDAM 29:1999(E)
- Mongolian NNBSP-connected suffixes
- "Writing Systems and Punctuation" (PDF). The Unicode Standard 7.0. Unicode Inc. 2014. Retrieved 2014-11-02.
- Kotoistus (2006-12-28), Uusi näppäinasettelu [Status of the new keyboard layout] (presentation) (in Finnish and English), CSC – IT Center for Science. Drafts of the Finnish multilingual keyboard.