【问题标题】:Is there a way to add latex specification in 'column_spec' function in R kable?有没有办法在 R kable 的“column_spec”函数中添加乳胶规范?
【发布时间】:2019-09-17 23:00:47
【问题描述】:

我正在尝试使用 R Markdown 编织中的 kable 和 kableExtra 包修改表格的外观到 PDF 输出。

特别是,我想从表格中删除所有边框,只在标题下添加一条水平线,在行名旁边添加一条垂直线。

目前,我有这个代码:

---
header-includes:  \setmainfont[Path = C:/Windows/Fonts/]{Arial}
                  \usepackage{colortbl}
                  \arrayrulecolor{white}
output:
  pdf_document:
    latex_engine: xelatex
  word_document: default
---


```{r echo=FALSE, message=FALSE, warning=F, paged.print=TRUE}

library(kableExtra)
library(magrittr)

DATA<- data.frame(jen=c(1,2,3,4,5), feb=c(2,3,4,5,3), mar=c(0,2,4,1,2))
rownames(DATA)<-c("first","second","third","fourth","fifth")


kable(DATA, "latex") 
```

生成此表:

Table

要删除所有边框,我将默认边框设置为白色作为this 建议问题的答案。

现在,我想在标题下方添加一条水平蓝线,并在行名右侧添加一条垂直蓝线。

我可以通过以下方式获得水平线:

---
header-includes:  \setmainfont[Path = C:/Windows/Fonts/]{Arial}
                  \usepackage{colortbl}
                  \arrayrulecolor{white}
output:
  pdf_document:
    latex_engine: xelatex
---


```{r echo=FALSE, message=FALSE, warning=F, paged.print=TRUE}

library(kableExtra)
library(magrittr)

DATA<- data.frame(jen=c(1,2,3,4,5), feb=c(2,3,4,5,3), mar=c(0,2,4,1,2))
rownames(DATA)<-c("first","second","third","fourth","fifth")



kable(DATA, "latex")  %>%
    row_spec(0, extra_latex_after = "\\arrayrulecolor[rgb]{0,.275,.725}") %>%
    row_spec(1:nrow(DATA), extra_latex_after = "\\arrayrulecolor{white}")

```

获取this

我想对垂直线做同样的事情,但函数“column_spec”中没有“extra_latex_after”这样的命令。它只接受显然不适用于 PDF 输出的“extra_css”命令。

我的目标是获得类似this 的东西。 我知道我可以使用其他表格包获得相同的结果,但我想知道是否可以使用 kable 获得类似的结果。

有没有人知道有没有办法解决这个问题?

【问题讨论】:

  • 你应该展示一些接近你想要的可重现代码,并解释输出有什么问题。否则,我们无法真正判断您要做什么。

标签: r r-markdown kable


【解决方案1】:

目前确实不支持。您可以在 github 上提出功能请求。

您可以使用正则表达式来替换表格中的对齐选项:

---
title: "Test"
date: 2019-02-13
output: pdf_document
---

```{r header, echo= FALSE, include = T, warning=F}
library(knitr)

tbl <- kable(mtcars[1:4, 1:3], format = "latex")

# here we search for the begin command and its options and replace them
gsub(pattern = "(begin\\{tabular\\})(\\{.*?\\})", 
     repl    = "\\1{l|r !{\\\\color{red}\\\\vrule width 1pt} r|r|}", 
     x       = tbl)
```

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    相关资源
    最近更新 更多