要素のスタイルを変更したい(#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で変更するのが推奨されています。