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

如何为R包modelsummary生成的表格添加PDF交叉引用?

解决bookdown PDF表格交叉引用显示??的问题

问题根源

你用modelsummary生成表格时,没正确传递交叉引用所需的标签,导致bookdown无法识别表格的引用标记;之前错误地在title里添加\label,反而干扰了正确的标签生成逻辑。

修复步骤

  • 在modelsummary函数中添加label = "tab:table1"参数,这个参数会让modelsummary自动生成符合bookdown要求的LaTeX标签,和你引用的\@ref(tab:table1)完全对应。
  • 保持代码块的chunk名称为table1(和引用的tab:后缀一致)。
  • 确保编译PDF时至少运行三次(bookdown需要多次编译才能完成交叉引用的解析)。

修改后的完整代码

---
title: 'A title'
author: "Me"
output:
  bookdown::pdf_document2:
    latex_engine: pdflatex
    dev: cairo_pdf
    toc: false
    keep_tex: true
header-includes:
  - \usepackage{mathptmx}
  - \usepackage[T1]{fontenc}
  - \usepackage{xcolor}
lang: ES-es
linkcolor: red
---

Results are shown in Table \@ref(tab:table1)

```{r table1, echo=FALSE}
modelsummary(model_list,
             escape = TRUE,
             shape = term ~ model + statistic,
             estimate = "estimate",
             statistic = c("std.error", "p.value"),
             gof_map = c("aic"),
             coef_rename = c("anchura" = "Anchura",
                             "peso" = "Peso",
                             "color_f3" = "Color medio",
                             "color_f4" = "Color medio oscuro",
                             "color_f5" = "Color oscuro",
                             "estado_espina_f2" = "Estado regular",
                             "estado_espina_f3" = "Estado malo"),
             title = "Results",
             label = "tab:table1") # 新增标签参数
### 额外说明
- `modelsummary`的`label`参数是专门为bookdown、rmarkdown交叉引用设计的,不需要手动在标题里写LaTeX的`\label`命令。
- 如果还是无效,可检查生成的`.tex`文件,确认表格部分是否包含`\label{tab:table1}`,若存在,重新编译三次即可。

内容的提问来源于stack exchange,提问作者CarloRock
相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 19:22:42