fbpx
Wikipedia

Whitespace character

In computer programming, whitespace is any character or series of characters that represent horizontal or vertical space in typography. When rendered, a whitespace character does not correspond to a visible mark, but typically does occupy an area on a page. For example, the common whitespace symbol U+0020   SPACE (also ASCII 32) represents a blank space punctuation character in text, used as a word divider in Western scripts.

Overview edit

 
Relative widths of various spaces in Unicode

With many keyboard layouts, a whitespace character may be entered by pressing spacebar. Horizontal whitespace may also be entered on many keyboards with the Tab ↹ key, although the length of the space may vary. Vertical whitespace may be input by typing Return, which creates a 'newline' code sequence in most programs. In some systems ↵ Enter has a separate meaning but in others the two are conflated. Many early computer games used whitespace characters to draw a screen (e.g. Kingdom of Kroz).

The term "whitespace" is based on the appearance of the characters on ordinary paper. However, within an application, whitespace characters can be processed in the same way as any other character code and different programs may define their own semantics for the characters.

Unicode edit

The table below lists the twenty-five characters defined as whitespace ("WSpace=Y", "WS") characters in the Unicode Character Database.[1] Seventeen use a definition of whitespace consistent with the algorithm for bidirectional writing ("Bidirectional Character Type=WS") and are known as "Bidi-WS" characters. The remaining characters may also be used, but are not of this "Bidi" type.

Note: Depending on the browser and fonts used to view the following table, not all spaces may be displayed properly.

Name Code point Width box May break? In
IDN?
Script Block General
category
Notes
character tabulation U+0009 9 Yes No Common Basic Latin Other,
control
HT, Horizontal Tab. HTML/XML named entity: 	, LaTeX: \tab, C escape: \t
line feed U+000A 10 Is a line-break Common Basic Latin Other,
control
LF, Line feed. HTML/XML named entity: 
, C escape: \n
line tabulation U+000B 11 Is a line-break Common Basic Latin Other,
control
VT, Vertical Tab. C escape: \v
form feed U+000C 12 Is a line-break Common Basic Latin Other,
control
FF, Form feed. C escape: \f
carriage return U+000D 13 Is a line-break Common Basic Latin Other,
control
CR, Carriage return. C escape: \r
space U+0020 32 Yes No Common Basic Latin Separator,
space
Most common (normal ASCII space). LaTeX:
next line U+0085 133 Is a line-break Common Latin-1
Supplement
Other,
control
NEL, Next line. LaTeX: \\
no-break space U+00A0 160   No No Common Latin-1
Supplement
Separator,
space
Non-breaking space: identical to U+0020, but not a point at which a line may be broken. HTML/XML named entity:  ,   LaTeX: ~
ogham space mark U+1680 5760 Yes No Ogham Ogham Separator,
space
Used for interword separation in Ogham text. Normally a vertical line in vertical text or a horizontal line in horizontal text, but may also be a blank space in "stemless" fonts. Requires an Ogham font.
en quad U+2000 8192   Yes No Common General
Punctuation
Separator,
space
Width of one en. U+2002 is canonically equivalent to this character; U+2002 is preferred.
em quad U+2001 8193 Yes No Common General
Punctuation
Separator,
space
Also known as "mutton quad". Width of one em. U+2003 is canonically equivalent to this character; U+2003 is preferred.
en space U+2002 8194 Yes No Common General
Punctuation
Separator,
space
Also known as "nut". Width of one en. U+2000 En Quad is canonically equivalent to this character; U+2002 is preferred. HTML/XML named entity:  , LaTeX: \enspace (the LaTeX en space is a no-break space)
em space U+2003 8195 Yes No Common General
Punctuation
Separator,
space
Also known as "mutton". Width of one em. U+2001 Em Quad is canonically equivalent to this character; U+2003 is preferred. HTML/XML named entity:  , LaTeX: \quad
three-per-em space U+2004 8196 Yes No Common General
Punctuation
Separator,
space
Also known as "thick space". One third of an em wide. HTML/XML named entity:  , LaTeX: \; (the LaTeX thick space is a no-break space)
four-per-em space U+2005 8197 Yes No Common General
Punctuation
Separator,
space
Also known as "mid space". One fourth of an em wide. HTML/XML named entity:  
six-per-em space U+2006 8198 Yes No Common General
Punctuation
Separator,
space
One sixth of an em wide. In computer typography, sometimes equated to U+2009.
figure space U+2007 8199 No No Common General
Punctuation
Separator,
space
Figure space. In fonts with monospaced digits, equal to the width of one digit. HTML/XML named entity:  
punctuation space U+2008 8200 Yes No Common General
Punctuation
Separator,
space
As wide as the narrow punctuation in a font, i.e. the advance width of the period or comma.[2] HTML/XML named entity:  
thin space U+2009 8201 Yes No Common General
Punctuation
Separator,
space
Thin space; one-fifth (sometimes one-sixth) of an em wide. Recommended for use as a thousands separator for measures made with SI units. Unlike U+2002 to U+2008, its width may get adjusted in typesetting.[3] HTML/XML named entity:  ,  , LaTeX: \, (the LaTeX thin space is a no-break space)
hair space U+200A 8202 Yes No Common General
Punctuation
Separator,
space
Thinner than a thin space. HTML/XML named entity:     (does not work in all browsers)
line separator U+2028 8232 Is a line-break Common General
Punctuation
Separator,
line
paragraph separator U+2029 8233 Is a line-break Common General
Punctuation
Separator,
paragraph
narrow no-break space U+202F 8239 No No Common General
Punctuation
Separator,
space
Narrow no-break space. Similar in function to U+00A0 No-Break Space. When used with Mongolian, its width is usually one third of the normal space; in other context, its width sometimes resembles that of the Thin Space (U+2009). LaTeX: \,
medium mathematical space U+205F 8287 Yes No Common General
Punctuation
Separator,
space
MMSP. Used in mathematical formulae. Four-eighteenths of an em.[4] In mathematical typography, the widths of spaces are usually given in integral multiples of an eighteenth of an em, and 4/18 em may be used in several situations, for example between the a and the + and between the + and the b in the expression a + b.[5] HTML/XML named entity:  , LaTeX: \: (the LaTeX medium space is a no-break space)
ideographic space U+3000 12288   Yes No Common CJK Symbols
and
Punctuation
Separator,
space
As wide as a CJK character cell (fullwidth). Used, for example, in tai tou.
 Name  Code point Width box May break? In
