R中的kable中的column_spec函数不起作用

时间:2018-07-31 10:57:02

标签: r pdf latex tex kable

我想用kable(,'latex')共同更改pdf中的列宽,但是该功能不起作用。有人知道为什么吗?这是我的代码:

   table = knitr::kable(jeden, "latex" , row.names = F ,  align = "llrrrrrrrrrr" , escape = F, booktabs = F, caption = '1. Sprzedaz uslug i towarow razem') 
   column_spec(table, 1, width = "1cm", bold = TRUE, italic = TRUE)

2 个答案:

答案 0 :(得分:1)

这不是错误,而是alignknitr::kable()的相对奇怪的设置。在xtable中,您可以将align放在字符串中,但对于kable,则必须提供一个向量。就您而言,如果放置align = c(rep("l", 2), rep("r"), 2)之类的东西,那应该没问题。

答案 1 :(得分:0)

似乎align破坏了您的column_spec,但仅用于LaTeX / PDF输出。

这是两个最小且可重现的示例。

PDF输出

---
title: "Untitled"
output:
  pdf_document: default
---

```{r}
library(knitr)
library(kableExtra)
x <- kable(head(mtcars[, 1:4]), "latex", row.names = F, align = "llrr")
column_spec(x, 1:2, width = "4cm", bold = TRUE, italic = TRUE)
```

enter image description here

如果从PDF RMarkdown文档中删除align,则column_spec会正常工作。

HTML输出

---
title: "Untitled"
output:
  html_document: default
---

```{r}
library(knitr)
library(kableExtra)
x <- kable(head(mtcars[, 1:4]), "html", row.names = F, align = "llrr")
column_spec(x, 1:2, width = "4cm", bold = TRUE, italic = TRUE)
```

enter image description here

对我来说,这似乎是个错误,我建议在kableExtra GitHub site上打开一个问题。如果这样做,您应该参考此文章,并包括一个最小的,可重现的示例(类似于我的操作)。