Todas las preguntas sobre referencias cruzadas de tablas en un documento Rmarkdown requieren el uso de kable para hacer referencias cruzadas. ¿Cómo puedo hacer una referencia cruzada a una tabla HTML que no se generó a partir de kable? Por ejemplo, usando el paquete table1:

---
title: Test Table Cross-Reference
output: bookdown::html_document2
---

This should be a cross reference to table \@ref(tab:table).

```{r table, echo = FALSE}
table1::table1(~depth + table + price | cut, data = ggplot2::diamonds)
```
1
Dylan Russell 1 sep. 2020 a las 01:45

1 respuesta

La mejor respuesta

Esto no es tan fácil como con kable, donde knitr crea automáticamente el enlace y la referencia e inserta ambos en el documento HTML final. Sin embargo, si puede vivir sin la numeración automática, es fácil crear enlaces usted mismo.

Puede crear un título usando HTML, anclarlo a través del argumento id y luego enlazar a ese ancla de esta manera (esto es similar a lo que hace knitr automáticamente):

This should be a cross reference to table [1](#tab:table)

```{r table2, echo = FALSE}
table1::table1(~depth + table + price | cut, data = ggplot2::diamonds)
```

<center><p id='tab:table'> Table 1: Your Caption</p></center>

Tenga en cuenta que table1::table1() también tiene una opción caption a la que puede pasar una cadena de caracteres, por lo que algo como esto también funciona:

```{r table2, echo = FALSE}
table1::table1(~depth + table + price | cut, data = ggplot2::diamonds,
               caption = "<p id='tab:table'> Table 1: Your Caption</p>")
```

enter image description here

2
M. A. 7 sep. 2020 a las 09:05