Tab stop

From Wikipedia, the free encyclopedia
Jump to: navigation, search
"Fixed width" redirects here. For the class of fonts with fixed character widths, see Monospaced font.
A ruler depicting tab stops in a word processor

A tab stop on a typewriter is a location where the carriage movement is halted by mechanical gears. Tab stops are set manually, and pressing the tab key causes the carriage to go to the next tab stop. In text editors on a computer, the same concept is implemented simplistically with automatic, fixed tab stops.

Modern word processors 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-specific properties and can be moved to a different location in any moment, or even removed.

Types of tab stops[edit]

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.

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.

Elastic tabstops[edit]

Text between tabs is shown as different coloured blocks. The animation shows elastic tabstops, which keep several lines of text aligned when one line is edited.

In 2006, Nick Gravgaard invented elastic tabstops, an alternative way to handle tabstops, with a primary focus on editing source code in computer programming.[1] Elastic tabstops mean programmers just use one tab between columns rather than inserting the exact number of spaces/tabs on each line in the buffer to make things line up. He has also written Always Aligned[2] - an extension for Visual Studio which implements elastic tabstops. Elastic tabstops are also implemented in Go's tabwriter[3] package which is used by the "go fmt" command.

Unlike traditional fixed tabstops, elastic tabstops automatically keep columns aligned, which makes them very useful for viewing/editing tab-delimited text (not just source code). When text is edited, tabstops on adjacent lines above and below the "cell" that is being changed are automatically moved to fit the widest cell of text in that column.

See also[edit]

References[edit]