10

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

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

问题:

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

3 回答 3

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中,但我想有人已经做了一个包或脚本来启用它)。2)我通常最终会犯拼写错误并打包丢失的错误,因为我倾向于在文档的多次传递中开发我的统计分析。3) Emacs 会发现任何编译错误,并且 R 代码都可以在整个文档编译之前单独测试。4)如果您使用命令sweave(Alt + m,s),然后编译为LateX ctrl c,(通常两次以获得标签和Bibtex正确)另一个ctrl c将打开PDF进行查看(遗憾的是,它没有打开默认情况下在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 的人推荐它,但如果你这样做,它会让你的效率提高几个数量级。

于 2011-03-19T10:35:27.803 回答
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 标记进行拼写检查。

于 2011-03-19T20:51:24.417 回答
1

当您的意思是“校对”时,我不确定您到底在寻找什么,但我发现在 LaTeX 中通常使用大量\marginpar语句来记录任何问题,以便将来修复效果很好。另一种方法是使用好的 PDF 阅读器在最终的 PDF 中添加注释,但如果您重新编译,它们就会消失。

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

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

于 2011-03-19T14:56:57.203 回答