You might consider using odfWeave, then you can create a single document, save 
it as a word doc, and send it to collaborators where they can then cut and 
paste from the word doc to whatever they are using.

-- 
Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
Intermountain Healthcare
greg.s...@imail.org
801.408.8111


> -----Original Message-----
> From: r-devel-boun...@r-project.org [mailto:r-devel-bounces@r-
> project.org] On Behalf Of Meyer, Sebastian
> Sent: Wednesday, March 23, 2011 5:08 AM
> To: 'r-devel@r-project.org'
> Cc: 'friedrich.lei...@lmu.de'
> Subject: [Rd] Sweave: multiple graphic formats, e.g. win.metafile
> 
> Dear R devel,
> 
> being constrained to a windows environment at work and having
> colleagues being accustomed to the Microsoft Office Suite, I was
> looking for a way to have the RweaveLatex driver for Sweave
> automatically generating 'win.metafile's in addition to the pdf
> graphics.
> Without this functionalilty, the generation of emf-graphics is quite
> laborious, I think:
> 
> <<>>=
> plotit <- function () {
>    # code which generates the graphic
> }
> win.metafile("foobar.emf")
> plotit()
> dev.off()
> pdf("foobar.pdf")
> plotit()
> dev.off()
> @
> \includegraphics{foobar}
> 
> 
> I would like to have something like:
> 
> <<foobar, fig=true, pdf=true, emf=true>>
> # code which generates the graphic
> @
> 
> 
> SweaveHooks are not applicable for this feature. Therefore, I thought
> it would be best to extend the typical 'RweaveLatex' driver by an
> option 'emf' - like eps and pdf. So, here is the result of some
> handicrafts:
> 
> RweaveLatexEMF <- function ()
> {
>       # add option emf (= FALSE) and set default for eps to FALSE
>       setup <- utils::RweaveLatexSetup
>       setupsrc <- deparse(setup)
>       epsline <- grep("eps", setupsrc)
>       setupsrc[epsline] <- sub("eps = TRUE", "eps = FALSE, emf =
> FALSE", setupsrc[epsline])
>       setup <- eval(parse(text=setupsrc))
> 
>       # 'makeRweaveLatexCodeRunner' function
>       makeruncode <- function(evalFunc=utils::RweaveEvalWithOpt) {
>               runcode <- utils:::RweaveLatexRuncode
>               runcodesrc <- deparse(runcode)
>               epsline1 <- grep("cat(.. eps..)", runcodesrc)
>               runcodesrc <- append(runcodesrc, "            if
> (options$emf) cat(\" emf\")", after=epsline1)
>               epsline2 <- grep("options\\$fig && options\\$eval",
> runcodesrc)
>               runcodesrc <- append(runcodesrc,
>                       deparse(quote(
>                               if (options$emf && .Platform$OS.type ==
> "windows") {
>                           grDevices::win.metafile(file=paste(chunkprefix,
> "emf", sep="."),
> 
> width=options$width, height=options$height)
>                           err <- try({SweaveHooks(options, run=TRUE)
>                                       eval(chunkexps, envir=.GlobalEnv)})
>                           grDevices::dev.off()
>                           if(inherits(err, "try-error")) stop(err)
>                       }
>                       ))
>               , after=epsline2)
>               runcode <- eval(parse(text=runcodesrc))
>       }
>       runcode <- makeruncode()
> 
>       list(setup = setup, runcode = runcode,
>         writedoc = utils::RweaveLatexWritedoc, finish =
> utils::RweaveLatexFinish,
>         checkopts = utils::RweaveLatexOptions)
> }
> 
> 
> This enhanced Sweave driver works for me like a charm, but it is a very
> poor solution.
> What about allowing for all available grDevices on the current platform
> - besides the standard eps and pdf devices? The only building block is
> the section "if (options$fig && options$eval)" in
> utils:::makeRweaveLatexCodeRunner. The TODO list of Seth Falcon's
> weaver package also states "For Sweave: multiple graphic formats
> besides just pdf and eps (perhaps
> as a separate driver?)".
> However, since so many packages depend on the basic Sweave
> implementation by Fritz Leisch, I don't know if there is an easy route
> to tackle.
> 
> Looking forward to your opinions and pointers.
> Best regards,
>   Sebastian Meyer
> 
> ______________________________________________
> 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