如何用Quarto与Typst创建跨多页的gt表格(基于R语言)
解决Quarto+Typst+gt包长表格分页问题
问题场景
使用Quarto(Typst输出格式)、R语言及gt包生成表格时,行数较多的长表格会被截断,无法自动跨多页显示。原始代码如下:
#| echo: false #| warning: false #| fig-height: 1 #| fig-cap: "" # Load the gt library library(gt) # Create a sample data frame with 5 rows and 5 columns data <- data.frame(matrix(rnorm(500), nrow=50)) # Create the gt table and add shading for Column3 gt_table <- gt(data) %>% tab_style( style = list( cell_fill(color = "lightblue") ), locations = cells_body(columns = vars(X2)) ) # Print the gt table gt_table
解决方案
1. 在gt表格中启用Typst长表格模式
gt包提供opt_typst()函数,专门配置Typst输出的表格参数。在表格构建的管道末尾添加该函数并设置longtable = TRUE,即可让表格自动跨页显示。
修改后的代码:
#| echo: false #| warning: false #| fig-cap: "" library(gt) # 创建包含50行的示例数据 data <- data.frame(matrix(rnorm(500), nrow=50)) # 构建表格并启用Typst长表格模式 gt_table <- gt(data) %>% tab_style( style = list(cell_fill(color = "lightblue")), locations = cells_body(columns = vars(X2)) ) %>% # 开启Typst长表格分页 opt_typst(longtable = TRUE) gt_table
2. 可选:设置Quarto全局表格配置
如果需要对所有表格统一启用分页,可在Quarto文档的YAML头部添加以下配置:
format: typst: table: longtable: true
注意事项
- 确保gt包版本≥0.9.0,
opt_typst()函数是该版本后新增的功能。 - 移除原始代码中的
fig-height: 1参数,该参数会限制表格高度,可能导致分页失效。
内容的提问来源于stack exchange,提问作者Matthew Tansley
相关产品推荐
相关产品推荐

