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 文書を処理するためのカスタムコマンドを定義できます.

Texmaker でユーザーコマンドを定義する

図 4.1: Texmaker でユーザーコマンドを定義する

Rの実行ファイルパスが PATH 環境変数にない場合, 上記のコマンドに Rscript.exe のフルパスを書く必要があります. こんなかんじに:

"C:/Program Files/R/R-2.14.2/bin/Rscript.exe" -e "knitr::knit2pdf('%.Rnw')"

Rscript.exe の場所さえ知っていれば, R を開いて R.home('bin') を実行すれば見つけられます. そうすればどんな Rnw 文書ファイルに対しても, この knitr コマンドでコンパイルすることができます.

Texmaker で knitr コマンドでコンパイルする

図 4.2: Texmaker で knitr コマンドでコンパイルする

文書をコンパイルするには左向きの矢印をクリックし, PDF を表示するのに右矢印をクリックします. もちろん上記の設定は Windows のものですが, 他のシステムでも同じ要領です. Rscript.exeRscript に置き換えてください (実際は Windows 環境でも Rscript が使えます).

TeXStudio

一例として, 基本的には Texmaker と同様に設定することができます (Henrik Nyhus と Paul J. Hurtado に感謝)

TeXStudio での knitr

図 4.3: TeXStudio での knitr

上級者向けオプション (左下) を解放すれば, 下部に 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 によるものです. 私は全てを確認していませんが, おおよそ良さそうだと思います.

  1. Options -> Execution Modes -> PDFTeXify へ移動する. それから実行可能な Rscript.exe (例: C:\Program Files\R\R-2.14.2\bin\Rscript.exe) を探し, それを選択する
  2. Switches-e を入力し, Parameters"knitr::knit2pdf('%n%t')" を入力する.

そして F9 をタイプすれば, PDF を開くのを含めて全てが一度に実行されます.

Phil に感謝.

Emacs/ESS

12/9 以降, knitr は公式に ESS にサポートされています. Debian/Ubuntu をお使いの場合, 以下のようにしてインストールできます.

sudo apt-get install ess

ESS で knitr を使う方法に関する短い動画があります.

(歴史的背景に興味がある人向け) Simon Potterlucialam の両氏が Emacs/knitr についてブログに書いています.

Gedit

gedit で外部ツールとして定義することができます. 以下は David Allen による方法です. 感謝.

Rscript -e "library(knitr); knit('$GEDIT_CURRENT_DOCUMENT_NAME')"

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

TeXShopknitr を動作させる設定は簡単です. 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 BrackenFabian Greimel の厚情に感謝.

TeXworks

追加ツールの設定に関して TeXworks も Texmaker と似ています. 以下は Ubuntu でのスクリーショットです. StackExchange 回答してくれた Speravir に感謝. (Windows/Mac OS も RscriptPATH にある限り同様にできるはずです).

TeXworks で knitr を使う

図 4.4: TeXworks で knitr を使う

Kile

tirip01 が以下のような方法を指摘しています.

  1. Build タブを開き, New.. を選んで, knitr とタイプし Finish を押します. General タブから Comannd タブで Rscript と入力し, その下の Options フィールドで -e "knitr::knit2pdf('%source')" とタイプします.

  2. Advanced タブへ移動し, Rnw を Source extension に設定し, pdf を Target extension に設定します.

  3. メニューから Compile を選択します.

Dr Marek Gągolewski も Configure Kile for knitr under GNU/Linux というブログ投稿でもっと複雑なアプローチを解説しています.

Tinn-R

Tinn-R は knitr v2.3.7.3 以降からサポートを開始しました.