专栏首页庄闪闪的R语言手册R沟通|用bookdown制作图书(1)

R沟通|用bookdown制作图书(1)

介绍

R的bookdown扩展包是继knitr和rmarkdown扩展包之后, markdown格式的另一种扩展, 使得Rmd格式可以支持公式定理图表自动编号引用、链接 文献引用链接等适用于编写书籍的功能。

在bookdown的管理下:一本书的内容可以分解成多个Rmd文件, 其中可以有可执行的R代码R代码生成的文字结果表格图形可以自动插入到生成的内容中, 表格和图形可以是浮动排版的。

输出格式主要支持gitbook格式的网页图书, 这种图书在左侧显示目录, 右侧显示内容, 并可以自动链接到上一章和下一章;详细简介可参见:R语言教程-第23章[1]

通过单独安装的LaTeX编译器支持将书籍转换为一个PDF文件, 支持中文;可以生成ePub等格式的电子书。bookdown除了可以编写有多个章节的书籍, 也可以用来生成单一文件的研究报告。官网给出了很多免费的bookdown书籍:Bookdown优质免费书籍分享,当然小编也用它做日记本。

建议大家使用RStudio来制作图书, 该软件构建了一键编译整本书的功能。

简单教程

以下是一些简单的步骤,可帮助你开始使用Bookdown编写书籍。

安装

任意一种方法即可:

# you can either use the CRAN version
install.packages('bookdown')

# or the development version on Github
remotes::install_github('rstudio/bookdown')

创建

点击File-New Project-New Directory,然后点击以下图标:

设置文件名和路径,点击创建即可

这时候就会出现下面的界面,右下角是自带的一些文件,其中小框内部是每章节的rmd,可以看到bookdown是将很多个rmd文件合成的一本书。当然还包括yml文件,放文献的bib格式,制作主题的css文件等。

编译

我们找到index.rmd文件,打开并点击knit进行编译,右下角即可得到编译以后的结果:

当然你也可以将其在网页中预览,点击右下角框扫把右边的show in new windows。

注意 :Knit按钮只呈现你正在编辑的章节(例如index.rmd, 01-intro.Rmd等)并使用该书的默认输出格式。

要构建该书的所有章节和所有格式,可以使用RStudio构建窗格中的build book按钮(整个界面的右上角)。

呐,这时你就已经制作出不同格式的书籍了!你可以在对应项目文件夹中找到对应文件。

该模板不支持渲染中文字体的pdf,但是支持含中文字体的html。

制作中文书籍

如果你需要制作含中文字的书籍(当然需要!)可以直接套用李东风老师为我们准备好的模板了。下载链接为:`bookdown-template-v0-5.zip`[2],也可以在公众号命令窗口输出[bookdown]获得,小编只是个搬运工,感谢李老师分享!

  • 文件夹包含

CBook子目录包含了所需的中文书模板, CArticle子目录包含了论文格式模板, 其它子目录有一些别的模板(都可以学习使用,有机会小编再出教程呀!)

为了在本地支持网页中的数学公式显示还有一个MathJax目录, 参见其中的readme.txt说明文件。

使用教程

新建一个新的project(File-New Project),然后将CBook文件夹内部的所有文件复制粘贴到project文件夹中,例如:

介绍下其中的一些文件:

  • index.Rmd

一本bookdown书, 一般都需要有一个index.Rmd文件, 这是最后生成的网站的主页的原始文件, 可以在这个文件中写一些书的说明, 并在开头的YAML元数据部分进行有关设置, 如标题、作者、日期等。

类似于Rmarkdown中的yaml文件,你可以在此进行修改,李老师也给出模板内部参数详细解释[3]。本文针对初学者,所以不做过多解释,先会用就好。

  • xxx.Rmd

除了index.rmd外,项目中每个.Rmd文件都作为一章。每个.Rmd文件第一行, 应该是以一个井号和空格开头的一级标题, 后面再加空格然后有大括号内以井号开头的章标签, 如

# 随机数 {#rng}

0101-usage.rmd给出了中文图书Bookdown模板的基本用法,包括:安装设置、文档结构、图形表格公式的自动编号、生成PDF、上传到网站等内容。

这个rmd文件内容干货很多,大家不要跳过!

1001-chapter01.rmd给出了一章节内部内容,可以作为参考。

你可以把内容换成自己的,可以建立更多类似rmd文件,名字最好按类似序号排列,因为默认按序号先后编译。例如,我的日记本设置为:

