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 complex. Inter-word spaces ease the reader's task of identifying words, and avoid outright ambiguities such as "now here" vs. "nowhere". They also provide convenient guides for where a human or program may start new lines.
Typesetting can use spaces of varying widths, just as it can use graphic characters of varying widths. Unlike graphic characters, typeset spaces are commonly stretched in order to align text. The typewriter, on the other hand, typically has only one width for all characters, including spaces. Following widespread acceptance of the typewriter, some typewriter conventions influenced typography and the design of printed works.
Computer representation of text facilitates getting around mechanical and physical limitations such as character widths in at least two ways:
Character encodings such as Unicode provide spaces of several widths, which are encoded using distinct numeric code points. For example, Unicode U+20 is the "normal" space character, but U+A0 adds the meaning that a new line should not be started there, while U+2003 represents a space with a fixed width of one em. Collectively, such characters are called Whitespace characters.
Formatting and drawing languages and software commonly provide much more flexibility in spacing. For example, SVG, PostScript, and countless other languages enable drawing characters at specific (x,y) coordinates on a screen or page. By drawing each word at a specific starting coordinate, such programs need not "draw" spaces at all (this can lead to difficulties in extracting the correct text back out). Similarly, word processors can "fully justify" text, stretching inter-word spaces to make all lines the same length (as can mechanical Linotype machines). Precision is limited by physical capabilities of output devices.