タイトルの通りの内容です。{bookdown}の手引書はこちらです。単体Rmdでの標記内容については、この手引書のこちらにあります。

1 必要条件

(予想も含め)以下のものが必要になるかと:

  • RStudioのPreview版(たぶん)
  • rmarkdownパッケージ 0.9.6(Github版かも)
  • knitrパッケージ 1.13
  • bookdownパッケージ (現時点でGithub版のみ)

2 ポイント

2.1 ディレクトリ、ファイルについて

多分ですが、プロジェクトをちゃんと専用で準備したほうがいいかも。自分のテスト用ディレクトリでやってたら、番号取得がなんかうまくいきませんでした。もしかしたら単にRStudioを再起動(Rのセッションを再起動)しなきゃいけなかっただけかもしれません。もし番号がうまく付与されず?.?とか出てきたら、一旦再起動してみて、それでもダメなら新しいプロジェクトを作って、そこに該当Rmdを設置して試してください。

2.2 出力形式の指定

Rmdの冒頭yaml箇所に、いつもならoutput: html_documentとするのですが、これをoutput: bookdown::html_document2としてください。これで自動番号付与のための関数が発動してくれるようになります。

このbookdown::html_document2()rmarkdown::html_document()のラッパーで、上記機能を追加してくれるための関数を通過してからrmarkdown::render()へと送るようになるっぽいです。なのでその他のyamlオプションについてもそのまま通過して反応してくれるはずです。

なお、yamlオプションでnumber_sections: falseとすると、見出しの通し番号は付与されず、図表は単に1, 2, 3, ...という通し番号になります。逆にnumber_sections: trueとすると、見出しの番号が付与され、図表には1.1, 1.2, ...のように、章番号がついた通し番号になります。

2.3 図表番号の自動付与

{bookdown}の手引書を参照してください。図についてはこちら、表についてはこちら、章・節についてはこちらをご覧ください。

3 動作テスト

以下動作テストしてます。

3.1 表の通し番号自動付与と参照

とりあえず、以下でテスト。

knitr::kable(summary(cars), caption = "hogehoge", booktabs = TRUE)
Table 3.1: hogehoge
speed dist
Min. : 4.0 Min. : 2.00
1st Qu.:12.0 1st Qu.: 26.00
Median :15.0 Median : 36.00
Mean :15.4 Mean : 42.98
3rd Qu.:19.0 3rd Qu.: 56.00
Max. :25.0 Max. :120.00
knitr::kable(head(iris), caption = "あいりすたん。")
Table 3.2: あいりすたん。
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
5.1 3.5 1.4 0.2 setosa
4.9 3.0 1.4 0.2 setosa
4.7 3.2 1.3 0.2 setosa
4.6 3.1 1.5 0.2 setosa
5.0 3.6 1.4 0.2 setosa
5.4 3.9 1.7 0.4 setosa

3.1booktabs = TRUE、表3.2booktabs = FALSEでやってみる。

3.2 図の通し番号自動付与と参照

次はプロット。

plot(pressure)
ほげほげ。

Figure 3.1: ほげほげ。

plot(pressure)
ほげほげ。

Figure 3.2: ほげほげ。

plot(pressure)
ほげほげ。

Figure 3.3: ほげほげ。

3.1は一番上、図3.2は二段目、図3.3は三段目。

3.3 章・節の参照

章・節にラベルでの参照をテストしてみます:

  • 1
  • 2
  • 3
  • 2.2の出力形式の指定

事前に各章にラベルを振っており、上記リストはそのラベルを元にリンクを形成してくれます。

こんな感じで、いけました。もしわからないことがあったら、@kazutanまでお問い合わせください。

Enjoy!