Вопрос
Как обернуть заголовок выше (вставлен add_header_above())?
Есть простой способ, чтобы сделать это с одним многоуровневым заголовком, но не работает, когда есть второй (или третий) заголовок.
Воспроизводимый пример
library(kableExtra)
names(iris) <- c("L", "W", "L", "W", " ")
iris[1:2, ] %>%
kable("latex") %>%
add_header_above(
c(
"Sepal is great" = 2,
"Petal is better, (in fac my favorite)" = 2,
"nc" = 1)
) %>%
column_spec(2:ncol(iris), width = "0.3in")
Текущий вывод выглядит
Ожидаемый результат от кода R (примерно)





Как я сказал в Лучшая практика для новой строки в таблице LaTeX, если вам нужны символы новой строки во всех функциях kableExtra, просто используйте \n. В противном случае вы можете попробовать функцию linebreak.
library(kableExtra)
names(iris) <- c("L", "W", "L", "W", " ")
iris[1:2, ] %>%
kable("latex") %>%
add_header_above(
c(
"Sepal\nis great" = 2,
"Petal is better,\n(in fac my favorite)" = 2,
"nc" = 1)
) %>%
column_spec(2:ncol(iris), width = "0.3in")
Стоит ли мне внести еще какие-то изменения? Я добавил \usepackage{makecell} в in_header Yaml, но makecell по-прежнему не компилируется для pdf и просто отображается как \makecell[l]{whatever\\the title}.
Кажется, моя ошибка заключалась в том, что я включил escape = FALSE в вызов kable.
В конце концов, я просто хочу, чтобы таблица умещалась на одной странице, и желательно продолжать использовать kable.