4

我有一个基于 knitr 的 Rnw 文件,该文件在 Mac(v0.97.316)和 knitr(v1.1)上的 RStudio 中完美地编译为 pdf,但在 Windows 环境(相同版本)中我得到一个编译错误。我已经在两种环境中检查了 RStudio 中的选项,它们是一致的。

即使我在 Rnw 文件中没有这样的标志,和/或如果我切换首选项中的设置,Windows 设置似乎总是将:“\SweaveOpts{concordance=TRUE}”注入“.tex”文件,和/或如果我将“opts_knit$set(concordance=FALSE)”选项添加到 knitr 设置块。如果我从“.tex”文件中删除该行并在 cmd 提示符下手动编译它,则会按预期生成输出。

我不确定这是否是 RStudio 或 knitr 问题,但任何指针将不胜感激。

请注意,我还在 RStudio 支持板上发布了这个问题(http://support.rstudio.org/help/discussions/problems/5039-knitr-compile-problems-with-rstudio-windows?unresolve=true)。

4

3 回答 3

5

它注入的原因\SweaveOpts{concordance=TRUE}很可能是您的编织者而Sweave不是knitr,并且您还启用了 Rnw 索引:http ://www.rstudio.com/ide/docs/authoring/rnw_weave但我不能确定它不是Windows 版本的 RStudio 的错误。无论如何,很容易验证它是否是 RStudio 问题——打开Compile PDF面板,您应该会看到如下日志:

RStudio 与 knitr

如果你的编织器是 Sweave,你会看到类似这样的东西:

带有 Sweave 的 RStudio

这是我的配置(我在 Ubuntu 下):

在 RStudio 中配置 Sweave

如果您knitr确实在使用,并且 RStudio 仍然插入\SweaveOpts{concordance=TRUE},我想这一定是 RStudio 的一个错误。

于 2013-02-23T18:22:40.123 回答
2

我在 2016 年 4 月 24 日下载“R CMD build KFAS-master”作为“KFAS-master.zip”时遇到了这个问题,点击 GitHub 上 KFAS 的“下载 ZIP”(https://github.com/helske/KFAS)。我无法重现该问题,但我使用的解决方法是找到弹出窗口中提到的行(复制如下),并在其前面加上“%%”将其注释掉。

下载后,我解压缩并将文件夹名称更改为“KFAS”。然后我得到一个命令提示符并导航到包含重命名为 KFAS 的 KFAS-master 文件夹的目录。这次“R CMD build KFAS”按预期工作。然后我在 RStudio 0.99.893 中打开 ~KFAS/vignettes/KFAS.Rmw,当前版本为 2016-04-26。我改变了一些东西并保存了结果。当我重复“R CMD build KFAS”时,我得到了下图所示的问题。

Jouni Helske 将我带到了这篇文章。我通过在“\SweaveOpts{concordance=TRUE}”前面加上“%%”来注释掉下面屏幕截图中提到的第 69 行。我保存了结果,“R CMD build KFAS”工作了。

有些东西似乎偶尔会在 *.Rnw 文件中插入像 "\SweaveOpts{concordance=TRUE}" 这样的行,但我不知道它是什么。我在装有 OS X 10.11.2 的 MacBook Pro 上运行 R 3.2.4。

感谢 Yihui 和其他人在此线程中的早期帖子。

屏幕截图显示弹出窗口抱怨,“看来您正在使用第 69 行中的 Sweave 特定语法...。”

于 2016-04-26T14:44:01.140 回答
0

I had the same problem even when knitr was set for "Weave Rnw files using" by default.

I solved it by going to Tools/Global Options/Sweave and setting "Weave Rnw files using" to Sweave and pressing Ok. Then, I went back and set it back to knitr, and everything works fine now.

I guess it was indeed Rstudio bug

于 2015-04-09T19:16:44.650 回答