R bookdown+: 用 R bookdown 写期刊论文、日记、信件、日历、吉他书、化学方程式

来自 赵鹏 | May 9, 2017

注意:本文所述的bookdown+这个项目已经停止开发,继承者是我新开的R包项目bookdownplus ,这是因为我学会了写R包。当然,说不定有些朋友不喜欢安装R包,喜欢下载个文件夹直接免安装用,那么本文所述的方法仍然可以继续使用,只是我不再更新了而已。

R bookdown 能做的事情很多,可是那些功能迟迟不来,我只好自己动手,写了个 bookdown+,目前大体实现了用 bookdown 写期刊论文、化学分子式、信件、日记、日历等功能。当然,有些还没完全实现,革命不够彻底,带着浓重的\(\LaTeX\)旧社会的气息。革命尚未成功,同志仍需努力。

下面是 bookdown+ 的简介和快速使用方法。

背景

R bookdown+,听起来像是跟R[@R-base]的扩展包bookdown[@R-bookdown]有关吧?

一点没错!我们知道,bookdown天生是个用来写编程书籍的称手工具。只是,这仅仅是硬币的一面。bookdown的功能远远不止如此。它就像一个美味的蛋糕,我等啊等啊,等着谁把它切开,实在等不及了,就自己下手吧。所以,我弄了个bookdown+

bookdown+bookdown的扩展。我数年前收集了一些\(\LaTeX\)模板,现在我把他们整理到bookdown+里,这样就可以开开心心在bookdown的环境里做喜欢的事情。bookdown+ 展示了硬币的另一面:你可以用它来写写期刊论文、化学分子式、信件、日历、甚至日记。

另一方面,我从个人角度对bookdown的使用做了简化。官方提供的bookdown模板虽然很好用,但对新手来说略显繁琐,需要:

  • index.Rmd_output.yml两个文件里设置yaml,
  • 需要在_bookdown.yml里设置文件名;
  • 对中文用户来说,还得跟LaTeX打交道,需要考虑before_body.tex, after_body, preamble.tex里面的设置。

这些操作可能让新手望而生畏。

R bookdown+用起来就容易多了,只需在一个叫做_runme.R的文件里设置好书名、作者,选好模板,binggo!就可以开始放心写自己的文字了。

功能扩展,操作简化,这就是R bookdown+

在不久的未来,肯定会出现很多官方的bookdown模板,但是我不想等了。你要是也等不及,就跟我来一起使用或开发[bookdown+]吧!

快速入门

预备

在开始前,你需要安装 R, RStudio, bookdown,和其他依赖的软件和包(例如 Pandoc, \(\LaTeX\), rmarkdown, rticle, knitr等)。详见bookdown官方手册.

准备好后,从Github下载bookdown+压缩文件。解压缩到你的电脑里,在得到的文件夹里找到 _start.Rproj文件,双击就会在RStudio里打开一个项目。

文件夹里还有个_runme.R文件。你可以双击打开并运行。下面是对这个文件里代码的详细解释。

第1步:标题和作者

改成你自己书的标题和作者名。

title <- 'bookdown+: Authoring Articles, Mails, Guitar books, Chemical Molecular Formulae and Equations with R bookdown'
author <- 'Peng Zhao'

第2步: 模板

在给定的可用模板里选择你想要的。这里我们选第8个。

templates  <- c('article',     #1, academic article
                'article_zh',  #2, academic article in Chinese
                'calendar',    #3, calendar, in progress
                'chemistry',   #4, chemical molecular formulae and equations
                'chemistry_zh',#5, in Chinese,
                'guitar',      #6, guitar book
                'mail',        #7, mail, in progress
                'journal',     #8, laboratory journal, or personal diary
                'mini',        #9, a mini demo by Yihui
                'original',    #10, the original demo by Yihui
                'book_zh'      #11, the demo in Chinese by Yihui
)
template <- templates[8]

运行 fun/build.R

source('fun/build.R')

第3步: 成书

现在按下 ctrl+shift+b 快捷键,你就会在新生成的book/文件里找到一本示例书。打开看看吧!

你自己的文字只需在body.Rmd修改,写完后重复本步即可。

祝你玩得愉快!

模板效果展示

  • article

  • article_mdpi1

  • article_zh

  • calendar

  • chemistry

  • guitar

  • journal

  • mail

  • poem

  • thesis_classic

  • thesis_ubt

  • thesis_zju

  • yihui_demo

  • yihui_mini

  • yihui_zh

comments powered by Disqus