首页 > 解决方案 > Rmarkdown 交叉引用数字不起作用

问题描述

所以。我想将一些图像文件插入到 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手册,如果我有以下代码块:

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

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

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

我无法使用此处建议的硬编码方法。我也无法找到唯一可以工作的选项,它告诉我安装 pandoc-crossreference,这使我陷入了一个荒谬的兔子洞,即安装所有事物的 haskell 以及无尽的依赖关系和晦涩无意义的错误消息,导致壮观无用的开发者论坛充满了 6 页的错误日志。

标签: r-markdownknitrbookdown

解决方案


您不是在创建簿记文档。改用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)

在此处输入图像描述


推荐阅读