![](/img/trans.png)
[英]Is there a way to add color to borders of table using kable extra in rmarkdown pdf?
[英]Is there a way to make a kable without lines/borders for 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)
我認為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}")
給予,
也許這在當時不可用,但您現在可以使用 toprule、midrule 和 bottomrule 參數刪除 booktab kables 中的水平線(參見https://bookdown.org/yihui/rmarkdown-cookbook/kable.html#customize -latex-tables ,“10.1.10 自定義 LaTeX 表格”部分)。
我不完全理解這三個參數是如何工作的,但是將它們全部設置為空字符串會刪除所有默認水平線。
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,
bottomrule = '',
toprule = '',
midrule = '')
從那張白紙開始,您可以按照 OP 帖子中的建議,使用row_spec
和hline_after
在任何給定行上添加單獨的水平線。 例如,僅在倒數第二行之后添加一條水平線:
table.tbl %>%
kable("latex",
booktabs = T,
bottomrule = '',
toprule = '',
midrule = '') %>%
row_spec((table.tbl %>% nrow()-1), hline_after = T)
這個技巧也適用於原生降價表,例如
\arrayrulecolor{white}
||
|--:|
|Cool left aligned quote |
| |
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.