HOME

TheInfoList



OR:

In computer programming, whitespace is any
character Character or Characters may refer to: Arts, entertainment, and media Literature * ''Character'' (novel), a 1936 Dutch novel by Ferdinand Bordewijk * ''Characters'' (Theophrastus), a classical Greek set of character sketches attributed to The ...
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 (also ASCII 32) represents a blank space punctuation character in text, used as a word divider in Western
script Script may refer to: Writing systems * Script, a distinctive writing system, based on a repertoire of specific elements or symbols, or that repertoire * Script (styles of handwriting) ** Script typeface, a typeface with characteristics of ha ...
s.


Overview

With many keyboard layouts, a whitespace character may be entered by pressing . Horizontal whitespace may also be entered on many keyboards with the key, although the length of the space may vary. Vertical whitespace may be input by typing , which creates a 'newline' code sequence in most programs. On older keyboards, this key may instead be labeled , a holdover from typewriter keyboards' carriage return keys, which generated an electromechanical return to the left stop (Unicode character ) and a move to the next line (). Many early computer games used whitespace characters to draw a screen (e.g.
Kingdom of Kroz ''Kroz'' is a series of Roguelike video games created by Scott Miller for IBM PC compatibles. The first episode in the series, ''Kingdom of Kroz'', was released in 1987 as Apogee Software's first game. It was also published on ''Big Blue Disk'' ...
), and word processing software used them to produce printed effects such as bold, underline, and
strikethrough Strikethrough is a typographical presentation of words with a horizontal line through their center, resulting in . Contrary to censored or sanitized (redacted) texts, the words remain readable. This presentation signifies one of two meanings. In ...
. 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

The table below lists the twenty-five characters defined as whitespace ("WSpace=Y", "WS") characters in the Unicode Character Database. 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.''


Substitute images

Unicode also provides some visible characters that can be used to represent various whitespace characters, in contexts where a visible symbol must be displayed: ; Exact space * The Cambridge Z88 provided a special "exact space" (code point 160 aka 0xA0) (invokable by key shortcut ), displayed as "…" by the operating system's display driver. It was therefore also known as "dot space" in conjunction with BBC BASIC. *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).


Non-space blanks

* The Braille Patterns Unicode block contains , 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.Unicode chart U+2800
braille patterns
* Unicode's coverage of the
Korean alphabet The Korean alphabet, known as Hangul, . Hangul may also be written as following South Korea's standard Romanization. ( ) in South Korea and Chosŏn'gŭl in North Korea, is the modern official writing system for the Korean language. The let ...
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 (). 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. ** 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 (, ). ** Additionally, a Halfwidth Hangul Filler is included in the Halfwidth and Fullwidth Forms (), 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.


Whitespace and digital typography


On-screen display

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 An interpunct , also known as an interpoint, middle dot, middot and centered dot or centred dot, is a punctuation mark consisting of a vertically centered dot used for interword separation in ancient Latin script. (Word-separating spaces did no ...
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. 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

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

Em dash The dash is a punctuation mark consisting of a long horizontal line. It is similar in appearance to the hyphen but is longer and sometimes higher from the baseline. The most common versions are the endash , generally longer than the hyphen b ...
es used as parenthetical dividers, and
en dashes The dash is a punctuation mark consisting of a long horizontal line. It is similar in appearance to the hyphen but is longer and sometimes higher from the baseline. The most common versions are the endash , generally longer than the hyphen b ...
when used as word joiners, are usually set continuous with the text. 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, 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 being the thinner of the two.


Computing applications


Programming languages

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 White space or whitespace may refer to: Technology * Whitespace characters, characters in computing that represent horizontal or vertical space * White spaces (radio), allocated but locally unused radio frequencies * TV White Space Database, a mec ...
, 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". 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.


Command line user interfaces

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 Separator can refer to: * A mechanical device to separate fluids and solids, like ** Cream separator, separates cream from milk ** Demister (vapor), removal of liquid droplets entrained in a vapor stream ** Separator (oil production), of an oil pr ...
. Ambiguity can be prevented either by prohibiting embedded spaces, or by enclosing a name with embedded spaces between quote characters.


Markup languages

Some markup languages, such as
SGML The Standard Generalized Markup Language (SGML; ISO 8879:1986) is a standard for defining generalized markup languages for documents. ISO 8879 Annex A.1 states that generalized markup is "based on two postulates": * Declarative: Markup should des ...
, 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 language Markup language refers to a text-encoding system consisting of a set of symbols inserted in a text document to control its structure, formatting, or the relationship between its parts. Markup is often used to control the display of the document ...
s 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 human–computer interaction and user interface design, cut, copy, and paste are related commands that offer an interprocess communication technique for transferring data through a computer's user interface. The ''cut'' command removes the ...
. In XML attribute values, sequences of whitespace characters are treated as a single space when the document is read by a parser. 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 element An HTML element is a type of HTML (HyperText Markup Language) document component, one of several types of HTML nodes (there are also text nodes, comment nodes and others). The first used version of HTML was written by Tim Berners-Lee in 1993 ...
s, 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. 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 Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML or XML (including XML dialects such as SVG, MathML or XHTML). CSS is a cornerstone techno ...
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 In word processing and digital typesetting, a non-breaking space, , also called NBSP, required space, hard space, or fixed space (though it is not of fixed width), is a space character that prevents an automatic line break at its position. In s ...
character, along with other non-"standard" spaces, is not treated as collapsible "whitespace", so it is not subject to the rules above.


File names

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 . 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". It was used in BCDIC, EBCDIC, and ASCII-1963.


See also

* Carriage return * Em (typography) * En (typography) * Form feed * Indent style * Line feed *
Newline Newline (frequently called line ending, end of line (EOL), next line (NEL) or line break) is a control character or sequence of control characters in character encoding specifications such as ASCII, EBCDIC, Unicode, etc. This character, or a ...
* Programming style * Prosigns for Morse code * Regular expression#Character classes for the white-space character class. * Space bar *
Space (punctuation) In writing, a space () is a blank area that separates words, sentences, syllables (in syllabification) and other written or printed glyphs (characters). Conventions for spacing vary among languages, and in some languages the spacing rules are c ...
*
Tab key The tab key (abbreviation of tabulator key or tabular key) on a keyboard is used to advance the cursor to the next tab stop. History The word ''tab'' derives from the word ''tabulate'', which means "to arrange data in a tabular, or table, fo ...
* Trimming (computer programming) * Whitespace (programming language) * Zero-width space


References


External links


Property List of Unicode Character Database
{{DEFAULTSORT:Whitespace (Computer Science) Character encoding Source code Whitespace