IDN?
Script Block General
category
Notes
mongolian vowel separator U+180E 6158 Yes No Mongolian Mongolian Other,
Format
MVS. A narrow space character, used in Mongolian to cause the final two characters of a word to take on different shapes.[6] It is no longer classified as space character (i.e. in Zs category) in Unicode 6.3.0, even though it was in previous versions of the standard.
zero width space U+200B 8203 Yes No ? General
Punctuation
Other,
Format
ZWSP, zero-width space. Used to indicate word boundaries to text processing systems when using scripts that do not use explicit spacing. It is similar to the soft hyphen, with the difference that the latter is used to indicate syllable boundaries, and should display a visible hyphen when the line breaks at it. HTML/XML named entity: ​[7][c]
zero width non-joiner U+200C 8204 Yes Context-dependent[12] ? General
Punctuation
Other,
Format
ZWNJ, zero-width non-joiner. When placed between two characters that would otherwise be connected, a ZWNJ causes them to be printed in their final and initial forms, respectively. HTML/XML named entity: ‌
zero width joiner U+200D 8205 Yes Context-dependent[13] ? General
Punctuation
Other,
Format
ZWJ, zero-width joiner. When placed between two characters that would otherwise not be connected, a ZWJ causes them to be printed in their connected forms. Can also be used to display joining forms in isolation. Depending on whether a ligature or conjunct is expected by default, can either induce (as in emoji and in Sinhala) or suppress (as in Devanagari) substitution with a single glyph, whilst still permitting use of individual joining forms (unlike ZWNJ). HTML/XML named entity: ‍
word joiner U+2060 8288 No No ? General
Punctuation
Other,
Format
WJ, word joiner. Similar to U+200B, but not a point at which a line may be broken. HTML/XML named entity: ⁠
zero width non-breaking space U+FEFF 65279 No No ? Arabic
Presentation
Forms-B
Other,
Format
Zero-width non-breaking space. Used primarily as a Byte Order Mark. Use as an indication of non-breaking is deprecated as of Unicode 3.2; see U+2060 instead.
  1. ^ White_Space is a binary Unicode property.[14]
  2. ^ "PropList-15.1.0.txt". Unicode. 2023-08-01. Retrieved 2023-09-12.
  3. ^ Although ​ is one HTML5 named entity for U+200B, the additional names NegativeMediumSpace, NegativeThickSpace, NegativeThinSpace and NegativeVeryThinSpace (which are names used in the Wolfram Language for negative-advance spaces, which it maps to the Private Use Area)[8][9][10][11] are also defined by HTML5 as aliases for U+200B (e.g. ​).[7]

Substitute images edit

Unicode also provides some visible characters that can be used to represent various whitespace characters, in contexts where a visible symbol must be displayed:

Unicode space-illustrating characters (visible)
Code Decimal Name Block Display Description
U+00B7 183 Middle dot Latin-1 Supplement · Interpunct
Named entity: ·
U+21A1 8609 Downwards two headed arrow Arrows ECMA-17 / ISO 2047 symbol for form feed (page break)[15]
U+2261 8810 Identical to Mathematical
Operators
Amongst other uses, is the ECMA-17 / ISO 2047 symbol for line feed[15]
U+237D 9085 Shouldered open box Miscellaneous Technical Used to indicate a NBSP
U+23CE 9166 Return symbol Miscellaneous Technical Symbol for a return key, which enters a line break
U+2409 9225 Symbol for horizontal tabulation Control Pictures Substitutes for a tab character
U+240A 9226 Symbol for line feed Control Pictures Substitutes for a line feed
U+240B 9227 Symbol for vertical tabulation Control Pictures Substitutes for a vertical tab (line tab)
U+240C 9228 Symbol for form feed Control Pictures Substitutes for a form feed (page break)
U+240D 9229 Symbol for carriage return Control Pictures Substitutes for a carriage return
U+2420 9248 Symbol for space Control Pictures Substitutes for an ASCII space
U+2422 9250 Blank symbol Control Pictures aka "substitute blank",[16] used in BCDIC,[16] EBCDIC,[16] ASCII-1963[16][17] etc. as a symbol for the word separator
U+2423 9251 Open box Control Pictures Used in block letter handwriting at least since the 1980s when it is necessary to explicitly indicate the number of space characters (e.g. when programming with pen and paper). Used in a textbook (published 1982, 1984, 1985, 1988 by Springer-Verlag) on Modula-2,[18] a programming language where space codes require explicit indication. Also used in the keypad[n 1] of the Texas Instruments' TI-8x series of graphing calculators.
Named entity: ␣
U+2424 9252 Symbol for newline Control Pictures Substitutes for a line break
U+25B3 9651 White up-pointing triangle Geometric Shapes Amongst other uses, is the ECMA-17 / ISO 2047 symbol for the ASCII space[15]
U+2A5B 10843 Logical Or with middle stem Supplemental
Mathematical
Operators
Amongst other uses, is the ECMA-17 / ISO 2047 symbol for vertical tab (line tab)[15]
U+2AAA 10922 Smaller than Supplemental
Mathematical
Operators
Amongst other uses, is the ECMA-17 / ISO 2047 symbol for carriage return[15]
U+2AAB 10923 Larger than Supplemental
Mathematical
Operators
Amongst other uses, is the ECMA-17 / ISO 2047 symbol for the tab character[15]
U+3037 12343 Ideographic Telegraph Line Feed
Separator Symbol
CJK Symbols
and Punctuation
Graphic used for code 9999 in Chinese telegraph code, representing a line feed
  1. ^ Above the zero "0" or negative "(‒)" key.
