在 Kable 表中使用border_left 和border_right 时删除填充/空白/间隙

Posted

技术标签:

【中文标题】在 Kable 表中使用border_left 和border_right 时删除填充/空白/间隙【英文标题】:Removing padding / whitespace / gap when using border_left and border_right in a Kable table 【发布时间】:2022-01-22 02:02:35 【问题描述】:

我正在尝试消除我的 kable 表(latex / pdf / rmarkdown)中的这些空白:

我基本上只想要一个外部边框和一条分隔两列的线。我认为最好的方法是使用border_left和border_right,但也许我错了?

代码:

table <- tribble(~col1, ~col2,
        "Data:", "Some text here.",
        "Transformations:", str_c("Other text here."))

table %>%
    kable("latex", booktabs = T, col.names = NULL, align = "ll") %>%
        kable_styling(full_width = T, latex_options = "hold_position") %>%
        column_spec(1, bold = T, border_left = T, border_right = T, width = "2.8cm") %>%
        column_spec(2, border_right = T)

任何帮助将不胜感激!

【问题讨论】:

不要将 booktabs 包与竖线一起使用。 ...实际上不要使用垂直线。句号。 在这种情况下我需要使用垂直线。我或您对垂直线在表格中是否有用的偏好无关紧要。 那就不要使用 booktabs @samcarter_is_at_topanswers.xyz 这没有帮助。像 midrule = NULL 一样 【参考方案1】:

如何解决这个问题?

直接进入控制台即可。

library(kableExtra)

library(tidyverse)

table <- tribble(~col1, ~col2,
                 "Data:", "Some text here.",
                 "Transformations:", str_c("Other text here."))

table %>%
    kable("latex",col.names = NULL) %>%
    kable_paper(latex_options = "hold_position")  %>%
    column_spec(1, bold = T, border_left = T) %>%
    column_spec(2, border_right = T) 

您将收到此输出后:

\begintable[!h]
\centering
\begintabular|>\raggedright\arraybackslashp2.8cm|>l|
\hline
Data: & Some text here.\\
\hline                     #remove this line
\textbfTransformations: & Other text here.\\
\hline
\endtabular
\endtable

将其复制并粘贴到您的 RMarkdown 中并... Bingo:

【讨论】:

【参考方案2】:

一种方法:

library(huxtable)
tribble(~col1, ~col2,
         "Data:", "Some text here.",
         "Transformations:", "Other text here."
       )|>    
       as_huxtable(add_colnames = FALSE) |> 
       set_lr_borders() |> 
       set_outer_borders()

【讨论】:

以上是关于在 Kable 表中使用border_left 和border_right 时删除填充/空白/间隙的主要内容,如果未能解决你的问题,请参考以下文章

r:在 Flexdashboard 中使用 Shiny 渲染 Kable

使用 knitr 和 kable() 生成的表格控制零值的科学记数法和格式

使用 Kable 将简单的表格添加到单词列表

显式向 knitr::kable() 提供标签?

使用 knitr kable 函数对齐列

使用 kable() 格式化带有嵌套列的表