19

これで、Mac OS X 10.6マシンですべてが正しく機能するようになり、Rコード、出力、およびLaTeXフォーマットのスニペットを一緒に含むSweaveを使用して見栄えの良いLaTeXドキュメントを作成できるようになりました。残念ながら、私のワークフローは少し不格好で非効率的だと感じています。

  1. TextWranglerを使用して、LaTeXコードとRコード(Rコードチャンクの上と下の<< >> =で囲まれています)を1つの.Rnwファイルにまとめて記述します。

  2. 変更を保存した後、Sweaveコマンドを使用してRから.Rnwファイルを呼び出します

    Sweave(file="/Users/mymachine/Documents/Assign4.Rnw", 
            syntax="SweaveSyntaxNoweb")
    

    それに応じて、Rは次のメッセージを出力します。

    これで、「Assign4.tex」でLaTeXを実行できます。

    そこで、Rディレクトリで.texファイル(Assign4.tex)を見つけ、それを~/Documents/.Rnwファイルが置かれているドキュメント内のフォルダーにコピーします(すべてを1か所に保持するため)。

  3. 次に、TeXShopで.texファイル(Assign4.texなど)を開き、そこでpdf形式にコンパイルします。この時点でのみ、ドキュメントに加えた変更を確認し、「見栄えが良い」かどうかを確認できます。

ボタンを1回クリックするだけですべてをコンパイルできる方法はありますか? 具体的には、TextWranglerまたはTeXShopから直接Sweave/Rを呼び出すと便利です。ターミナルでスクリプトをコーディングしてそれを行うことは可能かもしれないと思いますが、ターミナルの経験はありません。

ワークフローを合理化または改善するために他にできることがあれば教えてください。

4

11 に答える 11

12

MakefileSweaveドキュメントには次のフォームを使用します。

pdf: myfile.tex
    R CMD texi2pdf myfile.tex

myfile.tex: myfile.Rnw
    R CMD Sweave myfile.Rnw

次に、コマンドを実行して、MacOSターミナルで1つのステップでドキュメントを作成できます。make pdf

これをMacOSXのワンクリックの目標に近づける方法があると確信していますが、これは私にとっては十分に機能します。

于 2011-02-07T14:59:46.390 に答える
9

Gregor Gorjanc による Sweave.sh スクリプトを使用すると、TeXShop でワンクリック Sweaving を簡単に実行できます。http://cran.r-project.org/contrib/extra/scripts/Sweave.shから取得し、フォルダーに配置し~/Library/TeXShop/bin/ます。

~/Library/TeXShop/engines/次に、次のファイルをフォルダーに追加します。

としてSweave.engine

#!/bin/bash
~/Library/TeXShop/bin/Sweave.sh  -ld "$1"

としてSweaveNoClean.engine

#!/bin/bash
~/Library/TeXShop/bin/Sweave.sh  -nc -ld "$1"

実行を許可するには、Sweave.sh と 2 つのエンジン ファイルにアクセス許可を設定する必要があります。

ワンクリックで Sweave するには、これらのファイルを追加した後に TeXShop を再起動し、Sweave ドキュメント (拡張子は Rnw) を開き、ドキュメント ウィンドウの上のドロップダウン メニューで、LaTeX から Sweave または SweaveNoClean に変更します。

注意: 「Sweave」オプションは、LaTeX と Sweave が作成するすべての余分なファイルを削除して、それ自体の後にクリーンアップします。ファイルが myfile.Rnw という名前の場合、これには myfile.R および myfile.tex という名前のファイルが含まれます。賢明な言葉: Rnw ファイルのベース名が一意であることを確認してください。そうすれば、予期せぬことが上書きされて削除されることはありません。

SweaveNoClean オプションは、それ自体の後でクリーンアップしません。これにより、予期しないものを削除しないようにすることができます。ただし、myfile.Rnw を Sweave すると、myfile.tex というファイルを上書きできます。これは、作成されたグラフィックを完全なタイプセット文書から分離したい場合に備えて、削除しません。

于 2011-02-07T16:33:42.710 に答える
8

bashシェルコマンドライン:

R CMD Sweave foo.Rnw && pdflatex foo.tex

Sweaveを実行し、それが成功した場合はpdflatexを実行します。アウトはPDFをポップします。これをbashターミナルに持っている場合は、上矢印を押して元に戻し、もう一度やり直してください。そしてまた。そしてまた。

Makefileソリューションも良いです。

于 2011-02-07T15:03:36.653 に答える
8

RStudioには、これを一度に行うボタンがあります。1 つの注意点は、独自のセッションで実行されるため、設定したワークスペース変数は無視されることです。

コンパイルボタン

于 2011-04-06T16:27:04.957 に答える
7

