考虑下面的simpel RMarkdown文件。我已使用UTF-8编码将其保存为test.md
。请注意,我在文件中嵌入了自定义pandoc变量'test'。该变量包含UTF-8字符©。
%My title
%The authorslist
<!--pandoc
format: latex
V: test:"Copyright notice. © copyright holder"
-->
# First section
fgsdfg jsdksdfgsdfg
现在我尝试使用knitr从R中编译它。
library(knitr)
pandoc("test.md", format = "latex")
knitr在系统命令中向pandoc插入一个额外的字符。我认为它与编码有关。关于如何解决这个问题的任何建议?
executing pandoc -V test:"Copyright notice. © copyright holder" -f markdown -t latex -o test.pdf "test.md"
我系统上sessionInfo()的结果
R version 3.0.2 (2013-09-25)
Platform: i386-w64-mingw32/i386 (32-bit)
locale:
[1] LC_COLLATE=Dutch_Belgium.1252 LC_CTYPE=Dutch_Belgium.1252 LC_MONETARY=Dutch_Belgium.1252
[4] LC_NUMERIC=C LC_TIME=Dutch_Belgium.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] knitr_1.5
loaded via a namespace (and not attached):
[1] evaluate_0.5.1 formatR_0.10 fortunes_1.5-2 stringr_0.6.2 tools_3.0.2
答案 0 :(得分:3)
正如我猜测的那样,您的默认语言环境不是UTF-8,在这种情况下,除非您明确指定编码,否则R无法读取UTF8编码的文件。我在pandoc()
函数中拥有added编码支持,因此您现在可以使用pandoc("test.md", format = "latex", encoding = "UTF-8")
处理文件。目前,您可以安装development version,以后将在CRAN上成为 knitr v1.6。