From 425f46bea5508477eab646bb61a66ee7676d7c8a Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Sun, 12 Dec 2010 21:25:57 +0000 Subject: [PATCH] * add an extra parameter to lyxsweave.py that tells the document directory 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 | 7 +++++++ lib/scripts/lyxsweave.R | 8 +++++++- 2 files changed, 14 insertions(+), 1 deletion(-) 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)