我有一个可以正常工作的 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))
已嵌套,在与 配对之前,我单独尝试了
我已经没有主意了。 kable 最终会循环遍历各种名称,我什至尝试将 sub
as.charactersub
函数输出分配给 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)
关于R 标题包含 "&"对齐选项卡错位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67164452/