使用 bookdown 包引用 'hand-made' table

Referencing a 'hand-made' table using bookdown package

我正在尝试使用 bookdown package. In the documentation for tables 引用 table,作者仅展示了如何使用 knitr::kable 创建 table。

```{r table1}
knitr::kable(
  head(iris, 20), caption = 'Here is a nice table!',
  booktabs = TRUE
)
```

Table\@ref(tab:table1)来了

使用 knitr::kable 效果很好。显示 table 的标题,我可以引用 table。我想对经典 hand-made markdown table 做同样的事情,但显然下面的代码失败了。 我怎样才能得到与上述代码类似的结果?

```{r table2, echo=FALSE, results='asis'}
cat('| Sepal.Length| Sepal.Width| Petal.Length|
|------------:|-----------:|------------:|
|          5.1|         3.5|          1.4|
|          4.9|         3.0|          1.4|
|          4.7|         3.2|          1.3|
|          4.6|         3.1|          1.5|')
```

Table\@ref(tab:table2)来了

This图为这段代码编织时的输出

我在文档中确实提到了它,但可能还不够清楚。我说你需要(\#tab:...)形式的标签。例如,您可以使用 \@ref(tab:foo).

引用此 table
Table: (\#tab:foo) Your table caption.

| Sepal.Length| Sepal.Width| Petal.Length|
|------------:|-----------:|------------:|
|          5.1|         3.5|          1.4|
|          4.9|         3.0|          1.4|
|          4.7|         3.2|          1.3|
|          4.6|         3.1|          1.5|

我加入讨论有点晚了,但我只是想分享一个有效的 MWE(基于之前的回答):

```{r , echo=FALSE, results='asis'}
  cat(' Table: (\#tab:mwe) Example

  | Sepal.Length| Sepal.Width| Petal.Length|
  |------------:|-----------:|------------:|
  |          5.1|         3.5|          1.4|
  |          4.9|         3.0|          1.4|
  |          4.7|         3.2|          1.3|
  |          4.6|         3.1|          1.5|')

```

Table @ref(tab:table2) 显示...

我用以下方法解决了这个问题:

```{r table2 , echo=FALSE, results='asis'}
  cat(' Table: \label{tab:table2}Example
  
  | Sepal.Length| Sepal.Width| Petal.Length|
  |------------:|-----------:|------------:|
  |          5.1|         3.5|          1.4|
  |          4.9|         3.0|          1.4|
  |          4.7|         3.2|          1.3|
  |          4.6|         3.1|          1.5|')
  
```

如果你写文字想引用table,你可以写in table \ref{tab:table2} the results are shown