与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
实现相同的目的。这样做的原因是kable
或kableExtra
不会在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)