将Rnw编译为tex

时间:2016-02-11 13:33:59

标签: r tex sweave

代码

hello.Rnw:

\documentclass{article}

\begin{document}
\SweaveOpts{concordance=TRUE}

\end{document}

命令:

rnwfile <- system.file("Sweave", "hello.Rnw", package = "utils")
Sweave(rnwfile)

输出:

  

SweaveReadFile中的错误(文件,语法,编码=编码):     没有名为''found

的Sweave文件

问题

这是什么问题?使用另一个更复杂的文件输出相同。如果我添加Sweave()只为hello.Rnw工作的文件的路径,但不是更复杂的文件。然后输出是:“错误:'test.Rnw'不是ASCII并且不声明编码”。

1 个答案:

答案 0 :(得分:2)

system.file()函数用于查找作为R包的一部分安装的文件。例如,如果要运行R附带的Sweave示例,则必须是实际提供的示例,例如。

list.files(system.file("Sweave",package="utils"))
## [1] "example-1.Rnw"     "Sweave-test-1.Rnw"
Sweave(system.file("Sweave","example-1.Rnw",package="utils"))

工作正常。 (您可能对使用此语法的?Sweave文档感到困惑 - 它不是Sweave工作流程的必要部分,只是用于检索示例输入文件。)

如果您想在自己的Sweave()个文件上运行.Rnw ,则需要确保它们位于您的工作目录中(或指定完整路径);见?setwd / ?getwd

我们需要查看test.Rnw才能知道问题所在。

如果您不喜欢Sweave,我强烈建议您查看knitr包:它与Sweave相同,但(IMO)更好。 (它也有很好的记录。)