如何在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
相关产品推荐
相关产品推荐