Exact space
  • The Cambridge Z88 provided a special "exact space" (code point 160 aka 0xA0) (invokable by key shortcut +SPACE[19]), displayed as "…" by the operating system's display driver.[20][21] It was therefore also known as "dot space" in conjunction with BBC BASIC.[20][21]
  • Under code point 224 (0xE0) the computer also provided a special three-character-cells-wide SPACE symbol "SPC" (analogous to Unicode's single-cell-wide U+2420).[20][21]

Non-space blanks edit

  • The Braille Patterns Unicode block contains U+2800 BRAILLE PATTERN BLANK, a Braille pattern with no dots raised. Some fonts display the character as a fixed-width blank, however the Unicode standard explicitly states that it does not act as a space.[22]
  • Unicode's coverage of the Korean alphabet includes several code points which represent the absence of a written letter, and thus do not display a glyph:
    • Unicode includes a Hangul Filler character in the Hangul Compatibility Jamo block (U+3164 HANGUL FILLER). This is classified as a letter, but displayed as an empty space, like a Hangul block containing no jamo. It is used in KS X 1001 Hangul combining sequences to introduce them or denote the absence of a letter in a position, but not in Unicode's combining jamo system.[23]
    • Unicode's combining jamo system uses similar Hangul Choseong Filler and Hangul Jungseong Filler characters to denote the absence of a letter in initial or medial position within a syllable block, which are included in the Hangul Jamo block (U+115F HANGUL CHOSEONG FILLER, U+1160 HANGUL JUNGSEONG FILLER).[24]
    • Additionally, a Halfwidth Hangul Filler is included in the Halfwidth and Fullwidth Forms (U+FFA0 HALFWIDTH HANGUL FILLER), which is used when mapping from encodings which include characters from both Johab (or Wansung) and N-byte Hangul (or its EBCDIC counterpart), such as IBM-933, which includes both Johab and EBCDIC fillers.[25][26]

Whitespace and digital typography edit

 
The Chicago Manual of Style has rules for using the different sized whitespaces.

On-screen display edit

Text editors, word processors, and desktop publishing software differ in how they represent whitespace on the screen, and how they represent spaces at the ends of lines longer than the screen or column width. In some cases, spaces are shown simply as blank space; in other cases they may be represented by an interpunct or other symbols. Many different characters (described below) could be used to produce spaces, and non-character functions (such as margins and tab settings) can also affect whitespace.

Many of the Unicode space characters were created for compatibility with classic print typography.[27]

Even if digital typography has algorithmic kerning and justification, those space characters can be used to supplement the electronic formatting when needed.

Variable-width general-purpose space edit

In computer character encodings, there is a normal general-purpose space (Unicode character U+0020) whose width will vary according to the design of the typeface. Typical values range from 1/5 em to 1/3 em (in digital typography an em is equal to the nominal size of the font, so for a 10-point font the space will probably be between 2 and 3.3 points). Sophisticated fonts may have differently sized spaces for bold, italic, and small-caps faces, and often compositors will manually adjust the width of the space depending on the size and prominence of the text.

In addition to this general-purpose space, it is possible to encode a space of a specific width. See the table below for a complete list.

Hair spaces around dashes edit

Em dashes used as parenthetical dividers, and en dashes when used as word joiners, are usually set continuous with the text.[28] However, such a dash can optionally be surrounded with a hair space, U+200A, or thin space, U+2009. The hair space can be written in HTML by using the numeric character references   or  , or the named entity  , but is not universally supported in browsers yet, as of 2016.[needs update] The thin space is named entity   and numeric references   or  . These spaces are much thinner than a normal space (except in a monospaced (non-proportional) font), with the hair space in particular being the thinnest of horizontal whitespace characters.

Normal space versus hair and thin spaces (as rendered by your browser)
Normal space with em dash left — right
Thin space with em dash leftright
Hair space with em dash left — right
No space with em dash left—right

Computing applications edit

Programming languages edit

In programming language syntax, spaces are frequently used to explicitly separate tokens. In most languages multiple whitespace characters are treated the same as a single whitespace character (outside of quoted strings); such languages are called free-form. In a few languages, including Haskell, occam, ABC, and Python, whitespace and indentation are used for syntactical purposes. In the satirical language called Whitespace, whitespace characters are the only valid characters for programming, while any other characters are ignored.

Excessive use of whitespace, especially trailing whitespace at the end of lines, is considered a nuisance. However correct use of whitespace can make the code easier to read and help group related logic.

Most languages only recognize ASCII characters as whitespace, or in some cases Unicode newlines as well, but not most of the characters listed above. The C language defines whitespace characters to be "space, horizontal tab, new-line, vertical tab, and form-feed".[29] The HTTP network protocol requires different types of whitespace to be used in different parts of the protocol, such as: only the space character in the status line, CRLF at the end of a line, and "linear whitespace" in header values.[30]

Command-line user interfaces edit

In commands processed by command processors, e.g., in scripts and typed in, the space character can cause problems as it has two possible functions: as part of a command or parameter, or as a parameter or name separator. Ambiguity can be prevented either by prohibiting embedded spaces, or by enclosing a name with embedded spaces between quote characters.

Markup languages edit

Some markup languages, such as SGML, preserve whitespace as written.

Web markup languages such as XML and HTML treat whitespace characters specially, including space characters, for programmers' convenience. One or more space characters read by conforming display-time processors of those markup languages are collapsed to 0 or 1 space, depending on their semantic context. For example, double (or more) spaces within text are collapsed to a single space, and spaces which appear on either side of the "=" that separates an attribute name from its value have no effect on the interpretation of the document. Element end tags can contain trailing spaces, and empty-element tags in XML can contain spaces before the "/>". In these languages, unnecessary whitespace increases the file size, and so may slow network transfers. On the other hand, unnecessary whitespace can also inconspicuously mark code, similar to, but less obvious than comments in code. This can be desirable to prove an infringement of license or copyright that was committed by copying and pasting.

In XML attribute values, sequences of whitespace characters are treated as a single space when the document is read by a parser.[31] Whitespace in XML element content is not changed in this way by the parser, but an application receiving information from the parser may choose to apply similar rules to element content. An XML document author can use the xml:space="preserve" attribute on an element to instruct the parser to discourage the downstream application from altering whitespace in that element's content.

In most HTML elements, a sequence of whitespace characters is treated as a single inter-word separator, which may manifest as a single space character when rendering text in a language that normally inserts such space between words.[32] Conforming HTML renderers are required to apply a more literal treatment of whitespace within a few prescribed elements, such as the pre tag and any element for which CSS has been used to apply pre-like whitespace processing. In such elements, space characters will not be "collapsed" into inter-word separators.

In both XML and HTML, the non-breaking space character, along with other non-"standard" spaces, is not treated as collapsible "whitespace", so it is not subject to the rules above.

File names edit

Such usage is similar to multiword file names written for operating systems and applications that are confused by embedded space codes—such file names instead use an underscore (_) as a word separator, as_in_this_phrase.

Another such symbol was U+2422 BLANK SYMBOL. This was used in the early years of computer programming when writing on coding forms. Keypunch operators immediately recognized the symbol as an "explicit space".[16] It was used in BCDIC,[16] EBCDIC,[16] and ASCII-1963.[16]

See also edit

References edit

  1. ^ "The Unicode Standard". Unicode Consortium.
  2. ^ . Character design standards. Microsoft. 1998–1999. Archived from the original on March 14, 2010. Retrieved 2009-05-18.
  3. ^ The Unicode Standard 5.0, printed edition, p. 205; also available at "Chapter 6 — Writing Systems and Punctuation" (PDF). The Unicode Standard 5.0, electronic edition. Unicode Consortium. 2006-07-14. p. 11 (205). Retrieved 2022-12-22.
  4. ^ "General Punctuation" (PDF). The Unicode Standard 5.1. Unicode Inc. 1991–2008. Retrieved 2009-05-13.
  5. ^ Sargent, Murray III (2006-08-29). "Unicode Nearly Plain Text Encoding of Mathematics (Version 2)". Unicode Technical Note #28. Unicode Inc. pp. 19–20. Retrieved 2009-05-19.
  6. ^ Gillam, Richard (2002). Unicode Demystified: A Practical Programmer's Guide to the Encoding Standard. Addison-Wesley. ISBN 0-201-70052-2.
  7. ^ a b Hickson, Ian. "12.5 Named character references". HTML Standard. WHATWG.
  8. ^ Wolfram. "\[NegativeThickSpace]". Wolfram Language Documentation.
  9. ^ Wolfram. "\[NegativeMediumSpace]". Wolfram Language Documentation.
  10. ^ Wolfram. "\[NegativeThinSpace]". Wolfram Language Documentation.
  11. ^ Wolfram. "\[NegativeVeryThinSpace]". Wolfram Language Documentation.
  12. ^ Faltstrom, P., ed. (August 2010). "Zero Width Non-Joiner". The Unicode Code Points and Internationalized Domain Names for Applications (IDNA). IETF. sec. A.1. doi:10.17487/RFC5892. RFC 5892. Retrieved September 4, 2019.
  13. ^ Faltstrom, P., ed. (August 2010). "Zero Width Joiner". The Unicode Code Points and Internationalized Domain Names for Applications (IDNA). IETF. sec. A.2. doi:10.17487/RFC5892. RFC 5892. Retrieved September 4, 2019.
  14. ^ "Unicode Standard Annex #44, Unicode Character Database".
  15. ^ a b c d e f European Computer Manufacturers Association (1968-11-28). Graphic Representation of the Control Characters of the ECMA 7-Bit Coded Character Set for Information Interchange (PDF). ECMA-17.
  16. ^ a b c d e f g h Mackenzie, Charles E. (1980). Coded Character Sets, History and Development. The Systems Programming Series (1 ed.). Addison-Wesley Publishing Company, Inc. pp. 41, 47, 52, 102–103, 117, 119, 130, 132, 141, 148, 150–151, 212, 424. ISBN 978-0-201-14460-4. LCCN 77-90165. Retrieved 2016-05-22.
  17. ^ "American Standard Code for Information Interchange, ASA X3.4-1963". American Standards Association (ASA). 1963-06-17.
  18. ^ Niklaus Wirth, Programming in Modula-2
  19. ^ "Cambridge Z88 User Guide". 4.7 (4th ed.). Cambridge Computer Limited. 2016 [1987]. Basic concepts - The keyboard. from the original on 2016-12-12. Retrieved 2016-12-12.
  20. ^ a b c "Cambridge Z88 User Guide". 4.0 (4th ed.). Cambridge Computer Limited. 1987. Appendix D. from the original on 2016-12-12. Retrieved 2016-12-12.
  21. ^ a b c "Cambridge Z88 User Guide". 4.7 (4th ed.). Cambridge Computer Limited. 2015 [1987]. Appendix D. from the original on 2016-12-12. Retrieved 2016-12-12.
  22. ^ Unicode chart U+2800, braille patterns
  23. ^ Chung, Jaemin (2017-03-30). Proposal to add an informative note to U+3164 HANGUL FILLER (PDF). Unicode Consortium. UTC L2/17-081.
  24. ^ Hangul Jamo (PDF). Unicode Consortium. 2020-10-25.
  25. ^ "ibm-933_P110-1995". ICU Demonstration - Converter Explorer. International Components for Unicode.
  26. ^ "ibm-933_P110-1995 (lead bytes 0E84)". ICU Demonstration - Converter Explorer. International Components for Unicode.
  27. ^ "Chapter 6 — Writing Systems and Punctuation" (PDF). The Unicode Standard 15.0, electronic edition. Unicode Consortium. 2022-09-13. pp. 12–13 (267–268). Retrieved 2022-12-23. The fixed-width space characters (U+2000..U+200A) are derived from conventional (hot lead) typography. Algorithmic kerning and justification in computerized typography do not use these characters. However, where they are used (for example, in typesetting mathematical formulae), their width is generally font-specified, and they typically do not expand during justification. The exception is U+2009 thin space, which sometimes gets adjusted.
  28. ^ Usage of the different dash types is illustrated, e.g., in The Chicago Manual of Style, §§ 6.80, 6.83–6.86
  29. ^ http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1548.pdf Section 6.4, paragraph 3
  30. ^ Fielding, R.; et al. (June 1999), "2.2 Basic Rules", Hypertext Transfer Protocol—HTTP/1.1, doi:10.17487/RFC2616, RFC 2616
  31. ^ "3.3.3 Attribute-Value Normalization". Extensible Markup Language (XML) 1.0 (Fifth Edition). World Wide Web Consortium.
  32. ^ "9.1 Whitespace". W3CHTML 4.01 Specification. World Wide Web Consortium.

External links edit

  • Property List of Unicode Character Database

whitespace, character, space, redirects, here, animated, film, space, redirects, here, confused, with, computer, programming, whitespace, character, series, characters, that, represent, horizontal, vertical, space, typography, when, rendered, whitespace, chara. Dot space redirects here For the animated film see Dot in Space redirects here Not to be confused with or In computer programming whitespace is any character or series of characters that represent horizontal or vertical space in typography When rendered a whitespace character does not correspond to a visible mark but typically does occupy an area on a page For example the common whitespace symbol U 0020 SPACE also ASCII 32 represents a blank space punctuation character in text used as a word divider in Western scripts Contents 1 Overview 2 Unicode 2 1 Substitute images 2 2 Non space blanks 3 Whitespace and digital typography 3 1 On screen display 3 2 Variable width general purpose space 3 3 Hair spaces around dashes 4 Computing applications 4 1 Programming languages 4 2 Command line user interfaces 4 3 Markup languages 4 4 File names 5 See also 6 References 7 External linksOverview edit nbsp Relative widths of various spaces in UnicodeWith many keyboard layouts a whitespace character may be entered by pressing spacebar Horizontal whitespace may also be entered on many keyboards with the Tab key although the length of the space may vary Vertical whitespace may be input by typing Return which creates a newline code sequence in most programs In some systems Enter has a separate meaning but in others the two are conflated Many early computer games used whitespace characters to draw a screen e g Kingdom of Kroz The term whitespace is based on the appearance of the characters on ordinary paper However within an application whitespace characters can be processed in the same way as any other character code and different programs may define their own semantics for the characters Unicode editThe table below lists the twenty five characters defined as whitespace WSpace Y WS characters in the Unicode Character Database 1 Seventeen use a definition of whitespace consistent with the algorithm for bidirectional writing Bidirectional Character Type WS and are known as Bidi WS characters The remaining characters may also be used but are not of this Bidi type Note Depending on the browser and fonts used to view the following table not all spaces may be displayed properly vteUnicode characters with property White Space yes a b Name Code point Width box May break In IDN Script Block General category Notescharacter tabulation U 0009 9 Yes No Common Basic Latin Other control HT Horizontal Tab HTML XML named entity amp Tab LaTeX tab C escape tline feed U 000A 10 Is a line break Common Basic Latin Other control LF Line feed HTML XML named entity amp NewLine C escape nline tabulation U 000B 11 Is a line break Common Basic Latin Other control VT Vertical Tab C escape vform feed U 000C 12 Is a line break Common Basic Latin Other control FF Form feed C escape fcarriage return U 000D 13 Is a line break Common Basic Latin Other control CR Carriage return C escape rspace U 0020 32 Yes No Common Basic Latin Separator space Most common normal ASCII space LaTeX next line U 0085 133 Is a line break Common Latin 1Supplement Other control NEL Next line LaTeX no break space U 00A0 160 No No Common Latin 1Supplement Separator space Non breaking space identical to U 0020 but not a point at which a line may be broken HTML XML named entity amp nbsp amp NonBreakingSpace LaTeX ogham space mark U 1680 5760 Yes No Ogham Ogham Separator space Used for interword separation in Ogham text Normally a vertical line in vertical text or a horizontal line in horizontal text but may also be a blank space in stemless fonts Requires an Ogham font en quad U 2000 8192 Yes No Common GeneralPunctuation Separator space Width of one en U 2002 is canonically equivalent to this character U 2002 is preferred em quad U 2001 8193 Yes No Common GeneralPunctuation Separator space Also known as mutton quad Width of one em U 2003 is canonically equivalent to this character U 2003 is preferred en space U 2002 8194 Yes No Common GeneralPunctuation Separator space Also known as nut Width of one en U 2000 En Quad is canonically equivalent to this character U 2002 is preferred HTML XML named entity amp ensp LaTeX enspace the LaTeX en space is a no break space em space U 2003 8195 Yes No Common GeneralPunctuation Separator space Also known as mutton Width of one em U 2001 Em Quad is canonically equivalent to this character U 2003 is preferred HTML XML named entity amp emsp LaTeX quadthree per em space U 2004 8196 Yes No Common GeneralPunctuation Separator space Also known as thick space One third of an em wide HTML XML named entity amp emsp13 LaTeX the LaTeX thick space is a no break space four per em space U 2005 8197 Yes No Common GeneralPunctuation Separator space Also known as mid space One fourth of an em wide HTML XML named entity amp emsp14 six per em space U 2006 8198 Yes No Common GeneralPunctuation Separator space One sixth of an em wide In computer typography sometimes equated to U 2009 figure space U 2007 8199 No No Common GeneralPunctuation Separator space Figure space In fonts with monospaced digits equal to the width of one digit HTML XML named entity amp numsp punctuation space U 2008 8200 Yes No Common GeneralPunctuation Separator space As wide as the narrow punctuation in a font i e the advance width of the period or comma 2 HTML XML named entity amp puncsp thin space U 2009 8201 Yes No Common GeneralPunctuation Separator space Thin space one fifth sometimes one sixth of an em wide Recommended for use as a thousands separator for measures made with SI units Unlike U 2002 to U 2008 its width may get adjusted in typesetting 3 HTML XML named entity amp thinsp amp ThinSpace LaTeX the LaTeX thin space is a no break space hair space U 200A 8202 Yes No Common GeneralPunctuation Separator space Thinner than a thin space HTML XML named entity amp hairsp amp VeryThinSpace does not work in all browsers line separator U 2028 8232 Is a line break Common GeneralPunctuation Separator lineparagraph separator U 2029 8233 Is a line break Common GeneralPunctuation Separator paragraphnarrow no break space U 202F 8239 No No Common GeneralPunctuation Separator space Narrow no break space Similar in function to U 00A0 No Break Space When used with Mongolian its width is usually one third of the normal space in other context its width sometimes resembles that of the Thin Space U 2009 LaTeX medium mathematical space U 205F 8287 Yes No Common GeneralPunctuation Separator space MMSP Used in mathematical formulae Four eighteenths of an em 4 In mathematical typography the widths of spaces are usually given in integral multiples of an eighteenth of an em and 4 18 em may be used in several situations for example between the a and the and between the and the b in the expression a b 5 HTML XML named entity amp MediumSpace LaTeX the LaTeX medium space is a no break space ideographic space U 3000 12288 Yes No Common CJK SymbolsandPunctuation Separator space As wide as a CJK character cell fullwidth Used for example in tai tou vteRelated Unicode characters with property White Space no Name Code point Width box May break In IDN Script Block General category Notesmongolian vowel separator U 180E 6158 Yes No Mongolian Mongolian Other Format MVS A narrow space character used in Mongolian to cause the final two characters of a word to take on different shapes 6 It is no longer classified as space character i e in Zs category in Unicode 6 3 0 even though it was in previous versions of the standard zero width space U 200B 8203 Yes No GeneralPunctuation Other Format ZWSP zero width space Used to indicate word boundaries to text processing systems when using scripts that do not use explicit spacing It is similar to the soft hyphen with the difference that the latter is used to indicate syllable boundaries and should display a visible hyphen when the line breaks at it HTML XML named entity amp ZeroWidthSpace 7 c zero width non joiner U 200C 8204 Yes Context dependent 12 GeneralPunctuation Other Format ZWNJ zero width non joiner When placed between two characters that would otherwise be connected a ZWNJ causes them to be printed in their final and initial forms respectively HTML XML named entity amp zwnj zero width joiner U 200D 8205 Yes Context dependent 13 GeneralPunctuation Other Format ZWJ zero width joiner When placed between two characters that would otherwise not be connected a ZWJ causes them to be printed in their connected forms Can also be used to display joining forms in isolation Depending on whether a ligature or conjunct is expected by default can either induce as in emoji and in Sinhala or suppress as in Devanagari substitution with a single glyph whilst still permitting use of individual joining forms unlike ZWNJ HTML XML named entity amp zwj word joiner U 2060 8288 No No GeneralPunctuation Other Format WJ word joiner Similar to U 200B but not a point at which a line may be broken HTML XML named entity amp NoBreak zero width non breaking space U FEFF 65279 No No Arabic Presentation Forms B Other Format Zero width non breaking space Used primarily as a Byte Order Mark Use as an indication of non breaking is deprecated as of Unicode 3 2 see U 2060 instead White Space is a binary Unicode property 14 PropList 15 1 0 txt Unicode 2023 08 01 Retrieved 2023 09 12 Although amp ZeroWidthSpace is one HTML5 named entity for U 200B the additional names NegativeMediumSpace NegativeThickSpace NegativeThinSpace and NegativeVeryThinSpace which are names used in the Wolfram Language for negative advance spaces which it maps to the Private Use Area 8 9 10 11 are also defined by HTML5 as aliases for U 200B e g amp NegativeMediumSpace 7 Substitute images edit Unicode also provides some visible characters that can be used to represent various whitespace characters in contexts where a visible symbol must be displayed Unicode space illustrating characters visible Code Decimal Name Block Display DescriptionU 00B7 183 Middle dot Latin 1 Supplement InterpunctNamed entity amp middot U 21A1 8609 Downwards two headed arrow Arrows ECMA 17 ISO 2047 symbol for form feed page break 15 U 2261 8810 Identical to Mathematical Operators Amongst other uses is the ECMA 17 ISO 2047 symbol for line feed 15 U 237D 9085 Shouldered open box Miscellaneous Technical Used to indicate a NBSPU 23CE 9166 Return symbol Miscellaneous Technical Symbol for a return key which enters a line breakU 2409 9225 Symbol for horizontal tabulation Control Pictures Substitutes for a tab characterU 240A 9226 Symbol for line feed Control Pictures Substitutes for a line feedU 240B 9227 Symbol for vertical tabulation Control Pictures Substitutes for a vertical tab line tab U 240C 9228 Symbol for form feed Control Pictures Substitutes for a form feed page break U 240D 9229 Symbol for carriage return Control Pictures Substitutes for a carriage returnU 2420 9248 Symbol for space Control Pictures Substitutes for an ASCII spaceU 2422 9250 Blank symbol Control Pictures aka substitute blank 16 used in BCDIC 16 EBCDIC 16 ASCII 1963 16 17 etc as a symbol for the word separatorU 2423 9251 Open box Control Pictures Used in block letter handwriting at least since the 1980s when it is necessary to explicitly indicate the number of space characters e g when programming with pen and paper Used in a textbook published 1982 1984 1985 1988 by Springer Verlag on Modula 2 18 a programming language where space codes require explicit indication Also used in the keypad n 1 of the Texas Instruments TI 8x series of graphing calculators Named entity amp blank U 2424 9252 Symbol for newline Control Pictures Substitutes for a line breakU 25B3 9651 White up pointing triangle Geometric Shapes Amongst other uses is the ECMA 17 ISO 2047 symbol for the ASCII space 15 U 2A5B 10843 Logical Or with middle stem Supplemental Mathematical Operators Amongst other uses is the ECMA 17 ISO 2047 symbol for vertical tab line tab 15 U 2AAA 10922 Smaller than Supplemental Mathematical Operators Amongst other uses is the ECMA 17 ISO 2047 symbol for carriage return 15 U 2AAB 10923 Larger than Supplemental Mathematical Operators Amongst other uses is the ECMA 17 ISO 2047 symbol for the tab character 15 U 3037 12343 Ideographic Telegraph Line Feed Separator Symbol CJK Symbols and Punctuation Graphic used for code 9999 in Chinese telegraph code representing a line feed Above the zero 0 or negative key Exact spaceThe Cambridge Z88 provided a special exact space code point 160 aka 0xA0 invokable by key shortcut SPACE 19 displayed as by the operating system s display driver 20 21 It was therefore also known as dot space in conjunction with BBC BASIC 20 21 Under code point 224 0xE0 the computer also provided a special three character cells wide SPACE symbol SPC analogous to Unicode s single cell wide U 2420 20 21 Non space blanks edit The Braille Patterns Unicode block contains U 2800 BRAILLE PATTERN BLANK a Braille pattern with no dots raised Some fonts display the character as a fixed width blank however the Unicode standard explicitly states that it does not act as a space 22 Unicode s coverage of the Korean alphabet includes several code points which represent the absence of a written letter and thus do not display a glyph Unicode includes a Hangul Filler character in the Hangul Compatibility Jamo block U 3164 ㅤ HANGUL FILLER This is classified as a letter but displayed as an empty space like a Hangul block containing no jamo It is used in KS X 1001 Hangul combining sequences to introduce them or denote the absence of a letter in a position but not in Unicode s combining jamo system 23 Unicode s combining jamo system uses similar Hangul Choseong Filler and Hangul Jungseong Filler characters to denote the absence of a letter in initial or medial position within a syllable block which are included in the Hangul Jamo block U 115F ᅟ HANGUL CHOSEONG FILLER U 1160 ᅠ HANGUL JUNGSEONG FILLER 24 Additionally a Halfwidth Hangul Filler is included in the Halfwidth and Fullwidth Forms U FFA0 ᅠ HALFWIDTH HANGUL FILLER which is used when mapping from encodings which include characters from both Johab or Wansung and N byte Hangul or its EBCDIC counterpart such as IBM 933 which includes both Johab and EBCDIC fillers 25 26 Whitespace and digital typography edit nbsp The Chicago Manual of Style has rules for using the different sized whitespaces On screen display edit Text editors word processors and desktop publishing software differ in how they represent whitespace on the screen and how they represent spaces at the ends of lines longer than the screen or column width In some cases spaces are shown simply as blank space in other cases they may be represented by an interpunct or other symbols Many different characters described below could be used to produce spaces and non character functions such as margins and tab settings can also affect whitespace Many of the Unicode space characters were created for compatibility with classic print typography 27 Even if digital typography has algorithmic kerning and justification those space characters can be used to supplement the electronic formatting when needed Variable width general purpose space edit In computer character encodings there is a normal general purpose space Unicode character U 0020 whose width will vary according to the design of the typeface Typical values range from 1 5 em to 1 3 em in digital typography an em is equal to the nominal size of the font so for a 10 point font the space will probably be between 2 and 3 3 points Sophisticated fonts may have differently sized spaces for bold italic and small caps faces and often compositors will manually adjust the width of the space depending on the size and prominence of the text In addition to this general purpose space it is possible to encode a space of a specific width See the table below for a complete list Hair spaces around dashes edit Em dashes used as parenthetical dividers and en dashes when used as word joiners are usually set continuous with the text 28 However such a dash can optionally be surrounded with a hair space U 200A or thin space U 2009 The hair space can be written in HTML by using the numeric character references amp x200A or amp 8202 or the named entity amp hairsp but is not universally supported in browsers yet as of 2016 update needs update The thin space is named entity amp thinsp and numeric references amp x2009 or amp 8201 These spaces are much thinner than a normal space except in a monospaced non proportional font with the hair space in particular being the thinnest of horizontal whitespace characters Normal space versus hair and thin spaces as rendered by your browser Normal space with em dash left rightThin space with em dash left rightHair space with em dash left rightNo space with em dash left rightComputing applications editProgramming languages edit In programming language syntax spaces are frequently used to explicitly separate tokens In most languages multiple whitespace characters are treated the same as a single whitespace character outside of quoted strings such languages are called free form In a few languages including Haskell occam ABC and Python whitespace and indentation are used for syntactical purposes In the satirical language called Whitespace whitespace characters are the only valid characters for programming while any other characters are ignored Excessive use of whitespace especially trailing whitespace at the end of lines is considered a nuisance However correct use of whitespace can make the code easier to read and help group related logic Most languages only recognize ASCII characters as whitespace or in some cases Unicode newlines as well but not most of the characters listed above The C language defines whitespace characters to be space horizontal tab new line vertical tab and form feed 29 The HTTP network protocol requires different types of whitespace to be used in different parts of the protocol such as only the space character in the status line CRLF at the end of a line and linear whitespace in header values 30 Command line user interfaces edit In commands processed by command processors e g in scripts and typed in the space character can cause problems as it has two possible functions as part of a command or parameter or as a parameter or name separator Ambiguity can be prevented either by prohibiting embedded spaces or by enclosing a name with embedded spaces between quote characters Markup languages edit Some markup languages such as SGML preserve whitespace as written Web markup languages such as XML and HTML treat whitespace characters specially including space characters for programmers convenience One or more space characters read by conforming display time processors of those markup languages are collapsed to 0 or 1 space depending on their semantic context For example double or more spaces within text are collapsed to a single space and spaces which appear on either side of the that separates an attribute name from its value have no effect on the interpretation of the document Element end tags can contain trailing spaces and empty element tags in XML can contain spaces before the gt In these languages unnecessary whitespace increases the file size and so may slow network transfers On the other hand unnecessary whitespace can also inconspicuously mark code similar to but less obvious than comments in code This can be desirable to prove an infringement of license or copyright that was committed by copying and pasting In XML attribute values sequences of whitespace characters are treated as a single space when the document is read by a parser 31 Whitespace in XML element content is not changed in this way by the parser but an application receiving information from the parser may choose to apply similar rules to element content An XML document author can use the xml space preserve attribute on an element to instruct the parser to discourage the downstream application from altering whitespace in that element s content In most HTML elements a sequence of whitespace characters is treated as a single inter word separator which may manifest as a single space character when rendering text in a language that normally inserts such space between words 32 Conforming HTML renderers are required to apply a more literal treatment of whitespace within a few prescribed elements such as the pre tag and any element for which CSS has been used to apply pre like whitespace processing In such elements space characters will not be collapsed into inter word separators In both XML and HTML the non breaking space character along with other non standard spaces is not treated as collapsible whitespace so it is not subject to the rules above File names edit Such usage is similar to multiword file names written for operating systems and applications that are confused by embedded space codes such file names instead use an underscore as a word separator as in this phrase Another such symbol was U 2422 BLANK SYMBOL This was used in the early years of computer programming when writing on coding forms Keypunch operators immediately recognized the symbol as an explicit space 16 It was used in BCDIC 16 EBCDIC 16 and ASCII 1963 16 See also editCarriage return Em typography En typography Form feed Indent style Line feed Newline Programming style Prosigns for Morse code Regular expression Character classes for the white space character class Space bar Space punctuation Tab key Trimming computer programming Whitespace programming language Zero width spaceReferences edit The Unicode Standard Unicode Consortium Character design standards space characters Character design standards Microsoft 1998 1999 Archived from the original on March 14 2010 Retrieved 2009 05 18 The Unicode Standard 5 0 printed edition p 205 also available at Chapter 6 Writing Systems and Punctuation PDF The Unicode Standard 5 0 electronic edition Unicode Consortium 2006 07 14 p 11 205 Retrieved 2022 12 22 General Punctuation PDF The Unicode Standard 5 1 Unicode Inc 1991 2008 Retrieved 2009 05 13 Sargent Murray III 2006 08 29 Unicode Nearly Plain Text Encoding of Mathematics Version 2 Unicode Technical Note 28 Unicode Inc pp 19 20 Retrieved 2009 05 19 Gillam Richard 2002 Unicode Demystified A Practical Programmer s Guide to the Encoding Standard Addison Wesley ISBN 0 201 70052 2 a b Hickson Ian 12 5 Named character references HTML Standard WHATWG Wolfram NegativeThickSpace Wolfram Language Documentation Wolfram NegativeMediumSpace Wolfram Language Documentation Wolfram NegativeThinSpace Wolfram Language Documentation Wolfram NegativeVeryThinSpace Wolfram Language Documentation Faltstrom P ed August 2010 Zero Width Non Joiner The Unicode Code Points and Internationalized Domain Names for Applications IDNA IETF sec A 1 doi 10 17487 RFC5892 RFC 5892 Retrieved September 4 2019 Faltstrom P ed August 2010 Zero Width Joiner The Unicode Code Points and Internationalized Domain Names for Applications IDNA IETF sec A 2 doi 10 17487 RFC5892 RFC 5892 Retrieved September 4 2019 Unicode Standard Annex 44 Unicode Character Database a b c d e f European Computer Manufacturers Association 1968 11 28 Graphic Representation of the Control Characters of the ECMA 7 Bit Coded Character Set for Information Interchange PDF ECMA 17 a b c d e f g h Mackenzie Charles E 1980 Coded Character Sets History and Development The Systems Programming Series 1 ed Addison Wesley Publishing Company Inc pp 41 47 52 102 103 117 119 130 132 141 148 150 151 212 424 ISBN 978 0 201 14460 4 LCCN 77 90165 Retrieved 2016 05 22 1 American Standard Code for Information Interchange ASA X3 4 1963 American Standards Association ASA 1963 06 17 Niklaus Wirth Programming in Modula 2 Cambridge Z88 User Guide 4 7 4th ed Cambridge Computer Limited 2016 1987 Basic concepts The keyboard Archived from the original on 2016 12 12 Retrieved 2016 12 12 a b c Cambridge Z88 User Guide 4 0 4th ed Cambridge Computer Limited 1987 Appendix D Archived from the original on 2016 12 12 Retrieved 2016 12 12 a b c Cambridge Z88 User Guide 4 7 4th ed Cambridge Computer Limited 2015 1987 Appendix D Archived from the original on 2016 12 12 Retrieved 2016 12 12 Unicode chart U 2800 braille patterns Chung Jaemin 2017 03 30 Proposal to add an informative note to U 3164 HANGUL FILLER PDF Unicode Consortium UTC L2 17 081 Hangul Jamo PDF Unicode Consortium 2020 10 25 ibm 933 P110 1995 ICU Demonstration Converter Explorer International Components for Unicode ibm 933 P110 1995 lead bytes 0E84 ICU Demonstration Converter Explorer International Components for Unicode Chapter 6 Writing Systems and Punctuation PDF The Unicode Standard 15 0 electronic edition Unicode Consortium 2022 09 13 pp 12 13 267 268 Retrieved 2022 12 23 The fixed width space characters U 2000 U 200A are derived from conventional hot lead typography Algorithmic kerning and justification in computerized typography do not use these characters However where they are used for example in typesetting mathematical formulae their width is generally font specified and they typically do not expand during justification The exception is U 2009 thin space which sometimes gets adjusted Usage of the different dash types is illustrated e g in The Chicago Manual of Style 6 80 6 83 6 86 http www open std org jtc1 sc22 wg14 www docs n1548 pdf Section 6 4 paragraph 3 Fielding R et al June 1999 2 2 Basic Rules Hypertext Transfer Protocol HTTP 1 1 doi 10 17487 RFC2616 RFC 2616 3 3 3 Attribute Value Normalization Extensible Markup Language XML 1 0 Fifth Edition World Wide Web Consortium 9 1 Whitespace W3CHTML 4 01 Specification World Wide Web Consortium External links editProperty List of Unicode Character Database Retrieved from https en wikipedia org w index php title Whitespace character amp oldid 1193201486, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.