繁体   English   中英

使用rownames = TRUE(rmarkdown,kable和kableExtra)在乳胶中呈现具有条件颜色的表作为pdf文档

[英]Rendering Table with conditional color in latex as a pdf document with rownames = TRUE (rmarkdown, kable and kableExtra )

我试图使用r markdown,kable和kableExtra输出一个乳胶表。 当我使用选项row.names = FALSE而不是row.names = TRUE时,乳胶代码生成\\ vphantom代码,产生错误以创建pdf。 似乎问题与row_spec选项有关。

这是Rmarkdown代码(.Rmd文件):

---
title: "Test"
output:
pdf_document: 
fig_caption: true
keep_tex: true
---

{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)


{r}
library(knitr)
library(kableExtra)

temp <- mtcars[1:5,1:5]

kable(temp, format = "latex", booktabs = F,row.names=F)  %>%
kable_styling(position = "center") %>%
row_spec(1, bold = T, background = "red")

错误是:

扫描时使用\\ check @ nocorr @找到禁止的控制序列。 \\ par l.105 ... color {red} \\ textbf {21.0&\\ vphantom {1} 6}&\\ textbf {160}&\\ textbf {...

你有什么问题吗?

这是由数据框中的重复行引起的,因为第1行和第2行都是相同的。

查看row_spec_latex的代码,当kableExtra用于kable表时,它会检查重复的行。 如果找到一个,它会在fix_duplicated_rows_latex内部函数中插入vphantom参数。 这个vphantom插入然后搞乱了textbf函数的格式。

这似乎是一个小错误,所以在kableExtra中将它作为一个问题报告可能是值得的: https//github.com/haozhu233/kableExtra 我确信vphantom的加入是有充分理由的,但怀疑这是一个预期的后果。

支持代码:

---
output: pdf_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)

library(knitr)
library(kableExtra)
temp <- mtcars[1:5,1:5]
```

```{r}
# Keeping the row names (means all rows are unique)
kable(temp, format = "latex", booktabs = F)  %>%
  kable_styling(position = "center") %>%
  row_spec(1, bold = T, color = "red")
```

```{r}
# Highlighting second row (which doesn't have the vphantom statement)
kable(temp, format = "latex", booktabs = F, row.names=F)  %>%
  kable_styling(position = "center") %>%
  row_spec(2, bold = T, color = "red")
```

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM