Rmarkdown交叉引用数字不起作用

时间:2018-05-04 11:35:04

标签: r-markdown knitr bookdown

因此。 我想将一些图像文件插入到Rmarkdown文档中,自动生成标签并能够从文本中的其他位置引用这些图像。我正在使用bookdown,所以我从

开始
---
output: 
  html_document:
    toc: true
    number_sections: true
    fig_caption: true
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
library(bookdown)
```

根据bookdown manual,如果我有以下代码块:

```{r knnPlot, echo=FALSE, fig.cap="Knn Plot"}
    knitr::include_graphics("knn-cs3-gs2.png")
```

然后我应该有一个标签fig:knnPlot自动生成,因为使用fig.cap显然将R放在一个数字环境中并自动将“fig”添加到标签中。然后它告诉我我应该能够使用\ @ref(标签)来引用这个数字,或者更确切地说,在这种情况下,\ @ref(图:knnPlot)

但是当我这样做时,输出文本“\ @ref(fig:knnPlot)”,而不是实际的交叉引用。没有数字标签,没有编号。这有什么用?

我无法使用here建议的硬编码方法。我也无法找到我能找到的唯一其他选项,它告诉我安装pandoc-crossreference,这让我陷入了一个荒谬的兔子洞,安装所有东西的haskell以及无穷无尽的依赖和模糊无意义的错误信息,这导致了惊人的无益的开发者论坛,里面有6页的错误日志。

1 个答案:

答案 0 :(得分:2)

您没有创建记事本文档。请改用bookdown::html_document2

---
title: "Bookdown"
output: 
  bookdown::html_document2:
    fig_caption: yes
    number_sections: yes
    toc: yes
---

```{r Doge, echo=FALSE, fig.cap="Mighty Doge"}
knitr::include_graphics("unnamed.png")
```

Check out this picture: \@ref(fig:Doge)

enter image description here