使用R语言{gt}包v0.9输出PDF时脚注/来源注错位求助
解决gt v0.9包PDF输出时脚注和来源注错位的问题
问题背景
使用R语言gt包v0.9生成表格时,HTML输出的脚注(footnotes)和来源注(source_notes)显示正常,但PDF输出时二者出现错位。目前临时方案是通过gtsave()将表格转成图片插入文档,希望找到原生配置的解决方法。
测试代码如下:
library(tidyverse) library(gt) # 处理内置岛屿数据集,取前10大岛屿 islands_tbl <- tibble( name = names(islands), size = islands ) |> arrange(desc(size)) |> slice(1:10) # 生成带标题、脚注和来源注的表格 tbl_experiment <- islands_tbl |> gt() |> tab_header( title = "Large Landmasses of the World", subtitle = "The top ten largest are presented" ) |> tab_footnote( footnote = "The Americas.", locations = cells_body(columns = name, rows = 3:4) ) |> tab_source_note( source_note = md("(I am a source_note) Reference: McNeil, D. R. (1977) *Interactive Data Analysis*. Wiley.") ) tbl_experiment
可行的原生解决方法
更新gt包到最新版本:v0.9版本可能存在PDF渲染的已知bug,后续版本已修复相关问题。执行以下命令更新:
install.packages("gt")调整表格底部边距:通过
tab_options()增加表格底部内边距,给脚注和来源注预留足够显示空间:tbl_experiment <- islands_tbl |> gt() |> tab_header( title = "Large Landmasses of the World", subtitle = "The top ten largest are presented" ) |> tab_footnote( footnote = "The Americas.", locations = cells_body(columns = name, rows = 3:4) ) |> tab_source_note( source_note = md("(I am a source_note) Reference: McNeil, D. R. (1977) *Interactive Data Analysis*. Wiley.") ) |> tab_options( table.bottom_padding = px(25), # 增加底部padding footnotes.font.size = 10, source_notes.font.size = 10 )更换PDF输出模板:在Rmd/qmd的YAML配置中使用
bookdown::pdf_document2,该模板对表格元素的渲染兼容性更好:output: bookdown::pdf_document2: toc: false直接保存PDF时调整扩展边距:使用
gtsave()保存PDF时,设置expand参数增加画布边距,避免内容被截断:gtsave(tbl_experiment, filename = "my_table.pdf", expand = 15)
内容的提问来源于stack exchange,提问作者Ray
相关产品推荐
相关产品推荐

