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

如何用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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 03:10:06