首页 > 解决方案 > 有没有办法为pdf制作没有线条/边框的kable?

问题描述

我正在开发一个闪亮的应用程序,该应用程序生成并发送一个包含纠缠数据的 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)

标签: rr-markdownkablekableextra

解决方案


我认为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}")

给予,

在此处输入图像描述


推荐阅读