在 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