セレクターしたい(#show + .where

1#show heading.where(level: 1): it => {...}
2#show heading.where(level: 2): it => {...}

.whereは、 要素のプロパティに基づいて条件付きで要素を選択・抽出するメソッドです。 抽出された要素に対して、showルールでスタイリングを適用できます。

見出しレベルしたい(#heading.level

 1#show heading.where(level: 1): it => {
 2  set align(center)[
 3    #it
 4  ]
 5}
 6
 7// レベル2の見出しを赤色
 8#show heading.where(level: 2): it => {
 9  set text(red)[
10    #it
11  ]
12}

コードブロックしたい(#raw.block

 1// インラインコードのスタイル
 2#show raw.where(block: false): box.with(
 3  fill: luma(240),
 4  inset: (x: 3pt, y: 0pt),
 5  radius: 2pt,
 6)
 7
 8// ブロックコードのスタイル
 9#show raw.where(block: true): block.with(
10  fill: luma(240),
11  inset: 10pt,
12  radius: 4pt,
13)

図表リストしたい

 1// 画像のリストだけを作成
 2#outline(
 3  title: [図一覧],
 4  target: figure.where(kind: image),
 5)
 6
 7// 表のリストだけを作成
 8#outline(
 9  title: [表一覧],
10  target: figure.where(kind: table),
11)

ヘッダーに見出しを表示したい

 1#set page(
 2    header: context {
 3  // 現在位置より前のレベル1見出しを取得
 4  let headings = query(
 5    heading.where(level: 1).before(here())
 6  )
 7  if headings.len() > 0 {
 8    let current = headings.last()
 9    emph(current.body)
10  }
11})