如何在将gtsummary表格转为gt及LaTeX时保留缩进?
保留gtsummary缩进并导出LaTeX的简便方法
你当前的代码导出的LaTeX中,子项的缩进是普通空格,而LaTeX会忽略连续空格,所以无法显示原表格的缩进效果。以下两种方法可以解决这个问题:
方法1:在gtsummary阶段添加LaTeX缩进命令
直接在gtsummary处理时,给需要缩进的子行加上LaTeX可识别的\hspace命令,再转gt导出:
library(gtsummary) library(gt) trial[c("trt", "age", "response", "grade")] %>% tbl_summary(by = trt) %>% # 标记所有需要缩进的行,给label文本前加LaTeX缩进 modify_table_styling( columns = label, rows = indent == TRUE, text_format = ~ paste0("\\hspace{1em}", .x) ) %>% as_gt() %>% as_latex() %>% as.character() %>% cat()
方法2:转gt后用text_indent自动生成缩进
gt的text_indent函数会自动将缩进转换为LaTeX兼容的格式,无需手动写命令:
library(gtsummary) library(gt) trial[c("trt", "age", "response", "grade")] %>% tbl_summary(by = trt) %>% as_gt() %>% # 对gtsummary标记的缩进行应用缩进 text_indent( columns = label, rows = .data$indent == TRUE, indent = 15 # 缩进宽度,可根据需求调整 ) %>% as_latex() %>% as.character() %>% cat()
效果说明
导出的LaTeX代码中,子项(如Unknown、Grade下的I/II/III)前会出现\hspace{1em}或等效的LaTeX缩进命令,编译后就能看到和原gtsummary表格一致的缩进效果。
内容的提问来源于stack exchange,提问作者John-Henry
相关产品推荐
相关产品推荐

