使用xtable包生成LaTeX表格时如何避免行名被转义修改?
你遇到的行名格式被修改的问题,是xtable默认开启了LaTeX特殊字符转义导致的。$、^、{}这类字符本身是LaTeX语法标记,xtable默认会把这些字符转义为普通文本,所以原本的上标格式被破坏。不需要修改原数据的行名,也不需要换包,调整输出参数即可解决。
方法1:直接使用xtable包,调整输出参数
调用print.xtable时关闭行名转义即可:
library(xtable) # 生成xtable对象,digits参数可自定义每列的保留小数位数 my_table <- xtable(My_inf, digits = c(0, 2, 2, 2, 2, 2, 2, 2)) # 输出LaTeX代码,关闭行名转义 print(my_table, sanitize.rownames.function = \(x) x, # 如果列名也包含LaTeX特殊字符,可同时加以下参数 # sanitize.colnames.function = \(x) x, include.rownames = TRUE, floating = TRUE)
设置后输出的行名就会保留你原定义的NSW$^{+}$格式。
方法2:使用kableExtra包生成表格(可选,灵活度更高)
如果你需要更丰富的表格样式调整,也可以改用kableExtra包,该包对行名中的LaTeX语法兼容性更好:
library(kableExtra) My_inf |> kable( format = "latex", digits = 2, booktabs = TRUE, # 启用三线表格式 caption = "你的表格标题" ) |> kable_styling(position = "center")
内容的提问来源于stack exchange,提问作者Eve Chanatasig
相关产品推荐
相关产品推荐

