表したい(#table

 1// | セル1 | セル2 | セル3 |
 2// | --- | --- | --- |
 3// | セル4 | セル5 | セル6 |
 4// | セル7 | セル8 | セル9 |
 5
 6// 関数マークアップ
 7#table(
 8  columns: (1fr, auto, auto),
 9  inset: 1em,
10  align: horizon,
11  table.header(
12    [セル1][セル2][セル3]
13  ),
14  [セル4],
15  [セル5],
16  [セル6],
17  [セル7],
18  [セル8],
19  [セル9],
20)

table関数で表をマークアップできます。 columnsオプションで、列の幅を指定できます。 table.header関数で表の見出しを指定できます。

表を設定したい(#set table

 1#set table(
 2  stroke: (x, y) => {
 3    let thick: 2pt
 4    let thin: 0.5pt
 5    (
 6      top: if y == 0 or y == 1 { thick } else { thin },
 7      bottom: thick,
 8      left: none,
 9      right: none,
10    )
11  },
12  inset: 1em,
13)

setルール(set table(...))で、表全体のスタイルを変更できます。 デフォルトでは、表全体に縦横の罫線が引かれています。 上記のサンプルは、横罫線のみに変更し、見出しの上下と一番下の罫線を太くしています。 学術論文では、このような横罫線だけの表が好まれることが多いです。

表の見出しを太字にしたい(#show table

1// ヘッダー行を太字にする
2#show table.header: set text(
3  weight: bold,
4)

table.headerオプションに対して #showルールを定義して、表の見出しを装飾できます。 上記のサンプルは、すべての見出し行を太字にしています。

1// 表の1行目を太字にする
2#show table.cell.where(y: 0): set text(
3  weight: bold
4)

table.headerが設定されていない場合には、 table.cell.where(y: 0)で代替できます。

注釈

上記のサンプルは、どちらも表の1行目が太字になります。 ただし、table.cell.where(y: 0)は、あくまで表の1行目を太字にするためのテクニックであって、見出し行を定義するためのものではありません。 セマンティック的には見出しとなる内容に対してtable.headerをマークアップすべきです。

表キャプションしたい(figure / figure.caption

1#figure(
2  #table(...),
3  caption: [表のキャプション],
4  // supplement: [表],
5) <fig-table>

表キャプションは、figure要素のcaptionオプションで設定できます。 デフォルトのスタイルは、図版のキャプションと同じですが、showルールで変更できます。

リファレンス