LoginSignup
40

More than 5 years have passed since last update.

R Markdownのhtml_documentで指定できるyamlヘッダ項目について

Last updated at Posted at 2017-01-17

諸事情により作ってみることにしました。

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)

調査方法

以下の内容にあたってみました:

これらの情報を参考に,色々やってみながら検証しました。

設定可能項目一覧

大体以下のような感じです:

---
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を取り除けば,あとは全てデフォルト値となるように設定しています。

補足

以下の点について留意してください:

  1. これは2017/01/17現在で,前に示した各パッケージのバージョンでの内容です。
  2. md_extentionpandoc_args,あるいはextra_dependencies`とかを設定していけばまだまだ追加できますが省略します。
  3. これはあくまでrmarkdown::html_document`での内容ですので,他の出力形式だったり他のパッケージを利用した場合には変化します。

あと,自分用のメモとして起こしたので,細かい解説を追記するつもりは今のところありません。もし気になる点がありましたら,上述した資料をあたるか,Twitterの@kazutanもしくはslackのr-wakalang(詳しくはこちら)の,rmarkdownのチャンネルまでおねがいします。

Enjoy!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40