您可以利用乳胶中的换行符\\ 和kableExtra::kable() 中的参数escape = FALSE。设置escape = FALSE 会导致\\ 被读取为换行符而不是文字\\。 请注意,因为\ 是 R 中的转义字符,您需要两个斜杠 \\ 以便 R 解释单个斜杠 \,因此要获得 2 个文字斜杠 \\,您需要输入 4 \\\\ 在字符串中。
---
title: 'rasstasrt'
sansfont: Calibri Light
output: pdf_document
---
```{r setup, include=FALSE}
library(kableExtra)
library(dplyr)
knitr::opts_chunk$set(cache = F)
```
```{r}
dt <-tibble(Items = c("AAAAAAAAAAAAAAA\\\\AAAAAAAAAA\\\\AAAAAAAAAAA\\\\AAAAAAAAAAAAA\\\\AAAAAAaaaaAAa",
"Item 2",
"Item 3"),
Tmd5ext_1 = c("Lorem ipsum "),
Text_2 = c("Duis pos "))
kableExtra::kable(dt,
"latex",
booktabs = F,
col.names =c("Item", "Short Title", "Veryong Title"),
escape = FALSE) %>%
column_spec(1:3, width = "5cm")
```
或者,如果您想在特定数量的字符后插入换行符,您可以编写一个函数来执行此操作。
---
title: 'rasstasrt'
sansfont: Calibri Light
output: pdf_document
---
```{r setup, include=FALSE}
library(kableExtra)
library(dplyr)
knitr::opts_chunk$set(cache = F)
```
```{r}
add_return <- function(x, len) {
# intialize empty vector
y <- c()
# start at beginning of string
i <- 1
# Break string up into lengths of len
while(i < nchar(x)) {
y <- c(y,substr(x, i, i + len - 1))
i <- i + len
}
# concatenate the substrings together with the newline characters
paste0(y, collapse = "\\\\")
}
dt <-
tibble(
Items = c(
add_return(
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaaaaAAa",
len = 5
),
"Item 2",
"Item 3"
),
Tmd5ext_1 = c("Lorem ipsum "),
Text_2 = c("Duis pos ")
)
kableExtra::kable(
dt,
"latex",
booktabs = F,
col.names = c("Item", "Short Title", "Veryong Title"),
escape = FALSE
) %>% column_spec(1:3, width = "5cm")
```
您还可以使用正则表达式在特定字符串之后插入返回。
---
title: 'rasstasrt'
sansfont: Calibri Light
output: pdf_document
---
```{r setup, include=FALSE}
library(kableExtra)
library(dplyr)
knitr::opts_chunk$set(cache = F)
```
```{r}
regex_add_return <- function(x, after) {
gsub(pattern = paste0("(",after,")"), replacement = paste0("\\1\\\\\\\\"),x)
}
dt <-
tibble(
Items = c(
regex_add_return(
"AAAAAAAAAAAAAAAz123AAAAAAAAAAAAAAAz123AAAAAAAAAAz123AAAAAAAAAAAAAAAaaaaAAa",
after = "z123"
),
"Item 2",
"Item 3"
),
Tmd5ext_1 = c("Lorem ipsum "),
Text_2 = c("Duis pos ")
)
kableExtra::kable(
dt,
"latex",
booktabs = F,
col.names = c("Item", "Short Title", "Veryong Title"),
escape = FALSE
) %>% column_spec(1:3, width = "5cm")
```
请注意,gsub() 中有 8 个斜杠,因为斜杠也是正则表达式的转义字符,因此每个文字斜杠必须用斜杠转义,但是每个斜杠都用作转义字符对于 R,regex 也必须再次转义,需要另一个斜杠。