knitr
のエディタ
Emacs, TeX Maker, TeXShop, WinEdt, そして TextMate などについて
オリジナルの記事: https://yihui.org/knitr/demo/editors/
オリジナルの更新日: 2012-03-16
訳注: このページは R Markdown ではなく, Rnw を想定した説明です. R Markdown は基本的に RStudio での編集が最も使いやすいと思われます.
私は以前 Lyx (未翻訳), RStudio (未翻訳) Emacs Org-mode (未翻訳), Ecripse (未翻訳) について書きました. その他にも, Texmaker や Windt といったエディタで knitr を使うことができます. ポイントは R を呼び出して knitr パッケージを読み込み, それから knit()
または knit2pdf()
を呼び出すことです.
Texmaker
User --> User Commands --> Edit User Commands
から, Rnw 文書を処理するためのカスタムコマンドを定義できます.
Rの実行ファイルパスが PATH
環境変数にない場合, 上記のコマンドに Rscript.exe
のフルパスを書く必要があります. こんなかんじに:
Rscript.exe
の場所さえ知っていれば, R を開いて R.home('bin')
を実行すれば見つけられます. そうすればどんな Rnw 文書ファイルに対しても, この knitr
コマンドでコンパイルすることができます.
文書をコンパイルするには左向きの矢印をクリックし, PDF を表示するのに右矢印をクリックします. もちろん上記の設定は Windows のものですが, 他のシステムでも同じ要領です. Rscript.exe
を Rscript
に置き換えてください (実際は Windows 環境でも Rscript
が使えます).
TeXStudio
一例として, 基本的には Texmaker と同様に設定することができます (Henrik Nyhus と Paul J. Hurtado に感謝)
上級者向けオプション (左下) を解放すれば, 下部に Commands ($PATH)
が現れるでしょう. ここに R
フォルダのパスを入力できます (例: 引用符なしで C:\Program Files\R\R-3.3.2\bin\x64
). それからユーザーコマンド (そして他のコマンドからも呼び出せる) に Rscript.exe -e "knitr::knit2pdf('%.Rnw')"
とするだけです.
いつでもこのコマンドを実行できます (ホットキーは Alt-Shift-F1) し, サイレントモードでも knitr で PDF を生成できます. F7 キーでいつでも表示されている PDF を更新できます. 代わりの方法として, コマンドの末尾に | txs:///view-pdf
を追加する方法があります. これはあるコマンドの実行後に実行する別のコマンドを分けるパイプ記号です. よって基本的に F7 を押すだけで事足りるようになります.
しかし, もし BibLaTeX のような文献引用パッケージを使うならば, まだかなり非効率です. コンパイルの前に bib ファイルの処理を手動で行う必要があり, よって最低でも2回手動でコンパイルする必要があり (そしてあなたは何回必要か正確に分からないでしょう). その間に不要なビューアの呼び出しが発生します. TeXstudio は文献処理ツール起動したりコンパイルしたり, それらを繰り返すのに優れていますが, ビルドと閲覧 (F5) を何度も押す度にこれが必要になり, そこでデフォルトのコンパイラを Rscript.exe -e "knitr::knit2pdf('%.Rnw')"
で置き換えることで knitr を使用し続けられるわけです (R
フォルダを $PATH
に設定している前提です). その隣の “Repeat contained compilation commands” が押されたままであることを確認してください.
もちろん, これならば少なくとも F5 (または F6) を押すだけで TeXstudio デフォルトの標準の LaTeX コンパイラの代わりに knitr
が実行されます. この方法のおそらく唯一の欠点は, ほとんどの人にとって LaTeX コードのデバッグがいっそう困難になることです. ほとんどのエラーが「texify.exe
“had status 1”」という曖昧な警告に置き換わってしまうことです (ユーザーコマンド経由で knitr を実行するのではこれは改善できません). そのような状況でもログファイルも時には有用ですが, ログファイルは .Rnw
ファイルではなく knitr の生成した .tex
を参照するので, このファイルを開いてどこがおかしいのかを見つけようとする必要があります.
しかし物事の全体で見れば, TeXstudio ならば 他のあらゆる LaTeX 書き込み機能の恩恵を得つつ knitr
を使うことができます. その上, 不便な回避策が必要な RStudio と比較すれば, BibLaTeX-Chicago
のような Biber
ベースの文献引用パッケージの使用もはるかに簡単になります.
WinEdt
WinEdt のR-Sweave モードは現在 knitr をサポートしています. 自分自身で WinEdt の設定をしたいなら, よくお読みください.
以下の手引書は Phil Chalmers によるものです. 私は全てを確認していませんが, おおよそ良さそうだと思います.
Options -> Execution Modes -> PDFTeXify
へ移動する. それから実行可能なRscript.exe
(例:C:\Program Files\R\R-2.14.2\bin\Rscript.exe
) を探し, それを選択するSwitches
で-e
を入力し,Parameters
で"knitr::knit2pdf('%n%t')"
を入力する.
そして F9
をタイプすれば, PDF を開くのを含めて全てが一度に実行されます.
Phil に感謝.
Emacs/ESS
12/9 以降, knitr は公式に ESS にサポートされています. Debian/Ubuntu をお使いの場合, 以下のようにしてインストールできます.
ESS で knitr を使う方法に関する短い動画があります.
(歴史的背景に興味がある人向け) Simon Potter と lucialam の両氏が Emacs/knitr についてブログに書いています.
Gedit
gedit で外部ツールとして定義することができます. 以下は David Allen による方法です. 感謝.
Sublime
Andrew Heiss による KnitrSublime パッケージは Sublime Text 2 で LaTeX で knitr を使用する基本的な機能をサポートしています.
Vim
Jakson Aquino のおかげで Vim-R-Plugin knitr の包括的なサポートをしています.
TextMate
Applescript for TextMate 2 で使用するアプローチとして #252 や Chris Fonnesbeck のリポジトリ knitr.tmbundle を参照してください.
TeXShop
TeXShop で knitr を動作させる設定は簡単です. TeXShop の Engines
ディレクトリ (大抵の場合は ~/Library/TeXShop/Engines/
) の Knitr.engine
ファイルに以下を書き込むだけです.
#!/bin/bash
export PATH=$PATH:/usr/texbin:/usr/local/bin
Rscript -e "library(knitr); knit('$1')"
latexmk -pdf "${1%.*}"
Cameron Bracken と Fabian Greimel の厚情に感謝.
TeXworks
追加ツールの設定に関して TeXworks も Texmaker と似ています. 以下は Ubuntu でのスクリーショットです. StackExchange 回答してくれた Speravir に感謝. (Windows/Mac OS も Rscript
が PATH
にある限り同様にできるはずです).
Kile
tirip01 が以下のような方法を指摘しています.
Build
タブを開き,New..
を選んで,knitr
とタイプしFinish
を押します.General
タブからComannd
タブでRscript
と入力し, その下のOptions
フィールドで-e "knitr::knit2pdf('%source')"
とタイプします.Advanced
タブへ移動し, Rnw をSource extension
に設定し, pdf をTarget extension
に設定します.メニューから
Compile
を選択します.
Dr Marek Gągolewski も Configure Kile for knitr under GNU/Linux というブログ投稿でもっと複雑なアプローチを解説しています.