8

ここで、stackoverflow で尋ねた以前の質問への回答を理解するのに苦労しています。

より効率的な R / Sweave / TeXShop ワークフロー?

特に答えはユーザーからのものです: las3rjock は、「makefile」を作成し、makefile を実行して、R (Sweave) で、次に LaTeX で .Rnw のコンパイルを自動化することを提案しています。メイクファイルが何か、または Mac OS X のターミナル (?) でどのように使用するかがわかりません。メイクファイルを作成して実行するには、手を握る必要があると思います。

前の質問の las3rjock からの回答を利用して、Sweave / LaTeX を実行するためのメイクファイルを作成する方法について、誰かが「ダミー」の指示を与えることができますか? ありがとうございました!

4

5 に答える 5

11

Sweave の makefile を使い始めるためのリンクを掲載した投稿を書きました。

投稿から:

4 つのサンプル Sweave ドキュメントも投稿しました。それぞれの完全なソース コードは github で入手できます。それぞれがメイクファイルを使用します。最初の 2 つのチュートリアルでは、makefile の詳細について説明します。

于 2011-02-08T05:46:18.667 に答える
7

メイクファイルは、一連のアクションを介して一連の「依存関係」を指定して「ターゲット」を作成する方法を指定するプレーン テキスト ファイルです。ターゲットは、左側に「:」が付いたもので、依存関係はその行の残りの部分にあります。後続のインデントされた行は、ターゲットにする必要があるアクションです。

たとえば、LaTeX の場合、.pdf ファイルが最終的なターゲットであり、それは .tex ファイルに依存します。したがって、pdflatex を実行するアクションがあります。.tex 自体は .Rnw ファイルから作成されるため、Sweave を実行して foo.Rnw から foo.tex を作成する別のルールがあります。

make の優れた点は、依存関係のタイムスタンプをチェックすることです。もともとは、多くのファイルに分割された大きな C プログラムをコンパイルするためのものでした。最終的なプログラムをコンパイルするとき、変更していないすべての .C を再コンパイルしても意味がないため、Makefile は変更された .C ファイルをコンパイルし、すべての .o ファイルを実行可能ファイルにリンクするだけです。

Make は、元のスキームをはるかに超えて活用され、新しい自動ビルド ソリューションが利用できるようになったため、cmake、ant、maven、およびその他の多くのものについての言及が表示される場合があります。どれが半分なのかわからない。

于 2011-02-07T16:55:22.670 に答える
4

前の質問とこれを読んだところですが、ここに私が Mac OS X 用に書いた小さなシェル スクリプトがあります。

#!/bin/sh
R CMD Sweave yourfile.Rnw
for file in `ls pdfs`;
do pdfcrop "$file" pdfs/"$file"
done
pdflatex yourfile.tex
open yourfile.pdf

わからない場合は、このスクリプトを実行可能にしchmod +x yourscriptfile.shてから実行することができ./yourscriptます。最初の行は、.tex ファイルの Sweave 作成を開始します。for ループはオプションです。.pdf グラフィックをサブフォルダーにトリミングするために使用されます。これは、R のプロット内でマージンを処理するよりもはるかに簡単であることがわかりました。特に、.pdf レポートの位置を最適化したい場合はそうです。

ワークフローに関しては、次のことを行います。 1. R オブジェクトに出力されるすべてのもの (関数の結果やグラフィックスなど) を保存します。2. Sweave で分析全体のソースとなる小さな行を使用するだけです。そうすれば、私の Sweave ドキュメントには LaTeX 以外のコードがほとんど含まれず、便利なままになります。テキストを編集するときはいつでも、sweave ファイルを編集する必要があります (または、計算を更新する必要がない場合、または .tex ファイルのみが必要な場合)。

HTH

于 2011-02-07T18:20:53.150 に答える
3

Makefileドキュメントが保存されている場所という名前のファイルを作成して開きます。

彼が入力したコードをコピーして貼り付けます(生成するファイルの名前Makefileに置き換えることを忘れないでください)myfile

ドキュメントディレクトリでコンソールを開き、次のように入力しますmake pdf

于 2011-02-07T16:40:17.713 に答える