kableExtra: настроить шрифт и фон add_header_above()

В таблице, созданной с помощью kableExtra(), я хотел бы настроить шрифт и фон двух верхних строк, добавленных с помощью add_header_above().

Приведенный ниже MWE позволяет вносить коррективы в верхнюю строку исходной таблицы. Однако моя цель состоит в том, чтобы

  • добавленная верхняя верхняя строка имеет шрифт полужирный и цветной фон, а
  • добавленная нижняя верхняя строка имеет шрифт курсив.

Таблица включена в документ Rmarkdown, который связан как с PDF/LaTex, так и с HTML.

MWE

mtcars[1:3,1:4] %>% kable() %>% 
    kable_styling(latex_options = c("striped", "scale_down")) %>% 
  # add column labels
  add_header_above(c(" " = 1, "Features" = 2, "Features" = 2)) %>% 
  add_header_above(c(" " = 1, "Properties A" = 2, "Properties B" = 2)) %>% 
  # adjust font face and backgroun
  row_spec(row = 0, italic = T) %>% 
  row_spec(row = 0, background = "orange") 

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


person mavericks    schedule 30.06.2020    source источник


Ответы (1)


Предоставляя ответ на этот связанный сообщение о SO при изменении размера шрифта в таблицах kableExtra для добавленных вручную строк заголовка/группировки, добавленных с помощью add_header_above(), я нашел решение своего собственного вопроса.

add_header_above() на самом деле предоставляет много-много аргументов для искажения вывода по желанию:

add_header_above(kable_input, header = NULL, bold = FALSE,
  italic = FALSE, monospace = FALSE, underline = FALSE,
  strikeout = FALSE, align = "c", color = NULL, background = NULL,
  font_size = NULL, angle = NULL, escape = TRUE, line = TRUE,
  line_sep = 3, extra_css = NULL, include_empty = FALSE)

Иллюстративный MWE:

vec <- c("Properties A", "Properties B")
mtcars[1:3,1:4] %>% kable() %>% 
  kable_styling() %>% 
  # 2nd. level of grouping rows added on top of the table
  add_header_above(
    c(" " = 1, 
      "Features" = 2, 
      "Features" = 2), 
    font_size = 15, italic = TRUE) %>%
  # 1st. level of grouping rows added on top of the table (with dynamic labels as requested)
  add_header_above(
    c(" " = 1, 
      setNames(2, vec[1]),
      setNames(2, vec[1])), 
    font_size = 25, bold = TRUE, color = "orange", background = "lightblue") %>% 
  # adjust font face and background
  row_spec(row = 0, italic = T) %>% 
  row_spec(row = 0, background = "orange")

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

person mavericks    schedule 30.06.2020