编码:knitr和子文件

ap5*_*p53 5 r utf-8 pandoc knitr

我使用Windows 7,R2.15.3和RStudio 0.97.320与knitr 1.1.不知道我的pandoc版本是什么,但我几天前下载了它.

sessionInfo()
R版本2.15.3(2013-03-01)平台:x86_64-w64-mingw32/x64(64位)

locale:
[1] LC_COLLATE=Spanish_Argentina.1252  LC_CTYPE=Spanish_Argentina.1252    LC_MONETARY=Spanish_Argentina.1252
[4] LC_NUMERIC=C                       LC_TIME=Spanish_Argentina.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] tools_2.15.3  
Run Code Online (Sandbox Code Playgroud)

我想在html和Word中获取我的报告,所以我使用markdown和pandoc.我用西班牙语写下了元音和元音的重音:n:á-úñ.

我看了很多帖子,我看到的问题类似于我用新版本解决的问题knitr.但有一个问题我没有找到解决方案.

当我开始,我用的是'system default'出现的在编码RStudio对话框,即ISO 8859-1,与RStudio预告伟大的工作.然而,当我试图获取Word文档时,pandoc在强调的元音上窒息.我发现了一篇帖子,展示了如何解决这个问题iconv:

iconv -t utf-8"myfile.md"| pandoc -o"myfile.docx"| iconv -f utf-8

虽然这确实解决了pandoc's无法识别的utf-8角色投诉,但出于某种原因pandoc停止查找我的情节,并出现如下错误:

pandoc:找不到图像`figure/Parent.png',跳过...

如果我只使用非重音字符,pandoc会查找没有问题的图像.我.mdhex编辑器查看了这两个文件,当我比较处理数字的部分时,我看不出有任何区别:
![plot of chunk Parent](figure/Parent.png)
虽然显然强调的字符完全不同......我已经验证了图像文件确实存在于图文件夹

无论如何,在阅读了很多帖子后,我决定设置RStudio使用UTF-8编码.只有一个级别的文件,事情很有效.例如,我可以 - 独立编织,然后将以下2个Rmd文件pandoc到Word中:

Parent   -   SAVED WITH utf-8 encoding in RStudio
========================================================

u with an accent: "ú"  SAVED WITH utf-8 encoding in RStudio

```{r fig.width=7, fig.height=6}
plot(cars, main='Parent ú')
```
Run Code Online (Sandbox Code Playgroud)

并单独:

Child   -   SAVED WITH utf-8 encoding in RStudio
========================================================

u with an accent: "ú"  Child file

```{r fig.width=7, fig.height=6}
plot(cars, main='One File Child ú')
```
Run Code Online (Sandbox Code Playgroud)

我得到了2个完美的主流RStudio和2个完美的Word文档pandoc.

当我尝试从父部分调用子部分时出现问题.换句话说,如果我向第一个文件添加以下行:

```{r CallChild, child='TestUTFChild.Rmd'}

```  
Run Code Online (Sandbox Code Playgroud)

那么子文件中的所有重音都会变得乱码,好像UTF-8被解释为ISO 8859-1.Pandoc停止阅读文件,抱怨它不是utf-8.

如果有人能指出我正确的方向,要么:

1.由于pandoc没有找到该地块,如果我留ISO 8859-1.我也试过,Windows-1252因为这是我在看到的sessionInfo,但结果是一样的.

要么

2.通过调用子文件,如果UTF-8是要走的路.我已经找到了一种设置一些选项来强制子调用中的编码的方法,但我还没有找到它.

非常感谢!

Yih*_*Xie 3

我认为这个问题应该在最新的开发版本中得到修复。请参阅开发存储库中有关如何安装开发版本的说明。然后您应该能够在 RStudio 中选择 UTF-8,并获得 UTF-8 编码的输出文件。

以防万一有人对血淋淋的细节感兴趣:之前失败的原因是我用您提供的编码编写了子输出,但没有用相同的编码读取它。现在我只是避免为子文档编写输出文件。