諸事情により作ってみることにしました。
session_info
devtools::session_info()
#> Session info --------------------------------------------------------------
#> setting value
#> version R version 3.3.2 (2016-10-31)
#> system x86_64, linux-gnu
#> ui X11
#> language ja
#> collate ja_JP.UTF-8
#> tz Japan
#> date 2017-01-17
#> Packages ------------------------------------------------------------------
#> package * version date source
#> Rcpp 0.12.8 2016-11-17 cran (@0.12.8)
#> backports 1.0.4 2016-10-24 cran (@1.0.4)
#> devtools 1.12.0 2016-06-24 CRAN (R 3.3.2)
#> digest 0.6.10 2016-08-02 CRAN (R 3.3.1)
#> evaluate 0.10 2016-10-11 CRAN (R 3.3.1)
#> htmltools 0.3.5 2016-03-21 CRAN (R 3.3.1)
#> knitr 1.15.5 2016-12-13 Github (yihui/knitr@64468a6)
#> magrittr 1.5 2014-11-22 CRAN (R 3.3.1)
#> memoise 1.0.0 2016-01-29 CRAN (R 3.3.1)
#> rmarkdown 1.2 2016-11-21 cran (@1.2)
#> rprojroot 1.1 2016-10-29 cran (@1.1)
#> stringi 1.1.2 2016-10-01 CRAN (R 3.3.2)
#> stringr 1.1.0 2016-08-19 CRAN (R 3.3.1)
#> withr 1.0.2 2016-06-20 CRAN (R 3.3.1)
#> yaml 2.1.14 2016-11-12 cran (@2.1.14)
調査方法
以下の内容にあたってみました:
- R Markdown reference guide
?rmarkdown::html_document
- https://github.com/rstudio/rmarkdown/blob/master/inst/rmd/h/default.html
- https://github.com/rstudio/rmarkdown/blob/master/R/html_document.R
- https://github.com/rstudio/rmarkdown/blob/master/R/html_document_base.R
- http://sky-y.github.io/site-pandoc-jp/users-guide/
- https://github.com/jgm/pandoc-templates/blob/master/default.html
これらの情報を参考に,色々やってみながら検証しました。
設定可能項目一覧
大体以下のような感じです:
---
title: "タイトル" #ページのタイトルで,h1要素としてbodyに入ります
subtitle: "サブタイトル" #ページのサブタイトルで,h1.titleのすぐ下にh2として入ります
title-prefix: "タイトルプリフィックス" #ウィンドウ上部枠に出てくるページ名タイトルの前に入ってきます
pagetitle: "ページタイトル" #ウィンドウ上部枠に出てくるページ名タイトルです
author: "オーサー" #著者で,複数名の時は'c("kosaki", "chitoge")'とすればOK
author-meta: "オーサーメタ" #head要素のmeta情報に書き込まれます
date: "2017/01/17" #日付です。決め打ちでもいいですし,rのコードでやる方法も
abstract: "このドキュメントのアブストラクト。" #本文のすぐ上にアブストラクトとして差し込まれます
output:
html_document:
# tocまわり
toc: FALSE #toc(table of contents)を自動生成するかどうか。論理値。
toc_depth: 2 #tocで拾う見出しレベルを指定。数値。
toc_float: FALSE #tocをページ冒頭ではなくサイドメニューとして浮かせて表示させるかどうか
number_sections: FALSE #見出しに通し番号をつけるかどうか
# figまわり
fig_width: 7 #図の大きさ。確かインチ
fig_height: 5 #図の高さ。確かインチ
fig_retina: 2 #retinaディスプレイに対応させていくかどうか
fig_caption: TRUE #図にキャプションを付与していくかどうか
dev: "png" #グラフィックデバイスを指定。この場合png形式。
# dfの処理
df_print: "default" #data.frameを表示させる際,kableとかtiblleとかpagedを指定。
# codeまわり
code_folding: "show" #デフォ値はc("none", "show", "hide") #デフォルトでRコード部分を表示させるかどうか。
code_download: FALSE #Rmdソースコードをhtmlに埋め込んでDLできるようにするかどうか。論理値。
highlight: "default" #シンタックスハイライトのテーマを指定。
# mathjax
mathjax: "default" #mathjaxをどう含めるか。
# テーマ・書式まわり
smart: TRUE #出力のタイポグラフィを変換するかどうか。ハイフンをem-dashesにするかなど。論理値。
theme: "default" #htmlのテーマを指定。NULLだとテーマ無し(プレーンなhtml)になる。
css: NULL #カスタムなcssを指定。
# ドキュメントまわり
templete: "default" #(Pandoc用)htmlテンプレートを指定。
include: #ドキュメントにhtmlを差し込むかどうか。
- in_header: NULL #<head>内に差し込む内容。htmlファイルを指定。通常はメタデータやjsコードなど
- before_body: NULL #<body>の一番最初に差し込む内容。htmlファイルを指定。通常はheader的な要素など
- after_body: NULL #<body>の一番最後に差し込む内容。htmlファイルを指定。通常はfooter的な要素など
# 拡張関連
extra_dependencies: NULL #新たに追加したいような要素や,拡張要素を指定。
lib_dir: NULL #jqueryとか依存するHTMLライブラリをコピーするディレクトリを指定。デフォは(ファイル名)_filesってディレクトリへ。
# 出力制御関連
md_extentions: NULL #Pandoc Markdown拡張で追加するand/or削除する要素を指定
pandoc_args: NULL #Pandocに送る引数を指定。
keep_md: FALSE #.mdファイルを残すかどうかを指定。論理値
self_contained: TRUE #jsやcss,画像データなどをbase64でhtmlファイルに埋め込み,単一ファイルにするかどうかを指定。論理値
---
この内容を実際のRmdにコピペして貼り付けてもちゃんと動作します。
簡単な説明はコメントとして記述しています。なお,subtitle:
,title-prefix:
, pagetitle:
, author-meta:
, abstract
を取り除けば,あとは全てデフォルト値となるように設定しています。
補足
以下の点について留意してください:
- これは2017/01/17現在で,前に示した各パッケージのバージョンでの内容です。
-
md_extention
やpandoc_args
,あるいはextra_dependencies`とかを設定していけばまだまだ追加できますが省略します。 - これはあくまでrmarkdown::html_document`での内容ですので,他の出力形式だったり他のパッケージを利用した場合には変化します。
あと,自分用のメモとして起こしたので,細かい解説を追記するつもりは今のところありません。もし気になる点がありましたら,上述した資料をあたるか,Twitterの@kazutanもしくはslackのr-wakalang(詳しくはこちら)の,rmarkdownのチャンネルまでおねがいします。
Enjoy!