Documentation

pageElement
Question mark

Layouts its child onto one or multiple pages.

Although this function is primarily used in set rules to affect page properties, it can also be used to explicitly render its argument onto a set of pages of its own.

Pages can be set to use auto as their width or height. In this case, the pages will grow to fit their content on the respective axis.

The Guide for Page Setup explains how to use this and related functions to set up a document with many examples.

Example

#set page("us-letter")

There you go, US friends!
Preview

Parameters
Question mark

paper
str
Settable
Question mark

A standard paper size to set width and height.

This is just a shorthand for setting width and height and, as such, cannot be retrieved in a context expression.

View options

Default: "a4"

View paper sizes
"a0", "a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "a10", "a11", "iso-b1", "iso-b2", "iso-b3", "iso-b4", "iso-b5", "iso-b6", "iso-b7", "iso-b8", "iso-c3", "iso-c4", "iso-c5", "iso-c6", "iso-c7", "iso-c8", "din-d3", "din-d4", "din-d5", "din-d6", "din-d7", "din-d8", "sis-g5", "sis-e5", "ansi-a", "ansi-b", "ansi-c", "ansi-d", "ansi-e", "arch-a", "arch-b", "arch-c", "arch-d", "arch-e1", "arch-e", "jis-b0", "jis-b1", "jis-b2", "jis-b3", "jis-b4", "jis-b5", "jis-b6", "jis-b7", "jis-b8", "jis-b9", "jis-b10", "jis-b11", "sac-d0", "sac-d1", "sac-d2", "sac-d3", "sac-d4", "sac-d5", "sac-d6", "iso-id-1", "iso-id-2", "iso-id-3", "asia-f4", "jp-shiroku-ban-4", "jp-shiroku-ban-5", "jp-shiroku-ban-6", "jp-kiku-4", "jp-kiku-5", "jp-business-card", "cn-business-card", "eu-business-card", "fr-tellière", "fr-couronne-écriture", "fr-couronne-édition", "fr-raisin", "fr-carré", "fr-jésus", "uk-brief", "uk-draft", "uk-foolscap", "uk-quarto", "uk-crown", "uk-book-a", "uk-book-b", "us-letter", "us-legal", "us-tabloid", "us-executive", "us-foolscap-folio", "us-statement", "us-ledger", "us-oficio", "us-gov-letter", "us-gov-legal", "us-business-card", "us-digest", "us-trade", "newspaper-compact", "newspaper-berliner", "newspaper-broadsheet", "presentation-16-9", "presentation-4-3"

width
auto or length
Settable
Question mark

The width of the page.

Default: 595.28pt

View example
#set page(
  width: 3cm,
  margin: (x: 0cm),
)

#for i in range(3) {
  box(square(width: 1cm))
}
Preview

height
auto or length
Settable
Question mark

The height of the page.

If this is set to auto, page breaks can only be triggered manually by inserting a page break. Most examples throughout this documentation use auto for the height of the page to dynamically grow and shrink to fit their content.

Default: 841.89pt

flipped
bool
Settable
Question mark

Whether the page is flipped into landscape orientation.

Default: false

View example
#set page(
  "us-business-card",
  flipped: true,
  fill: rgb("f2e5dd"),
)

#set align(bottom + end)
#text(14pt)[*Sam H. Richards*] \
_Procurement Manager_

#set text(10pt)
17 Main Street \
New York, NY 10001 \
+1 555 555 5555
Preview

margin
auto or relative or dictionary
Settable
Question mark

The page's margins.

The values for left and right are mutually exclusive with the values for inside and outside.

Default: auto

View example
#set page(
 width: 3cm,
 height: 4cm,
 margin: (x: 8pt, y: 4pt),
)

#rect(
  width: 100%,
  height: 100%,
  fill: aqua,
)
Preview

binding
auto or alignment
Settable
Question mark

On which side the pages will be bound.

This affects the meaning of the inside and outside options for margins.

Default: auto

columns
int
Settable
Question mark

How many columns the page has.

If you need to insert columns into a page or other container, you can also use the columns function.

Default: 1

View example
#set page(columns: 2, height: 4.8cm)
Climate change is one of the most
pressing issues of our time, with
the potential to devastate
communities, ecosystems, and
economies around the world. It's
clear that we need to take urgent
action to reduce our carbon
emissions and mitigate the impacts
of a rapidly changing climate.
Preview

fill
none or auto or color or gradient or pattern
Settable
Question mark

The page's background fill.

Setting this to something non-transparent instructs the printer to color the complete page. If you are considering larger production runs, it may be more environmentally friendly and cost-effective to source pre-dyed pages and not set this property.

When set to none, the background becomes transparent. Note that PDF pages will still appear with a (usually white) background in viewers, but they are actually transparent. (If you print them, no color is used for the background.)

The default of auto results in none for PDF output, and white for PNG and SVG.

Default: auto

View example
#set page(fill: rgb("444352"))
#set text(fill: rgb("fdfdfd"))
*Dark mode enabled.*
Preview

numbering
none or str or function
Settable
Question mark

How to number the pages.

If an explicit footer (or header for top-aligned numbering) is given, the numbering is ignored.

Default: none

View example
#set page(
  height: 100pt,
  margin: (top: 16pt, bottom: 24pt),
  numbering: "1 / 1",
)

#lorem(48)
Preview Preview

number-align
alignment
Settable
Question mark

The alignment of the page numbering.

If the vertical component is top, the numbering is placed into the header and if it is bottom, it is placed in the footer. Horizon alignment is forbidden. If an explicit matching header or footer is given, the numbering is ignored.

Default: center + bottom

View example
#set page(
  margin: (top: 16pt, bottom: 24pt),
  numbering: "1",
  number-align: right,
)

#lorem(30)
Preview

header
none or auto or content
Settable
Question mark

The page's header. Fills the top margin of each page.

Default: auto

View example
#set par(justify: true)
#set page(
  margin: (top: 32pt, bottom: 20pt),
  header: [
    #set text(8pt)
    #smallcaps[Typst Academcy]
    #h(1fr) _Exercise Sheet 3_
  ],
)

#lorem(19)
Preview

header-ascent
relative
Settable
Question mark

The amount the header is raised into the top margin.

Default: 30% + 0pt

The page's footer. Fills the bottom margin of each page.

For just a page number, the numbering property typically suffices. If you want to create a custom footer but still display the page number, you can directly access the page counter.

Default: auto

View example
#set par(justify: true)
#set page(
  height: 100pt,
  margin: 20pt,
  footer: context [
    #set align(right)
    #set text(8pt)
    #counter(page).display(
      "1 of I",
      both: true,
    )
  ]
)

#lorem(48)
Preview Preview

The amount the footer is lowered into the bottom margin.

Default: 30% + 0pt

background
none or content
Settable
Question mark

Content in the page's background.

This content will be placed behind the page's body. It can be used to place a background image or a watermark.

Default: none

View example
#set page(background: rotate(24deg,
  text(18pt, fill: rgb("FFCBC4"))[
    *CONFIDENTIAL*
  ]
))

= Typst's secret plans
In the year 2023, we plan to take
over the world (of typesetting).
Preview

foreground
none or content
Settable
Question mark

Content in the page's foreground.

This content will overlay the page's body.

Default: none

View example
#set page(foreground: text(24pt)[🥸])

Reviewer 2 has marked our paper
"Weak Reject" because they did
not understand our approach...
Preview

body
content
RequiredPositional
Question mark

The contents of the page(s).

Multiple pages will be created if the content does not fit on a single page. A new page with the page properties prior to the function invocation will be created after the body has been typeset.