knitr+LaTeXでPDFを作成するmakefile

以前,TokyoRで「RでReproducible Research」というタイトルの発表を行いました.Reproducible Researchとは再現性のある研究のことで,そのためには処理に再現性が担保されている必要があります.

RでReproducible Researchを実現する上で,動的なレポート生成を行うknitrパッケージが有力なツールになると考えられます.knitrを用いることにより,プログラムとドキュメントを同時に記述することが可能になります.このようにして,使用したデータや処理を明確にした上で,多様な形式のレポートを作成することができるようになります.knitrの詳細については,作者による本家のホームページ浅井さんのページが詳しいのでご参照ください.

LaTeXでPDFファイルをレポートとして作成する場合は,次のようなmakefileを用意することにより,コマンド一発でRmdファイル → texファイル → dviファイル → pdfファイルまで作成できるようになります.

.SUFFIXES: .Rnw .tex .dvi .pdf

RSCRIPT=/usr/bin/Rscript
EXEDIR=/usr/local/bin
LATEX=$(EXEDIR)/platex
BIBTEX=/usr/bin/bibtex
MKIDX=$(EXEDIR)/makeindex
DVIPDF=$(EXEDIR)/dvipdfmx

.Rnw.tex:
  $(RSCRIPT) -e "library(knitr); knit('$<')"

.tex.dvi:
  $(LATEX) $<
  $(BIBTEX) $*
  $(MKIDX) $<
  $(LATEX) $<
  $(LATEX) $<

.dvi.pdf:
  $(DVIPDF) $<

target=test
all: ${target}.pdf
clean:
  rm -f *~
  rm -f *.{aux,bbl,blg} *.log ${target}.{lof,lot,toc,tex,dvi,pdf,out}

Dynamic Documents with R and knitr (Chapman & Hall/CRC The R Series)

Dynamic Documents with R and knitr (Chapman & Hall/CRC The R Series)