当在R markdown程序中使用kable和kableExtra创建表时,我想对行进行分组并使用crash_rows()函数生成组头。这很好。但是,如果用于分组的变量中的值包含特殊字符,例如“(”和“)”,则渲染的pdf在标题行中的特殊字符之前插入了“ \”。 有什么办法可以解决这个问题?
我正在运行R版本3.4.3(2017-11-30)-在“风筝吃树”上 x86_64-pc-linux-gnu(64位)。 R Studio是1.1.442版。 Knitr是1.18版。 KableExtra是0.9.0版。 latex-engine默认为pdflatex,但我也尝试过xelatex。
我还尝试在kable()和column_spec()中设置escape = T,第一个无效,第二个在我的环境中导致错误消息。
---
output:
pdf_document:
fig_caption: yes
documentclass: article
fontsize: 11pt
geometry: "a4paper, portrait, left=3.00cm, right=1.98cm, bottom=3.81cm, top=2.01cm"
header-includes:
- \usepackage{booktabs}
- \usepackage{longtable}
- \usepackage{array}
- \usepackage{multirow}
- \usepackage{wrapfig}
- \usepackage{float}
- \usepackage{pdflscape}
- \usepackage[normalem]{ulem}
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r prepcode, echo=FALSE, warning=FALSE, message=FALSE, include=FALSE}
rm(list=ls())
library(tidyverse)
options(kableExtra.latex.load_packages = FALSE)
library(kableExtra)
```
```{r tab, echo=FALSE, warning=FALSE, message=FALSE}
x <- rnorm(n=18)
t <- expand.grid(COL1=c("Stratum 1 (my first stratum)", "Stratum 2 (my second stratum)"),
COL2=c("A", "B", "C"),
COL3=c("x", "y", "z"))
xt <- cbind(t, COL4=x) %>% arrange(COL1, COL2, COL3)
knitr::kable(xt, format="latex", row.names=FALSE, booktabs=T) %>%
kable_styling(font_size=8, latex_options = c("repeat_header")) %>%
column_spec(1, bold=T) %>%
collapse_rows(1:2, row_group_label_position = 'stack', latex_hline = "major")
```
例如,在pdf中,“第1层(我的第一个阶层)”显示为“第1层(我的第一个阶层)”。
答案 0 :(得分:0)
通过将collapse_rows
调用更改为
collapse_rows(1:2, row_group_label_position = 'stack', latex_hline = "major",
row_group_label_fonts = list (list (escape = FALSE)))