等你写完自己的内容之后呢,可以按照前面的基础教程进行编译(两种方式)。或者可以使用李老师推荐的:在命令窗口使用以下命令编译:

bookdown::render_book("index.Rmd", 
  output_format="bookdown::gitbook", encoding="UTF-8")

要输出pdf必须要有tex环境噢!建议安装谢益辉的TinyTeX[4]

然后在项目文件夹中找到对应的pdf文件,打开就是你自己制作好的书籍了!下面是我日记本截图:

pdf格式

html格式:找到_book的index.rmd文件打开

小编有话说

  • 如果你是第一次看到我有关文档沟通的内容并且想跟着这个教程构建书籍的话,建议你看看我写的RMarkdown的基础教程推文或b站视频(文末推文推荐),因为构建书籍中包含了各类Rmarkdown的语法,如果你不会使用可能会很头疼。
  • 小编只能带大家入个门和拓展思维(如何创建,运用,编译)。而在你实际使用过程中可能会遇到各类实际问题,建议大家多使用bing[5]google[6])英文搜索,找到自己想要的答案。当然之后还会出一些使用bookdown经验和技巧的总结。也欢迎大家留言和我分享,我再整理分享给更多R爱好者们。
  • 这里再给大家推荐一些Bookdown相关的参考资料

《R语言教程-23章》[7]

bookdown: Authoring Books and Technical Documents with R Markdown[8]

bookdown官网[9]

参考资料

[1]

R语言教程-第23章: https://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/html/_Rbook/rmarkdown.html

[2]

bookdown模板: https://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/html/_Rbook/bookdown-template-v0-5.zip

[3]

内部参数解释: https://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/html/_Rbook/bookdown.html

[4]

TinyTeX: https://yihui.name/tinytex/

[5]

bing: https://www.bing.com/?mkt=zh-CN

[6]

google: https://www.google.com/

[7]

《R语言教程-23章》: https://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/html/_Rbook/bookdown.html

[8]

bookdown书: Authoring Books and Technical Documents with R Markdown: https://bookdown.org/yihui/bookdown/

[9]

bookdown官网: https://www.bookdown.org/

本文分享自微信公众号 - 庄闪闪的R语言手册(Zss_R4ds),作者:庄闪闪

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-03-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 翻译|记住一些常用的R包

    原文:Some R Packages to Keep In Mind(原文见文末链接)

    庄闪闪
  • 别人的电子书,你的电子书,都在bookdown

    bookdown是著名R包作者谢益辉开发的,支持采用Rmarkdown (R代码可以运行)或普通markdown编写文档,然后编译成HTML, WORD, PD...

    生信宝典
  • 干掉 LaTeX !用BookDown写本书

    bookdown是著名R包作者谢益辉开发的,支持采用Rmarkdown (R代码可以运行)或普通markdown编写文档,然后编译成HTML, WORD, PD...

    统计学家
  • 《毕业论文新手入坑手册》分享

    我把之前公众号和专栏发布的关于毕业论文写作全过程(包含选题、文献阅读、文献分析、论文写作和答辩注意事项等)内容,集结成了一本书,并且在线发布了。

    王树义
  • 「Workshop」第十九期:Markdown与RMarkdown最佳入口

    目前对于两者的介绍网上一大堆,而且本身语法简单,上手很快,这里不会过多介绍。**本文的核心在于让读者了解这些工具以及根据需要去学习和利用它们。**这里主要为初学...

    王诗翔呀
  • Bookdown文档生成教程

    bookdown是一款及其方便的编写技术文档或教材的工具,语法简洁,数据处理灵活。支持Rmarkdown或普通markdown通过pandoc软件转换为HTML...

    生信宝典
  • R沟通|用xaringan包制作幻灯片

    谢益辉写的xaringan包[1],可以创建幻灯片。个人认为ppt的很多功能,它都能实现,接下来将通过几次推送对这个包(中文名:写轮眼)进行详细讲解。

    庄闪闪
  • 原来Rstudio还可以这么使用,又方便了一些

    在别人的电子书,你的电子书,都在bookdown中我们讲述了bookdown用于自动化文档生成。里面涉及到一个文件Rproj用于项目管理。

    生信宝典
  • 学习R语言,一篇文章让你从懵圈到入门

    在实际工作中,每个数据科学项目各不相同,但基本都遵循一定的通用流程。具体如下: ? 数据科学工作流程: 1.数据导入 2.数据整理 3.反复理解数据 数据可视...

    CDA数据分析师

扫码关注云+社区

领取腾讯云代金券