与bookdown::html_document2一起使用时,pander不包括表编号。我错过了一些选择吗?

---
title: "Pander Table Numbering"
output: bookdown::html_document2
---

# Chapter 1

```{r}
library(knitr)
library(pander)
# Table 1.1
kable(head(iris), caption = "Iris with kable")
# Another Table 1.1 (ok, same chunk = same table)
kable(head(mtcars), caption = "Mtcars kable")
```

```{r}
# No table number
pander(head(iris), caption = "Iris with pander")
```

```{r}
# Table 1.2
kable(head(mtcars), caption = "Mtcars kable")
```

最佳答案

首先,我非常感谢bookdown的用户!

我尝试使用pander而不是kable实现相同的目的。这样做的原因是kablekableExtra不会在pdf输出表中呈现标记文本,这是当前的巨大缺陷...因此,对于pdf输出,kable不会呈现诸如@smith2018-so*italic*之类的文献引用之类的东西。 ...这是一种痛苦。希望将很快提供补丁。要使用上面的相同代码,我可以使用pander进行引用,并在上面的代码中进行了一些更改。关于kable的另一件事,必须添加longtable=T,否则表将浮动到pdf输出中页面的底部。

首先,我在YAML中添加了documentclass: article,然后命名了代码块。但是真正使它可以在pander中工作的是将标题更改为caption = '(\\#tab:chunkname) Iris with pander')。诀窍是添加在\\参考中找不到的双bookdown。因此,最后,适用于html和pdf输出的代码是:

---
title: "Pander Table Numbering"
documentclass: article
output:
  bookdown::html_document2: default
  bookdown::pdf_document2: default
---

# Chapter 1

Table \@ref(tab:TabKable1)

```{r "TabKable1", results='asis'}
library(knitr)
library(pander)
# Table 1.1
knitr::kable(head(iris), caption = 'Iris with kable', longtable =T)
# Another Table 1.1 (ok, same chunk = same table)
#kable(head(mtcars), caption = "Mtcars kable")
```

Table \@ref(tab:TabPander1)

```{r "TabPander1"}
# No table number
pander(head(iris), caption = 'Iris with pander')
```

Table \@ref(tab:TabPander2)

```{r "TabPander2"}
# table number this time!!
pander(head(iris), caption = '(\\#tab:TabPander2) Iris with pander')
```


Table \@ref(tab:TabKable2)

```{r "TabKable2"}
# Table 1.2
kable(head(mtcars), caption = "Mtcars kable", longtable=T)

09-05 13:25