A tab stop on a
typewriter
A typewriter is a mechanical or electromechanical machine for typing characters. Typically, a typewriter has an array of keys, and each one causes a different single character to be produced on paper by striking an inked ribbon selectivel ...
is a location where the carriage movement is halted by an adjustable end stop. Tab stops are set manually, and pressing the
tab key causes the carriage to go to the next tab stop. In
text editor
A text editor is a type of computer program that edits plain text. Such programs are sometimes known as "notepad" software (e.g. Windows Notepad). Text editors are provided with operating systems and software development packages, and can be ...
s on a computer, the same concept is implemented simplistically with automatic, fixed tab stops.
Modern
word processor
A word processor (WP) is a device or computer program that provides for input, editing, formatting, and output of text, often with some additional features.
Early word processors were stand-alone devices dedicated to the function, but current ...
s generalize this concept by offering tab stops that have an alignment attribute and cause the text to be automatically aligned at left, at right or center of the tab stop itself. Such tab stops are
paragraph
A paragraph () is a self-contained unit of discourse in writing dealing with a particular point or idea. Though not required by the orthographic conventions of any language with a writing system, paragraphs are a conventional means of organizing e ...
-specific properties and can be moved to a different location in any moment, or even removed.
Sometimes, placeholders in
code snippets are also called "tab stops" because the user can cycle through them by pressing the tab key.
Types of tab stops
A tab stop is a horizontal position which is set for placing and aligning text on a page. There are at least five kinds of tab stops in general usage in word processing or in
Microsoft Word
Microsoft Word is a word processor, word processing software developed by Microsoft. It was first released on October 25, 1983, under the name ''Multi-Tool Word'' for Xenix systems. Subsequent versions were later written for several other pla ...
.
;Left: text extends to the right from the tab stop.
;Center: text is centered at the tab stop.
;Right: text extends to the left from the tab stop until the tab's space is filled, and then the text extends to the right.
;Decimal: text before the decimal point extends to the left, and text after the decimal point extends to the right.
;Bar: a vertical line at the specified position on each line in a document.
Dynamic tab stops
In contrast to fixed positioning, tab stops can be adjusted dynamically, based on the length of adjacent tab-delimited line segments, by alignment to a specific character or string in each line, etc.
Adobe InDesign supports a non-printing "
indent to here" character.
In 2007, Nick Gravgaard published an algorithm for automatic dynamic tab stops called "Elastic tabstops".
[Elastic tabstops](_blank)
/ref> This can be useful for viewing/editing source code and essential for tabular data.
/ref> Various text editors and IDEs have implemented the elastic tabstops algorithm either directly or by extension.
Software which supports elastic tabstops
* Visual Studio
Visual Studio is an integrated development environment (IDE) from Microsoft. It is used to develop computer programs including websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platforms such ...
[Always Aligned](_blank)
[Always Aligned repository](_blank)
/ref>
* Atom
Every atom is composed of a nucleus and one or more electrons bound to the nucleus. The nucleus is made of one or more protons and a number of neutrons. Only the most common variety of hydrogen has no neutrons.
Every solid, liquid, gas, ...
[Elastic Tabstops package for Atom](_blank)
/ref>
* Textadept[Elastic Tabstops for Textadept](_blank)
/ref>
* Code Browser
* JEdit[JEdit - Elastic Tabstops](_blank)
/ref>
* Notepad++[Elastic Tabstops plugin for Notepad++](_blank)
/ref>
* Go tabwriter packageGo (programming language)
Go is a statically typed, compiled programming language designed at Google by Robert Griesemer, Rob Pike, and Ken Thompson. It is syntactically similar to C, but with memory safety, garbage collection, structural typing, and CSP-style ...
br>tabwriter package
/ref>
* Rust
Rust is an iron oxide, a usually reddish-brown oxide formed by the reaction of iron and oxygen in the catalytic presence of water or air moisture. Rust consists of hydrous iron(III) oxides (Fe2O3·nH2O) and iron(III) oxide-hydroxide (FeO( ...
tabwriter crate[Elastic tabstops for Rust](_blank)
/ref>
See also
* Typographic alignment
In typesetting and page layout, alignment or range is the setting of text flow or image placement relative to a page, column (measure), table cell, or tab (and often to an image above it or under it).
The type alignment setting is sometimes ref ...
for an application
* Table (information)
A table is an arrangement of information or data, typically in rows and columns, or possibly in a more complex structure. Tables are widely used in communication, research, and data analysis. Tables appear in print media, handwritten notes, comp ...
for another application
References
Typewriters
Typography
User interface techniques
{{Typ-stub