よく忘れるので。適宜更新(したい)。
用語
- YAMLフロントマター
- Rmdファイルの先頭にYAMLで書く設定。
---
で囲まれている。一部の設定は別ファイルに分けることができる。
- Rmdファイルの先頭にYAMLで書く設定。
-
_bookdown.yml
- YAMLフロントマターに書くような設定をこの名前のファイルに書いておいても良い。
---
は不要。
- YAMLフロントマターに書くような設定をこの名前のファイルに書いておいても良い。
-
_output.yml
- YAMLフロントマターの
output:
フィールドに書く内容をここに書いておいてもよい。---
は不要で、output:
も不要(その下の階層のフィールドから書く。
- YAMLフロントマターの
基本
bookdownにしたい
YAMLフロントマターに以下の記述をしたindex.Rmd
を用意する。
---
site: bookdown::bookdown_site
output:
bookdown::gitbook: default
---
RStudio使用時は右上にBuildペインが出るので(出ない場合はRStudioを再起動してみる)Build Bookをクリックするか、Cmd+Shift+Bでビルドされる。
設定関係
対象とするRmdファイルの種類と順序を指定したい
デフォルトではワーキングディレクトリ内のファイルがファイル名順に使用される。サブディレクトリまで含める場合は_bookdwon.yml
にsubdir: yes
を記述。また、ファイル名がアンダースコア_
から開始するファイルは含まれない。
任意の順序、ファイルとしたい場合は_bookdown.yml
に記述。
rmd_files: ["index.Rmd", "01_intro.Rmd"]
次の形式でも良い。
rmd_files:
- index.Rmd
- 01_intro.Rmd
ページ(htmlファイル)の区切り方を変更したい
例えばセクションで区切りたければYAMLフロントマターに以下のように記述する。
output:
bookdown::gitbook:
split_by: section
split_by
には以下の指定ができる。
-
rmd
: Rmdファイル単位で区切る。 -
none
: 区切らない(1つのhtmlファイルが生成される) -
chapter
: 1番目のレベルのヘッダ(#
)単位で区切られる。 -
section
: 2番目のレベルのヘッダ(##
)単位で区切られる。 -
chapter+number
及びsection+number
:chapter
、section
とほぼ同じだが、生成されるファイル名に自動的に番号が付与される。
日本語PDFで出力したい
エラーへの対処
Automatically generated filenames contain duplicated ones...
生成されたhtmlファイルのファイル名が重複している。
デフォルトでは、ファイルは第一レベルの見出し(#
が1つのもの)から自動的に生成されるが、ここに日本語などのマルチバイト文字が含まれると無視される。そのため、見出しに日本語を使っているともれなくファイル名が重複してしまう。
これを防ぐにはいくつか方法がある。
まず、前述のsplit_by
の変更。ファイル名の重複を防ぐ指定として例えば以下のような物がある。
-
split_by: rmd
htmlファイルは.Rmdファイル単位で生成される。ファイル名は.Rmdの名前を引き継ぐ。 -
split_by: chapter+number
自動生成されたファイル名に連番が付与されるので、見出し名が重複してもファイル名の重複を避けられる。section+number
も同様。
指定は例えばYAMLフロントマターで以下のように行う。
output:
bookdown::gitbook:
split_by: rmd
他の方法として、見出しの識別子を手動で設定するというものもある。見出しに識別子が指定されていると、ファイル名の生成時には識別子が優先して使用される。例えば
# いんとろ {#introduction}
と指定されていれば、introduction.html
が生成される。
The file _main.Rmd exists. ...
_main.Rmd
を消す。
このファイルは、デフォルトのビルド方法(Rmdをマージしてからknitする)のときに何らかのエラーでビルドが完了しなかった場合に残ってしまう。このとき、エラーメッセージは_main.Rmd
に対して出力されるので、エラーが何なのかを確認するためには_main.Rmd
の中身を確認する必要がある。
_bookdown.yml
で不完全な最終行が見つかりました。
最終行は改行のみを含む行でなければならない。
Rmd関係一般
文字に色を付けたい
<font>
タグで。
<font color="red">赤色</font>
bibtexを使いたい
例えばhoge.bib
などの名前でbibファイルを用意する。その後、YAMLフロントマターで
bibliography: [hoge.bib]
biblio-style: "apalike"
link-citations: yes
とする。
文献のキーをkey
とすると、@key
でhoge(2018)形式、[@hoge]
で(hoge, 2018)形式で表示される。
TeX関係一般
(もはやRmd関係ない…)
=の位置を揃えたい
alignを使う。
\begin{align}
y &= (x + 1)^2 \\
&= x^2 + 2x + 1
\end{align}