You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Quarto生成的gtsummary表格显示在页面顶部?

解决Quarto中gtsummary表格跨页及置顶失效问题

问题原因

你设置的fig-pos: 't'是Quarto用于控制图片位置的参数,对gtsummary生成的LaTeX表格完全无效,这就是置顶设置不生效的核心原因。

解决方案

以下是两种有效的处理方式,按优先级尝试:


方法1:使用Quarto表格专属位置参数

直接在代码块的YAML选项中替换fig-pos: 't'为tbl-pos: 't',如果需要强制置顶(忽略LaTeX自动排版规则),可以用tbl-pos: 't!':

#| echo: false
#| warning: false
#| tbl-pos: 't!'

theme_gtsummary_journal(journal = 'lancet', set_theme = TRUE)

demo_raw %>% 
  select(-c(patient_id,
            pathogenic_factor,
            adm_date,
            dc_date_time,
            ventilator)) %>% 
  tbl_summary(by = ards_type,
              label = list(gender ~ 'Gender',
                           age_years ~ 'Age (years)',
                           height_cm ~ 'Height (cm)',
                           weight_kg ~ 'Weight (kg)',
                           ards_risk_factor ~ 'Risk factor',
                           adm_location ~ 'Admitting location',
                           los_days ~ 'Length of stay (days)',
                           apache_ii ~ 'Apache II score',
                           total_proning_sessions ~ 'Proning sessions',
                           outcome ~ 'Outcome'),
              missing = 'no',
              statistic = all_continuous() ~ "{mean} ({sd})") %>% 
  bold_labels() %>% 
  modify_caption('**Table 1. Patient Characteristics**')

方法2:通过gtsummary强制表格位置

如果方法1仍不生效,可在gtsummary的表格链中添加modify_table_styling(),指定LaTeX的位置控制选项:

#| echo: false
#| warning: false

theme_gtsummary_journal(journal = 'lancet', set_theme = TRUE)

demo_raw %>% 
  select(-c(patient_id,
            pathogenic_factor,
            adm_date,
            dc_date_time,
            ventilator)) %>% 
  tbl_summary(by = ards_type,
              label = list(gender ~ 'Gender',
                           age_years ~ 'Age (years)',
                           height_cm ~ 'Height (cm)',
                           weight_kg ~ 'Weight (kg)',
                           ards_risk_factor ~ 'Risk factor',
                           adm_location ~ 'Admitting location',
                           los_days ~ 'Length of stay (days)',
                           apache_ii ~ 'Apache II score',
                           total_proning_sessions ~ 'Proning sessions',
                           outcome ~ 'Outcome'),
              missing = 'no',
              statistic = all_continuous() ~ "{mean} ({sd})") %>% 
  bold_labels() %>% 
  modify_caption('**Table 1. Patient Characteristics**') %>%
  # 添加LaTeX位置控制,hold_position强制表格在代码块位置,topleft辅助置顶
  modify_table_styling(latex_options = c("hold_position", "topleft"))

额外说明

如果表格内容本身过长超过一页,LaTeX会自动拆分表格,此时若要避免跨页,需先精简表格内容(比如合并列、缩短文本),或者使用latex_options = "longtable"将表格设置为长表格(会自动分页但保持表头重复)。

内容的提问来源于stack exchange,提问作者for_the_love_of_cod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 07:30:58