markdown現(xiàn)在已經(jīng)是一種常見的寫作方式,在CSDN等博客網(wǎng)站上都已經(jīng)有了markdown編輯模式,本人也經(jīng)常使用有道云筆記
,為知筆記
等產(chǎn)品來記錄學(xué)習(xí)歷程。
R-studio是R語言最好用的IDE之一,可能沒有之一!R-studio團(tuán)隊(duì),其中有統(tǒng)計(jì)之都的創(chuàng)始人yihui大大,基于knitr
等包編寫了Rmarkdown
;本文嘗試用最簡(jiǎn)單的方式,借助yihui
之前所寫的rticles
包幫助喜歡用中文的小伙伴們實(shí)現(xiàn)中文Rmarkdown
PDF版的輸出(內(nèi)核應(yīng)該就是Latex);
1. 安裝rmarkdown
包和R-studio
關(guān)于R語言和R-studio的安裝此處就不贅述了,關(guān)于R-studio的一些設(shè)置,筆者一般會(huì)在toools->global options->Packages中將CRAN 的默認(rèn)mirror地址改為中國(guó)的鏡像,這樣主要是在安裝包的時(shí)候速度可以更快些。
關(guān)于IDE中的字體設(shè)置,背景設(shè)置,可以在global options中的code和Apperance中修改,背景就可以不使用白底黑字了,當(dāng)然這都只是筆者的一些個(gè)人習(xí)慣了。
安裝
rmarkdown
包
install.packages("rmarkdown")
2. 安裝Pandoc
由于在將rmarkdown文件渲染成pdf時(shí)需要使用pandoc,這里需要安裝它,地址如下:
http://pandoc.org/installing.html
選定自己的系統(tǒng)版本,linux或者Windows,亦或是mac?我選擇的是windows版本,對(duì)應(yīng)的是msi文件!
3. 安裝miktex
由于這一切都是基于latex,所以需要安裝miktex,之后的中文模板其實(shí)基于Ctex,如果大家之前沒有接觸過Latex,不必對(duì)這些名詞過于糾結(jié),我們只安裝較小的Miktex;
頁(yè)面地址:
https://miktex.org/download
選擇系統(tǒng)對(duì)應(yīng)的(64或者32位系統(tǒng)),注意安裝的是basic Miktex
4. 安裝rticles
包,調(diào)用中文模板
在R-studio中安裝rticles
包,它的github地址
install.packages("rticles")
這個(gè)包中有Ctex相關(guān)功能,所以可以實(shí)現(xiàn)中文的輸出
- 安裝成功之后,我們可以新建一個(gè)Rmarkdown文件
點(diǎn)擊New->file->R markdown,其中有了一個(gè)From Template,如果沒有看到,檢查rticles
包是否安裝成功,之后請(qǐng)載入該包(library(rticles));
可以看到這個(gè)包里面還有一些其他模板,其中不乏可以生成你心儀期刊的格式哦!
- 成功新建之后可以看到y(tǒng)ihui大大已經(jīng)給我們寫好了一個(gè)模板,我們可以點(diǎn)擊
knit
按鈕,或者使用ctrl + shift + k
的快捷鍵,稍等片刻會(huì)出現(xiàn)中文PDF:
- 我們注意看這個(gè)文件的相關(guān)參數(shù):
- title 可以改為你自己的題目
- author 你自己,- 后面可以跟多個(gè)作者
- documentclass: ctexart 調(diào)用的是Ctex,不用更改
- output:
rticles::ctex:
fig_caption: yes #表示圖上的注釋保留
number_sections: yes # 表示每一節(jié)的數(shù)字保留
toc: yes #是否輸出目錄(設(shè)置為no即不需要目錄)
classoption: "hyperref," # 允許超鏈接
請(qǐng)注意,這個(gè)yihui大大寫好的文件,事實(shí)上就是一個(gè)Rmarkdown的小教程了,里面已經(jīng)有很多常用語法的教學(xué),獲取更多語法知識(shí),可以訪問Rmarkdown的網(wǎng)站
http://rmarkdown.rstudio.com/index.html,其中有一個(gè)cheatsheets是一個(gè)命令對(duì)照表,大家可以下載下來看看。
5. 一些網(wǎng)上資源
5.1 chunk options
yihui 在他的個(gè)人網(wǎng)站上的一篇博客,對(duì)Rmarkdown中的chunk options有詳細(xì)的介紹,我認(rèn)為可以保存來進(jìn)行一個(gè)對(duì)照https://yihui.name/knitr/options/;
-
我比較常用的是這個(gè):
Paste_Image.png
我一般將這個(gè)chunk放在最前面,聲明以后的每一個(gè)chunk都不輸出warnings和message,比如如果你載入一個(gè)包,有時(shí)候會(huì)輸出: the packages was built in R version 3.2……;我當(dāng)然不希望這些語句輸出在我的PDF中啦!
5.2 Rmarkdown同樣可以制作ppt,word
關(guān)于word的使用,只需要在新建markdown的時(shí)候,選擇output為word
關(guān)于ppt,網(wǎng)上已經(jīng)有很多模板,在Rmarkdown的主頁(yè)有一塊詳細(xì)介紹了:http://rmarkdown.rstudio.com/lesson-11.html
在這里面我使用過
beamer
和revealjs
的模板,相信使用過Latex的童鞋們都知道beamer
,關(guān)于中文的問題同樣也是很麻煩,我從網(wǎng)上找了一個(gè)別人的模板直接使用,每一次只在上面做一些修改:
https://github.com/BruceZhaoR/Zh-beamer;
注: 這個(gè)github repo中必需的文件有beamer_default.tex
和_output.yaml
,他們需要和你新建Rmarkdown文件的文件夾一致;
對(duì)于我這種不愿意去研究?jī)?nèi)部原因的人,只要有一個(gè)模板使用就哈哈了!
- 最近yihui又發(fā)布了一個(gè)叫做寫輪眼的包,可以用來制作ppt,https://github.com/yihui/xaringan。
看過《火影忍者》的童鞋們應(yīng)該都比較熟悉吧;哈哈,本人也是很喜歡火影忍者呢。
這個(gè)包的具體使用,筆者還沒有嘗試,之后也準(zhǔn)備學(xué)習(xí)一番;
6. 感想
Rmarkdown其實(shí)最方面之處,對(duì)于R用戶來說,可以在編程過程中,直接生成快速的報(bào)告;其中包含有代碼,以及各種結(jié)果圖,和
ggplot2
,DT
等包結(jié)合使用,將會(huì)十分方便。當(dāng)然Rmarkdown并不能代替Latex,yihui最近也發(fā)布了
bookdown
這個(gè)包,可以用R來寫書,里面的格式更多。對(duì)于python用戶來說,
jupyter
是一個(gè)首選,其中也可以跑R,但畢竟用原生的R-studio會(huì)方便許多。本人之前看python
的時(shí)候,也喜歡用jupyter notebook
,它還可以上傳到github上預(yù)覽,當(dāng)然也可以部署在云服務(wù)器上,之前看到很多國(guó)外課程的講義都出自于它。markdown工具有許多,如果單純寫文字類的筆記,網(wǎng)上有很多很多的工具,印象筆記啊,有道云筆記啊,為知筆記啊,還有一些單機(jī)版的markdown工具,之前用過一個(gè)叫做
Typora
,一個(gè)mac風(fēng)格的編輯器。在這里,很多大神肯定會(huì)說,sublime等等編輯器都可以實(shí)現(xiàn)markdown。我也很贊同這一點(diǎn),對(duì)于一些重度用戶來說,可以考慮使用
visual studio code
(某大神朋友推薦的小巧的微軟官方編輯器,比sublime好用,個(gè)人認(rèn)為),atom(github推出)等;至于里面的markdown相關(guān)插件,就得自己配置了,我看過一些網(wǎng)上的前端大神們,將編輯器配置的十分酷炫。最重要的感想:
不要糾結(jié)哪一個(gè)IDE最好,不要比較哪一種語言最好!
眾所周知,程序員都推薦vim
,而對(duì)于我們這種輕度用戶,不能稱之為碼農(nóng)或編程員,往往選擇自己心儀的IDE很重要,想要功能強(qiáng)大,就可以考慮pycharm
,eclipse
,visual studio
這些,想要簡(jiǎn)單,那就單純的編輯器就好(sublime,atom,VS code)。
- 多練習(xí)才是硬道理:
筆者之前花了很多時(shí)間配置自己的編譯器,將它打扮地漂漂亮亮,后來也沒有寫幾行代碼!好記性不如爛筆頭;業(yè)精于勤荒于嬉,太久沒有學(xué)習(xí)python,現(xiàn)在幾乎不會(huì)寫了,每每產(chǎn)生如此感慨,皆后悔以往之惰性,莫負(fù)時(shí)光;不積跬步,無以至千里,將地基打好,不浮躁才有成功的可能。
2017/3/12 hello world!