セレクターしたい(#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})