Until fixed, one way to fool R here without changing the vignette or
anything else seems to be (verified on Windows):

mkdir figures
set SWEAVE_OPTIONS=prefix.string=figures/fig
R CMD Sweave foo.Rnw

That obviously has some limitations.

/Henrik


On Mon, Apr 14, 2014 at 5:28 AM, Martin Maechler
<maech...@stat.math.ethz.ch> wrote:
>>>>>> Marc Schwartz <marc_schwa...@me.com>
>>>>>>     on Sun, 13 Apr 2014 10:22:55 -0500 writes:
>
> [on the R-SIG-Mac  mailing list] :
>
>     > Hi all,
>     > With R version 3.1.0 on OSX, using either the Snow Leopard or the 
> Mavericks binary installation on a Mac with fully updated Mavericks, there 
> has been a change in behavior since 3.0.3.
>
> I've just written to R-core about this:
>
>     R CMD Sweave
>
> has *serious* problems also in the very simple case when it
> should produce figures: They are not available after the
> completion of R CMD Sweave,
> confirming your  'deletes non tex files created upon batch mode exit'
>
> So this is not related to OSX only, but also a big problem
> at least on other *nix descendent platforms, such as Linux.
>
> In short, failure (no graphic produce in the example below) by
>
>    R CMD Sweave foo.Rnw
>
> but all is fine with using Sweave(), as you Marc, noted, and hence with
>
>    Rscript -e 'Sweave("foo.Rnw")'
>
> ... and to answer your question:
> No this was not intended and is probably one of the bigger /
> most embarrassing bugs in a newly released version of R
> in my view:
>
> Basically  'R CMD Sweave' is partly broken in R 3.1.0.
> Yes, this should never have happened.
>
> I had to partially revert the R 3.1.0 installation here (our
> statistics dept), by making R 3.0.3 the default 'R'
> for now, as we are relying on 'R CMD Sweave ..' in many places.
>
> Personally I've never noticed the problem, as I seem to always
> Sweave from ESS (Emacs speaks statistics) which calls  Sweave()
> in R, and that works fine, also in  R 3.1.0, as you've already
> noted
>
> Martin Maechler, ETH Zurich
>
> %------------------------------------------------------------
> \documentclass[12pt]{article}
> \usepackage{Sweave}
> \begin{document}  Just a simple graphic
>
> <<qqnorm, fig=TRUE>>=
> qqnorm(rnorm(20))
> @
>
> and that's all, folks!
> \end{document}
> %------------------------------------------------------------
>
>     > I have a master .Rnw file which runs a series of outputs from multiple 
> R code files, each called in BATCH mode using system() from within the master 
> .Rnw file. The output of the R code files go to separate text files in order 
> to catch some of the function call output that would not otherwise be 
> included in the resultant .tex file due to output redirection.
>
>     > Those text files are then included in the resultant .tex file using, 
> for example:
>
>     > \lstinputlisting[caption={}]{test.out}
>
>     > directives which are included in the .Rnw source file.
>
>     > A simple example to replicate the observed behaviors.
>
>     > The test.Rnw file content:
>
>     > %% R CMD Sweave test.Rnw
>     > <<results=tex,echo=false>>=
>     > system("R CMD BATCH test.R test.out")
>     > @
>
>
>     > The test.R file content:
>
>     > options(echo = FALSE)
>     > options(useFancyQuotes = FALSE)
>     > installed.packages()
>
>
>     > On version 3.0.3, the file test.out is created, along with test.tex. 
> test.out contains the output of installed.packages(). I did not include the 
> aforementioned listing directive in test.Rnw here for simplicity.
>
>     > On version 3.1.0, the file test.out is created, but when the R CMD 
> Sweave command exits and returns to the CLI in the console, test.out is 
> deleted, presumably as part of a post R batch session clean up process. The 
> file test.tex is retained.
>
>     > I uninstalled 3.1.0 and reinstalled 3.0.3 and observed the prior 
> behavior. I then tried clean installs of both the Snow Leopard and Mavericks 
> 3.1.0 binaries, with the new behavior observed in both cases.
>
>     > In reading the NEWS file for 3.1.0, there are multiple references to 
> Sweave, but there is nothing explicit about this new behavior.
>
>     > I should note that when the .Rnw file is run from within an R 3.1.0 
> interactive session using:
>
>     > Sweave("test.Rnw")
>
>     > the test.out file is created and not deleted upon the function exit, or 
> when exiting the R session back to the console.
>
>     > Thus, this new behavior seems to be limited to running Sweave from the 
> CLI using R CMD. It is not clear to me if this new behavior is by design or 
> perhaps an unintended consequence of changes elsewhere in Sweave processing 
> or in the handling of R in BATCH mode.
>
>     > When watching the folder where the file output activity takes place, I 
> note that a file .build.timestamp is created and then deleted, which leads me 
> to believe that the new functions fileSnapshot() and changedFiles() are being 
> used in the course of processing R in BATCH mode. If that is correct and 
> there is a clean up step that is occurring upon BATCH mode exit, which 
> deletes all files and folders other than .tex files, is it possible that this 
> process is being overly aggressive? Or if not, is there a way to not have 
> these files deleted or have a protected folder where these files can be 
> retained?
>
>     > Thanks for any insights.
>
>     > Regards,
>
>     > Marc Schwartz
>
> ______________________________________________
> R-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to