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 в вариантах куска мне не повезло.

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

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.") 
```

h ttps://stackru.com/images/b5a96ee91c41cbb3a379854b694fd5406ed8d3fe.png

Другие вопросы по тегам