2016-02-11 53 views
0

代碼編譯RNW到TEX

hello.Rnw:

\documentclass{article} 

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

\end{document} 

命令:

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

輸出:

Error in SweaveReadFile(file, syntax, encoding = encoding) : no Sweave file with name ‘’ found

問題

這裏有什麼問題?使用另一個更復雜的文件輸出相同。如果我將Sweave()僅添加到hello.Rnw文件的路徑,但不適用於更復雜的文件。然後輸出是:「錯誤:'test.Rnw'不是ASCII並且不聲明編碼」。

回答

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)更好。 (它也有很好的記錄。)

+0

目的是創建由按鈕COMPILE PDF完成的命令。 – b4154

+0

我會告訴你,如果我有任何其他輸出。我會嘗試 – b4154

+0

你可以直接問這個問題......'knitr :: knit2pdf(「myfile」)',參見http://stackoverflow.com/questions/34591487/difference-compile-pdf-button-in-rstudio -vs-knit-and-knit2pdf –