ページ設定したい(#page

 1// #set page(..options)
 2#set page(
 3  paper: "a4",
 4  margin: (x: 25mm, y: 25mm),
 5  columns: 1,
 6  //fill: luma(99%),  // 全ページの背景色,
 7  numbering: "1 / 1",
 8  number-align: center,
 9  header: [ヘッダー],
10)

page要素で 用紙サイズや余白の大きさ、ヘッダーやフッターの内容、ノンブルの表示方法、ページ背景など、ページ全体を設定できます。 #set page(..options)の形式で、ファイルの頭に記述します。

参考

LaTeXのgeometryfancyhdrなどの機能に相当します。

用紙サイズしたい(paper

1// A4サイズ: w210.0 mm x h297.0 mm
2#set page(paper: "a4")
3
4// B5サイズ: w182.0 mm x h257.0 mm
5#set page(paper: "jis-b5")

paperオプションで用紙サイズを変更できます。 デフォルトは"a4"です。 ISO規格のほかにもJIS規格(日本)、DIN規格(ドイツ)、ANSI規格(アメリカ)など多様な規格の用紙サイズが定義されています。

注釈

用紙サイズ名はpage.rsにハードコードされていました。

1// 20cm四方の印刷物
2#set page(
3  width: 20.0cm,
4  height: 20.0cm
5)

widthheightオプションで長さを直接指定できます。

1// A0サイズ: w841.0 mm x h1189.0 mm
2#set page(paper: "a0")
3// 直接指定
4#set page(width: 841.0mm, height: 1189.0mm)

ポスター発表する場合は、A0サイズが一般的です。 paper: "a0"を指定するか、widthheightを直接指定します。

1// アスペクト比16:9(w297.0 mm x h167.0625 mm)
2#set page(paper: "presentation-16-9")
3
4// アスペクト比4:3(w280.0 mm x h210.0 mm)
5#set page(paper: "presentation-4-3")

発表スライド用の選択肢もあります。 少し前は4:3でしたが、現在は16:9が主流です。

1// 日本の名刺サイズ
2#set page(paper: "jp-business-card")  // w91.0 mm x h55.0 mm
3#set page(paper: "jp-shiroku-ban-4")  // w264.0 mm x h379.0 mm
4// 直接指定
5#set page(width: 91.0mm, height: 55.0mm)

日本の名刺サイズ(jp-business-cardなど)もありました。

余白したい(margin

1#set page(margin: 30mm)  // 上下左右: 30 mm

marginオプションで、余白の大きさを変更できます。 デフォルトはautoになっていて、短辺の2.5/21倍に相当します。A4の場合は25 mmです。

 1#set page(
 2  margin: (
 3    x: 2cm,    // 左右の余白
 4    y: 1cm,    // 上下の余白
 5  )
 6)
 7
 8#set page(
 9  margin: (
10    top: 1cm,
11    bottom: 2cm,
12    left: 3cm,
13    right: 4cm,
14  )
15)

上下左右を一括、左右(x)と上下(y)、 すべて別々(top / bottom / left / right)など柔軟に設定できます。

ノンブルしたい(numbering / number-align

1#set page(numbering: "1")    // 1, 2, 3, ... で表示
2#set page(numbering: "1 / 1")  // 現在のページ数 / 総ページ数
3
4#set page(numbering: none)   // 非表示(デフォルト)
5#set page(numbering: "i")    // i, ii, iii, ... で表示
6#set page(numbering: "1 of 1")  // 現在のページ数 of 総ページ数

numberingオプションででノンブル(=ページ番号)を設定できます。 デフォルトはnone(=非表示)です。 numbering: "1"で単純にページ数を表示できます。 numbering: "1 / 1"で、現在のページ数と総ページ数を表示できます。 numbering: "i"でローマ数字で表示できます。

1// 右上に「現在のページ / 総ページ数」を表示
2#set page(
3  numbering: "1 / 1",
4  number-align: right + top,
5)

