Я пытаюсь сослаться на таблицу в текстовом документе, используя пакет bookdown
.
Я хотел добавить id ссылки в параметр fig.cap
фрагмента кода, но интерпретатор этого почему-то не видит, и я не получаю ссылку на ссылку.
В качестве обходного пути я добавил свой эталонный идентификатор в заголовок таблицы, но здесь полный идентификатор ({#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')
```
:::
Чуть менее грубый способ — поместить пробел в заголовок:
knitr::kable(head(iris, 3),
caption='[test]{#mysecondtable}')
Разница между ними заключается в том, что ссылка будет указывать на всю таблицу при использовании div и на заголовок при использовании диапазона.
Привет @tarleb, спасибо, это решение DIV работает как шарм! Решение для подписи не работает в подписи flextables. По крайней мере, в моем решении он всегда печатает полную
[test]{#mysecondtable}
, а не толькоtest
подпись.