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

h
Element
Element
Element functions can be customized with set and show rules.

Inserts horizontal spacing into a paragraph.

The spacing can be absolute, relative, or fractional. In the last case, the remaining space on the line is distributed among all fractional spacings according to their relative fractions.

Example

First #h(1cm) Second \
First #h(30%) Second
Preview

Fractional spacing

With fractional spacing, you can align things within a line without forcing a paragraph break (like align would). Each fractionally sized element gets space based on the ratio of its fraction to the sum of all fractions.

First #h(1fr) Second \
First #h(1fr) Second #h(1fr) Third \
First #h(2fr) Second #h(1fr) Third
Preview

Mathematical Spacing

In mathematical formulas, you can additionally use these constants to add spacing between elements: thin (1/6 em), med (2/9 em), thick (5/18 em), quad (1 em), wide (2 em).

Parameter
Parameter
Parameters are input values for functions. Specify them in parentheses after the function name.

amount
Required
Required
Required parameters must be specified when calling the function.
Positional
Positional
Positional parameters can be set by specifying them in order, omitting the parameter name.

How much spacing to insert.

weak
Settable
Settable
Settable parameters can be set using the set rule, changing the default value used thereafter.

If true, the spacing collapses at the start or end of a paragraph. Moreover, from multiple adjacent weak spacings all but the largest one collapse.

Weak spacing in markup also causes all adjacent markup spaces to be removed, regardless of the amount of spacing inserted. To force a space next to weak spacing, you can explicitly write #" " (for a normal space) or ~ (for a non-breaking space). The latter can be useful to create a construct that always attaches to the preceding word with one non-breaking space, independently of whether a markup space existed in front or not.

Default value:

false

Show example
#h(1cm, weak: true)
We identified a group of _weak_
specimens that fail to manifest
in most cases. However, when
#h(8pt, weak: true) supported
#h(8pt, weak: true) on both sides,
they do show up.

Further #h(0pt, weak: true) more,
even the smallest of them swallow
adjacent markup spaces.
Preview
Open official docs

Search