交叉引用

如果要使用交叉引用,则每个待引用对象需要有以下两个元素:

拥有了这两个元素的对象会被自动加上序号,如Figure 1,并可以被交叉引用。 可引用的对象包括:图表、公式、章节、代码和定理等。注意在交叉引用时要在两端加上空格。

Tip

有关交叉引用的详细指南,参考:https://quarto.org/docs/authoring/cross-references.html

1 标题/节的交叉引用

只需通过sec-定义label,基本语法:Introduction {#sec-introduction}。注意:要使用节的引用,需要在YAML开启标题编号(number-sections: true),以便读者能够看到这些编号。

2 图片的交叉引用

实现的方法:

  • 方法一:在源代码模式下修改被引用对象的属性,如:![Example for cross reference](images/crossref-figure.png){#fig-elephant width="290"}。其中,方括号内的是对象的caption,小括号内是图片所在的目录,“{}”内的内容是图像的label以及其他可选设置。
  • 方法二:点击待引用对象右上角的三个点,进入对象设置。分别输入captionID(即label)(Figure 1 )。

Figure 1: 交叉引用的设置

例如下面的图片,可以被引用:Figure 2

Figure 2: Example for cross reference

2.1 组图的交叉引用

基本语法:

案例:

(A) 素描大象
(B) 油画大象
Figure 3: 组图的交叉引用

现在,我们就可以将组图一起引用(Figure 3 ),或是单独引用组图内的某一张图(Figure 3 (B)Figure 3 (A) )。

3 表格的交叉引用

3.1 Markdown表格的引用

只需在表格后加上: My Caption {#tbl-letters}即可使该表格能够被引用。如下面的表格 Table 1

Table 1: 表格的交叉引用示例
Col1 Col2 Col3
A B C
E F G
A G G

3.2 代码输出表格的引用

  • label:tbl-:表格的标签。

  • tbl-cap:表格的标题。

  • knitr包提供了一个 kable() 函数可以用来把数据框或矩阵转化成有格式的表格,支持HTML、docx、LaTeX等格式。

```{r}
#| eval: true
#| label: tbl-iris
#| tbl-cap: "Iris数据"

library(knitr)
kable(head(iris))
```
Table 2: Iris数据
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
5.1 3.5 1.4 0.2 setosa
4.9 3.0 1.4 0.2 setosa
4.7 3.2 1.3 0.2 setosa
4.6 3.1 1.5 0.2 setosa
5.0 3.6 1.4 0.2 setosa
5.4 3.9 1.7 0.4 setosa

现在,就可以通过 Table 2 来引用该表格了。

Note

关于表格的详细指南,参考:https://quarto.org/docs/authoring/tables.html