为何收录

论文里的表格和分析时看的数据框是两回事。数据框服务于计算,列名常带下划线,数字保留全部小数;投稿用的表格要有标题、分组表头、统一的小数位、单位和注释。Great Tables 的设计文章指出,处理数据的人常常只能二选一:把数据复制进 Excel 之类的工具制表,或者直接展示未经整理的表格。复制既打断工作流,也容易出错,数据一更新还得重做。Great Tables 把这一步留在 Python 里:从 GT(df) 开始,链式调用 tab_header()、tab_spanner()、fmt_*()、tab_source_note() 等方法,逐层加上结构和格式,表格随分析脚本一起重新生成。它适合用 Python 做数据分析、用 Jupyter 或 Quarto 写报告和论文的研究者,也适合需要批量生成多张格式一致的结果表的课题组。

数字、单位与条件着色

数值格式化是学术表格里用得最多的部分。fmt_number() 控制小数位和千分位,fmt_scientific() 把极小或极大的值写成 3.50 × 10⁻¹¹ 这样的科学计数法,fmt_percent()、fmt_integer() 处理百分比和整数。cols_merge_uncert() 可以把均值列和误差列合并成“值 ± 不确定度”,cols_merge_n_pct() 把计数和百分比合成一列。v1.1.0 新增的 cols_align_decimal() 用与数字等宽的空格补位,让小数位数不同的一列数字按小数点对齐,官方用一张物理常数表演示了对齐前后的差别。

单位和化学式是理工科表格的老麻烦。Great Tables 有一套自己的单位记号:对单位列调用 fmt_units() 后,"m s^-1" 会渲染出上标指数,"E_h" 带下标,"ug"、"degC" 会转成 µg 和 °C,夹在两个 % 之间的文本按化学式排版。列标签和跨列标签里则用双花括号写单位,例如 "{{cm^3 molecules^-1 s^-1}}"。v1.0.0 增加的 fmt_chem() 专门排版化学式和反应式;从 v1.1.0 起,单位记号和 fmt_chem() 在 LaTeX 输出中也能渲染。

条件着色有两种做法。data_color() 按数值给单元格上色,v1.1.0 为它增加了 midpoint=:设为 0 时,调色板以 0 为中性色,正负两侧对称加深,适合增长率、相关系数这类有自然中心的量;direction="row" 让每一行单独计算色阶;fn= 接受自定义的颜色映射函数,配合 col_bin() 可以用固定的分箱边界,让几列共用同一套色阶。v1.0.0 新增的 tab_style_body() 按单元格的值而不是位置施加样式,可以用精确值、正则表达式或判断函数匹配,并把样式扩展到整行或整列,例如把某一列数值低于阈值的行整行加粗。这些样式目前只在 HTML 和图片输出中生效,LaTeX 输出会忽略它们。

导出格式与 LaTeX、Word 限制

截至核验日,官方参考文档的导出部分只列出三类出口:as_raw_html() 和 write_raw_html() 输出 HTML 片段或文件,gtsave() 把表格存成 PNG、JPEG、WebP 或 PDF,as_latex() 输出 LaTeX 表格代码。图片默认按 2 倍缩放输出,可用 zoom= 进一步提高分辨率,适合放进幻灯片或海报;但图片里的数字不能再编辑,也无法被检索。

写 LaTeX 论文的人最关心 as_latex()。它返回一段表格代码而不是完整文档,导言区需要加载 booktabs,长表使用 use_longtable=True 时还要加载 longtable。在 Quarto 中,把代码块设为 output: asis 并打印 as_latex() 的结果,即可把表格排进 PDF。官方文档至今把这个方法标为“仍属实验性”,并列出不支持的内容:tab_footnote() 添加的脚注会直接报错,tab_style() 和 data_color() 的样式会被忽略并给出警告,tab_options() 中绝大多数样式选项不起作用,迷你图(nanoplot)会报错,图片、旗帜和图标保持原样不做格式化。也就是说,上一节的条件着色进不了 LaTeX 表格,脚注要改写成来源注,或在 LaTeX 里手工补上。v1.1.0 集中修复了转义、汇总行、小数点对齐和行标签缩进等 LaTeX 渲染问题,这部分变化较快,使用前宜对照当前版本的文档。

