很高兴地宣布,我的 R 语言扩展包 ‘bookdownplus v1.0.2’ (Zhao 2017a) 在 CRAN 正式发布了。本文是对’bookdownplus v1.0.2’的简要描述. 由于最近更新频繁, 最新版的’bookdownplus’更加强大和易用, 例如 ‘bookdownplus v1.2.0’ 可以一条指令生成19个模板文档的 pdf, word, html 和 epub 四种格式. 建议移步位于 GitHub 的 bookdownplus 项目主页.
简介
bookdownplus 是对 bookdown 包 (Xie 2016) 的增强和简化, 是快速使用 bookdown 的最简洁方法。bookdown 就好比 Microsoft Word 或 \(\LaTeX\),可以用来写文档,而 bookdownplus 提供了很多有用的模板,可以很方便地在 bookdown 平台写期刊论文、学位论文、学术海报、化学分子式、信件、日记、日历、诗集、吉他谱等各种常用文档和书籍。这是功能上的增强(+)。
bookdownplus 使用时只需指定一个模板,给定作者和书名,就可以一键生成模板文件,用户在模板文件里照猫画虎写自己的文字就可以了,不必再花力气上网找模板、设置 YAML 和 LaTeX。这是操作上的简化(-)。
bookdownplus 各个模板的使用方法详见 R bookdownplus Textbook。这本电子书本身就是用 bookdownplus 生成的,尤其是它的 pdf 版本很美观。此书的源码开放,可以作为使用 bookdownplus写书的示例。
下面是 bookdownplus 的简介和快速使用方法。
快速入门
准备
在开始前,需要安装 R, RStudio, bookdown,和其他依赖的软件和包(例如 Pandoc
, \(\LaTeX\), rmarkdown
, rticle
, knitr
等),作为准备。详见 bookdown 官方手册。
安装
准备完毕后,就可以安装 bookdownplus 了。可以安装稳定版:
install.packages("bookdownplus")
或开发版:
devtools::install_github("pzhaonet/bookdownplus")
生成模板文件
接着,在 R 中运行下面的代码:
bookdownplus::bookdownplus()
这时,在你的工作目录(getwd()
),会得到一些模板文件(如 index.Rmd
,body.Rmd
, bookdownplus.Rproj
) 和文件夹。
编译成书
用 RStudio 打开 bookdownplus.Rproj
文件,然后按 ctrl+shift+b
,Duang!你就得到模板书 *.pdf
了!保存在 _book/
文件夹里。
你的文字
在 index.Rmd
和 body.Rmd
里写你自己的文字,享受写书的快乐吧!自古皆死,不朽者文。
更多输出格式
模板默认生成的书是pdf格式。‘bookdownplus’ 从 1.0.3 开始,可以很方便地输出更多格式,包括国内最常见的 ’word’格式,网页’html’格式和电子书’epub’格式,只需运行:
bookdownplus::bookdownplus(template = 'article', more_output = c('html', 'word', 'epub'))
就可以在 _book/
文件夹里看到这些文件了。
网页格式可以极其方便地免费发布到 bookdown.org,只需运行:
bookdown::publish_book()
这里是 bookdown 书籍的大本营。截至 2017 年 6 月,我有三本书被放置在这个网站的首页。
更多建议
我开发的另外两个 R 包可以配合 ‘bookdown’ 使用:
mindr (Zhao 2017b),可以从 markdown 或 R markdown 格式的书稿中提取纲要,并且生成思维导图。
pinyin (Zhao 2017c),可以为书稿的章节标题自动生成‘{#ID}’。如果标题里含有汉字,就会自动转换成拼音。
具体用法见他们的帮助信息。这两个包已经在 CRAN正式发布,安装命令是:
install.packages('mindr')
install.packages('pinyin')
更改模板
上述快速入门得到的模板文档是默认的论文文档。只需在上述步骤里为 bookdownplus()
函数指定模板名称,就可以用类似的操作得到其他模板的示范文档,如:
bookdownplus::bookdownplus(template = 'poem')
下面展示一些模板。
- article

- article_mdpi1

- article_zh

- calendar

- chemistry

- guitar

- journal



- poem

- thesis_classic

- thesis_ubt

- thesis_zju

- yihui_demo

- yihui_mini

- yihui_zh

- poster


更新记录
- 2017-06-21. Released on CRAN!
- 2017-06-21. Version 1.0.2. Resubmitted to CRAN!
- 2017-06-21. Version 1.0.2. Resubmitted to CRAN!
- 2017-06-21. Version 1.0.1. Submitted to CRAN!
- 2017-06-14. Version 0.0.1. A bug fixed.
- 2017-05-15. Version 0.0.0. A very preliminary version.
Xie, Yihui. 2016. Bookdown: Authoring Books and Technical Documents with R Markdown. Boca Raton, Florida: Chapman; Hall/CRC. https://github.com/rstudio/bookdown.
Zhao, Peng. 2017a. Bookdownplus: Generate Varied Books and Documents with R ’Bookdown’ Package. https://CRAN.R-project.org/package=bookdownplus.
———. 2017b. Mindr: Convert Files Between Markdown or Rmarkdown Files and Mindmaps. https://github.com/pzhaonet/mindr.
———. 2017c. Pinyin: Convert Chinese Characters into Pinyin. https://github.com/pzhaonet/pinyin.