开发Sweave文档的建议

我期待简化我的Sweave文档创建,并且我想听听人们目前的设置。 我觉得圣杯就像这样:

  • 在屏幕的一半上编辑Rnw代码
  • 单键绑定编译Sweave文档并运行pdflatex
  • 在屏幕的另一半上查看PDF; 一旦编译完成,PDF就会刷新并集中在正在编辑的文档部分
  • 如果编译有错误,请将PDF替换为编译结果(例如胶乳错误或Sweave错误)
  • 我猜/希望解决方案是Emacs / ESS的一部分与Emacs配置文件的一些代码和/或一个不错的Makefile的组合。 但我真的很想听听每个人创建Sweave和/或Latex文档的首选方式。


    我谈到的其他一些R用户使用“每个项目一个目录”的设置和一个简单的Makefile。 正如你怀疑的那样,Emacs / ESS可以很好地工作。

    我倾向于调用一个简单的shell脚本sweave ,这是我在添加'R CMD Sweave'之前编写的(因为我发现重新创建或复制Makefile不吸引人,YMMV)。 我也使用Emacs和一个自动刷新的PDF查看器(如okularkpdf )。 Emacs23也可以直接预览PDF文件,但我还没有将工作流程切换到该文件。

    edd@ron:~$ cat bin/sweave
    #!/bin/bash -e
    
    function errorexit () {
        echo "Error: $1"
        exit 1
    }
    
    function filetest () {
        if [ ! -f $1 ]; then
           errorexit "File $1 not found"
        fi
        return 0
    }
    
    
    if [ "$#" -lt 1 ]; then
        errorexit "Need to specify argument file"
    fi
    
    
    BASENAME=$(basename $1 .Rnw)
    
    RNWFILE=$BASENAME.Rnw
    filetest $RNWFILE
    echo "library(tools); Sweave("$RNWFILE")" 
          | R --no-save --no-restore --slave
    
    LATEXFILE=$BASENAME.tex
    filetest $LATEXFILE && pdflatex $LATEXFILE
    

    您可以使用Eclipse的StatET插件来完成您提出的所有任务。 这就是我用于Sweave开发的原因; 它非常了解latex和R,包括语法高亮等。

    你可以在这里找到它:http://www.walware.de/goto/statet。

    Longhow Lam已经写了一个很好的指南:http://www.splusbook.com/Rintro/R_Eclipse_StatET.pdf。

    http://www.statalgo.com/?p=93


    我在OS X上使用TeXShop生成所有的LaTeX和Sweave报告。 对我来说,一个新的编译流水线就像添加一个名为Sweave.engine的文件到~/Library/TeXShop/Engines/那样简单,它包含以下内容:

    #!/usr/bin/env Rscript
    args <- commandArgs(T)
    
    fname <- strsplit(args[1],'.')[[1]][2]
    
    Sweave(paste(fname,'Rnw',sep='.'))
    
    system(paste('pdflatex',paste(fname,'tex',sep='.')))
    

    Sweave现在是一种在TeXShop中编译文档的可选方法。 通过将以下TeX hash-bang添加到文件的顶部,我可以将其设置为文档的默认值:

    % !TEX TS-program = Sweave
    

    打到Cmd-T将排版文档 - pdf会自动弹出一个单独的窗口。 TeXShop还集成了SyncTeX技术,因此在Rnw源中的Cmd-Click将突出显示PDF窗口中的相应输出,并且PDF窗口中的Cmd-Click将突出显示Rnw源中的相应输入。

    TeXShop是mac-only,但基于Qt / poppler的克隆TeXworks可用于Linux,Windows和Mac,并支持许多相同的功能 - 包括TeX hash-bangs和SyncTeX。 TeXworks已经达到了成熟的程度,它被包含在用于Windows的MikTeX软件包2.8版中。

    链接地址: http://www.djcxy.com/p/26905.html

    上一篇: Recommendations for developing Sweave documents

    下一篇: How to get information about error from HttpContext in WCF services