Bookdown平台分享了哪些书籍,如何使用Bookdown分享书籍
歡迎關注天下博客:http://blog.genesino.com/2016/11/bookdown-usage/
Jump to…
基本使用
安裝必須軟件
Demo示例
編譯成書
Customize our bookdown
準備Rmd文件
基本規則
插入并引用圖片(外部圖片)
插入并引用表格(外部表格)
插入并引用表格(內部表格)
插入腳注
插入引文
準備YML配置文件
_bookdown.yml
_output.yml
其它定制
預覽生成的WEB文件
References
bookdown是著名R包作者謝益輝開發的,支持采用Rmarkdown (R代碼可以運行)或普通markdown編寫文檔,然后編譯成HTML, WORD, PDF, Epub等格式。樣式清新,使用簡單,值得擁有。
在Bookdown的官網,有很多免費的用bookdown寫的R書籍,如Hadley Wickham等撰寫的《R for Data Science》,Roger D. Peng撰寫的《R Programming for Data Science》, 陳總的《液體活檢口袋書》,益輝的《R語言忍者秘笈》,《單細胞數據整體分析流程》https://hemberg-lab.github.io/scRNA.seq.course/index.html (初學單細胞分析可以完全照著這個,在學習過程中改進)。
還有很多基于Bookdown的教程,一時也想不起來,歡迎大家補充。我們前面轉錄組和R培訓的教案也是用bookdown寫作的,后續再調整下格式,出一批電子書和紙質書,有意向和需求的歡迎聯系。
下面分2步講述,自己如何構建一個Bookdown書籍,第一部分是通過bookdown示例了解其基本功能和使用,第二部分是個人在使用過程中碰到的問題和解決方式。
基本使用
安裝必須軟件
Rstudio或Pandoc二選一, bookdown必須安裝。
Install Rstudio (version>1.0.0) (安裝和使用見Rstudio)
Install Pandoc (version>1.17.0.2)或者參照here。如果系統新,可以直接使用系統自帶的yum或apt-get;如果沒有權限或系統比較老,Pandoc的安裝可以使用conda,具體配置見Conda配置,配置好運行conda install -c conda-forge pandoc即可安裝。
In R install.packages(“bookdown”)
Demo示例
克隆或下載https://github.com/rstudio/bookdown-demo示例文件,編譯成功后,依葫蘆畫葫蘆修改.
編譯成書
運行下載的示例中的bash _build.sh,_book目錄下就是成書.
The content of _build.sh is:
!/bin/sh
Rscript -e “bookdown::render_book(‘index.Rmd’, ‘bookdown::gitbook’)”
生成pdf需要安裝好latex,如果不需要可以注釋掉
Rscript -e “bookdown::render_book(‘index.Rmd’, ‘bookdown::pdf_book’)”
在前面的內容運轉起來后,再看后面的內容。
Customize our bookdown
準備Rmd文件
基本規則
一個典型的bookdown文檔包含多個章節,每個章節在一個R Markdown文件里面 (文件的語法可以是pandoc支持的markdown語法,但后綴必須為Rmd)。
每一個章節都必須以# Chapter title開頭。后面可以跟一段概括性語句,概述本章的內容,方便理解,同時也防止二級標題出現在這一頁。默認系統會按照文件名的順序合并Rmd文件。
另外章節的順序也可在_bookdown.yml文件中通過rmd_files:[“file1.Rmd”, “file2.Rmd”, ..]指定。
如果有index.Rmd,index.Rmd總是出現在第一個位置。通常index.Rmd里面也需要有一章節,如果不需要對這一章節編號的話,可以寫作# Preface {-}, 關鍵是{-}。
在第一個出現的Rmd文件中 (通常是index.Rmd),可以定義Pandoc相關的YAML metadata, 比如標題、作者、日期等 (去掉#及其后的內容)。
插入并引用圖片(外部圖片)
插入圖片最好使用knitr::include_graphics,可以同時適配HTML和PDF輸出。另外當目錄下同時存在name1.png和name1.pdf文件時,會自動選擇在HTML展示name1.png文件,在PDF輸出中引入name1.pdf格式的文件。
圖的標簽為fig-name(不能有下劃線),在引用時需使用如下格式\@ref(fig:fig-name),且fig.cap也要設置內容。
多張圖可以同時展示,圖的名字以vector形式傳給include_graphics,需要設置out.width=1/number-pics 和 fig.show=”hold”。
Insert a single pic and refer as Figure \@ref(fig:fig-name). echo=FALSE will hide the code block and display the output of r command only. These options can be set globally as indicated below.
T8_2 37,106,941 5,566,034,285 138-150 47 Sanger / Illumina 1.9
插入并引用表格(內部表格)
插入表格推薦使用knitr::kable,只要提供數據矩陣,用r讀取就可以了。
Check Table \@ref(tab:table-id) for detail.
a <- as.data.frame(matrix(rnorm(20), nrow=4)) knitr::kable(a, caption="Test table", booktabs=TRUE)插入腳注
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},
}
準備YML配置文件
_bookdown.yml
配置輸入和輸出文件參數。
book_filename: “輸出文件的名字”
output_dir: “輸出目錄的名字,默認_book”
language:
ui:
chapter_name: “”
_output.yml
配置產生輸出文件的命令行參數。
bookdown::pdf_book:
template: ehbio.tex #使用自己定制的pandoc latex模板
includes: # or only customize part latex module
in_header: preamble.tex
before_body: latex/before_body.tex
after_body: latex/after_body.tex
latex_engine: xelatex
citation_package: natbib
keep_tex: yes
pandoc_args: –chapters
toc_depth: 3
toc_unnumbered: no
toc_appendix: yes
quote_footer: [“\VA{“, “}{}”]
bookdown::epub_book:
stylesheet: css/style.css
bookdown::gitbook:
css: style.css
split_by: section
config:
toc:
collapse: none
before: | #設置toc開頭和結尾的鏈接
- after: |
- ct@ehbio.com
- download: [pdf, epub, mobi]
edit: https://github.com/rstudio/bookdown/edit/master/inst/examples/%s
sharing:
twitter: no
github: no
facebook: no
其它定制不同的文件分別用于html和pdf輸出
in _bookdown.yml
rmd_files:
html: [“index.Rmd”, “file2.Rmd”]
latex: [“index_pdf.Rmd”, “file3.Rmd”]Different render way
!/bin/sh
Rscript -e “bookdown::render_book(‘index.Rmd’, ‘bookdown::gitbook’)”
library(knitr) output <- opts_knit$get("rmarkdown.pandoc.to") html = FALSE latex = FALSE opts_chunk$set(echo = FALSE, fig.align="center", fig.show="hold") if (output=="html") {html = TRUE } if (output=="latex") {opts_chunk$set(out.width="95%", out.height='0.7\\textheight', out.extra='keepaspectratio', fig.pos='H')latex = TRUE } #knitr::opts_chunk$set(cache = FALSE, autodep=TRUE) set.seed(0304)
Rscript -e “bookdown::render_book(‘index_pdf.Rmd’, ‘bookdown::pdf_book’)”
配置全局變量自適應HTML和PDF輸出Below text will only appear in HTML output.
# EHBIO Gene Technology {-}Below command will only be executed and displayed in HTML output.
add below lines to last Rmd file
file.rename(from="bookdown_file_name.md", to="bookdown_file_name.saved.md")包含子文件 (subfile.txt)
``` cahce external file ref```{r mtime-func} mtime <- function(files){lapply(Sys.glob(files), function(x) file.info(x)$mtime) }<div class="se-preview-section-delimiter"></div>
總結
以上是生活随笔為你收集整理的Bookdown平台分享了哪些书籍,如何使用Bookdown分享书籍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 这些基因的名字太有才了,研究一下都可以发
- 下一篇: Mol. Biol. Evol. | 中