gtcars 汽车数据表经 LaTeX 渲染的 PDF 截图,带标题、副标题、多层跨列标签和底部来源注

Great Tables 官方博客 2024 年 11 月的示例:用 as_latex() 生成的 gtcars 表格经 Quarto 渲染为 PDF 后的效果,含标题、副标题、多层跨列标签和来源注。图片:Rich Iannone / Posit Software, PBC,来源 posit-dev/great-tables 仓库(docs/blog/latex-output-tables),许可 MIT。

Word 是另一块短板。参考文档的导出列表里没有 Word(.docx)或 RTF 选项。用 Word 写作时,可以把 gtsave() 生成的高分辨率图片插入文档,或者把浏览器中的 HTML 表格复制过去再调整;前者不可编辑,后者能保留多少格式本文没有验证。如果期刊要求表格以可编辑文本而非图片提交,图片方案就不适用。

想先确认是否合用,可以做一个小规模验收(这是建议,本文未执行):选一张自己论文里的回归结果表,用 Great Tables 复刻,检查有效数字、“± 误差”合并和单位渲染是否符合投稿要求;再分别导出 PNG 和 as_latex() 代码,放进自己的 LaTeX 模板编译,记下哪些样式和注释在 LaTeX 中丢失。

与 R 包 gt 的关系

Great Tables 是 R 包 gt 在 Python 中的移植版本,两者都由 Rich Iannone 主导,都采用 MIT 许可证。他在 posit::conf(2024) 的演讲中说明,团队从 2022 年年中开始把 gt 移植到 Python,目标是把 gt 的功能带过来,同时让接口适应 Python 生态;在一场 Great Tables 工作坊中,Michael Chow 也提到,用过 gt 的人会觉得这套接口很熟悉。两者沿用同一套表格部件和方法命名,例如 tab_header()、fmt_number()、cols_label(),gt 的 18 个示例数据集中有 16 个以同名出现在 Great Tables 里;R 中的管道写法在 Python 中换成了方法链。差别主要在输出格式和成熟度:gt 官网写明支持 HTML、LaTeX 和 RTF 输出,Great Tables 目前没有 RTF,LaTeX 输出仍属实验性。v1.1.0 的更新说明里还有几处修正以与 gt 保持一致为目标,例如负数改为远离零取整。熟悉 R 且需要交付 RTF 的团队,用 gt 更直接;以 Python 为主、交付 HTML 报告或图片的场景,Great Tables 能让制表和分析留在同一套代码里。

参考文献

  1. Rich Iannone. Great Tables v1.0.0 and v1.1.0: new formatters, conditional styling, multi-column stubs, and richer color scales. Posit Open Source,2026-10-19。

  2. posit-dev/great-tables. GitHub,2026-10-20 核验。

  3. LICENSE(MIT License). GitHub,2026-10-20 核验。

  4. Release v1.1.0. GitHub,2026-10-15 发布。

  5. Release v1.0.0. GitHub,2026-09-25 发布。

  6. great-tables. PyPI,2026-10-20 核验。

  7. Reference. Great Tables 文档,2026-10-20 核验。

  8. GT.as_latex(). Great Tables 文档。

  9. GT.gtsave(). Great Tables 文档。

  10. GT.fmt_units(). Great Tables 文档。

  11. Rich Iannone. Great Tables for Scientific Publishing. Posit Open Source,2024-07-08。

  12. Rich Iannone. Great Tables: Generating LaTeX Output for PDF. posit-dev/great-tables,2024-11-13。

  13. Rich Iannone, Michael Chow. The Design Philosophy of Great Tables. Posit Open Source,2024-04-04。

  14. Richard Iannone. Adequate Tables? No, We Want Great Tables. posit::conf(2024) 演讲。

  15. Rich Iannone, Michael Chow. Tables in Python with Great Tables. Posit Open Source 工作坊视频。

  16. gt: Easily Create Presentation-Ready Display Tables. gt 文档,2026-10-20 核验。

  17. 信息由 Scholay 学术一站式平台 整理并发表,如有侵权请反馈下架。

  18. 信息同步发表于恩特学术,智能时代的学者社区