RMarkdown中文报错的问题【解决】
今天学习RMarkdown(Win10笔电),结果因为里面有中文就报错了。我试了yaml的header有中文和正文有中文都会报错,搜索看到文件存放路径含中文也会报错。
解决
1)查询语言设置是否中文
Sys.getlocale()
[1] "LC_COLLATE=Chinese (Simplified)_China.936;LC_CTYPE=Chinese (Simplified)_China.936;LC_MONETARY=Chinese (Simplified)_China.936;LC_NUMERIC=C;LC_TIME=Chinese (Simplified)_China.936"
显然不是语言设置的问题
2)根据搜索到的结果,安装了rticles包(建议直接从github安装)
顺便:devtools使用代理需要设置:
library(httr)
set_config(
use_proxy(url="127.0.0.1", port=1080) #使用本机代理
)
但是使用Ctex document模板在kniter渲染的时候还是报错了
3)根据Yihui Xie的建议,更新以下两个包到最新版本
devtools::install_github(c('rstudio/rmarkdown', 'yihui/tinytex'))
tinytex::install_tinytex()
更新后重启R,用以下命令确认是否安装上tinytex
tinytex:::is_tinytex()
然后就可以正确输出中文了。
*********************追加********************
rmarkdown::render('1.Rmd') 中文乱码问题
由于上述问题解决之后,kniter渲染html已经能正常显示中文,所以就是Rmd文件编码的问题。把Rmd文件另存为GB2312编码格式,就能正常显示中文了。
后来查到Yihui Xie说:
如果文件编码是 UTF-8,那么需要 rmarkdown::render('你的文件.Rmd', encoding = 'UTF-8')
解决
1)查询语言设置是否中文
Sys.getlocale()
[1] "LC_COLLATE=Chinese (Simplified)_China.936;LC_CTYPE=Chinese (Simplified)_China.936;LC_MONETARY=Chinese (Simplified)_China.936;LC_NUMERIC=C;LC_TIME=Chinese (Simplified)_China.936"
显然不是语言设置的问题
2)根据搜索到的结果,安装了rticles包(建议直接从github安装)
顺便:devtools使用代理需要设置:
library(httr)
set_config(
use_proxy(url="127.0.0.1", port=1080) #使用本机代理
)
但是使用Ctex document模板在kniter渲染的时候还是报错了
3)根据Yihui Xie的建议,更新以下两个包到最新版本
devtools::install_github(c('rstudio/rmarkdown', 'yihui/tinytex'))
tinytex::install_tinytex()
更新后重启R,用以下命令确认是否安装上tinytex
tinytex:::is_tinytex()
然后就可以正确输出中文了。
*********************追加********************
rmarkdown::render('1.Rmd') 中文乱码问题
由于上述问题解决之后,kniter渲染html已经能正常显示中文,所以就是Rmd文件编码的问题。把Rmd文件另存为GB2312编码格式,就能正常显示中文了。
后来查到Yihui Xie说:
如果文件编码是 UTF-8,那么需要 rmarkdown::render('你的文件.Rmd', encoding = 'UTF-8')
评论
发表评论