5

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

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

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  

我想在htmlWord 和 Word 中获取我的报告,所以我使用 markdown 和 pandoc。我用西班牙语写作,在 n:á-úñ.

我已经阅读了很多帖子,并且看到了与我使用新版本解决的问题类似的问题knitr。但是有一个问题我还没有找到解决方案。

当我开始时,我使用了'system default'出现在RStudio对话框中的编码,即ISO 8859-1RStudio预览效果很好。但是,当我尝试获取 Word 文档时,pandoc被重读的元音卡住了。我发现一篇文章展示了如何使用以下方法解决这个问题iconv

iconv -t utf-8 "myfile.md" | pandoc -o "我的文件.docx"| iconv -f utf-8

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

pandoc:找不到图像“figure/Parent.png”,正在跳过...

如果我只使用非重音字符,pandoc 会找到没有问题的图像。.md我用编辑器查看了这两个文件,hex当我比较处理数字的部分时,我看不出有任何区别:
![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 ú')
```

并分别:

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 ú')
```

我得到了 2 个完美的预告片RStudio和 2 个完美的 Word 文档pandoc

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

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

```  

然后子文件中的所有重音都变成乱码,就好像UTF-8被解释为ISO 8859-1. Pandoc也停止读取文件,抱怨它不是utf-8.

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

1.如果我留下来,pandoc找不到情节ISO 8859-1。我也尝试过Windows-1252,因为这是我在 中看到的sessionInfo,但结果是一样的。

或者

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

非常感谢!

4

1 回答 1

3

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

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

于 2013-03-12T21:17:12.267 回答