Non-breaking space
This article needs additional citations for verification. (August 2009) |
In computer-based text processing and digital typesetting, a non-breaking space, also known as a no-break space or non-breakable space (NBSP), is a variant of the space character that prevents an automatic line break (line wrap) at its position. In certain formats (such as HTML), it also prevents the “collapsing” of multiple consecutive whitespace characters into a single space. The non-breaking space is also known as a hard space or fixed space. In Unicode, it is encoded as U+00A0 NO-BREAK SPACE ( ,  ).
Non-breaking behavior
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” 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.
Use as non-collapsing white-space
A second common application of non-breaking spaces is in plain text file formats such as SGML, HTML, TeX, and LaTeX, which sometimes treat sequences of whitespace characters (space, newline, tab, form feed, etc.) as if they were a single white-space character. Such “collapsing” of white-space allows the author to neatly arrange the source text using line breaks, indentation and other forms of spacing without affecting the final typeset result.[1][2]
In contrast, non-breaking spaces are not merged with neighboring whitespace characters, and can therefore be used by an author to insert additional visible space in the formatted text. For example, in HTML, non-breaking spaces may be used in conjunction with a fixed-width font to create tabular alignment (monospace font used):
Column 1 Column 2
-------- --------
1.2 2.3
(note that the use of the pre
tag, the whitespace:pre
CSS rule, or a table are alternative, if not necessarily better, ways to achieve the same result in HTML)
If ordinary spaces are used instead then the spaces are collapsed when the HTML is rendered and the layout is broken:
Column 1 Column 2
-------- --------
1.2 2.3
Non-breaking space can also be used to automatically change formatting in a document. This is useful for things like class plans and recipe files where the description of a cell or line may be different from the actual text or title.
Encodings
Format | Representation of non-breaking space |
---|---|
Unicode and ISO/IEC 10646 | U+00A0 NO-BREAK SPACE ( ,  ). Can be encoded by UTF-8 as 0xC2 0xA0. |
ISO/IEC 8859 | 0xA0 |
CP1252 (MS Windows default in most countries using Germanic or Romance languages) | 0xA0 |
KOI8-R | 0x9A |
EBCDIC | 0x41 |
CP437, CP850, CP866 | 0xFF |
SGML and HTML (including Wikitext) | Character entity reference: Numeric character references:   or  
|
TeX | tilde (~) |
ASCII | Not available |
Unicode defines several other non-break space characters[3] that differ from the regular space in width:
- No-break thin space, known in Unicode as “Narrow No-Break Space” (U+202F NARROW NO-BREAK SPACE). It was introduced in Unicode 3.0 for Mongolian, to separate a suffix from the word stem without indicating a word boundary. Also required for French punctuation (before ?, ! or ;).
- Word joiner, encoded in Unicode 3.2 and above as U+2060 and HTML as ⁠. The word-joiner does not normally produce any space but prohibits a line break on either side of it.
- The Byte Order Mark, U+FEFF, officially named “Zero Width No-Break Space”, can also be 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.[4]
Typically, authors of keyboard drivers and application programs (e.g., word processors) have devised their own keyboard shortcuts for the non-breaking space. For example:
System/application | Entry method |
---|---|
Apple Mac OS X | Option+Space |
X11 | Compose, Space, Space |
GNU Emacs | Ctrl+X 8 Space |
Vim | Ctrl+K Space Space, or Ctrl+K Shift+N Shift+S |
MS Windows (all applications) | Alt+0160 or Alt+255 (on numeric keypad) |
Dreamweaver, LibreOffice, Microsoft Word, OpenOffice.org (since 3.0) |
Ctrl+Shift+Space |
WordPerfect, OpenOffice.org (before 3.0), LyX | Ctrl+Space |
GTK-based applications | Ctrl+Shift+U A0 |
Mac Adobe InDesign | Option+Command+X |
Many office applications[vague] | Insert → Symbol dialog box (Latin-1 subset, after ~) |
See also
- Hyphens in computing, for information about hard and non-breaking hyphens
- List of XML and HTML character entity references
- Orphans and widows
- Punctuation
- Sentence spacing in digital media
- Space (punctuation)
References
- ^ "Structure", HTML 4.01, W3, 1999‐12‐24
{{citation}}
: Check date values in:|date=
(help). - ^ "Text", CSS 2.1, W3.
- ^ Spaces in Unicode.
- ^ Kotoistus (2006-12-28), Uusi näppäinasettelu (presentation) (in Finnish and English), CSC – IT Center for Science
{{citation}}
: Unknown parameter|trans_tile=
ignored (help)CS1 maint: location missing publisher (link). Drafts of the Finnish multilingual keyboard.