18

我希望简化我的Sweave文档创建,并且我想了解人们当前的设置。我觉得圣杯是这样的:

  • 在屏幕的一半上编辑 Rnw 代码
  • 单键绑定编译 Sweave 文档并运行 pdflatex
  • 在屏幕的另一半查看 PDF;编译后,PDF 会刷新并以您正在编辑的文档部分为中心
  • 如果编译有错误,请将 PDF 替换为编译结果(例如 Latex 错误或 Sweave 错误)

我猜测/希望解决方案是 Emacs/ESS 的一部分,结合了 Emacs 配置文件的一些代码和/或一个不错的 Makefile。但我真的很想听听每个人创建 Sweave 和/或 Latex 文档的首选方式。

4

6 回答 6

9

我交谈过的其他一些 R 用户使用“每个项目一个目录”设置和一个简单的 Makefile。正如您所怀疑的,这适用于 Emacs/ESS。

我倾向于只调用sweave我在添加“R CMD Sweave”之前编写的一个简单的 shell 脚本(因为我发现重新创建或复制 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
于 2009-09-04T15:17:05.213 回答
6

您可以使用 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

于 2009-09-04T18:59:31.363 回答
6

我在 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,但基于 Qt/poppler 的出色克隆TeXworks可用于 Linux、Windows 和 Mac,并支持许多相同的功能——包括 TeX hash-bangs 和 SyncTeX。TeXworks 已经达到了一定的成熟度,它包含在 Windows 版MikTeX包的 2.8 版中。

于 2009-09-24T01:09:25.210 回答
3

试试RStudio

正如之前的答案中提到的,我一直是EmacsTeXShop的粉丝。

然而,Rstudio 开始赢得我的青睐。它是一个快速改进的 R 专用 IDE。绝对值得一试。

我仍然喜欢在Mac的标准 R IDE中执行某些仅限 R 的开发任务。但同时对于 Sweave 文档和一些相关的 R 开发,RStudio 胜出。它几乎可以进行零调整。我不确定原始问题后半部分中与 PDF 相关的功能。

于 2011-09-10T06:59:54.807 回答
2

为我节省了一些时间的一件事是 emacs 中的“自动插入”模式。我已经设置好了,每次我打开一个新的 .rnw 文件时,emacs 都会自动设置一个基本的文档模板,我需要做的就是开始编写我的报告。

更新:我已经放弃了自动插入。现在我使用“template.el”方法。

于 2009-11-03T15:54:21.097 回答
1

我也使用“每个项目一个目录”和 Makefile 方法。我还包括在 HTML 中创建输出的命令,然后可以使用 tth 将其转换为 OOo 和 MS Word。这对我来说很重要,因为我的很多合作者都是 MS Office 用户并且拒绝使用 PDF 输出。我从范德比尔特的 Frank Harrell 的 twiki 学到了很多关于如何做到这一点的知识。

我个人使用 gvim 作为我选择的编辑器,并且从那里运行make非常简单,因为它来自 Emacs。

于 2009-09-05T09:53:31.333 回答