]> git.lyx.org Git - features.git/commitdiff
* add an extra parameter to lyxsweave.py that tells the document directory
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Sun, 12 Dec 2010 21:25:57 +0000 (21:25 +0000)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Sun, 12 Dec 2010 21:25:57 +0000 (21:25 +0000)
and use it to be able to read data files in there (bug #6623). It is probably possible to use sweave hooks instead of the module preamble. Moreover, I want to investigate the use of prefix.string argument of sweave to make sure that the output files end up in the tmp dir.
  * be more subtle in the way to change default encoding to handle the case where a data file that is read does not use the same encoding as the .rnw file.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36850 a592a061-630c-0410-9148-cb99ea01b6c8

lib/layouts/sweave.module
lib/scripts/lyxsweave.R

index a77fd1e09b552a58d25ffba6571f6e894202d67e..e1b25e554cd668efd6f26255d6d31c45709ae775 100644 (file)
@@ -17,6 +17,13 @@ ClassOptions
        Other          "noae"
 End
 
+Preamble
+       <<echo=F>>=
+         if(exists("ls.dir")) setwd(ls.dir)
+         if(exists("ls.enc")) options(encoding=ls.enc)
+       @
+EndPreamble
+
 Style Chunk
        Category              Sweave
        LatexType             Paragraph
index a8ab1849842204492793b5c16a79478aa3f6ac56..1723cd716606593d85cf35442b99cfaffd7e274e 100644 (file)
@@ -1,6 +1,7 @@
 # Wrapper around Sweave that sets up some things for LyX
 # argument 1 is the file name
 # argument 2 is the iconv name for the encoding of the file
+# argument 3 is the document directory
 
 ls.args <- commandArgs(trailingOnly=T)
 
@@ -8,8 +9,13 @@ ls.args <- commandArgs(trailingOnly=T)
 ls.sweavesty <- system("kpsewhich Sweave.sty", intern=T, ignore.stderr=T)
 ls.sp <- (length(ls.sweavesty) == 0)
 
-# set default encoding to the one of the file
+# set default encoding to the one of the file; it will be reset to previous
+# default by the sweave module
+ls.enc=getOption("encoding")
 options(encoding=ls.args[2])
 
+# pass document dir to sweave module
+ls.dir <- ls.args[3]
+
 #run sweave
 Sweave(ls.args[1], stylepath=ls.sp)