Есть ли способ сделать кейбл без линий / границ для pdf?

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

Клиент хочет, чтобы в таблицах не было линий / границ, за исключением верхней части последней строки, возможно ли это в kable и / или kableExtra? Никаких ответов, содержащих другие пакеты, пожалуйста, так как я знаю, что xtable.

table.tbl <- tibble(var1 = c("entry 1", "entry 2", "entry 3", "entry 4"),
                var2 = c(2000, 1000, 3000, 200),
                var3 = c(3000, 2000, 4000, 100))

table.tbl %>% 
  kable("latex", 
        booktabs = T) %>% 
  row_spec((table.tbl %>% 
             nrow()-1), hline_after = T)

person Allan A    schedule 20.12.2018    source источник


Ответы (2)


Я думаю, что kable должен быть очень простым и поэтому не имеет подобных функций по дизайну. Тем не менее, я придумал абсурдно болезненное решение. Суть в том, что я устанавливаю цвета границ на белый (я предполагаю, что ваша страница белая), затем меняю цвета линий на небелые (красный в моем примере), когда это необходимо, а затем снова обратно на белый.

Сначала добавьте в заголовок YAML следующее:

header-includes:
  - \usepackage{colortbl}

Затем в вашем документе добавьте:

\arrayrulecolor{white}

Для визуализации таблицы используйте:

library(tidyverse)
library(knitr)
library(kableExtra)

table.tbl <- tibble(var1 = c("entry 1", "entry 2", "entry 3", "entry 4"),
                var2 = c(2000, 1000, 3000, 200),
                var3 = c(3000, 2000, 4000, 100))
table.tbl %>% 
  kable(format = "latex") %>%
  row_spec((table.tbl %>% 
             nrow()-1), extra_latex_after = "\\arrayrulecolor{red}") %>% 
  row_spec((table.tbl %>% 
             nrow()), extra_latex_after = "\\arrayrulecolor{white}")

давая

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

person Lyngbakr    schedule 20.12.2018
comment
Большое спасибо @Lyngbakr! Это именно то, что мне нужно. - person Allan A; 20.12.2018
comment
Это позволяет получить контроль над строками, но, к сожалению, белая линия проходит через чередование строк в таблице, если format="latex". Он не пропускает линию через чередование, если booktabs=TRUE, но вы теряете контроль над линиями. Может, выбросим это на github для kableExtra? - person Mark Neal; 18.03.2020
comment
@MarkNeal Да, запрос функции для kableExtra - хорошая идея. - person Lyngbakr; 18.03.2020

Этот трюк также работает с собственной таблицей уценки, такой как

\arrayrulecolor{white}

    ||
    |--:| 
    |Cool left aligned quote | 
    | | 
person Alberto Stefanelli    schedule 21.10.2020