【问题标题】:R Markdown - cross reference an HTML table without `kable`R Markdown - 交叉引用没有“kable”的HTML表格
【发布时间】:2020-08-31 22:45:11
【问题描述】:

Rmarkdown 文档中有关表格​​交叉引用的所有问题都需要使用kable 进行交叉引用。如何交叉引用不是从kable 生成的 HTML 表?例如,使用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)
```

【问题讨论】:

    标签: r-markdown bookdown


    【解决方案1】:

    这不像 kable 那样简单,在 kable 中,knitr 会自动创建链接和引用,并将两者插入到最终的 HTML 文档中。但是,如果您可以在没有自动编号的情况下生活,那么您自己创建链接很容易。

    您可以使用 HTML 创建标题,通过参数 id 锚定它,然后像这样链接到该锚点(这类似于 knitr 自动执行的操作):

    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>
    

    请注意,table1::table1() 也有一个选项 caption,您可以将一个字符串传递给该选项,因此类似的方法也可以:

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

    【讨论】:

    • 谢谢!自动编号很糟糕,但总比没有好!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    相关资源
    最近更新 更多