我正在尝试使用bookdown
包引用word文档中的表。
我想在代码块的fig.cap
参数中添加引用id,但这在某种程度上没有被解释器看到,我没有得到指向引用的链接。
作为一种解决方法,我将我的参考ID添加到表的标题中,但这里完整的ID ({#mysecondtable2}
)写在图标题中,这看起来很难看。
你知道怎么解决这个问题吗?也许LUA过滤器可以从表标题中删除丑陋的锚?我不知道该怎么做。
---
title: "Untitled"
author: "Mario"
date: '2022-11-10'
output:
bookdown::word_document2:
toc: true
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## R Markdown
See Table @ref(tab:myfirsttable). Or click [Table @ref(tab:mysecondtable)](#mysecondtable2).
```{r myfirsttable, echo = FALSE}
knitr::kable(cars, caption = "First three rows of cars dataset")
```
See Table @ref(tab:mysecondtable).
```{r mysecondtable, echo = FALSE, fig.cap='{#mysecondtable2}'}
knitr::kable(head(iris, 3),
caption='{#mysecondtable2} test')
```
编辑:
一些奇怪的行为表明,[Table @ref(tab:mysecondtable)](#mysecondtable)
似乎起作用。但实际上它只引用了第二个表的标题,而忽略了末尾的2…
一个直接的解决方案是将表包装到一个额外的div中,这样就可以链接到那个div:
Or click [Table @ref(tab:mysecondtable)](#mysecondtable-wrapper).
::: {#mysecondtable-wrapper}
```{r mysecondtable, echo = FALSE}
knitr::kable(head(iris, 3),
caption='test')
```
:::
一个稍微不那么粗糙的方法是在标题中加入一个span:
knitr::kable(head(iris, 3),
caption='[test]{#mysecondtable}')
两者的区别在于,当使用div时链接将指向整个表,而当使用span时链接将指向标题。