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

如何在Rmarkdown(pdflatex)中居中gt表格并解决显示与警告问题

解决Rmarkdown+pdflatex下gt表格显示不全与summarise警告问题

一、修复表格左对齐且显示不全的问题

表格超出页面宽度是因为默认布局未适配PDF页面,且长文本列未自动换行,可通过以下调整解决:

  • 设置表格宽度占满页面:用tab_options(table.width = pct(100))让表格适配PDF页面宽度
  • 为长文本列分配合理宽度:通过cols_width指定projects列的宽度占比,让文本自动换行
  • 优化列宽分配,让各列空间更均衡

修改后的表格代码:

df %>%
  gt() %>%
  cols_label(
    happiness.and.joyfullness = md("happiness<br>and<br>joyfullness"),
    joy.for.children = md("joy<br>for<br>children"),
    damages.from.environment = md("damages<br>from<br>environment"),
    safety.comes.first = md("safety<br>comes<br>first")
  ) %>% 
  cols_width(
    projects ~ pct(35),  # 给长文本列分配35%页面宽度
    everything() ~ pct(9) # 其余列平均分配剩余宽度
  ) %>%
  tab_options(table.width = pct(100)) %>% # 表格占满整个页面宽度
  tab_style(
    style = "vertical-align:middle; font-weight: bold",
    locations = cells_column_labels()
  )

二、消除summarise警告

该警告来自dplyr的默认信息提示,可在setup代码块中添加参数直接关闭:
在knitr::opts_chunk$set(echo = TRUE)之后加入:

options(dplyr.summarise.inform = FALSE)

修改后的setup代码块:

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
options(dplyr.summarise.inform = FALSE) # 关闭summarise类信息警告
suppressMessages(library(tidyverse))
suppressMessages(library(knitr))
suppressMessages(library(gt))
suppressMessages(library(rmarkdown))
完成以上修改后,渲染PDF时表格会完整适配页面,summarise警告也会被屏蔽。

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

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

最近更新时间:2026.06.25 00:27:32