如何让R语言gt包导出的PNG/PDF表格显示非粗体文本
可行解决方案
1. 显式指定字体与完整文本样式
该问题多由导出时字体 fallback 到只有粗体字重的字体导致,可在定义样式时明确指定系统中存在常规字重的字体,同时全局配置表格文本样式,修改后的参考代码如下:
# 提前安装依赖 # install.packages("webshot2") # webshot2::install_chromium() gt::exibble %>% gt::gt( rowname_col = "row", groupname_col = "group" ) %>% # 全局设置所有文本默认样式,优先级低于局部样式 gt::tab_options( table.font.names = c("Arial", "Microsoft YaHei", "sans-serif"), table.font.weight = "normal" ) %>% gt::tab_style( style = gt::cell_text(weight = "normal"), locations = gt::cells_body() ) %>% gt::tab_style( style = gt::cell_text(weight = "bold"), locations = gt::cells_column_labels() ) %>% gt::gtsave("~/junk/exibble.png", expand = 10)
2. 更换导出渲染引擎
gt默认导出静态文件时若走LaTeX路径容易出现样式不兼容,可强制使用HTML渲染链路导出,和RStudio查看器效果完全一致:
- 导出PNG:安装
webshot2包后,gtsave会自动调用该包作为渲染后端,无需额外配置 - 导出PDF:先将表格保存为HTML文件,再用
pagedown::chrome_print()转为PDF,样式完全匹配HTML预览效果
3. 升级gt包到开发版本
官方已在开发版中修复了大量LaTeX/HTML样式兼容问题,可安装开发版验证是否解决问题:
remotes::install_github("rstudio/gt")
4. 排查系统字体配置
如果上述方案无效,可检查系统字体配置:
- Windows:进入控制面板-字体,确认你使用的字体存在「常规」字重版本
- macOS:打开字体册,找到对应字体,确认包含常规粗细的字体文件
- Linux:执行
fc-list : family style查看已安装字体的字重,安装缺失的常规字重字体即可
内容的提问来源于stack exchange,提问作者ZRoss
相关产品推荐
相关产品推荐

