首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Rnw编译成tex

将Rnw编译成tex
EN

Stack Overflow用户
提问于 2016-02-11 13:33:59
回答 1查看 728关注 0票数 0

hello.Rnw:

代码语言:javascript
复制
\documentclass{article}

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

\end{document}

命令:

代码语言:javascript
复制
rnwfile <- system.file("Sweave", "hello.Rnw", package = "utils")
Sweave(rnwfile)

输出:

SweaveReadFile中的错误(文件、语法、编码=编码):没有找到有名称‘’的Sweave文件

问题

这里有什么问题?使用另一个更复杂的文件输出相同。如果我只将文件的路径添加到Sweave()中,那么它适用于hello.Rnw,而不适用于更复杂的文件。然后输出是:"Error:‘test.Rnw’不是ASCII,也不声明编码“。

EN

回答 1

Stack Overflow用户

发布于 2016-02-11 14:11:08

system.file()函数用于定位作为R包一部分安装的文件。例如,如果您想运行R附带的Sweave示例,那么它们必须是实际提供的示例。

代码语言:javascript
复制
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工作流的必要部分,只是用于检索示例输入文件。)

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

为了了解问题所在,我们需要看到test.Rnw

如果您不喜欢Sweave,我强烈建议您查看一下knitr包:它做的事情和Sweave一样,但是(IMO)更好。(它也有很好的记录。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35340758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档