校对从大型多文件Sweave项目派生的书籍,论文或报告的PDF

时间:2011-03-19 06:15:18

标签: r sweave

我是可重复研究的忠实粉丝。 我经常使用make,Sweave,LaTeX和R来生成大型研究报告(即大量Sexpr()命令和大量图表和表格。)

显然,R CMD Sweave在编译时识别R代码块中的某些错误。 但是生成的PDF仍然可能包含不良结果。 我有一些校对这些文件的策略,但我有兴趣在SO上向其他人学习。

问题:

  1. 在制作基于大型多文件Sweave项目的PDF时,有没有人有任何与校对和质量控制相关的提示或技巧?
  2. 您在生成的PDF中遇到的最常见错误是什么?
  3. 如何有效识别生成的PDF中的错误?
  4. 如何在PDF和Rnw源之间高效移动?

3 个答案:

答案 0 :(得分:4)

我不确定这是否是您正在寻找的,但如果您使用emacs,auctex和emacs说统计数据,大多数问题都可以解决。它们都在Linux存储库中可用,并且有一个可用于Windows的预编译二进制文件http://vgoulet.act.ulaval.ca/en/emacs/windows/

Emacs的主要优点是你可以将R控制台放在一个窗口中,将你的tex源放在另一个窗口中,Emacs将在.Rnw文件中适当地突出显示LaTeX和R,这真的帮助我发现了错误。您还可以评估R代码的小区域,并在TeX中预览表格和其他对象。它绝对是一个学习曲线,但我已经使用了大约一个月,它已经让我在可重复的研究中提高了约50%的效率。一旦你知道了一些键绑定就很直观,而另一个优点是Emacs几乎可以为太阳下的每个编程语言提供模式,这意味着学习如何使用它的时间将会一次又一次地回报。 进一步来说 1)Emacs在这里帮助语法高亮和预览区域,以确保特定的表格按您的方式格式化,没有丢失的行或标签。 2)我通常最终会犯拼写错误并打包丢失错误,因为我倾向于在文档的多次传递中开发我的统计分析。 3)Emacs将发现任何编译错误,并且可以在编译整个文档之前单独测试R代码。 4)如果你使用命令sweave(Alt + m,s),然后编译到LateX ctrl c,(通常两次获得标签和Bibtex右)另一个ctrl c将打开PDF进行查看(遗憾的是,它没有打开默认情况下在emacs中,但我想有人已经做了一个包或脚本来启用它。)

我确信其他人可以提供更多关于emacs用于此类工作的例子,正如我所说,我刚刚开始使用它(但它比我用过的所有其他tex和R程序要好得多 - Technix中心,kile,texmaker)。

我不建议那些不了解R和LaTeX的人,但如果你这样做,它会使你的效率提高几个数量级。

答案 1 :(得分:3)

好问题。一个人看到的问题在很大程度上取决于他正在做的工作。对我来说,最常见的非R问题是拼写错误,数字出了问题,有错误的等式,等等。

我发现最可靠,独立于平台且高效的错误捕获策略是经常导出到PDF 。工作一点点;校验。多做一点,再检查一下。是的,这对于一个大型项目来说很糟糕。但是像cacheSweave这样的工具可以提供帮助。最重要的是 - 如果你在整个地方工作2个小时并得到一个错误,试图追踪它就没那么有趣。

对于一个大型项目,当我在块287(或其他东西)中出现错误时,需要花一点时间来纠结R代码。从上下文中我通常可以找出错误的位置并快速导航到那里。另一个选择是命名代码块,但谁想要提出591个名字?

对于方程/数学问题,具有内联预览的编辑器很有帮助。 LyX有这个,AUCTeX也是如此。这样,如果你错过某个地方的斜线或逗号,那么你就会立刻知道,因为预览很混乱。这为我节省了无数个小时。

LyX不存在图像的内联预览(由Sweave生成),但它适用于Org模式。出于同样的原因,这是非常非常强大的优势。

我最近没有任何其他LaTeX错误,因为LyX是所见即所得;它会在没有我的情况下生成LaTeX。在这方面,组织模式也很好。 AUCTeX和ESS有工具可以提供帮助,并且没问题(Rstudio看起来很相似)。我还没有和Eclipse等人一起玩过。非常。

如果不研究日志,如页面上运行的URL(或表格等),很难注意到一些问题。 PDF频繁。工作和检查。这是最好的方式,除非另一组眼睛进行同行评审。

顺便说一下,LyX用aspell拼写检查非LaTeX标记。

答案 2 :(得分:1)

当你的意思是“校对”时,我不确定你究竟在寻找什么,但我发现在LaTeX中一般使用大量\marginpar语句来指出未来修复的任何问题都能很好地解决。另一种方法是使用一个好的PDF阅读器将注释放在最终的PDF中,但如果你重新编译它们就会消失。

对于我们这些使用Emacs而非永久性手部麻烦的人(不是开玩笑!),Sweave的基于GUI的选项是Eclipse。它可以设置为一键编译Sweave,正确的代码突出显示,并具有通常的IDE功能。 Eclipse还通过包提供拼写检查,这有助于校对。不确定你是否可以将拼写检查器设置为仅对LaTeX部分进行校样,这将是理想的。

RStudio也是一个新的但有趣的选择。