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

 1#show raw: text.with(font: "Noto Sans Mono")
 2#show raw.where(block: true): block.with(fill: luma(95%), inset: 1em, radius: 1em)
 3#show raw.where(block: false): text.with(fill: olive)
 4
 5#raw(
 6  lang: "python",
 7  block: true,
 8)[
 9def hello():
10    print("hello")
11]

raw要素で、コードブロックを表示できます。

マークアップしたい

 1インラインで`code`をマークアップ表示できます。
 2
 3ブロックで
 4
 5```python
 6def hello():
 7    print("hello")
 8```
 9
10を表示できます。

コードブロックは、Markdown記法と同じように `(back-tick) でマークアップできます

ブロック表示したい(#raw.block

1#raw(
2  "コードサンプル",
3  block: true
4)

blockオプションで、 インライン表示とブロック表示を変更できます。

backtickを使ったマークアップの場合、 1つの場合はインライン表示、 3つの場合はブロック表示、となります。

シンタックスしたい(#raw.lang

1#raw(
2  "コードサンプル",
3  lang: "python",
4)

langオプションでシンタックスハイライトする言語を設定できます。 Markdown記法でサポートされている言語名の他に、Typst固有の typ(Typst markup)、 typc(Typst code)、 typm(Typst math) がサポートされているそうです。

等幅フォントしたい

1#show raw: text.with(font: "Noto Sans Mono")

コードブロックは表示するときは、等幅フォント(モノフォント)を設定するとよいです。

文字色したい

1#show raw.where(block: false): text.with(fill: olive)

インライン表示するときの文字色を変更するサンプルです。 raw.where(block: false)でインライン表示を選択しています。

背景色したい

1#show raw.where(block: true): block.with(fill: luma(95%), inset: 1em, radius: 1em)

ブロック表示するときの背景色を追加するサンプルです。 raw.where(block: true)でブロック表示を選択しています。