有没有办法在没有 lines/borders 的情况下为 pdf 制作 kable?
Is there a way to make a kable without lines/borders for pdf?
我正在开发一个闪亮的应用程序,它可以生成并发送包含经过争论的数据的 pdf 报告。问题是我无法让 table 布局看起来像客户希望的那样。
客户希望 table 除了最后一行之外缺少 lines/borders,这在 kable and/or 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)
我认为 kable
本来就是超级简单的,因此在设计上缺少这样的功能。也就是说,我想出了一个非常痛苦的解决方案。要点是我将边框颜色设置为白色(我假设您的页面是白色的),然后在需要时将线条颜色切换为 non-white(在我的示例中为红色),然后再切换回白色。
首先,将以下内容添加到您的 YAML header:
header-includes:
- \usepackage{colortbl}
接下来,在您的文档中添加:
\arrayrulecolor{white}
要渲染 table 使用:
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}")
给予,
这个技巧也适用于原生 markdown table 例如
\arrayrulecolor{white}
||
|--:|
|Cool left aligned quote |
| |
我正在开发一个闪亮的应用程序,它可以生成并发送包含经过争论的数据的 pdf 报告。问题是我无法让 table 布局看起来像客户希望的那样。
客户希望 table 除了最后一行之外缺少 lines/borders,这在 kable and/or 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)
我认为 kable
本来就是超级简单的,因此在设计上缺少这样的功能。也就是说,我想出了一个非常痛苦的解决方案。要点是我将边框颜色设置为白色(我假设您的页面是白色的),然后在需要时将线条颜色切换为 non-white(在我的示例中为红色),然后再切换回白色。
首先,将以下内容添加到您的 YAML header:
header-includes:
- \usepackage{colortbl}
接下来,在您的文档中添加:
\arrayrulecolor{white}
要渲染 table 使用:
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}")
给予,
这个技巧也适用于原生 markdown table 例如
\arrayrulecolor{white}
||
|--:|
|Cool left aligned quote |
| |