kableExtra会在最终的LaTeX文件中生成以纯文本格式设置的表代码

时间:2019-03-19 08:52:34

标签: r r-markdown kable kableextra

kableExtra似乎在字幕包含某些字符时破坏了LaTeX中电缆的正确格式。

如果不使用标题或使用标准kableExtra::kable,则

knitr::kable的格式将正确。

如果加载了kableExtra,以下代码将产生格式奇怪的结果。

---
title: "Mock"
output: 
  pdf_document:
    keep_tex: true
---

```{r header, echo= FALSE, include = FALSE,  warning= FALSE}
library(skimr)
library(knitr)
# library(kableExtra)

resumir <- function(var, unit = "", caption = NULL) {

  if(is.null(caption)) {caption <- deparse(substitute(var))}

  skim_to_wide(var) %>%
    mutate_all(as.numeric) %>% 
    kable(caption = paste0(caption, " (", unit, ")"))

}

mtcars2 <- mtcars %>% 
  rename("NO_CYL" = 'cyl', "PEAK_PERF" = "mpg")

attach(mtcars2)

```


`r resumir(POWER_HRS, unit = "$hours$")`

我想我已经知道发生了什么事,但是经过所有的麻烦之后,我找到了问题,我认为这很正常,如果有人提出来(或者我会稍等)。

1 个答案:

答案 0 :(得分:0)

因此,为了简单起见,问题出在标题中带有下划线。唯一有效的解决方案是删除它们,这并非过分合理。

---
title: "Mock"
output: 
  pdf_document:
    keep_tex: true
---

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

attach(mtcars)


```


`r  kable(cyl, caption = "Cylinder_No.")`

knitr有一个bug report,但是knitr目前可以正常使用。