注意: texi2dvi (ツール パッケージ内) を使用して、R から直接 pdflatex などを実際に呼び出すことができます。例えば:

Sweave(file="/Users/mymachine/Documents/Assign4.Rnw")

texi2pdf("Assign4.tex")

Rnw ファイルを pdf にコンパイルします。したがって、tex->pdf ステップを処理するために R を離れる必要はありません。

于 2011-11-19T05:25:54.557 に答える
2

これら (sweave.engine および sweavebibtex.engine として保存) を texshop のカスタム エンジンに使用します。私は通常、R でコード チャンクを作成し、そのブロックを texshop で開いている rnw ファイルにコピーします。同じドキュメント (emacs ではない) で R と tex の構文の強調表示とスペル修正を実行できるソリューションが欲しいです。

#!/bin/bash
echo 'SWEAVE | PDFLATEX. Custom engine--Akasurak-16Nov2009'
export PATH=$PATH:/usr/texbin:/usr/local/bin
R CMD Sweave "$1"
pdflatex "${1%.*}"

2 つ目は、bibtex も実行します。

#!/bin/bash
date
before="$(date +%s)"
echo 'SWEAVE | PDFLATEX | BIBTEX | PDFLATEX | PDFLATEX. Custom engine--Akasurak-16Nov2009'
#Updated 20Jul2010 for auto including Sweave.sty


export PATH=$PATH:/usr/texbin:/usr/local/bin

R CMD Sweave "$1"
R CMD pdflatex "${1%.*}"
bibtex  "${1%.*}.aux"
R CMD pdflatex "${1%.*}"
R CMD pdflatex "${1%.*}"


after="$(date +%s)"
elapsed_seconds="$(expr $after - $before)"
date
echo Elapsed time '(m:s)': $(date -r $elapsed_seconds +%M:%S)

それらが物事を行うための最良の方法であるとは言えませんが、機能します。

于 2011-03-11T18:31:49.497 に答える
2

Aquamacs または Eclipse を使用して.Rnwファイルを編集し、次のシェル関数を使用してコンパイルおよび表示します。

sweaveCache () {
  Rscript -e "library(cacheSweave); setCacheDir(getwd()); 
    Sweave('$1.Rnw', driver = cacheSweaveDriver)" && 
  pdflatex --shell-escape $1.tex && 
  open $1.pdf
}

ドライバーを使用していることに注意してくださいcacheSweave。これにより、実行に時間がかかるコード セクションを頻繁に再実行することを回避できます。

ところで、私はSweave の代わりにBabelに切り替えようとしています。どちらをより頻繁に使用することになるかはわかりませんが、Babel には確かに好きな側面があります。

于 2011-03-16T16:08:25.937 に答える
2

最善の解決策は次のとおりです。TeXShop が使用する新しい *.engine を作成し、ショートカットまたは 1 ボタンを使用してタイプセットします。

http://cameron.bracken.bz/sweave-for-texshop

キャメロンも非常に反応が良いので、彼のソリューションを強くお勧めします.

于 2011-04-05T19:54:31.057 に答える
1

(有料) ソリューションへの切り替えを受け入れる場合、TextMateには Sweave プラグインがあり、.Rnw から PDF にワンステップで移動できます: Sweave、タイプセット、およびビュー。PDF をリロードするように構成できる Skim と組み合わせると、ファイルの微調整が非常に簡単になります。

于 2011-02-07T16:08:44.677 に答える
1

これと同じ問題があり (私は Mac OSX を使用しています)、Eclipse Classic 3.6.2 をダウンロードすることにしました。次に、StatET プラグインをインストールしました。設定するのは少し面倒ですが、一度この環境を実行すると、pdflatex を使用して .Rwn Sweave ドキュメントをワンクリックでコンパイルし、お気に入りのビューアーのオプションを設定できるため、コンパイル時に .pdf が自動的にポップアップするので便利です。 TeXShopで。これは TeXShop でも行うことができますが、TeXShop は .Rnw ファイルのデバッグにはお粗末であり、.Rwn ファイル内の R コードを強調表示しません。Eclipse では、R と LaTeX のコードを簡単に区別できるように、構文の強調表示をカスタマイズできます (Texclipse の端からは最高ではありませんが、問題ありません)。R コンソールは Eclipse 内から起動することもでき、グラフィカルなオブジェクト ブラウザーを備えています。とにかく、私は続けることができました。

于 2011-03-12T07:35:55.213 に答える
1

私はこれについてパーティーに遅れていると思いますが、Eclipse に基づく私の Sweave ワークフロー (ワンタッチ スウィーブを使用) を文書化した Web ページをまとめました。

http://www.stanford.edu/~messing/ComputationalSocialScienceWorkflow.html

于 2011-03-20T04:35:52.250 に答える