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

使用gtsummary包输出PDF表格时遇Undefined control sequence错误求助

解决gtsummary显示截距项时PDF编译LaTeX报错的问题

问题原因

报错并非intercept = TRUE与as_gt()的参数冲突,而是显示截距项时,默认的(Intercept)标签里的括号在LaTeX编译中被误解析为未定义的控制序列——尤其是通过as_gt()转成gt对象后,gt包生成的LaTeX代码未自动转义这些特殊符号。

两种可行解决方案

方案1:修改截距项标签(适配需用as_gt()的场景)

手动将(Intercept)替换为LaTeX可识别的格式,同时确保文档加载amsmath包:

# 构建示例模型
mod <- lm(mpg ~ wt + cyl, data = mtcars)

# 生成表格并修改截距标签
tbl_regression(mod, intercept = TRUE) %>%
  modify_table_body(
    mutate,
    label = case_when(
      variable == "(Intercept)" ~ "\\text{Intercept}",  # 用LaTeX的text命令包裹标签
      TRUE ~ label
    )
  ) %>%
  as_gt()

同时在Rmarkdown的YAML头部添加依赖包声明:

header-includes:
  - \usepackage{amsmath}

方案2:直接使用gtsummary原生输出(推荐)

gtsummary本身支持直接输出PDF格式表格,无需转成gt对象,它会自动处理LaTeX的符号转义:

mod <- lm(mpg ~ wt + cyl, data = mtcars)
tbl_regression(mod, intercept = TRUE)  # 直接输出,无需调用as_gt()

说明

方案2更简洁,因为gtsummary针对PDF输出做了原生适配,会自动将(Intercept)转成LaTeX可识别的格式;方案1适合你必须使用gt对象进行额外定制的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 15:25:49