gpt4 book ai didi

kableextra - 特殊字符(大括号)使用 collapse_rows() 获得不需要的反斜杠

转载 作者:行者123 更新时间:2023-12-05 06:27:59 30 4
gpt4 key购买 nike

在 R markdown 程序中使用 kable 和 kableExtra 创建表时,我想对行进行分组并使用 collapse_rows() 函数生成组标题。这很好用。但是,如果用于分组的变量中的值包含特殊字符,例如“(”和“)”,则呈现的 pdf 会在标题行中的特殊字符前插入“\”。有什么办法可以解决这个问题吗?

我正在运行 R 版本 3.4.3 (2017-11-30) -- “Kite-Eating Tree”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")
```

例如“Stratum 1(我的第一层)”在pdf中显示为“Stratum 1\(我的第一层\)”。

最佳答案

您可以通过将 collapse_rows 调用更改为

来防止 kableExtra 转义堆叠行中的特殊字符
collapse_rows(1:2, row_group_label_position = 'stack', latex_hline = "major", 
row_group_label_fonts = list (list (escape = FALSE)))

关于kableextra - 特殊字符(大括号)使用 collapse_rows() 获得不需要的反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54749141/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com