QuartoのTips

Quartoでドキュメントを書く際に使えるテクニックの備忘録。
Quarto
Published

July 22, 2024

Modified

September 17, 2024

Quartoでドキュメントを書く際に使えるテクニックの備忘録。

使用しているQuartoのバージョン

quarto::quarto_version()
[1] '1.5.54'

エラーメッセージを表示する

chunk optionのerrortrueに設定する。

```{r}
#| error: true
stop("This is error message.")
```
Error in eval(expr, envir, enclos): This is error message.

Chunkの出力を2カラムで

chunk optionでlayout-nrowあるいはlayout-ncolを修正する。

```{r}
#| layout-ncol: 2
plot(iris$Sepal.Length, iris$Sepal.Width)
plot(iris$Petal.Length, iris$Petal.Width)
```

```{r}
#| layout-nrow: 1
plot(iris$Sepal.Length, iris$Sepal.Width)
plot(iris$Petal.Length, iris$Petal.Width)
```

テーブルでも同様

```{r}
#| layout-nrow: 1
knitr::kable(iris[1:10, 1:3])
knitr::kable(iris[1:20, 1:3])
```
Sepal.Length Sepal.Width Petal.Length
5.1 3.5 1.4
4.9 3.0 1.4
4.7 3.2 1.3
4.6 3.1 1.5
5.0 3.6 1.4
5.4 3.9 1.7
4.6 3.4 1.4
5.0 3.4 1.5
4.4 2.9 1.4
4.9 3.1 1.5
Sepal.Length Sepal.Width Petal.Length
5.1 3.5 1.4
4.9 3.0 1.4
4.7 3.2 1.3
4.6 3.1 1.5
5.0 3.6 1.4
5.4 3.9 1.7
4.6 3.4 1.4
5.0 3.4 1.5
4.4 2.9 1.4
4.9 3.1 1.5
5.4 3.7 1.5
4.8 3.4 1.6
4.8 3.0 1.4
4.3 3.0 1.1
5.8 4.0 1.2
5.7 4.4 1.5
5.4 3.9 1.3
5.1 3.5 1.4
5.7 3.8 1.7
5.1 3.8 1.5

Bootstrap CSS Gridでレイアウトのコントロール

Bootstrap CSS Gridを利用して、 レイアウトを制御することができる。 以下のようにdivで区切ってCSS Gridのclassを適用すれば、2カラムのレイアウトが作れる。

:::{.grid}

:::{.g-col-6}
左カラム
```{r}
plot(iris$Sepal.Length, iris$Sepal.Width)
```
:::

:::{.g-col-6}
右カラム
```{r}
plot(iris$Petal.Length, iris$Petal.Width)
```
:::

:::

左カラム

plot(iris$Sepal.Length, iris$Sepal.Width)

右カラム

plot(iris$Petal.Length, iris$Petal.Width)

コードの表示設定

Fenced Echo

チャンクのコードのプログラミング言語を明示したい場合は、chunk optionのechofencedに設定することで明示できる。

```{r}
#| echo: fenced
print("Hello")
```

と書くと、以下の様に表示される。

```{r}
print("Hello")
```
[1] "Hello"

#| echo: fencedを指定すると、それ以外のchunk optionはそのまま表示される。 以下の様に、#| eval: falseを指定すると、

```{r}
#| echo: fenced
#| eval: false
print("Hello")
```

chunk optionがそのまま表示される。

```{r}
#| eval: false
print("Hello")
```

Unexecuted blocks

実行しないコードについて、なんのコードが明示しておきたい場合は、Unexecuted blocksを使うと良い。 以下の様に{}を2つに増やすと、

```{{python}}
print("Hello")
```

下の様に表示され、実行しないPythonコードチャンクを明示的に示すことができる。

```{python}
print("Hello")
```

文法的に間違ったChunk optionを持つコードチャンクを例示することにも使える。

Code block

実行しないコードをUexecuted blocksとして表す以外にも、単にコードブロックとして記述する方法もある (Markdown Basics / Source Code)。 以下のように書くとどちらも同じ出力になる。

``` python
print("Hello")
```

```{.python}
print("Hello")
```
print("Hello")

また、ファイル名や行番号を設定することもできる(Line Numbers, Code Filename)。

``` {.python filename="example.py" code-line-numbers="true"}
import matplotlib.pyplot as plt
plt.plot([1,23,2,4])
plt.show()
```
example.py
import matplotlib.pyplot as plt
plt.plot([1,23,2,4])
plt.show()

出力フォーマットに応じて表示を変える

Conditional Contentは、 出力フォーマットに応じて表示するかしないかを制御する仕組みである。 詳細はリンク先を参照。

Sessioninfo

sessionInfo()
R version 4.3.2 (2023-10-31)
Platform: aarch64-apple-darwin20 (64-bit)
Running under: macOS Ventura 13.1

Matrix products: default
BLAS:   /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/lib/libRblas.0.dylib 
LAPACK: /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/lib/libRlapack.dylib;  LAPACK version 3.11.0

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

time zone: Asia/Tokyo
tzcode source: internal

attached base packages:
[1] stats     graphics  grDevices datasets  utils     methods   base     

loaded via a namespace (and not attached):
 [1] digest_0.6.34     later_1.3.2       fastmap_1.1.1     xfun_0.46        
 [5] knitr_1.48        htmltools_0.5.7   rmarkdown_2.25    ps_1.7.6         
 [9] cli_3.6.3         processx_3.8.3    renv_1.0.10       compiler_4.3.2   
[13] rstudioapi_0.16.0 tools_4.3.2       quarto_1.3        evaluate_0.24.0  
[17] Rcpp_1.0.13       yaml_2.3.9        rlang_1.1.4       jsonlite_1.8.8