5 bookdown语法

bookdown 比 Rmarkdown 的主要升级之处在于自动编号和交叉引用。

5.1 章节编号和引用

5.1.1 编号

# (PART) 第一篇 {-} 部分(篇) # References {-} 参考文献 # (APPENDIX) 附录 {-} 附录

5.1.2 引用

  1. {#tag},自动为标题编号,并定义标题的标签,便于引用。标签只能含字母、数字和连字符”-“,图、表标签同
  2. {-},不为标题编号,也不定义标签
  3. {#tag .unnumbered},设置标题的标签,但不为标题编号
  4. \@ref(tag),引用标题编号。如第5节是关于bookdown的。

5.2 图形自动编号

用R代码块生成的图形,只要具有代码块标签label,且提供代码段选项fig.cap="图题",就可对图形自动编号,并且可以用如\@ref(fig:label)的格式引用图形。如:

plot(1:10)
测试图

Figure 5.1: 测试图

引用如:参见图5.1,其中的fig:是必须的。

5.3 表格自动编号

用R代码knitr::kable()生成的表格,只要具有代码块标签,并且在knitr::kable()调用时加选项caption="表题",就可以对表格自动编号,并且可以用如\@ref(tab:label)的格式引用表格。如:

d <- data.frame("自变量" = 1:10, "因变量" = (1:10)^2)
knitr::kable(d, caption = "1到10的平方", longtable = TRUE)
Table 5.1: 1到10的平方
自变量 因变量
1 1
2 4
3 9
4 16
5 25
6 36
7 49
8 64
9 81
10 100

引用如:参见表5.1,其中的tab:是必须的。

5.4 数学公式编号

不需要编号的公式,仍可以按照一般的Rmd文件使用行内的$ $或独立的$$ $$公式块。

需要编号的公式,写在\begin{align}\end{align}之间。然后,对不需要编号的在末尾用\nonumber标注;对需要编号的(\#eq:mylabel)添加自定义标签,在正文的引用中使用与上面相同的格式\@ref(eq:mylable)。如:

\[\begin{align} f(x) =& \sum_{k=0}^\infty \frac{1}{k!} x^k \tag{5.1} \\ = e^x \tag{5.2} \end{align}\]

\[\begin{align} \Sigma =& (\sigma_{ij})_{n\times n} \nonumber \\ =& E[(\boldsymbol{X} - \boldsymbol{\mu}) (\boldsymbol{X} - \boldsymbol{\mu})^T ] \tag{5.3} \end{align}\]

引用如:协方差定义见式(5.3)

5.5 文献引用与文献列表

  1. 将所有文献用bib格式保存为一个.bib文献库,如模板中的样例文件mybib.bib。用@item[@item]引用文献题录,如2:
源代码 效果
@MWP06-HighStat 茆诗松 et al. (2006)
@Lin2018 [page. 33] 林毅夫 (2018, page. 33)
[@Lin2018, page. 33] (林毅夫 2018, page. 33)
[@Lin2018; @MWP06-HighStat] (林毅夫 2018; 茆诗松 et al. 2006)
[see @Lin2018, page. 33-35; also @MWP06-HighStat, ch. 1] (see 林毅夫 2018, page. 33-35; also 茆诗松 et al. 2006, ch. 1)
[-@Lin2018] (2018)
nocite:|
@item1,@item2

写在YAML文件头中,表示某些文献不直接引用,只在末尾参考文献列表中出现。

被引用的文献将出现在一章末尾以及全书的末尾,对PDF输出则仅出现在全书末尾。

5.6 索引

\index{索引词汇},标记为索引,仅适用于pdf格式,输出在文末。

5.7 编译

bookdown::render_book('index.Rmd', 'bookdown::epub_book')

bookdown::render_book('index.Rmd', 'bookdown::pdf_book')

bookdown::render_book('index.Rmd', 'bookdown::gitbook')

只编译一章:
bookdown::render_book('chapter1.rmd', 'bookdown::gitbook', preview = T)

参考文献

林毅夫. 从经济学视角看文化自信. 中国品牌. 2018;(1):94–4.
茆诗松, 王静龙, 濮晓龙. 高等数理统计. 第二版. 高等教育出版社; 2006.

  1. 没有方括号时,题录前后一定要加空格。↩︎