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

Rmarkdown/bookdown中如何将modelsummary表格标题移至下方?

问题:将modelsummary生成的表格标题移至下方

我遇到的情况和某讨论相反:目前使用modelsummary生成的表格标题始终显示在表格上方,而非我需要的下方。我尝试了modelsummary官方示例中的最小可复现代码(如下),但标题仍位于顶部。希望找到实现标题在表格下方的方法,bootstrap包似乎没有相关配置选项。

测试代码:

---
title: 用Rmarkdown、bookdown和modelsummary实现交叉引用
output: 
  bookdown::pdf_document2:
    toc: false
---

`bookdown`包支持编译带表格编号和交叉引用的PDF文档。操作时需要给表格添加标题、使用`\@ref{tab:name}`语法,并且给调用modelsummary的R代码块命名。

例如,查看表格\@ref(tab:test)。

```{r}
library(modelsummary)
mod <- lm(hp ~ mpg, mtcars)
modelsummary(mod, title = '(#tab:test) 此标题描述表格内容。')
### 解决办法

#### 针对PDF输出(bookdown::pdf_document2)
- **全局设置所有表格标题居下**:在YAML的`header-includes`中添加LaTeX的caption包配置,强制表格标题位于下方:
  ```yaml
  ---
  title: 用Rmarkdown、bookdown和modelsummary实现交叉引用
  output: 
    bookdown::pdf_document2:
      toc: false
  header-includes:
    - \usepackage{caption}
    - \captionsetup[table]{position=bottom}
  ---

这样所有由modelsummary生成的表格标题都会自动移到表格下方,同时不影响交叉引用功能。

针对HTML/bootstrap输出

  • 用CSS调整标题位置:在Rmarkdown文档中添加自定义CSS,修改表格标题的默认位置:
    <style>
    table caption {
      caption-side: bottom;
      margin-top: 10px; /* 可选:调整标题与表格的间距 */
    }
    </style>
    
    将这段代码放在文档开头(YAML之后)即可让所有表格标题移至下方。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 04:18:12