2014-10-29
open-and-free
00

将电脑里的Rsudio升级,发现最新的rmarkdown包支持pandoc,顿觉会有很牛气的功能。

果然新建Rmd文档,弹出选择框,可以指定是knitr成Html、PDF或者Word文档。当然也可以自行在文件头进行设置。于是将最近计算精馏塔理论塔板数的R脚本文件编写成Rmd,试着生成计算报告。结果发现Html和Word格式文档都可以顺利生成,而PDF格式中无法显示汉字,想想肯定又是LaTeX天生对中文支持不好的影响。

作为一个菜鸟,这问题自己当然无法解决。好在使用汉字的人里是有很多大牛的,比如knitr的作者yihui,比如showtext的作者yixuan。即使强大的谷歌被封,单位里也懒得科学上网,可度娘还是能够找到他们。

总结下解决办法:

  1. 我用的是Rstudio,其他R环境调用Rmarkdown不清楚是否凑效。

  2. 安装showtext包。

  3. 图片中显示汉字的设置如下示例(示例来源点击这里)。用showtext.begin()和showtext.end()将含有汉字的图片生成代码括起来就行。

    --- title: "test" author: "yufree" output: pdf_document: keep_tex: yes latex_engine: xelatex html_document: default word_document: default --- 中英文混合 This is an R Markdown document. ```{r} library(showtext) showtext.begin() plot(cars,main='中文issue') plot(cars,main='中文issue2') showtext.end() ```
  4. 正文中汉字的显示。将如下代码放在header.tex中。

    \usepackage{xeCJK} \setCJKmainfont{simsun.ttc} % 字体可以更换

    注意windows下header.tex和编辑的Rmd文件都一定要保存成UTF-8格式编码,否则后面编译PDF通不过。将其放在与编辑的Rmd文档同一个文件夹下,然后用includes字段把它插入模板中,用xelatex作为生成PDF的引擎。如下:

    --- title: "test" author: "yufree" output: pdf_document: keep_tex: yes latex_engine: xelatex includes: in_header: header.tex html_document: default word_document: default ---
  5. 点击knitr,生成PDF,大功告成。示例效果如下: 1 2

本文作者:tsingk

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!