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)
