使用kableExtra转换gtsummary输出时脚注上标丢失求助
解决gtsummary转kableExtra后PDF脚注上标丢失的问题
以下是两种可行的解决思路:
方法一:替换HTML上标为LaTeX兼容语法
gtsummary默认生成的上标是HTML格式(<sup>1</sup>),但LaTeX不识别这种语法,转PDF时会丢失上标。我们可以先把HTML上标替换成LaTeX的上标语法($^1$),再转成kableExtra:
iris |> gtsummary::tbl_summary(by = 'Species') |> # 批量替换所有HTML上标为LaTeX格式 gtsummary::modify_table_styling( columns = everything(), rows = everything(), fn = function(x) gsub("<sup>(\\d+)</sup>", "$^\\1$", x) ) |> gtsummary::as_kable_extra( booktabs = TRUE, format = 'latex', escape = FALSE # 禁止转义LaTeX语法 )
方法二:直接使用gtsummary的LaTeX输出逻辑
跳过as_kable_extra,先将表格转为LaTeX格式的kable对象,再用kableExtra修饰:
iris |> gtsummary::tbl_summary(by = 'Species') |> gtsummary::as_kable(format = 'latex', escape = FALSE) |> kableExtra::kable_styling(booktabs = TRUE)
这样处理后,PDF渲染时就能正确显示脚注上标了。
内容的提问来源于stack exchange,提问作者svenhalvorson
相关产品推荐
相关产品推荐

