R Markdownをいろんなフォーマットのドキュメントへ

楽をしたいという俺のモチベーション

最近
RStudio(Windows)でSweave(.Rnw)を使って一発でpdf作りたい - My Life as a Mock Quant
なんてのを書いてますが、やはりTeXはしんどいぞと。俺のようなものには使いこなす事ができないぞという事で、

  • [(R) Mark down]⇒(Word, TeX(PDF))

なもっと楽できる道を探していきたい。そういうポストの建設予定地で随時更新。あと、俺の手元のWordは2007でやってるんで、そこんとこよろしく。

この辺の試行錯誤をまとめたもの

下記内容と重複多数ですが、ご参考。

用意

とりあえずRのコンソールで

install.packages("knitr")
library(knitr)

しとけ。あと、pandocいれとけ。

俺が辿るべき道は死の香り

そもそも最終的な出力としてMS Word/PDFを考えた場合、pandoc使うとなると、pandoc二回食わせるのはなしとしても

の組み合わせ考えなきゃならんの?死ぬの?どれが一番いいだろうかという問題もあって悩ましい。

(Rのインストール先)\library\knitr\examples

にある例を見るのが一番いい気がしてきた。…が、

を読むと「ダイレクトにMarkdownから他のフォーマットにしとけや!」ってことなので、HTMLを経由させず、

  • [R Markdown] -> (knitrパッケージ経由) -> [Markdown] -> (pandoc経由) -> [MS Word/PDF(TeX経由)]

を推していきたい。

PDF作りたい

一件、knitrパッケージに入っているknit2pdf関数ででいいように思うが、これはSweave(拡張子.Rnw)用の関数っぽいし、
しかも"texi2dvi.exe"なるものを中で叩いていて、このexeは何じゃい?と思って調べたら、MiKTeXなるものに含まれるexeらしい。
んで、

によると、こいつは日本語には非対応ということなので、これはもう諦めるかコンパイル方法を上手く変えないとだめだろうなって思って諦めた。
最終的には以下のアドバイスもらったんで、これでいいや。最悪WordをPDFに変換する方向で。

画像にcaptionを入れたい

Captionは、knitrのchunkの"fig.caption"に適当な文字列として指定する。
PDF/Wordを作りたい場合、markdownToHTMLのオプションとしてbase64_imagesをはずさないとHTML内に画像が埋め込まれちゃうんで注意。
通常の画像はMarkdown記法の画像の代わりに出てくる代替文字列がキャプションになる。その際に、Markdownの上下一行ずつ開けておかないとなぜかキャプションが消される。

索引を入れたい

パッケージ使えばいけるらしいけどわからん。

数式を入れたい

最終的なアウトプットがPDFの場合は上手くいくが、MS wordの場合pandoc経由でword(.docx)形式にしても、数式はうまく表示されない。

にある例30の出力ファイル(.docx)見ても数式ちゃんと出てないので、wordに数式を正しく載せるのは無理なんじゃないかと思ってる。

・・・ところがどっこい.odt(Open Document形式)にすれば数式が表示された!万歳!
ただこれはwordの数式ツールでは扱えないサムシングだった。

・・・ところがどっこい

を見ると、どうもWord2007の数式フォントの問題だけっぽい。直し方はめんどくさいんだが、

  • docxファイルの拡張子をzipにして、そのzipファイルを解凍する
  • 中にあるword/document.xmlファイルを適当なテキストエディタで開く
  • として置換する
  • xmlファイルを上書き保存して閉じる
  • 解凍した時にできた全ファイルをzip圧縮して、拡張子をdocxに戻す

でできた。これでwordの数式になってくれるぞ!