2010-08-18 82 views
1

使用R CMD Sweave我的.tex文件總是在我的HOME目錄中生成。有沒有可能改變這一點?我的意思是我可以用一個shell腳本的MV,但我想可以去看一些更好的把戲做如何更改R CMD Sweave的輸出目錄?

@Dirk: 我使用的是貼here和pdflatex沒有找到該文件,因爲它總是寫劇本到我的用戶的HOME目錄。

回答

0

所以這裏是我的工作...... R CMD Sweave沒有參數,但仍然是一個解決方法。 使用basename和dirname幫了很多:)

#!/bin/bash 

myfile=$(/usr/bin/osascript << EOT 
tell app "AppleScript Runner" 
activate 
    return posix path of (choose file) 
    end 
    EOT) 

    if [ $? -eq 0 ] 
    then 
     echo $myfile 
     R CMD Sweave $myfile 
     no_ext=`basename $myfile .Rnw` 
     directory=`dirname $myfile` 
     mv ~/$no_ext.tex $directory/$no_ext.tex 
     /usr/local/texlive/2009/bin/universal-darwin/pdflatex -output-directory  $directory $no_ext.tex 
     open $directory/$no_ext.pdf 
     else 
      echo "User canceled" 
      fi 
+0

@Dirk,這很奇怪,因爲在我的R代碼中我從來沒有使用HOME作爲wd。 – 2010-08-18 15:12:16

+0

我第一次甚至能夠使這個代碼與platypus一起工作。 – 2010-08-18 15:15:53

0

咦?它總是在當前工作目錄。因此,嘗試

mkdir foo 
mv whatever.Rnw foo 
cd foo 
R CMD Sweave whatever.Rnw 

whatever.tex現在將~/foo,因爲這是你)把源和b)調用的命令。

+0

只是編輯我的問題,指向鏈接中的腳本。腳本打開一個對話框,我可以選擇.Rnw文件(Mac OSX)。 – 2010-08-18 14:01:14

+0

然後,您可能會遇到a)該腳本和/或您的路徑出現問題,並且b)由於「R CMD Sweave」沒有出錯,這是一個特別惡劣的問題。 – 2010-08-18 14:03:03

+0

我不是怪'R CMD Sweave' :)。儘管如果有輸出目錄的參數,我可以使用它來代替文件。事實上,問題是$ myfile是從osascript返回的整個posix路徑,我無法正確分割它。但我必須分手的唯一原因是因爲我需要周圍的事情(因爲R CMD)。 – 2010-08-18 14:38:38