有没有办法把我的桌子放到一个页面?我有一张桌子,在两页之间打破。这是一个可重复的例子:
---
output: pdf_document
---
`r rep("Text", 400)`
```{r}
# This will create a page break
knitr::kable(mtcars, caption = "A split table")
```
这会生成一个2页的pdf,其中包含一个损坏的表,如下所示:
答案 0 :(得分:3)
有两种简单的方法可以做到这一点:
<强> 1。添加分页符
如果您只使用PDF输出,您实际上可以将LaTeX命令直接集成到报告中。因此,\newpage
命令将强制进行分页,如下所示:
---
output: pdf_document
---
`r rep("Text", 400)`
\newpage
```{r}
knitr::kable(mtcars, caption = "A fixed table")
```
<强> 2。使用Page Floats :
由于RMarkdown使用LaTeX构建PDF,您可以利用页面floats feature。这可能需要一些时间来习惯,但不是将图形或表格锁定在设定位置,LaTeX将尝试将图形放置在它认为“最佳”的位置。使用表格,它会尝试删除任何分页符。
这是一个例子。该表将浮动到第二页。确保更新YAML以包含header-includes:
参数:
---
output: pdf_document
header-includes:
- \usepackage{booktabs}
---
`r rep("Text", 400)`
```{r}
knitr::kable(mtcars, format = "latex",
caption = "A caption",
booktabs = TRUE,
longtable = FALSE)
```
`r rep("Text", 200)`
如果查看输出,您将看到第二个文本块与第一个页面在同一页面上继续,并且表格以第二页为中心。这一切都是由LaTeX自动完成的,如果您在表之前添加更多可能导致表再次被破坏的文本,可以避免痛苦。
希望有所帮助。