如何在pdf中停止从页面浮动到底部的簿记表?

时间:2017-06-30 15:27:14

标签: r latex knitr r-markdown bookdown

我正在使用bookdown创建pdf报告,但无论空间有多大,我的表都会浮动到页面底部。见这个例子:

---
title: "test_doc"
author: "Jake Thompson"
date: "6/30/2017"
output:
  bookdown::pdf_document2:
    toc: false
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE, collapse = TRUE)
library(tidyverse)
```

# Test heading

Let make a data frame and print it in Table \@ref(tab:test-table)

```{r test-table}
data_frame(col_a = seq_len(5), col_b = rnorm(5), col_c = runif(5)) %>%
  knitr::kable(caption = "This is a test")
```

结果pdf如下所示:

pdf-output

为什么表格会转到页面底部?有没有办法防止这种行为?

2 个答案:

答案 0 :(得分:10)

您可以通过

使用kableExtra来解决此问题
data_frame(col_a = seq_len(5), col_b = rnorm(5), col_c = runif(5)) %>%
  knitr::kable(caption = "This is a test") %>%
  kableExtra::kable_styling(latex_options = "hold_position")

它基本上将[!h]插入到LaTeX table环境中,这将阻止浮动行为并将表固定在当前位置。

答案 1 :(得分:2)

我不得不使用

kable_styling(latex_options = "HOLD_position")

请注意,大写的HOLD_position与hold_position不同。另请参见here

要使用该功能,我还必须添加到文档的顶部(来自How to build a latex kable through bookdown::render_book?):

output:
  pdf_document:
    extra_dependencies: ["float"]