diff --git a/lib/layouts/sweave.module b/lib/layouts/sweave.module index a77fd1e09b..e1b25e554c 100644 --- a/lib/layouts/sweave.module +++ b/lib/layouts/sweave.module @@ -17,6 +17,13 @@ ClassOptions Other "noae" End +Preamble + <>= + if(exists("ls.dir")) setwd(ls.dir) + if(exists("ls.enc")) options(encoding=ls.enc) + @ +EndPreamble + Style Chunk Category Sweave LatexType Paragraph diff --git a/lib/scripts/lyxsweave.R b/lib/scripts/lyxsweave.R index a8ab184984..1723cd7166 100644 --- a/lib/scripts/lyxsweave.R +++ b/lib/scripts/lyxsweave.R @@ -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)