R 标题包含 "&"对齐选项卡错位

标签 r r-markdown

我有一个可以正常工作的 kable 表格,但由于每个“用户”需要的表格数量超过一页,我需要添加标题以使表格易于理解。我有以下代码。

name <- "This & That"
kable(head(mtcars),
  format = "latex",
  row.names = FALSE,
 caption = paste(as.character(sub("&", "\\&",name)), "Car Score Input")) %>%
  kable_styling(full_width = FALSE, font_size = 10,latex_options = "HOLD_position", position = "left") %>%
 row_spec(row = 0, bold = TRUE, underline = F, background = "orange", color = "white", italic = FALSE, monospace = FALSE, strikeout = FALSE)%>% 
print(floating = FALSE, row.names = FALSE)

举个例子。 name 变量有时类似于“This & That”,最初,我在 paste 函数中只有“name”,但我得到以下结果错误:

! Misplaced alignment tab character &.
<argument> ...ab:unnamed-chunk-6} This & That Car Score Input}

名称发生变化并经历了一堆其他名称,有些带有&符号,有些没有

如您所见,我发现一些论坛建议在字符前面添加 \\ 以避免它认为它是转义码,但似乎无论我做什么尝试我无法让它被视为一个角色。 as.character(sub("&", "\\&", name)) 已嵌套,在与 配对之前,我单独尝试了 sub as.character 我已经没有主意了。 kable 最终会循环遍历各种名称,我什至尝试将 sub 函数输出分配给 name,然后再将其添加到标题中,它确实显示为 This\\& That 但是,我在标题中遇到了同样的错误。

最佳答案

您需要使用一对额外的反斜杠来转义 \\& \\\\&:


library(kableExtra)

name <- "This & That"

kable(head(mtcars),
      format = "latex",
      row.names = FALSE,
      caption = paste(as.character(sub("&", "\\\\&", name)), "Car Score Input")) %>%
  kable_styling(full_width = FALSE, font_size = 10,latex_options = "HOLD_position", position = "left") %>%
  row_spec(row = 0, bold = TRUE, underline = F, background = "orange", color = "white", italic = FALSE, monospace = FALSE, strikeout = FALSE)%>% 
  print(floating = FALSE, row.names = FALSE)



enter image description here

关于R 标题包含 "&"对齐选项卡错位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67164452/

相关文章:

Rmarkdown nocite 不显示 pdf 中的引文

r - R TinyTeX 安装会干扰我电脑上的其他 LaTeX 安装吗

css - 如何在 rMarkdown flexdashboard 中水平对齐输入元素

rmarkdown : plot dissapears when grid. 栅格位于 `if` block 内

r - 只保留连续的观察

在 apply 函数中返回 numeric(0)

r - 更快的替代 object.size?

r - 如何从矩阵中删除对角元素正方形?

r - data.table 没有在 by 语句中处理 integer64

r - 通过标题和图表循环knitr