Bookdown:Cross-reference 图和自定义 link 文本

Bookdown: Cross-reference figure with a custom link text

我想 cross-reference 一个数字 (PDF/PNG) 与自定义 link 文本 在一份报告中用 bookdown 编译为 LaTex/PDF输出.

假设块标签为“FOO-Figure”,假设块标签为“FOO-Figure”。
custom link texts 的语法在 bookdown book 中推荐,不幸的是只适用于 links 和我的标题,而不适用于 included(外部)数字:

[custom link text](#fig:FOO-Figure)[custom link text](#FOO-Figure) 都无法在 LaTex/PDF 输出中工作。

有趣的是,如果输出格式为 HTML 并且按预期引用 file:///Users/.../book/my-headline.html#fig:FOO-Figure,则前者有效。

对于 LaTeX 输出,[text](#ID) 将无法正常工作。

一个解释:

```{r yourfigure, fig.cap = "This is your Figure!"}
knitr::include_graphics("image.png")
```

引用 \@ref(fig:yourfigure) 解析为 \ref{fig:yourfigure}。这很好,因为 knitr 确保将图像放在带有此标签的浮动环境中。

但是,[this](#fig:yourfigure) 解析为 \protect\hyperlink{fig:yourfigure}{this},这是对不存在的锚点的引用。但是,我们可能会手动生成此锚点。解决方法是

```{r yourfigure, fig.cap = "This is your Figure!"}
knitr::include_graphics("image.png")
```
\hypertarget{fig:yourfigure}{}