Quartoでコードブロックを埋め込む

R
Published

September 4, 2024

Modified

September 4, 2024

Quartoではコードブロックを埋め込むことができますが、いろいろな方法がありよく忘れてしまうため、まとめます。

```で上下を囲むとコードブロックになります。

```default
Here is a code block.
```
Here is a code block.

```の後に言語名を指定することで、言語に応じて自動的に色分けがされます(シンタックスハイライト syntax highlight)。 私の環境では、何もつけないと上のようにきれいなコードブロックにならず、以下のようになりました。

Here is a code block.

defaultを指定するととりあえずきれいなコードブロックになりました。 例えば、Rのコードを埋め込みたいときは以下のようにします。

```r
plot(x, y, pch = 2, col = "red")
```

使用可能な言語一覧はこちらのURLから確認できます。

実行するコードを埋め込む

上記の方法では、そのままのコードが表示されます。 コードを実行させるには、以下のように、コード名を{}で囲みます。

```{r}
plot(1, 1)
```

以下のようになります。

plot(1, 1)

コードチャンク自体を埋め込む

```で囲まれたコードをコードチャンク code chunk と言います。 これを含めて文書に埋め込むには、````で囲みます。 冒頭のコードチャンクは以下のように書きました。

````default
```default
Here is a code block.
```
````

このように、`の数を増やすと内側にコードブロックを入れていくことができます。


実行されるコードをそのまま埋め込むには、言語名を{{}}で囲みます。 例えば、先程の以下のコードを埋め込む方法です。

```{r}
plot(1, 1)
```

このコードは以下のようにしています。

```{{r}}
plot(1, 1)
```

ちなみに上記のコードブロック自体は、{{r}}としています。

行番号をつける

行番号をつけるには、設定ファイルである_quarto.ymlの記述を変更します。

format:
  html:
    code-line-numbers: true
x <- 1:10
y <- 11:20
x + y
 [1] 12 14 16 18 20 22 24 26 28 30

ファイル名をつける

上部にファイル名を表示させることができます。 {}内にfilename="XX"と書きます。

File_name.r
x <- 1

上記のコードブロックは以下のように書いています。

```{r filename="File_name.r"}
x <- 1
```

コピーボタンをつける

右上にあるコードのコピーボタンをつけるには、_quarto.ymlにのcode-copyを変更します。

format:
  html:
    code-copy: false
引数 説明
hover マウスを重ねるとボタンが表示されます(デフォルト)
true 常にボタンが表示されます
false コピーボタンを非表示にします

注釈をつける

Quartoではコードに注釈 (annotation)をつけることができます。 以下のようになります。

x <- 1:10
y <- 11:20
plot(x, y)
1
xに1-10までの数字をいれます。
2
yに11-20までの数字を入れます。
3
プロットを作成します。

上記のコードと注釈のセットは以下のように作ります。

```r
x <- 1:10 # <1>
y <- 11:20 # <2>
plot(x, y) # <3>
```

1. `x`に1-10までの数字をいれます。
2. `y`に11-20までの数字を入れます。
3. プロットを作成します。

スタイルを設定するには、フロントマターにcode-annotations: XXと指定します。 スタイルは3つあります。

引数 説明
below コードの下に注釈が表示されます(デフォルト)
hover 注釈マーカーの上にマウスを移動すると注釈が表示されます
select 注釈マーカーをクリックすると注釈が表示され、もう一度クリックすると閉じます

参考

Markdown Basics

show quarto-code example in quarto document with inline code

HTML Code Blocks

Code Annotation

Back to top