楼主: 屋檐滴语
6733 6

[学习分享] 在R Markdown文档中使用中文 [推广有奖]

  • 5关注
  • 7粉丝

已卖:897份资源

教授

80%

还不是VIP/贵宾

-

威望
0
论坛币
11884 个
通用积分
272.9886
学术水平
28 点
热心指数
76 点
信用等级
16 点
经验
2225 点
帖子
882
精华
0
在线时间
2274 小时
注册时间
2010-5-19
最后登录
2025-11-22

楼主
屋檐滴语 发表于 2018-7-6 00:07:05 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
  1. ---
  2. title: "在R Markdown文档中使用中文"
  3. author:
  4.   - 谢益辉
  5.   - 邱怡轩
  6.   - 于淼
  7. documentclass: ctexart
  8. output:
  9.   rticles::ctex:
  10.     fig_caption: yes
  11.     number_sections: yes
  12.     toc: yes
  13. classoption: "hyperref,"
  14. ---

  15. # 引言

  16. 中文LaTeX文档并非难题。当然这句话得站在巨人 [CTeX](http://ctex.org) 的肩膀上才能说,它让我们只需要一句

  17. ```latex
  18. \documentclass{ctexart} % 或者ctexrep/ctexbook
  19. ```

  20. 或者

  21. ```latex
  22. \usepackage{ctex}
  23. ```

  24. 就轻松搞定中文LaTeX排版问题。跨平台通用的LaTeX编译却是个小难题,主要是没有一种跨平台通用且免费的中文字体。好吧,你们Windows用户永远有宋体黑体,你们Mac用户有华文字体,而我们苦逼Linux用户在编译LaTeX文档就没那么简单了^[切,傲娇的Linux用户怎么会干出找你们复制字体的事情],是啊,我们有文泉驿,但我们要是用了文泉驿之后把文档发给你们八成不能编译,因为你们没有安装文泉驿。

  25. # 字体和选项

  26. LaTeX包[**ctex**](http://ctan.org/pkg/ctex)支持若干种字体选项,如果你是**ctex**老用户,请注意这里我们要求的最低版本是2.2,你可能需要升级你的LaTeX包。从版本2.0开始,**ctex**支持根据不同操作系统自动选择中文字体,简直是为人类进步作出了巨大贡献,我们再也不必费尽口舌向用户解释“啊,你用Windows啊,那么你该使用什么字体;啊,你用Mac啊,又该如何如何”。

  27. 下面的YAML元数据应该能满足多数用户的需求,主要设置两项参数:文档类为`ctexart`(当然也可以是别的类),输出格式为`rticles::ctex`,其默认LaTeX引擎为XeLaTeX(真的,别纠结你的旧爱PDFLaTeX了)。

  28. ```yaml
  29. ---
  30. documentclass: ctexart
  31. output: rticles::ctex
  32. ---
  33. ```

  34. `rticles::ctex`的参数都是普通的`pdf_document`参数,参见文档**rmarkdown**包的文档,这里就不赘述了。

  35. Windows和Mac用户应该都已经有自带的中文字体了。Linux用户可以另外下载 [Fandol字体](http://ctan.org/pkg/fandol)^[http://ctan.org/tex-archive/fonts/fandol],它号称是免费的,不过我们也没太搞清楚它的来头。把那些.otf字体文件下载下来保存到`~/.fonts`文件夹下,然后命令行切换到那里,运行`fc-cache -fv`。

  36. # R代码段

  37. R代码用R Markdown的语法嵌入,即三个反引号开始一段代码```` ```{r} ````和三个反引号```` ``` ```` 结束一段代码:

  38. ```{r}
  39. options(digits = 4)
  40. fit = lm(dist ~ speed, data = cars)
  41. coef(summary(fit))
  42. b = coef(fit)
  43. ```

  44. 上面回归方程中的斜率是`r b[2]`,完整的回归方程为:$ Y = `r b[1]` + `r b[2]`x$

  45. 画图当然也是木有问题的啦,想画就说嘛,不说我怎么知道你想画呢?

  46. ```{r scatter, fig.cap='cars数据散点图以及回归直线。'}
  47. par(mar = c(4, 4, .1, .1), las = 1)
  48. plot(cars, pch = 19)
  49. abline(fit, col = 'red')
  50. ```

  51. 请不要问我为什么图浮动到下一页去了,这么初级的LaTeX问题问出来信不信我扁你。

  52. # 源代码控

  53. 这里提供的rticles模板可能由于种种原因不能满足客官的要求,LaTeX用户就是这样永无止境地调格式(唉,跟Word用户到底有啥区别呢)。若真是需要调整,你可以复制一份默认模板去改,如前面所说,本文档的模板是`rticles::ctex_template()`,它是一个文本文件。若熟悉LaTeX的话一看就明白,只不过里面有些Pandoc变量而已;若不熟悉LaTeX我们在这里说了也白说,花几天时间好好啃一啃LaTeX入门手册吧。

  54. 本文档所用的模板是从Pandoc默认LaTeX模板基础上做了少许改动而来的:https://github.com/yihui/pandoc-templates/blob/ctex/default.latex 具体改动从GIT提交消息日志中可以看到,主要就是去掉了mathspec包和hyperref包。

  55. # 小结

  56. 事实证明我们可以理直气壮地通过XeLaTeX将中文R Markdown转化为PDF文档,麻麻再也不用担心我的论文满屏幕都是反斜杠,朕养完小白鼠之后终于不必先折腾三个小时LaTeX再开始写实验报告了:打开RStudio,菜单File > New File > R Markdown,然后从模板中选择CTeX Documents,搞定。
复制代码
在R_Markdown文档中使用中文.pdf (124.88 KB)

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:R Markdown Mark Down Dow Mar

gg.png (92.28 KB)

gg.png

已有 1 人评分论坛币 收起 理由
cheetahfly + 50 精彩帖子

总评分: 论坛币 + 50   查看全部评分

沙发
屋檐滴语 发表于 2018-7-6 00:12:02
如果有问题,可以下载这个rmd文件。

在R Markdown文档中使用中文.rar
下载链接: https://bbs.pinggu.org/a-2505025.html

2.61 KB

本附件包括:

  • 在R Markdown文档中使用中文.Rmd

已有 1 人评分论坛币 收起 理由
zerofung + 5 谢谢大神,不知为啥我评分区间只有1~5,只能.

总评分: 论坛币 + 5   查看全部评分

藤椅
KevinPomeranz 发表于 2018-7-6 08:23:59
不错,虽然我在Hadley Wickham的r4ds书里也看到教RMarkdown的用法了。

板凳
voodoo 发表于 2018-7-20 16:04:35
哈,总算找到出处啦,原来是`rticles`包中的`ctex`模板(“rticles\rmarkdown\templates\ctex\skeleton\skeleton.Rmd”),

报纸
世纪末の魔术师 发表于 2018-7-22 13:27:22
多谢楼主分享

地板
hifinecon 发表于 2018-7-22 20:41:50
good way to learn

7
笨笨小夕 发表于 2020-5-2 17:45:16
非常感谢楼主分享!!↖(^ω^)↗

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 20:24