2012-12-09 38 views
2

这里是我的问题:编译RSweave文件:文件不是ASCII

\begin{verbatim} 

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

\end{verbatim} 

当我编译它,我不断收到此错误信息:

grDevices::pdf.options(useDingbats = FALSE); utils::Sweave('Applied04.Rnw')
Error: ‘Applied04.Rnw’ is not ASCII and does not declare an encoding
Execution halted

我不知道是怎么回事。我已经使用逐字记录了。有人能告诉我这里有什么问题吗?

+0

“‘Applied04.Rnw’没有ASCII和不申报编码” - 是,消息这么不明不白? –

回答

10

用撇号替换“智能”(非ASCII)单引号。

我不太清楚你为什么要逐字输入:这是调试练习的一部分,还是你真的想这么做?更有可能的是,你要

\usepackage[utf8]{inputenc} 

在你的LaTeX序言

options(useFancyQuotes=FALSE) 
在你的[R设置代码

2

这个错误很可能是因为使用了任何一种特殊的本地键盘布局的奇特符号而引起的,例如我在Rnw文件的某个地方使用了德语变音符号,然后我得到了这个错误信息。因此,如果您收到此错误消息,请查看整个文件中的非ASCII字母或符号,如果出于其他原因,您不想添加\ usepackage [utf8] {inputenc},则将其替换为适当的。

2

通常这个错误是由您使用的编码引起的。在保存文件时需要小心,确保它们处于utf8格式,有时某些程序默认在ISO 8859-1或其他文件中(这里有一些解释https://en.wikipedia.org/wiki/UTF-8)。

所以这是一个可能的解决方案:

Stangle("Applied04.Rnw",output="Code.R",encoding="utf8") 
+0

对不起@ jose-ricardo-bustos-m,我会记得下一次。 – Robles