我正在使用 knitr 1.1。在 R 3.0.0 和 WinEdt (RWinEdt 2.0) 中。我在 knitr 识别瑞典语字符(ä、ö、å)时遇到问题。这不是 R 的问题;这些字符甚至可以在文件名、目录名、对象等中识别。在 Sweave 中也不是问题。
我的文档中已经有\usepackage[utf8]{inputenc}
,但 knitr 似乎无法处理特殊字符。运行 knitr 后,我收到以下消息:
Warning in remind_sweave(if (in.file) input) :
It seems you are using the Sweave-specific syntax; you may need Sweave2knitr("deskriptiv 130409.Rnw") to convert it to knitr
processing file: deskriptiv 130409.Rnw
(*) NOTE: I saw chunk options "label=läser_in_data"
please go to http://yihui.name/knitr/options (it is likely that you forgot to
quote "character" options)
Error in parse(text = str_c("alist(", quote_label(params), ")"), srcfile = NULL) :
1:15: unexpected input
1: alist(label=lä
^
Calls: knit ... parse_params -> withCallingHandlers -> eval -> parse
Execution halted
它抱怨的特定标签是 label=läser。更改标签是不够的,因为如果 R 对象使用 äåö,knitr 甚至会抱怨。
我使用了 Sweave2knitr(),因为该文件最初是为 Sweave 创建的,但结果并不好:现在所有 äåö 都已转换为 äpåö,无论是在 R 块中还是在乳胶文本中,并且 knitr 仍然给出一条错误消息。
会话信息:
R version 3.0.0 (2013-04-03)
Platform: i386-w64-mingw32/i386 (32-bit)
locale:
[1] LC_COLLATE=Swedish_Sweden.1252 LC_CTYPE=Swedish_Sweden.1252 LC_MONETARY=Swedish_Sweden.1252
[4] LC_NUMERIC=C LC_TIME=Swedish_Sweden.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] knitr_1.1
loaded via a namespace (and not attached):
[1] digest_0.6.3 evaluate_0.4.3 formatR_0.7 stringr_0.6.2 tools_3.0.0
正如我提到的,有些文件名和对象带有瑞典语字符(因为以前这不是问题),而且文本也需要使用瑞典语。
感谢您帮助 knitr 在英语以外的地方工作。