热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

初次使用bookdown编写书籍

bookdown支持采用Rmarkdown(R代码可以运行)或普通markdown编写文档,然后编译成HTML,WORD,PDF,Epub等格式。1.基本使用使用要求:安装Rstu

bookdown支持采用Rmarkdown (R代码可以运行)或普通markdown编写文档,然后编译成HTML, WORD, PDF, Epub等格式。

1. 基本使用

使用要求:

  • 安装Rstudio
  • 安装Pandoc

conda install -c conda-forge pandoc

接下来需要到.Renviron中设置环境:

RSTUDIO_PANDOC=/Applications/RStudio.app/Contents/MacOS/pandoc

  • 安装bookdown

install.packages("bookdown")

下载demo:

git clone https://github.com/rstudio/bookdown-demo

然后进行编译,运行下载的示例中的bash _build.sh,_book目录下就是成书。

#!/bin/sh
Rscript -e "bookdown::render_book('index.Rmd', 'bookdown::gitbook')"
# 生成pdf需要安装好latex,如果不需要可以注释掉
Rscript -e "bookdown::render_book('index.Rmd', 'bookdown::pdf_book')"

如果想在Rstudio中进行预览:

bookdown:::serve_book("./01Demo/bookdown-demo/")
2. 文件格式

  • 一个典型的bookdown文档包含多个章节,每个章节在一个R Markdown文件里面 (文件的语法可以是pandoc支持的markdown语法,但后缀必须为Rmd)。

  • 每一个章节都必须以# Chapter title开头。后面可以跟一段概括性语句,概述本章的内容,方便理解,同时也防止二级标题出现在这一页。默认系统会按照文件名的顺序合并Rmd文件。

  • 另外章节的顺序也可在_bookdown.yml文件中通过rmd_files:["file1.Rmd", "file2.Rmd", ..]指定。

  • 如果有index.Rmd,index.Rmd总是出现在第一个位置。通常index.Rmd里面也需要有一章节,如果不需要对这一章节编号的话,可以写作# Preface {-}, 关键是{-}。

  • 在index.Rmd,可以定义Pandoc相关的YAML metadata, 比如标题、作者、日期等 (去掉#及其后的内容)。

---
title: "A Minimal Book Example"
author: "Yihui Xie"
date: "`r Sys.Date()`"
site: bookdown::bookdown_site
output: bookdown::gitbook
documentclass: book
bibliography: [book.bib, packages.bib]
biblio-style: apalike
link-citations: yes
github-repo: rstudio/bookdown-demo
description: "This is a minimal example of using the bookdown package to write a book. The output format for this example is bookdown::gitbook."
---

插入脚注:

text^[footnote] is used to get the footnote.

where `type` may be `article`, `book`, `manual`, and so on.^[The type name is case-insensitive, so it does not matter if it is `manual`, `Manual`, or `MANUAL`.]

插入引文

假如我们的bib文件中内容如下,如果我们要引用这个文章,只要写 [@chen_m6a_2015]就可以了。

@article{chen_m6a_2015,
title = {m6A {RNA} {Methylation} {Is} {Regulated} by {MicroRNAs} and {Promotes} {Reprogramming} to {Pluripotency}},
volume = {16},
issn = {1934-5909, 1875-9777},
url = {http://www.cell.com/cell-stem-cell/abstract/S1934-5909(15)00017-X},
doi = {10.1016/j.stem.2015.01.016},
language = {English},
number = {3},
urldate = {2016-12-08},
journal = {Cell Stem Cell},
author = {Chen, Tong and Hao, Ya-Juan and Zhang, Ying and Li, Miao-Miao and Wang, Meng and Han, Weifang and Wu, Yongsheng and Lv, Ying and Hao, Jie and Wang, Libin and Li, Ang and Yang, Ying and Jin, Kang-Xuan and Zhao, Xu and Li, Yuhuan and Ping, Xiao-Li and Lai, Wei-Yi and Wu, Li-Gang and Jiang, Guibin and Wang, Hai-Lin and Sang, Lisi and Wang, Xiu-Jie and Yang, Yun-Gui and Zhou, Qi},
mOnth= mar,
year = {2015},
pmid = {25683224},
pages = {289--301},
}

bookdown是可以直接导出为word文档的。导出方法是,在_output.yml里添加一行:

bookdown::word_document2: default

注意,default这个词是不能少的,不管它是不是默认。我也不知道为什么。

解决办法是,不使用公式环境,而使用行内公式(即公式前后有一个美元符号),公式前面用圆括号里加公式标签就可以了。例如,输入:

$$latex
f(x;\mu,\sigma^2) = \frac{1}{\sigma\sqrt{2\pi}} e^{ -\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^2 }
$$

《初次使用bookdown编写书籍》

$$
E = mc^2
$$

《初次使用bookdown编写书籍》

引用其他章节

Cross-references

例如引用第四章,可以使用

[Chapter 4 Plant Materials and Growth Conditions](#plant_growth)
输出为Word

在index.Rmd或者_bookdown.yml中设置site: bookdown::bookdown_site后, RStudio就能识别这个项目是一个bookdown项目, 这时RStudio会有一个Build窗格,其中有“Build book”快捷图标, 从下拉菜单中选择一个输出格式(包括gitbook、pdf_book、epub_book), 就可以编译整本书。

在_output.yml加入一行bookdown::word_document2: default可以输出为Word, 注意,default这个词是不能少的。

Reference:

  • Bookdown平台
  • R bookdown 语法标记速查

推荐阅读
  • 其实之前也有下载过完整的android源码,但是从来没有对这个做过一些总结,在加上最近需要经常去看,索性就在从新下载,编译一下,其实这些东西官网上面都有。http:sou ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • CentOS7.8下编译muduo库找不到Boost库报错的解决方法
    本文介绍了在CentOS7.8下编译muduo库时出现找不到Boost库报错的问题,并提供了解决方法。文章详细介绍了从Github上下载muduo和muduo-tutorial源代码的步骤,并指导如何编译muduo库。最后,作者提供了陈硕老师的Github链接和muduo库的简介。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了在多平台下进行条件编译的必要性,以及具体的实现方法。通过示例代码展示了如何使用条件编译来实现不同平台的功能。最后总结了只要接口相同,不同平台下的编译运行结果也会相同。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 如何利用 Myflash 解析 binlog ?
    本文主要介绍了对Myflash的测试,从准备测试环境到利用Myflash解析binl ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • macOS命令行创建Android模拟器
    macOS下不安装AndroidStudio使用VSCode来开发Flutter应用使用命令行创建和管理Android模拟器设备avdmanageravdmanager 是一种命令 ... [详细]
  • LaTeX使用XeLaTeX入门基础(一)
    主机平台:GentooLinux11.2内核版本:LinuxKernel3.2.1编译环境:XeTeX3.1415926-2.3-0. ... [详细]
  • Sublime P4语法高亮设置
    Github插件链接:p4-syntax-highlighter首先安装PackageControl。进入Package界面,我的目录:U ... [详细]
author-avatar
啊啦思密达
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有