ページ設定したい(#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)の形式で、ファイルの頭に記述します。
用紙サイズしたい(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)
widthとheightオプションで長さを直接指定できます。
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"を指定するか、widthとheightを直接指定します。
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ページ目以降は「現在のページ / 総ページ数」を表示するようにしています。
注釈
counterはcontext内で使用する必要があります。
counter(page).get()の戻り値は配列になっているので、.first()で現在のページ数を取得し、.final().at(0)で総ページ数を取得しています。
警告
ノンブルはデフォルトでページの中央下に表示されますが、
footerオプションを設定すると無視されます。
footerオプション(やheaderオプション)を設定する場合は、ノンブル表示も自分で再定義する必要があります。
ヘッダーしたい(header)
1#set page(
2 header: [ヘッダー],
3 header-ascent: 1em,
4)
headerオプションで、文書のすべてのページにヘッダーを表示できます。
デフォルトはautoです。
numberingオプションが有効になっている場合は、ノンブルが表示されます。
header-ascentで、本文エリアとヘッダーのアキを調整できます。
注釈
ascentなので、正の長さにすると上方向に移動します。
負の長さも設定できます。
1#let custom-header = {
2 set text(size: 9pt)
3 grid(
4 inset: 1em,
5 // stroke: 0.5pt,
6 columns: (1fr, auto, 1fr),
7 gutter: 1em,
8 align: (left, center, right),
9 [左寄せのヘッダー], // ここを編集
10 [中央のヘッダー], // ここを編集
11 [右寄せのヘッダー], // ここを編集
12 )
13}
14
15// ページ設定に追加
16#set page(
17 header: custom-header,
18)
grid関数を使って、ヘッダーを3分割し、左寄せ・中央・右寄せのヘッダーを作成できます。
段組したい(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%)の帯を作成して、背景色を薄いグレーにしています。
注意
headerやfooterオプションで指定すると、本文の幅に制限されます。
注釈
最前面にコンテンツを表示できる
foregroundオプションもあります。