Jump to content

Non-breaking space

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Drmies (talk | contribs) at 18:27, 25 June 2020 (Reverted edits by 92.47.78.239 (talk) to last version by John Maynard Friedman). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

 
Non-breaking space
U+00A0   NO-BREAK SPACE ( ,  )
See also
U+0020   SPACE (Note: Representations here of a regular space are replaced with a no-break space)
Other types of spaces

In word processing and digital typesetting, a non-breaking space,  , also called no-break space, non-breakable space (NBSP), required space,[1] hard space, or fixed space,[note 1] 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 and variations

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 insert a line break between "100" and "km". An editor who finds this behaviour undesirable 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.

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.[4][5]

In contrast, non-breaking spaces are not merged with neighboring whitespace characters when displayed, and 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 use in style guides), in addition to a normal space, gives extraneous space in the output.

Width variation

Other non-breaking variants, defined in Unicode:

  • U+202F NARROW NO-BREAK SPACE (NNBSP). 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]
  • U+2007 FIGURE SPACE ( ) Produces a space equal to the figure (0–9) characters.
  • U+2060 WORD JOINER (⁠ · WJ): 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 supporting non-breaking spaces, 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:

Lorem Ipsum Dolor Sit Amet Consectetur Adipiscing Elit Sed Do Eiusmod Tempor Incididunt Ut Labore Et Dolore Magna Aliqua Ut Enim Ad Minim Veniam Quis Nostrud Exercitation Ullamco Laboris Nisi Ut Aliquip Ex Ea Commodo Consequat Duis Aute

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:

Lorem Ipsum  Dolor   Sit    Amet     Consectetur      Adipiscing       Elit        Sed         Do          Eiusmod           Tempor            Incididunt             Ut              Labore               Et                Dolore                 Magna                  Aliqua                   Ut                    Enim                     Ad                      Minim

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

Lorem Ipsum Dolor Sit Amet Consectetur Adipiscing Elit Sed Do Eiusmod Tempor Incididunt Ut Labore Et Dolore Magna Aliqua Ut Enim Ad Minim Veniam Quis Nostrud Exercitation Ullamco Laboris Nisi Ut Aliquip Ex Ea Commodo Consequat Duis Aute

Encodings

Character information
Preview  
Unicode name NO-BREAK SPACE
Encodings decimal hex
Unicode 160 U+00A0
UTF-8 194 160 C2 A0
Numeric character reference    
Named character reference  ,  
ISO/IEC 8859 (1-16) / ECMA-94 160 A0
Windows code pages: 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258 160 A0
KOI8-R, KOI8-U 154 9A
DOS code pages: 437, 850, 851, 852, 853, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 869 255 FF
HP Roman-8, HP Roman-9 160 A0
LICS 154 9A
ASCII, ISO/IEC 646 (not available)
TeX ~
EBCDIC hex: 41 – RSP, Required Space

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 ⁠ or ⁠.
  • Byte order mark (BOM), U+FEFF, which may be interpreted as a "zero width no-break space", a deprecated alternative to word joiner.

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.[11]

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
Microsoft Windows Alt+0160 or Alt+255 (doesn't always work)
macOS Opt+Space
Linux or Unix using X11 Compose, Space, Space or AltGr+Space
AmigaOS Alt+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), AutoCAD
Ctrl+⇧ Shift+Space[note 2]
FrameMaker, LyX (non-Mac), OpenOffice.org (before 3.0),
WordPerfect
Ctrl+Space
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 code point 255 decimal (FF hex) in codepage 437 and codepage 850, and code point 160 decimal (A0 hex) in codepage 1252.)

See also

Notes

  1. ^ The use of the term "fixed space" for no-break space is strongly discouraged, as it is confusable with the term "fixed-width space".[who?]
  2. ^ On Windows 10 systems, Ctrl+⇧ Shift will by default switch keyboard configurations if more than one keyboard has been configured for the current language.

References

  1. ^ IBM (1998) [1995]. "Windows, Latin 1". REGISTRY, Graphic Character Sets and Code Pages. CPGID 01252.
  2. ^ Elyaakoubi, Mohamed; Lazrek, Azzeddine (2010). "Justify Just or Just Justify". The Journal of Electronic Publishing. 13. doi:10.3998/3336451.0013.105.
  3. ^ "Special Characters". The Chicago Manual of Style Online.
  4. ^ "Structure", HTML 4.01, W3, 1999-12-24.
  5. ^ "Text", CSS 2.1, W3.
  6. ^ ISO/IEC 10646-1:1993/FDAM 29:1999(E)
  7. ^ Mongolian NNBSP-connected suffixes
  8. ^ Solbrig, Amelie (30 January 2008). "Zweisprachige Mikrotypografie" (PDF) (in German). Hochschule für Technik, Wirtschaft und Kultur Leipzig. p. 58 (PDF p. 113). Archived from the original (PDF) on 2016-03-11. Retrieved 10 June 2018. Alle Abkürzungen mit Binnenpunkten werden im Deutschen mit einem gFL [geschütztes flexibles Leerzeichen] spationiert. [...] Die englische Schreibweise sieht keine Abstände zwischen einzelnen Buchstaben vor. Nach einem Binnenpunkt folgt demnach ohne gFL sofort der nächste Buchstabe.
  9. ^ "Writing Systems and Punctuation" (PDF). The Unicode Standard 7.0. Unicode Inc. 2014. Retrieved 2014-11-02.
  10. ^ "CLDR Chart: Numbers".
  11. ^ Kotoistus (2006-12-28), Uusi näppäinasettelu [Status of the new keyboard layout] (presentation) (in Finnish and English), CSC – IT Center for Science, archived from the original on 2011-07-27{{citation}}: CS1 maint: location missing publisher (link). Drafts of the Finnish multilingual keyboard.