当前位置:  开发笔记 > 开发工具 > 正文

开发Sweave文档的建议

如何解决《开发Sweave文档的建议》经验,为你挑选了3个好方法。

我正在寻求简化我的Sweave文档创建,我想听听人们当前的设置.我觉得圣杯是这样的:

在屏幕的一半上编辑Rnw代码

单个键绑定编译Sweave文档并运行pdflatex

在屏幕的另一半上查看PDF; 编译完成后,PDF将刷新并以您正在编辑的文档部分为中心

如果编译有错误,请将PDF替换为编译结果(例如乳胶错误或Sweave错误)

我猜/希望解决方案是Emacs/ESS的一部分,结合Emacs配置文件的一些代码和/或一个漂亮的Makefile.但我真的很想知道每个人创建Sweave和/或Latex文档的首选方法.



1> Dirk Eddelbu..:

我谈过的一些其他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



2> Shane..:

您可以使用Eclipse的StatET插件执行您建议的所有操作.这就是我用于Sweave开发的东西; 它非常了解乳胶和R,包括语法高亮等.

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

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

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


我同意.Sweave,StatET和Eclipse可以很好地协同工作.我写了一篇文章,描述了使用Eclipse http://bit.ly/adfhZ1配置Sweave的一种方法

3> Sharpie..:

我在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版本中.

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有