knitr 用中文编译文档

qoh*_*eth 5 r character-encoding knitr chinese-locale

我尝试编译 YiHui 的 BIG5示例(带有中文内容的 knitr)。我使用了 Mac OSX snowleopard、最新的 RStudio、pdfLatex(结果与 XeLatex 相同)。这是原始 .Rnw 的摘录

\begin{document}
\title{knitr???????}
\author{???}

??????????????

<<test>>=
1+1 # ????
'??????'
rnorm(5)
(function(){
paste('??????')
})()
@
Run Code Online (Sandbox Code Playgroud)

使用系统默认编码“UTF-8”,生成的 pdf 是

1+1 #
## [1] 2
''
## [1] ""
rnorm(5)
## [1] -0.4290 1.8835 -0.7045 -0.9232 1.5433
(function(){ paste('') })()
## [1] ""
Run Code Online (Sandbox Code Playgroud)

如您所见,中文只是空白区域。然后我用 BIG5 编码保存了 .Rnw 并再次编译。生成的pdf变成:

AyyCHUNXaH
1+1 # F
## [1] 2
'H'
## [1] "H"
rnorm(5)
## [1] -0.27859 -0.79428 -0.76903 0.40313 -0.07851
(function(){ paste('oOr') })()
## [1] "oOr"
Run Code Online (Sandbox Code Playgroud)

这次中文变成了一些随机字母。

我还可以做些什么?完全新手 wrt 编码/语言环境。

Yih*_*Xie 3

你必须为 XeLaTeX 设置中文字体,在我的示例中我没有这样做,因为我不知道繁体中文应该使用什么字体,而且提供跨不同操作系统的可移植解决方案并不容易,因为我不知道知道有哪些字体可用。你可以看一下xeCJK包。