Lists made from a hanging indent

Bulleted, numbered and nested lists, each built out of a hanging indent and one tab stop rather than out of list machinery: the marker sits in the room the indent opens, and every line below the first begins where the tabulation put the text.

Bulleted, numbered and nested lists, none of which needs any list machinery. A list item is a paragraph whose first line hangs out to the left: the marker sits in the room that indent opens, the tabulation after it carries the cursor to the stop the text begins at, and every line below the first starts at that same stop.

Nesting is the same block again, with its marker where the block above put its text. That is worth knowing, because it means the marker can be anything you can draw — a dot, a number, a letter, a dash, a symbol from your own font — and the wrapping stays correct whatever you choose.

What this example shows

  • A hanging indent and one tab stop, doing the work of a list.
  • Later lines start under the text, never under the marker.
  • Nested levels made by nesting the same construction again.

The code, in full

The same document is written twice, once in each language. Both files are shown in full, with the code coloured on the server, and can be copied in one click.

The document itself

The same document is written in each of these languages. Open the one you want to look at.

Open the document in English Open the document in French

Read the Rust source Read the Python source

First page of Lists made from a hanging indent

What this document weighs

Before 110,883 bytes
Now 40,462 bytes
Saved 63.5 %

Not one mark on the page changed. See every document measured.

Examples near this one

Soft hyphens and no-break spaces

A justified column set twice: the long words breaking at their soft hyphens with a hyphen shown, or left whole, and a figure a no-break space keeps together.

Break points after a slash or a hyphen

A justified column set twice: file paths and compounds running past the edge with no break points, then wrapping where a break after a slash or a hyphen is allowed.

Text poured into columns

One long passage poured into three columns, each fitting the lines its height allows and handing the rest to the next.

Every example, by subject