kable_styling с full_width = T в документе оттенка - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть следующий 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 со следующей таблицей:

enter image description here

Таблица широкая и выходит за заголовок.Чтобы избежать этого, я могу указать, что это таблица полной ширины, используя 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}
---

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

enter image description here

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

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

1 Ответ

0 голосов
/ 19 февраля 2019

Вот обходной путь.При указании 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.") 
```

enter image description here

...