问题
I'd like to name my tables from R scripts without the automatic Table 1:...
prefix when using xtable()
or knitr::kable()
in an .Rmd file. Output is a pdf document.
Here's a reproducible example from an .Rmd file:
---
title: "Suppress automatic table name and number"
output: pdf_document
---
```{r myirischunk, results = 'asis', tab.cap = NULL, echo = TRUE}
library(xtable)
print(knitr::kable(head(iris), caption = "I sure wish it would say Table 1.a"))
print(knitr::kable(head(iris), caption = "Please stop"))
print(xtable(head(iris), caption = "Same thing with xtable"))
```
I've seen similar questions with some suggestions here, but I can't seem to get it to work in an .Rmd file.
回答1:
It turns out that I needed to add the following in the YAML section:
header-includes:
- \usepackage{caption}
AND the following somewhere before the code chunk:
\captionsetup[table]{labelformat=empty}
Now it works:
---
title: "Suppress automatic table name and number"
output: pdf_document
header-includes:
- \usepackage{caption}
---
\captionsetup[table]{labelformat=empty}
```{r myirischunk, results = 'asis', tab.cap = NULL, echo = TRUE}
print(knitr::kable(head(iris), caption = "Table 21.a - My very own table name"))
```
This has also been described here:
Get rid of captions using texreg in markdown
And yes, I'm a bit embarrased that I didn't find that answer straight away.
Anyway, thanks to daroczig for pointing me in the tex direction instead of trying to solve the problem using chunk options or something like that.
回答2:
In case you also want figures the same way, modify the example by vestland to
---
title: "Suppress automatic table name and number"
output: pdf_document
header-includes:
- \usepackage[labelformat=empty]{caption}
---
and skip the \captionsetup{}
.
来源:https://stackoverflow.com/questions/31182147/suppress-automatic-table-name-and-number-in-an-rmd-file-using-xtable-or-knitr