3.7 .qmd : Quartoドキュメント

QuartoはR言語用のマークダウン記法をHTMLやPDFなどにレンダリングできるファイル形式である. マークダウン記法についてはデータサイエンスとは本質的に関連のないテーマのため詳細な説明を省くが,興味のある人は調べてみて欲しい. 例えば,Quarto記法については以下のURLに記法の一覧が紹介されているので参照されたい. (https://quarto.org/docs/authoring/markdown-basics.html#equations

3.7.1 qmdファイルの作成

R Scriptを作成した手順と同様に,Quarto Document をクリックすると新規にqmdファイルを作成できる.

qmdファイルの新規作成
qmdファイルの新規作成

すると,次のように初期設定画面が表示されるので,Title, Authorを適宜入力する.本講義ではHTML形式での出力を基本とする.

qmdファイルの設定画面
qmdファイルの設定画面

左上に新規のqmdファイルの編集画面が表示されたら,上部の---で囲まれた部分(YAMLヘッダーと呼ぶ)を以下のように変更する. これは,HTMLファイルをレンダリングする際に利用するTexエンジン(数式を綺麗に出力する仕組み)をkatexという種類のエンジンに 変更するように指示をしている.

もともとはこのようになっているが,

---
title: "Title desu"
author: "watashi desu"
format: html:
editor: visual
---

以下のようにformat: htmlの行を変更する.

---
title: "Title desu"
author: "watashi desu"
format:
  html:
    toc: true
    html-math-method: katex
editor: visual
---

3.7.2 HTMLファイルのレンダリング

qmdファイルの編集からレンダリングまでの一連の流れを紹介する. 上記のようにYAMLヘッダーを編集したのち,qmdファイルの最後から先ほどR Scriptで実行したコードを埋め込もう.

3.7.2.1 チャンクの挿入

カーソルをファイルの一番最後に移動して,編集画面の右上にある+cマークを押すとRのコードを実行できる領域が挿入される. この部分をチャンクと呼ぶ.

チャンクの挿入ボタン
チャンクの挿入ボタン

チャンクの挿入にはショートカットコマンドも用意されておりcommand + shift + Iと入力すれば良い(Windowsはctrl + shift + I).

チャンク
チャンク

チャンク内にプログラムを記述して,チャンク右上の▷マークを押せばRのプログラムを実行できる.

次にこのチャンク内に以下のコードを貼り付けよう.

train <- iris[,-5]
centers <- 3
result <- kmeans(x = train, centers=centers)

iris$estimated_cluster <- as.character(result$cluster)

ggplot(iris) +
  geom_point(
    aes(
      x = Sepal.Length, 
      y = Petal.Length, 
      group = estimated_cluster, 
      color = estimated_cluster
    )
  )

3.7.2.2 数式(Tex)の挿入

qmdファイルないでは,Tex記法を利用することで数式を綺麗に書くことができる. 文章内では$で囲めばよい.例えばf(x) = x^2という文字列をTex記法で記述すると$f(x) = x^2$とすればよく, 実際には\(f(x) = x^2\)と表示される.

次に,文章中ではなく数式を切り出して表示したい場合は$$で囲む.例えば

$$
    e^{i \theta} = \cos \theta + i \sin \theta
$$

とすれば良い.これは実際には以下のように表示される.

\[ e^{i \theta} = \cos \theta + i \sin \theta \]

3.7.2.3 レンダリング

以上の編集が完了したら一度ファイルを保存(command + s)したのち,編集画面上部にあるRenderボタンをクリックするとHTMLファイルへレンダリングしてくれる.

Renderボタン
Renderボタン

HTMLファイルの保存画面が表示されるが,適当な名前で保存しておく. 最後に,出力されたHTMLファイルをクリックするとウェブブラウザーで内容を確認することができる.

3.7.3 おまけ:katex

katexはウェブ上で高速に処理されるTexエンジンである.HTMLを表示する際に,他のTexエンジンでは ページを読み込んでからしばらくして数式が表示されることがあるが,katexではページの読み込みから表示までが早く ストレスのない表示を実現してくれる.

katexで扱える記法については以下を参照されたい.