在R Markdown文檔中使用中文
author:
- 謝益輝
- 邱怡軒
- 于淼
documentclass: ctexart
output:
rticles::ctex:
fig_caption: yes
number_sections: yes
toc: yes
classoption: "hyperref,"
引言
中文LaTeX文檔并非難題妹萨。當(dāng)然這句話得站在巨人 CTeX 的肩膀上才能說,它讓我們只需要一句
\documentclass{ctexart} % 或者ctexrep/ctexbook
或者
\usepackage{ctex}
就輕松搞定中文LaTeX排版問題逆粹。
字體和選項(xiàng)
LaTeX包ctex支持若干種字體選項(xiàng)夏块,如果你是ctex老用戶凿宾,請(qǐng)注意這里我們要求的最低版本是2.2,你可能需要升級(jí)你的LaTeX包。從版本2.0開始饼问,ctex支持根據(jù)不同操作系統(tǒng)自動(dòng)選擇中文字體考杉,簡(jiǎn)直是為人類進(jìn)步作出了巨大貢獻(xiàn)策精,我們?cè)僖膊槐刭M(fèi)盡口舌向用戶解釋“啊,你用Windows啊崇棠,那么你該使用什么字體咽袜;啊,你用Mac啊枕稀,又該如何如何”询刹。
下面的YAML元數(shù)據(jù)應(yīng)該能滿足多數(shù)用戶的需求,主要設(shè)置兩項(xiàng)參數(shù):文檔類為ctexart
(當(dāng)然也可以是別的類)萎坷,輸出格式為rticles::ctex
凹联,其默認(rèn)LaTeX引擎為XeLaTeX(真的,別糾結(jié)你的舊愛PDFLaTeX了)哆档。
---
documentclass: ctexart
output: rticles::ctex
---
rticles::ctex
的參數(shù)都是普通的pdf_document
參數(shù)蔽挠,參見文檔rmarkdown包的文檔,這里就不贅述了瓜浸。
Windows和Mac用戶應(yīng)該都已經(jīng)有自帶的中文字體了澳淑。Linux用戶可以考慮 Fandol字體,它號(hào)稱是免費(fèi)的插佛,不過我們也沒太搞清楚它的來頭偶惠。如果你不想操心這些問題,我們強(qiáng)烈建議你卸載你當(dāng)前的 LaTeX 套裝(TeX Live 或 MiKTeX 或 MacTeX)朗涩,換上 TinyTeX忽孽,一切將會(huì)自動(dòng)化搞定。
devtools::install_github(c('rstudio/rmarkdown', 'yihui/tinytex'))
tinytex::install_tinytex()
R代碼段
R代碼用R Markdown的語法嵌入,即三個(gè)反引號(hào)開始一段代碼```{r}
和三個(gè)反引號(hào)```
結(jié)束一段代碼:
options(digits = 4)
fit = lm(dist ~ speed, data = cars)
coef(summary(fit))
b = coef(fit)
上面回歸方程中的斜率是r b[2]
兄一,完整的回歸方程為:Y = `r b[1]` + `r b[2]`x
畫圖當(dāng)然也是木有問題的啦厘线,想畫就說嘛,不說我怎么知道你想畫呢出革?
par(mar = c(4, 4, .1, .1), las = 1)
plot(cars, pch = 19)
abline(fit, col = 'red')
請(qǐng)不要問我為什么圖浮動(dòng)到下一頁(yè)去了造壮,這么初級(jí)的LaTeX問題問出來信不信我扁你。
源代碼控
這里提供的rticles模板可能由于種種原因不能滿足客官的要求骂束,LaTeX用戶就是這樣永無止境地調(diào)格式(唉耳璧,跟Word用戶到底有啥區(qū)別呢)。若真是需要調(diào)整展箱,你可以復(fù)制一份默認(rèn)模板去改旨枯,如前面所說,本文檔的模板是rticles::ctex_template()
混驰,它是一個(gè)文本文件攀隔。若熟悉LaTeX的話一看就明白,只不過里面有些Pandoc變量而已栖榨;若不熟悉LaTeX我們?cè)谶@里說了也白說昆汹,花幾天時(shí)間好好啃一啃LaTeX入門手冊(cè)吧。
本文檔所用的模板是從Pandoc默認(rèn)LaTeX模板基礎(chǔ)上做了少許改動(dòng)而來的:https://github.com/yihui/pandoc-templates/blob/ctex/default.latex 具體改動(dòng)從GIT提交消息日志中可以看到婴栽,主要就是去掉了mathspec包和hyperref包满粗。
小結(jié)
事實(shí)證明我們可以理直氣壯地通過XeLaTeX將中文R Markdown轉(zhuǎn)化為PDF文檔,麻麻再也不用擔(dān)心我的論文滿屏幕都是反斜杠愚争,朕養(yǎng)完小白鼠之后終于不必先折騰三個(gè)小時(shí)LaTeX再開始寫實(shí)驗(yàn)報(bào)告了:打開RStudio败潦,菜單File > New File > R Markdown,然后從模板中選擇CTeX Documents准脂,搞定。