Indentation (typesetting)

From Vero - Wikipedia
Jump to navigation Jump to search

Template:Short description Template:Redirect Template:Use dmy dates Template:Wiktionary


In the written form of many languages, indentation describes empty space (white space) used before or around text to signify an important aspect of the text such as:

Many computer languages use block indentation to demarcate blocks of source code.

Indentation is essentially the same regardless of whether the writing system is left-to-right (e.g. Latin and Cyrillic) or right-to-left (e.g. Hebrew and Arabic) when considering line beginning and end. For example, indenting at the beginning of line means on the left for a left-to-right script and on the right for right-to-left script.

Indent is both a noun and a verb. The verb is the act of formatting text to be indented whereas the noun refers to the resulting empty space.

Types

There are three main types of indentation: first-line, hanging and block.

Each example below is in a box that represents the page boundary and uses the common typesetting lorem ipsum content. The width of indentation here is in units of em spaces.

Template:Anchors For first-line indentation the first line of a paragraph is indented, Template:Unichar

A first-line indentation of 2 em:

Template:Anchor For hanging indentation all but the first line of a paragraph is indented.

A hanging indentation of 2 em:

Template:Anchor For block indentation the entire paragraph is indented relative to the preceding paragraph.

A block indentation of 2 em on the left:

Block indentation on both sides is commonly used for a quotation, a block quotation, here shown with 2 em on the left and right but since it is not right-aligned, the empty space on the right varies based on line length:

Here's the same as the previous but justified (left and right aligned):

Indentation in programming

Template:See also

In computer programming, indentation describes formatting source code with whitespace to the left of code text Template:Endash often to visually show that a sequence of code lines is syntactically a code block. Typically, the lines of a block are aligned with an amount of white space that indicates the block's depth in the hierarchical structure of the code. Each inner level of the hierarchy is indented by a multiple of this indentation width.

White space in code is typically stored as whitespace characters.

For a free-form language, indentation is exclusively for the programmer since a code processor (i.e. compiler, interpreter) ignores whitespace characters. Code can have inconsistent or even no indentation, but in general is formatted with somewhat consistent indentation.

Some languages rely on indentation to demarcate block structure, often via the off-side rule. Due to this syntax requirement, the code must have a level of consistency that is not required in free-form language code.

The neologisms outdent, unindent and dedent describe the opposite of indentation Template:Endash aligning code text of a line to the left of the previous line.

Variations

Common variations in the implementation of indentation include: how much to indent a block at each level of the code hierarchy, usually measured in spaces, and whether to store whitespace characters as space or tab characters. Although there are common practices, consensus is not universal. <ref>Template:Cite web</ref> These variations are driven by factors that may include but are not limited to: language syntax, organizational mandate and personal preference.

Common practices

The following table identifies notable practices with respect to code indentation.

Language Free-form? Note
Bash Template:Yes Fritz Mehner's style guide suggests 2, 4, or 8 spaces and uses 2 in all examples<ref>Template:Cite web</ref>

Google uses 2 spaces <ref>Template:Cite web </ref>

C Template:Yes The Linux kernel uses 1 tab<ref>Template:Cite web </ref><ref>

Template:Cite web </ref>

NASA uses 4 spaces.<ref>Template:Cite web</ref>

Clinton Staley advocates 3 spaces<ref>Template:Cite web</ref>

C++ Template:Yes WebKit recommends 4 spaces<ref>Template:Cite web</ref>

Google uses 2 spaces<ref>[1] Template:Webarchive</ref>

C# Template:Yes Microsoft convention: 4 spaces<ref>Template:Cite web</ref>
CSS Template:Yes Drupal, GitHub, and Google use 2 spaces<ref>Template:Cite web</ref><ref>Template:Cite web</ref><ref name="google">Template:Cite web This is an HTML-rendered copy of the official version, which is maintained in XML format</ref><ref>Template:Cite web</ref>

WordPress uses tabs<ref>Template:Cite web</ref>

Dart Template:Yes dart format uses 2 spaces
Delphi Template:Yes Delphi style guide: 2 spaces <ref>Template:Cite web</ref>
F# Template:Yes F# style guide: 4 spaces<ref>Template:Cite web</ref>
Go Template:Yes Effective Go: 1 tab <ref>Template:Cite web</ref>
Haskell Template:No Google uses 2 spaces<ref>Template:Cite web</ref>
HTML Template:Yes Google uses 2 spaces<ref name="google" />

HTML Tidy defaults to 2 spaces<ref>Template:Cite web</ref>

Java Template:Yes Oracle uses 4 spaces<ref>Template:Cite web</ref>

Android uses 4 spaces<ref>Template:Cite web</ref>

Most Eclipse IDE components use tabs

JavaScript Template:Yes Douglas Crockford advocates 4 spaces<ref>Template:Cite web</ref>

GitHub and Google use 2 spaces<ref>Template:Cite web</ref><ref>Template:Cite web</ref>

jQuery uses tabs<ref>Template:Cite web</ref>

Firefox's built-in jsbeautifier defaults to 2 spaces

prettyprinter in Google Chrome and Internet Explorer use 4 spaces

Julia Template:Yes Julia style guide: 4 spaces<ref>Template:Cite web</ref>
Kotlin Template:Yes Kotlin style guide: 4 spaces<ref>Template:Cite web</ref>
Lua Template:Yes Lua style guide: 2 spaces<ref>Template:Cite web</ref>
Perl Template:Yes Larry Wall prefers 4 spaces<ref>Template:Cite web</ref>
PHP Template:Yes Drupal use 2 spaces<ref>Template:Cite web</ref>

PEAR and Zend use 4 spaces<ref>Template:Cite web</ref><ref>Template:Cite web</ref>

CodeIgniter and WordPress use tabs<ref>Template:Cite web</ref><ref>Template:Cite web</ref>

PSR-2 specifies 4 spaces<ref>Template:Cite web</ref>

PowerShell Template:Yes Unofficial PowerShell Best Practices and Style Guide: 4 spaces<ref>Template:Cite web</ref>
Python Template:No PEP 8: 4 spaces<ref>Template:Cite web</ref>
Ruby Template:Yes Ruby style guide: 2 spaces <ref>Template:Cite web</ref>
Rust Template:Yes Rust style guide: 4 spaces <ref>Template:Cite web</ref>
Scala Template:Yes Scala style guide: 2 spaces <ref>Template:Cite web</ref>
Swift Template:Yes Google uses 2 spaces<ref>Template:Cite web</ref>
Tcl Template:Yes Tcl style guide: 4 spaces <ref>Template:Cite web</ref>
Visual Basic Template:Yes Microsoft convention: 4 spaces <ref>Template:Cite web</ref>
XML Template:Yes Google uses 2 spaces<ref>Template:Cite web</ref>

Elastic tabstops

In 2006, a new method of indentation was proposed, called elastic tabstops.Template:Cn

References

Template:Reflist

Template:Commons cat