On Thu, Sep 27, 2012 at 3:56 PM, Scott Kostyshak <[email protected]> wrote:
> On Thu, Sep 27, 2012 at 1:40 PM, Yihui Xie <[email protected]> wrote:
>> Hi Scott,
>>
>> Attached is my patch. Now lyxknitr.R does not move files at all; all
>> old tricks are gone, and the R script is much cleaner. I have tested
>> it under Ubuntu.
>
> It looks a lot cleaner indeed.
>
>> I'm not sure you can commit it to the git repository, so I cc JMarc.
>>
>> BTW, I also updated the homepage of the knitr package from
>> yihui.github.com/knitr to yihui.name/knitr
>
> Great, thanks a lot Yihui! I will test this later.

Yihui, testing went well for me, both on the computer where I have an
encrypted home and on a different computer. Unfortunately, they are
both also Ubuntu. Do you think this needs further testing on
non-Ubuntu computers?

I updated the homepage of the knitr package in the example file. The
updated diff is attached.

Scott
diff --git a/lib/examples/knitr.lyx b/lib/examples/knitr.lyx
index ddbfe01..feab161 100644
--- a/lib/examples/knitr.lyx
+++ b/lib/examples/knitr.lyx
@@ -182,7 +182,7 @@ status collapsed
 
 \begin_layout Plain Layout
 
-http://yihui.github.com/knitr
+http://yihui.name/knitr
 \end_layout
 
 \end_inset
diff --git a/lib/layouts/knitr.module b/lib/layouts/knitr.module
index 694ae77..fe64359 100644
--- a/lib/layouts/knitr.module
+++ b/lib/layouts/knitr.module
@@ -1,7 +1,7 @@
 #\DeclareLyXModule[knitr->latex]{Rnw (knitr)}
 #DescriptionBegin
 #Uses the knitr package in R for dynamic report generation. This R package has 
to be installed for this module to work: install.packages('knitr'). Note it 
depends on R >= 2.14.1.
-#For more info see http://yihui.github.com/knitr
+#For more info see http://yihui.name/knitr
 #DescriptionEnd
 #Category: literate
 #Excludes: lilypond | sweave
diff --git a/lib/scripts/lyxknitr.R b/lib/scripts/lyxknitr.R
index 03150f2..7c029ea 100644
--- a/lib/scripts/lyxknitr.R
+++ b/lib/scripts/lyxknitr.R
@@ -11,7 +11,7 @@
 ## author Yihui Xie
 
 ## knitr is an alternative package to Sweave, and has more features
-## and flexibility; see https://yihui.github.com/knitr
+## and flexibility; see https://yihui.name/knitr
 
 ## Rscript $$s/scripts/lyxknitr.R $$p$$i $$p$$o $$e $$r
 ## $$p the path of the output (temp dir)
@@ -31,18 +31,7 @@ options(encoding = .cmdargs[3])
 ## can put your data files there and functions like read.table() can
 ## work correctly without specifying the full path
 setwd(.cmdargs[4])
+opts_knit$set(root.dir = getwd())
 
-## copy the Rnw file to the current working directory if it does not exist
-.tmp.file = tempfile(); .rnw.file = basename(.cmdargs[1])
-.rnw.exists = file.exists(.rnw.file)
-if (.rnw.exists) file.rename(.rnw.file, .tmp.file)
-file.copy(.cmdargs[1], '.')
 ## run knit() to get .tex or .R
-knit(.rnw.file, tangle = 'tangle' %in% .cmdargs)
-
-setwd(.cmdargs[4])
-## remove the copied .Rnw if it did not exist, otherwise move the original one 
back
-if (.rnw.exists) file.rename(.tmp.file, .rnw.file) else unlink(.rnw.file)
-file.rename(basename(.cmdargs[2]), .cmdargs[2])  # move .tex to the temp dir
-rm(.tmp.file, .rnw.file, .rnw.exists)  # clean up these variables
-
+knit(.cmdargs[1], output = .cmdargs[2], tangle = 'tangle' %in% .cmdargs)

Reply via email to