kable_styling с full_width = T в тонированном документе

У меня есть следующий tint PDF-документ:

---
title: "Title"
subtitle: "Subtitle"
author: "Author"
date: "`r Sys.Date()`"
output: tint::tintPdf
---

```{r echo = FALSE, message = FALSE}
# Load library
library(dplyr)

# Create data frame
df <- data.frame(A = runif(10), 
                 B = runif(10), 
                 C = runif(10), 
                 D = runif(10),
                 E = runif(10),
                 F = runif(10),
                 G = runif(10),
                 H = runif(10))

# Print as a table
knitr::kable(df, booktabs = TRUE, format = "latex", 
             caption = "This is a caption in the margin.") 
```

Будет создан PDF-файл со следующей таблицей:

введите здесь описание изображения

Таблица широкая и выходит за пределы подписи. Чтобы избежать этого, я могу указать, что это таблица полной ширины, используя full_width = TRUE в kable_styling функции kableExtra.

---
title: "Title"
subtitle: "Subtitle"
author: "Author"
date: "`r Sys.Date()`"
output: tint::tintPdf
---

```{r echo = FALSE, message = FALSE}
# Load library
library(dplyr)

# Create data frame
df <- data.frame(A = runif(10), 
                 B = runif(10), 
                 C = runif(10), 
                 D = runif(10),
                 E = runif(10),
                 F = runif(10),
                 G = runif(10),
                 H = runif(10))

# Print as a table
knitr::kable(df, booktabs = TRUE, format = "latex", 
             caption = "This is a caption in the margin.") %>%
  kableExtra::kable_styling(full_width = TRUE)
```

Это дает следующую ошибку:

! Ошибка LaTeX: вкладка среды не определена.

Ошибка: не удалось скомпилировать Test.tex. См. Test.log для получения дополнительной информации. Выполнение остановлено

Вроде расстроил пакет tabu (или его отсутствие). Итак, я добавляю этот пакет в свой YAML, например:

---
title: "Title"
subtitle: "Subtitle"
author: "Author"
date: "`r Sys.Date()`"
output: tint::tintPdf
header-includes:
  - \usepackage{tabu}
---

Это выполняется, но дает следующее:

введите здесь описание изображения

Теперь содержимое таблицы перекрывается. Humpf. Даже если я включу fig.fullwidth = TRUE в параметры чанка, мне не повезет.

Как в этой ситуации создать таблицу полной ширины?


person Lyngbakr    schedule 19.02.2019    source источник


Ответы (1)


Вот обходной путь. Если указать longtable = TRUE в kable, заголовок перемещается вверх. Также в YAML: tables: yes. Как ни странно, использование kable_styling с full_width = TRUE приведет к сжатию таблицы на всю ширину основного тела, а не основного тела + поля.

---
title: "Title"
subtitle: "Subtitle"
author: "Author"
date: "`r Sys.Date()`"
output: tint::tintPdf
tables: yes
---

```{r echo = FALSE, message = FALSE}
# Load library
library(dplyr)

# Create data frame
df <- data.frame(A = runif(10), 
                 B = runif(10), 
                 C = runif(10), 
                 D = runif(10),
                 E = runif(10),
                 F = runif(10),
                 G = runif(10),
                 H = runif(10))

# Print as a table
knitr::kable(df, booktabs = TRUE, format = "latex", longtable = TRUE,
             caption = "This is a caption in the margin.") 
```

введите здесь описание изображения

person Lyngbakr    schedule 19.02.2019