回复 第14楼 的 god123:
当RStudio的options设置中的Sweave卡片的"weave Rnw files using"选项为Sweave,"Typeset LaTex into PDF using"选项为pdfLaTex,以下代码有效:
我在R多个版本上测试均可以正常显示中文,以下为我在yihui站点参考的一段代码进行了相应编辑,可以正常显示中文、ggplot和plot图表。
<br />
\documentclass[UTF8,10pt]{ctexart}<br />
\usepackage[a4paper,%%textwidth=129mm,textheight=185mm, %%193-8<br />
text={160mm,260mm},centering]{geometry}<br />
\pagestyle{empty}<br />
\begin{document}<br />
\SweaveOpts{concordance=TRUE}<br />
\title{使用ggplot2测试中文支持情况}<br />
\maketitle<br />
\abstract{<br />
abc 测试中文,测试中文的目的在于是否能够在Rstudio的knirt中正常编译含有中文的字符,不会出现乱码的情况,事实证明,需要在代码开始设置UTF-8字符编码格式才可以正常使用中文。}</p>
<p><<setup, include=FALSE>>=<br />
options(device = function(file, width = 2, height = 2, ...) {<br />
cairo_pdf(tempfile(), width = width, height = height, ...)<br />
})<br />
pdf.options(family = "GB1")<br />
@</p>
<p>\textbf{plot}这里主要测试plot是否支持中文功能。<br />
\begin{figure}<br />
\begin{center}<br />
<<rnorm,fig=TRUE>>=<br />
library(ggplot2)<br />
ti <- "中文"<br />
plot(c(1:10), main = "这是中文的标题", xlab = "X轴也是中文的",ylab="Y轴呢?")<br />
@<br />
\end{center}<br />
\end{figure}</p>
<p>\textbf{ggplot}这里主要测试ggplot的中文是否能够正常支持。<br />
\begin{figure}<br />
\begin{center}</p>
<p><<rnorm,fig=TRUE>>=<br />
y <- c("PRC","USA","UK","FR")<br />
x <- c("中国","美国","英国","法国")<br />
p <- ggplot(data=mpg,mapping=aes(x=cty,y=hwy))<br />
p + geom_point() + opts(title="ggplot的中文标题是这样子",plot.title=theme_text(face="bold",size=10,hjust=0.5,vjust=2,colour="black")) + xlab("测试X轴") + ylab("测试Y轴")<br />
#dev.off()<br />
#dev.off()<br />
@</p>
<p>\textbf{}下面我们测试是否能够在代码执行中正常输出中文;输出结果如下<br />
<<>>=<br />
y<br />
x<br />
@</p>
<p>\textbf{ggplot}我这里中文功能的支持主要使用的是pdf.options(family = "GB1")参数;如果你对ggplot或plot所绘制的图形有细节调整需求,比如:调整标题字体等,可使用各自的绘图参数调整即可,就像文中ggplot代码中的opts参数所列;</p>
<p>\end{center}<br />
\end{figure}</p>
<p>\end{document}</p>
<p>
</p>
引用代码出处:http://yihui.name/cn/2010/02/misc-issues-in-latex-lyx-r-sweave-pgfsweave/ (注:源代码中如果直接复制可能需要对所复制的代码稍加修正,就是要手动删除每行开始的那个空格,也就是要每行顶格写,否则编译错误)
我的平台:
OS:winxp
R:3.0.0
RStudio:0.97.551
CTEX:CTeX_2.9.2.164_Full
ps:不过,还是没有解决为什么ggplot所绘制的图表会单独作为一个test-rnorm.pdf存在,而不是显示到与test.Rnw同名的test.pdf文件中。————此问题已解决,加一个rnorm,fig=TRUE以及用{center}{figure}两个begin/end参数把绘图代码括起来就可以了。——最近升级过一次RStudio,然后没改Sweave选项。就发生本不该发生的悲剧了——不是说RStudio现在默认knitr了么,这个圈绕的。[s:12]
如果"weave Rnw files using"选项为knitr,"Typeset LaTex into PDF using"选项为pdfLaTex。请使用9#代码,依旧有效。