Info
This site is generated using the static site generator developed by the Typst Community. Please adjust the text content of this banner according to your usage requirements. At Typst GmbH's request, when publishing documentation, you must clearly indicate that it is non-official and display the version of Typst being documented. For details, refer to Issue #874 on typst/typst.
TypstDocumentEnglish
v0.dev.2025-09-12

relative

A length in relation to some known length.

This type is a combination of a length with a ratio. It results from addition and subtraction of a length and a ratio. Wherever a relative length is expected, you can also use a bare length or ratio.

Relative to the page

A common use case is setting the width or height of a layout element (e.g., block, rect, etc.) as a certain percentage of the width of the page. Here, the rectangle's width is set to 25%, so it takes up one fourth of the page's inner width (the width minus margins).

#rect(width: 25%)
Preview

Bare lengths or ratios are always valid where relative lengths are expected, but the two can also be freely mixed:

#rect(width: 25% + 1cm)
Preview

If you're trying to size an element so that it takes up the page's full width, you have a few options (this highly depends on your exact use case):

  1. Set page margins to 0pt (#set page(margin: 0pt))
  2. Multiply the ratio by the known full page width (21cm * 69%)
  3. Use padding which will negate the margins (#pad(x: -2.5cm, ...))
  4. Use the page background or foreground field as those don't take margins into account (note that it will render the content outside of the document flow, see place to control the content position)

Relative to a container

When a layout element (e.g. a rect) is nested in another layout container (e.g. a block) instead of being a direct descendant of the page, relative widths become relative to the container:

#block(
  width: 100pt,
  fill: aqua,
  rect(width: 50%),
)
Preview

Scripting

You can multiply relative lengths by ratios, integers, and floats.

A relative length has the following fields:

  • length: Its length component.
  • ratio: Its ratio component.
#(100% - 50pt).length \
#(100% - 50pt).ratio
Preview
Open official docs

Search