簡體   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