Non-breaking space

From Wikipedia, the free encyclopedia
(Redirected from Non-break space)
Jump to navigation Jump to search

Template:Short description Template:Redirect-distinguish Template:Infobox punctuation mark

In word processing and digital typesetting, a non-breaking space (Template:Char), also called NBSP, required space,[1] hard space, or fixed space (in most typefaces, it is not of fixed width), 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. Non-breaking space characters with other widths also exist.

Uses

Despite having layout and uses similar to those of whitespace, it differs in contextual behavior.[2][3]

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 break the line between "100" and "km". Using a non-breaking space between "100" and "km" will prevent this behaviour. 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. For this reason, many style guides recommend using a non-breaking space between numbers and their associated units.[4][5]

In French typography, non-breaking spaces are used before "high punctuation" (:, ;, ?, and !), on the interior side of guillemets (« and »), and before footnotes. In the case of ;, ?, !, and footnotes (unless enclosed by parentheses), it is specifically the narrow non-breaking space that is used.[6][7]

In German typography, it is used between multi-part abbreviations (e.g., "z.Template:NnbspB.", "d.Template:Nnbsph.", "v.Template:Nnbspl.Template:Nnbspn.Template:Nnbspr.").[8]

Non-collapsing behavior

A second common application of non-breaking spaces is in plain text file formats such as SGML, HTML, TeX and LaTeX, whose rendering engines are programmed to treat sequences of whitespace characters (space, newline, tab, form feed, etc.) as if they were a single character (but this behavior can be overridden). 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.[9][10]

In contrast, non-breaking spaces are not merged with neighboring whitespace characters when displayed. They can, therefore, be used by an author to simply insert additional visible space in the resulting output without using spans styled with peculiar values of the CSS "white-space" property. Conversely, indiscriminate use (see the recommended useScript error: No such module "Unsubst". in style guides), in addition to a normal space, gives extraneous space in the output.

Variations

Narrow non-breaking space

Template:Unichar is another non-breaking space, but with a smaller width than the standard non-breaking space (U+00A0). When used with Mongolian, its width is usually one third of the normal space;[11] 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.Script error: No such module "Unsubst".

It was introduced in Unicode 3.0 for Mongolian,[12] to separate a suffix from the word stem without indicating a word boundary. It also triggers special shaping of those suffixes.[13] Starting in Unicode 16.0, it is no longer recommended for this purpose, with the Mongolian vowel separator (U+180E) being recommended for this purpose instead.[14][15]

In French typography, it is called Script error: No such module "Lang".[14] and is used before ;, ?, and !.[6][7] Additionally, footnotes are preceded by a narrow non-breaking space[7] (unless they are enclosed by parentheses, in which case a regular non-breaking space is used).[6]

The narrow non-breaking space is used in numbers as a group separator in French (starting in Unicode CLDR 34[16]) and Venetian (starting in Unicode CLDR 44[17]). In Spanish, the Royal Spanish Academy and Association of Academies of the Spanish Language's Diccionario panhispánico de dudas prescribes the use of a small space as the number group separator,[18] although this is not the case in Unicode's Common Locale Data Repository (CLDR).[19]

Other variations

Other non-breaking variants defined in Unicode.

Template:Unichar
Produces a space equal to the figure (0–9) characters.
Template:UnicharScript error: No such module "anchor".
Encoded in Unicode since version 3.2. The word joiner does not produce any space and prohibits a line break at its position.

Example

On browsers, resizing the window will demonstrate the effect of non-breaking spaces on the texts below.

To show the non-breaking effect of the non-breaking space, the following words have been separated with non-breaking spaces: Template:Quote

To show the non-collapsing behavior of the non-breaking space, the following words have been separated with an increasing number of non-breaking spaces: Template:Quote

In contrast, the following words are separated with ordinary spaces:

Template:Quote

Here, they are separated with narrow non-breaking spaces, to show the width of those:

Template:Quote

Unicode

See also

Notes

Template:Notelist

References

Template:Reflist

  1. Script error: No such module "citation/CS1".
  2. Script error: No such module "Citation/CS1".
  3. Script error: No such module "citation/CS1".
  4. Script error: No such module "citation/CS1".
  5. Script error: No such module "citation/CS1".
  6. a b c Script error: No such module "citation/CS1".
  7. a b c Script error: No such module "citation/CS1".
  8. Script error: No such module "citation/CS1".
  9. Script error: No such module "citation/CS1"..
  10. Script error: No such module "citation/CS1"..
  11. Script error: No such module "citation/CS1".
  12. Script error: No such module "citation/CS1".
  13. Script error: No such module "citation/CS1".
  14. a b Script error: No such module "citation/CS1".
  15. Script error: No such module "citation/CS1".
  16. Script error: No such module "citation/CS1".
  17. Script error: No such module "citation/CS1".
  18. Script error: No such module "citation/CS1".
  19. Script error: No such module "citation/CS1".