簡體   English   中英

有沒有辦法為 pdf 制作沒有線條/邊框的 kable?

[英]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_spechline_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM