Есть ли способ сделать Kable без линий / границ для PDF? - PullRequest
0 голосов
/ 20 декабря 2018

Я работаю над блестящим приложением, которое создает и отправляет 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)

1 Ответ

0 голосов
/ 20 декабря 2018

Я думаю, 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}")

дача,

enter image description here

...