Breaking a paragraph up, and aligning it

Text longer than a caption has to be broken into lines. Its length varies, the column has a fixed width, and the library decides where each line ends. The break is set block by block: the column width and the alignment you choose hold for every line of that block, on every page.

Nothing here counts characters, because a letter is not a fixed width: an i takes a third of the room an m takes. Every candidate line is measured in the very font that will draw it, at the size it will be drawn at, which is the only way the right edge of a justified column comes out straight instead of ragged by a hair. The same paragraph is set four ways here, so the four can be compared side by side rather than described.

What this example shows

  • Each line is broken to the column width, from the real widths of the characters in the font used.
  • The same paragraph aligned left, right, centred and justified.
  • The starting point every other text example on this site builds on.

The source code, complete

Nothing is left out and nothing is simplified: this is the program exactly as it runs, for the developer who uses this library. The third is the description itself: a plain list of what the page has to say, which is what the service is sent.

Read the Rust source Read the Python source Read the JSON source

The document itself

Open the document in English Open the document in French

Breaking a paragraph up, and aligning it, first page

Optimised, this document weighs 10.9 kB — at least 90 % lighter than most PDF generators would write it

The document is lighter than it was, and every page still looks exactly the same. See this document's row in the table of every example.

Examples near this one

Breaking an overlong word

A word longer than the column that holds it: the library leaves it whole, or cuts it at the column's edge.

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.

A font behind the font

One line of statuses set twice: in a company font alone, where the characters it has no glyph for come out as empty boxes, then with a second font behind it that draws them.

What a font knows about its own letters

Four samples set twice each, once plain and once with a single setting activated: joined letters, small capitals, figures that hang below the line, and pairs moved closer together.

Every example, by subject