要素のスタイルを変更したい(#show)
1// ハイパーリンクの文字を太字に変更
2#show link: set text(weight: "bold")
3// ハイパーリンクに下線を追加
4#show link: it => {
5 underline[#it]
6}
#showルールで、さまざまな要素の表示方法を自由にカスタマイズできます。
同じ要素に対して、何度も使うことができます。
見出ししたい(#show heading.where)
1// 見出し番号の表示設定
2#set heading(
3 numbering: "1.1."
4)
5// すべての見出しに背景色を追加
6#show heading: it => {
7 block(
8 fill: luma(90%),
9 width: 100%,
10 inset: 1em
11 )[
12 #it
13 ]
14}
15// 見出しレベルごとにフォントサイズを変更
16// #show heading.where(level: 見出しレベル): set 要素(オプション)
17#show heading.where(level: 1): set text(size: 42pt, weight: "bold")
18#show heading.where(level: 2): set text(size: 32pt, weight: "semibold")
19#show heading.where(level: 3): set text(size: 22pt, weight: "semibold")
見出しのテキストを変更するサンプルです。
heading.whereで変更したい見出しのレベルを指定します。
続けてset textでテキスト要素のオプションを指定します。
1#show heading.where(level: 1): it => block.with(fill: luma(150), inset:12pt)[#it]
2
3// #show heading.where(level: 見出しレベル): it => (装飾)[#it.body]
4#show heading.where(level: 1): it => {
5 pagebreak(weak: true)
6 v(2em)
7 set text(size: 22pt, weight: bold)
8 block[#it.body]
9 v(1em)
10}
より複雑な設定のサンプルです。
it => {ブロック}関数を使うことで、複数の要素を指定できます。
見出しテキストは[#it.body]で取得できます。
コードブロックを装飾したい
1// テーマ設定
2#set raw(theme: "github.Themes")
3
4// テーマを使用せずフォントだけ変更したい場合
5// #show raw: set text(font: ("Roboto Mono", "Noto Sans CJK JP"))
6
7// ブロック要素の装飾
8#show raw.where(block: true): set block(
9 fill: rgb("#f6f8fa"), // 背景色
10 inset: 10pt, // 余白(パディング)
11 radius: 4pt, // 角丸
12 width: 100%, // 幅
13)
14
15// インライン要素の装飾
16#show raw.where(block: false): set box(
17 fill: rgb("#fff3cd"), // ハイライト色
18 inset: (x: 3pt, y: 1pt), // 余白(パディング)
19 outset: (y: 3pt), // 余白(マージン)
20 radius: 2pt, // 角丸
21)
コードブロック(raw要素)を変更するサンプルです。
#set raw(theme: "テーマ名")で表示スタイルを簡単に変更できます。
#show raw.where(block: true or false)でブロック要素とインライン要素を判別し、それぞれの表示方法を設定しています。
強調テキストを変更したい
1#show strong: set text(fill: red, weight: "bold")
強調テキスト(strong要素)を変更するサンプルです。
リスト表示を変更したい
1#show list.item: set text(fill: blue)
リストのアイテム(list.item要素)を変更するサンプルです。
文字列を置換したい
1#show "文字列": "置換文字列"
2
3#show "pi0": $pi^(0)$
4#show "pi+": $pi^(+)$
5#show "pi-": $pi^(-)$
Typstは文字列が簡単に置換できます。 上記サンプルではπ中間子の文字列を数式に置換しています。
図版したい(figure / figure.caption)
1#set figure(gap: 0em)
2#show figure: set block(
3 inset: 0.5em,
4 width: 100%,
5 // stroke: 1pt, // enable when debug
6)
7#show figure.caption: it => {
8 block(
9 inset: 0.5em,
10 width: 100%,
11 )[
12 #align(left)[
13 #it
14 ]
15 ]
16}
実践的な使い方
1// setでベーススタイルを設定
2#set text(font: "フォント名", size: "サイズ")
3#set par(justify: true)
4#set page(margin: 2.5cm)
5
6// showで特定要素をカスタマイズ
7#show heading: set block(..options)
8#show heading.where(level: 1): set block(..options)
9#show raw: it=> set text(..options)
10#show raw.where(block: true): set block(..options)
11#show raw.where(block: false): set box(..options)
ドキュメント全体に関する基本設定は#setで設定し、
個別要素は#showで変更するのが推奨されています。