试着重复了一下你的问题,rmarkdown里改用中文目录名和中文文件名之后果然不能用了。所以确保文件名里没有中文我觉得是更容易的解决方案。
这个错误跟你的很像吧:
> knitr::opts_chunk$set(echo = TRUE)
Warning message:
In dir.create(tempPath, recursive = TRUE) :
cannot create dir 'C:\Users\TC\GIT\??', reason 'Invalid argument'
试着重复了一下你的问题,rmarkdown里改用中文目录名和中文文件名之后果然不能用了。所以确保文件名里没有中文我觉得是更容易的解决方案。
这个错误跟你的很像吧:
> knitr::opts_chunk$set(echo = TRUE)
Warning message:
In dir.create(tempPath, recursive = TRUE) :
cannot create dir 'C:\Users\TC\GIT\??', reason 'Invalid argument'
tctcab 我平时的目录和文件名里面都有中文,基本功能都正常,导出成pdf也可以,就是每次执行命令都会条一个warning出来,有些烦人。
我不和文件名里有中文的人说话!
ChristopherShen 你为什么不能像我这样直接无视这条警告呢?反正又不影响使用。难道是处女座?
dapengde 刚刚发现这个警告的时候很不习惯,现在用了一个多月了,也习惯了
ChristopherShen 其实我估计这个问题真正要修复可能只需要十分钟,如果我的猜测没错的话,应该是缺少一个 Encoding(code) <- 'UTF-8'
。类似的问题我以前修补过:https://github.com/rstudio/rstudio/pull/416/files 这个提示加上我上面的搜索提示,应该足够让一个普通 R 用户开始修复这个问题了。幸运的是这个问题不需要重新编译 RStudio,你可以在安装目录下找到那个 R 文件直接修改,改完了重启 RStudio 就可以测试了。
我暂时只能帮到这里了。
yihui 好吧,大神,我试着弄一下?
ChristopherShen yihui 这个问题我试着修复了,修复方法确如yihui 所指导的那样,在我的电脑上没问题,下面呈上效果图
Cloud2016 请问您具体是怎么操作的呢?
ChristopherShen 在谢大指向的三个文件 做如下修改,凡是函数带有code
参数的地方,在函数内部使用code
前,都加上 Encoding(code) <- 'UTF-8'
Cloud2016 ChristopherShen 如果测试没问题的话,欢迎到 Github 上提交补丁(Pull request)造福后人:https://github.com/rstudio/rstudio
Cloud2016 三个文件(NotebookAlternateEngines.R、SessionRmdNotebook.R、SessionCodeTools.R),我逐一在本地搜索,第一个文件我没有,另外两个有;然后打开文件以后搜索“code”,在code之前或之后加上了Encoding(code) <- 'UTF-8',因为感觉不太放心,所以差不多真的是每个code附近都加了。现在测试以后果然正常了!!!?我怕对导出pdf有影响,所以又试了一次,导出也正常!?
ChristopherShen 嗨,不必一口一个大神。我是无神论者,你可以直呼姓名。
yihui 好的,yihui。
yihui 您若有时间就看看我在 RStudio IDE上提的PR <https://github.com/rstudio/rstudio/pull/2028>,问题我答不上来,而且我的英文也很捉急
ChristopherShen 你的问题解决了。坐等下一个版本的 RStudio 发布(我不知道会是什么时间,但你要是够勇猛的话,也许过了这个周末之后 RStudio Daily 就可以用了)。
@Cloud2016 青史留名。望今后多折腾一点这种不算太难(至少比 LaTeX 简单吧)但又能直接治病救人的侠义之事。