介绍

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

在bookdown的管理下:一本书的内容可以分解成多个Rmd文件, 其中可以有可执行的R代码, R代码生成的文字结果、表格、图形可以自动插入到生成的内容中, 表格和图形可以是浮动排版的。 输出格式主要支持gitbook格式的网页图书, 这种图书在左侧显示目录, 右侧显示内容, 并可以自动链接到上一章和下一章; 详细简介可参见:R语言教程-第23章。

通过单独安装的LaTeX编译器支持将书籍转换为一个PDF文件, 支持中文; 可以生成ePub等格式的电子书。bookdown除了可以编写有多个章节的书籍, 也可以用来生成单一文件的研究报告。当然小编也用它做有趣的事:超链接。

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

简单教程

以下是一些简单的步骤,可帮助你开始使用Bookdown编写书籍。 有关bookdown的全面文档,请参阅https://bookdown.org/yihui/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,也可以在公众号命令窗口输出[bookdown]获得。

文件夹包含

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

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

使用教程

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

介绍下其中的一些文件:

  • index.rmd

一本bookdown书, 一般都需要有一个index.Rmd文件, 这是最后生成的网站的主页的原始文件, 可以在这个文件中写一些书的说明, 并在开头的YAML元数据部分进行有关设置, 如标题、作者、日期等。类似于Rmarkdown中的yaml文件,你可以在此进行修改,李老师也给出模板内部参数详细解释。本文针对初学者,所以不做过多解释,先会用就好。

  • 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。

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

小编有话说

  • 如果你是第一次看到我有关文档沟通的内容并且想跟着这个教程构建书籍的话,建议你看看我写的RMarkdown的基础教程,因为构建书籍中包含了各类Rmarkdown的语法,如果你不会使用可能会很头疼。

  • 小编只能带大家入个门(如何创建,运用,编译)。而在你实际使用过程中可能会遇到各类实际问题,建议大家多使用bing(google)英文搜索,找到自己想要的答案。

  • 这里再给大家推荐一些Bookdown相关的参考资料

    • 《R语言教程-23章》
    • bookdown: Authoring Books and Technical Documents with R Markdown
    • bookdown官网

用bookdown制作图书相关推荐

  1. Django(part39)--制作图书管理系统

    学习笔记,仅供参考,有错必究 文章目录 制作图书管理系统 第一步 第二步 第三步 制作图书管理系统 我们基于上一个博客Django(part38)–制作登录界面的mywebsite_bookstore ...

  2. 使用jQuery制作图书简介

    使用jQuery制作图书简介 html5代码如下: <!DOCTYPE html> <html><head lang="en"><meta ...

  3. JQuery制作图书简介页面

    第二章   JQuery选择器 练习1:制作图书简介页面 <!DOCTYPE html> <html> <head lang="en">< ...

  4. JavaScript第6章上机练习1(制作图书简介页面)

    ps:首先是链接外部的文件: img {width: 230px;height: 300px; }.textRight {float:left ; }.imgLeft {float:left ;mar ...

  5. 利用C语言制作图书管理系统

    利用C语言制作图书管理系统 #include<stdio.h> #include<windows.h> #define LEN sizeof(commdity) #define ...

  6. coreldraw制作图书条形码

    2019独角兽企业重金招聘Python工程师标准>>> 本文,我们一起来学习coreldraw怎么制作条形码.以图书条形码制作编写此篇教程. 第一,图书条形码的含义介绍 在图书的封底 ...

  7. 数据结构项目—— 用顺序表制作图书管理系统

    <图书信息管理系统>的制作: 全部代码如下(各部分已注释): #include "pch.h" #include<string> #include<f ...

  8. java简易制作图书查询系统

    要实现的功能: 点击图书查询,在页面出现要查询的图书详情信息 实现思路: 修改一下sql语句即可,通过ArrayList将所有查询结果进行存储,在model层的构造方法中修改输出的toString方法 ...

  9. 制作图书简介页面(JavaScript)

    1. 任务要求 1)熟悉jQuery的选择器: 2)掌握jQuery的基本选择器: 3)掌握jQuery对象的click()方法: 4)掌握jQuery对象的css()方法: 2. 需求说明 使用基本 ...

最新文章

  1. Python 的基本数据类型
  2. mysql中迅速插入百万条测试数据的方法
  3. Android之给图片去色,返回灰度图片以及ColorMatrix中setSaturation方法的用法
  4. 输入n个字符串字典序排序_FSST - 快速字符串压缩算法
  5. IT职场人生系列之十四:经验积累
  6. 关于Ocelot 网关结合Consul实现服务转发的坑爹问题
  7. liunx 下巧妙使用代理服务器(squid)
  8. Java应用全链路启动速度提升至15s,阿里云SAE能力再升级
  9. 秒懂云通信:选云通信到底哪家强?
  10. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 11丨产品销售分析 III【难度中等】
  11. Rmarkdown与Rnotebook使用心得
  12. posix and system V IPC
  13. java后台开发必备的9大类基础工具,你集齐了?
  14. ik做尾巴摆动 maya_Maya表达式控制动力学动画之尾巴(图文)
  15. 计算机vb代码电阻,利用VB程序编写色环电阻阻值计算器
  16. 多线程问题,实现三个线程顺序循环输出123123123...
  17. 解决cherry pick提交报错问题
  18. 由浅入深学java iso_由浅入深学Java:基础、进阶与必做260题 PDF扫描版[47MB]
  19. 今日头条文章量如何打造爆款
  20. 旅游评论文本数据,bert分类,加完整的论文

热门文章

  1. 服务器centos安装mysql数据库_阿里云 centos7 安装mysql数据库
  2. Python批量操作文件写入数据库及从数据库取数据!
  3. 58同城宝实时数仓建设实践
  4. 怎样用jupyter运行py文件?
  5. 一道概率题引发对考研数学复习的思考
  6. 不想上班,有五万块钱闲钱,自己可以做点小生意吗?
  7. 融云「聊天室属性」: 语聊房、直播间有序运行和丝滑体验的绝技
  8. 51nod - 1289 大鱼吃小鱼(栈)
  9. C语言变态版猴子吃桃问题(大数、gmp)
  10. Jlink提示错误信息read:@0x02000004