number-alignオプションでノンブルの表示位置を変更できます。 デフォルトはcenter + bottom(=中央下)です。 left | center | right + top | bottom の組み合わせで指定します。 上のサンプルでは、右上にノンブルを表示する設定になっています。

 1// 1ページ目(表紙)はノンブル非表示
 2// 2ページ目以降は「現在のページ / 総ページ数」を表示
 3#let footer-content = context {
 4  if counter(page).get().first() > 1 [
 5    #align(center)[
 6      #counter(page).display() / #counter(page).final().at(0)
 7    ]
 8  ]
 9}
10
11#set page(
12  footer: footer-content
13)

表紙をノンブル非表示にしたい場合は、自分で条件を設定する必要があります。 上のサンプルでは、counter(page).get().first()で現在のページ数を取得し、1ページ目はノンブル非表示、2ページ目以降は「現在のページ / 総ページ数」を表示するようにしています。

注釈

countercontext内で使用する必要があります。 counter(page).get()の戻り値は配列になっているので、.first()で現在のページ数を取得し、.final().at(0)で総ページ数を取得しています。

警告

ノンブルはデフォルトでページの中央下に表示されますが、 footerオプションを設定すると無視されます。

footerオプション(やheaderオプション)を設定する場合は、ノンブル表示も自分で再定義する必要があります。

段組したい(columns

1// 2段組
2#set page(
3  columns: 2,
4)
5
6// 3段組
7#set page(
8  columns: 3,
9)

columnsオプションで段組の数を変更できます。 デフォルトは1段(columns: 1)です。

参考

#pageのオプションでは段間を設定できないようです。 段間を調整したい場合は、 #columns要素 で本文中で段組するほうがよさそうです。

注意

set page(columns: n)で段組すると、タイトルも段組に含まれます。 通常、タイトルは段組の外に配置したいと思うので、 タイトルを表示したあとに#page(columns: n)を呼ぶとよいです。

1#set page(paper: "a4", margin: 25mm)
2
3#title[ここにタイトルを表示]
4
5#page(columns: 2)  // タイトルのあとに段組を設定

縦置きしたい(flipped

1#set page(
2    paper: "jp-business-card",  // 91.0 mm x 55.0 mm
3    flipped: true
4)

page要素のflippedオプションで、用紙の短辺と長辺のサイズを入れ替えできます。 上のサンプルでは、名刺を縦置きする場合を想定してみました。

背景色したい(fill

1#set page(fill: rgb(blue))

fillオプションで文書全体の背景色を変更できます。

透かししたい(background

 1// 透かし文字の設定
 2// 斜めに回転させて、薄いグレーで表示
 3#let watermark = {
 4  rotate(-45deg)[
 5    #text(size: 2em, fill: luma(90%))[
 6      *preliminary*
 7    ]
 8  ]
 9}
10
11#set page(background: watermark)

backgroundオプションで、ドキュメントのすべてのページの背景にコンテンツを設定できます。 「preliminary」や「confidential」などの透かしを入れたい場合に利用できます。

 1#let header-band = {
 2    place(top, rect(width: 100%, height: 20mm, fill: luma(90%)))  // ページ上部に背景を配置
 3}
 4#let footer-band = {
 5    place(bottom, rect(width: 100%, height: 20mm, fill: luma(90%)))  // ページ上部に背景を配置
 6}
 7
 8#set page(
 9  background: {
10    header-band
11    footer-band
12  }
13)

backgroundオプションで、ページの上下に帯を配置できます。 place関数でそれぞれの配置(top / bottom)を指定して、 rect関数でページ幅いっぱい(width: 100%)の帯を作成して、背景色を薄いグレーにしています。

注意

headerfooterオプションで指定すると、本文の幅に制限されます。

注釈

最前面にコンテンツを表示できる foregroundオプションもあります。

リファレンス