【发布时间】:2013-02-27 11:26:16
【问题描述】:
我正在使用带有 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位)
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
我想在html 和 Word 中获取我的报告,所以我使用 markdown 和 pandoc。
我用西班牙语写作,n 上的元音和波浪号都带有重音符号:á-ú 和 ñ。
我阅读了很多帖子,发现与我遇到的问题类似,这些问题已经通过knitr 的新版本得到解决。但是有一个问题我还没有找到解决方案。
开始时,我使用出现在RStudio 对话框中的'system default' 编码,即ISO 8859-1,RStudio 预览效果很好。然而,当我尝试获取 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 会找到没有问题的图像。我用hex 编辑器查看了两个.md 文件,当我比较处理这些数字的部分时,我看不出有任何区别:
虽然很明显强调的字符是完全不同的......我已经验证了图片文件夹中确实存在图像文件
无论如何,在阅读了很多帖子后,我决定将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 ú')
```
我在RStudio 中获得了 2 个完美的预告片和来自pandoc 的 2 个完美的 Word 文档。
当我尝试从父部件调用子部件时出现问题。换句话说,如果我在第一个文件中添加以下行:
```{r CallChild, child='TestUTFChild.Rmd'}
```
然后子文件中的所有重音都变成乱码,好像UTF-8 被解释为ISO 8859-1。 Pandoc 也停止读取文件,抱怨它不是 utf-8。
如果有人能指出我正确的方向,要么:
1. 如果我留在ISO 8859-1,pandoc 找不到地块。我也试过Windows-1252,因为这是我在sessionInfo看到的,但结果是一样的。
或
2. 通过调用子文件,如果UTF-8 是要走的路。我一直在寻找一种方法来设置一些选项来强制子调用中的编码,但我还没有找到。
非常感谢!
【问题讨论】:
-
听起来像是
knitr中的一个错误;我会调查的 -
@Yihui 谢谢!我是 R、markdown 和 knitr 的新手,但我已经对社区的活力和你对它的贡献感到惊讶!