表格排版宏包

这里提供本人编写的用于排版 LaTeX 表格的 tabularray 宏包,2021 年 03 月发布。最新版本为 tabularray 2021M英文文档源码仓库)。目前已上传到 CTAN 中,可以在最新版 MiKTeX 或 TeXLive 中直接使用。

非常感谢耿楠老师的翻译,在这里可以下载这个宏包的中文文档

排版 LaTeX 表格,功能最全面的要属 tabu 宏包。但是这个宏包多年未更新,从 2019 年开始与最新的 LaTeX 内核不再兼容,和其他宏包比如 xcolor 也会有冲突。

实际上,LaTeX 的表格都是使用 \halign,\noalign,\span,\omit 等 TeX 命令实现的。各个宏包为实现新的功能,就得修改 LaTeX 内部的表格命令。这就导致宏包代码复杂,难以维护,且经常互相冲突。

目前 LaTeX3 编程框架已经基本成熟,这里提供的 tabularray 宏包将抛弃旧有的 \halign 等命令,直接用 LaTeX3 函数解析表格内容和格式,然后排版出整个表格。这个宏包在兼容 LaTeX2 表格基本语法的前提下,将实现表格的内容与格式的彻底分离,可以用 keyval 方式完全设定表格的样式。

下面是 tabularray 宏包已经实现的功能:

  • 表格嵌套
  • 水平对齐格式(lcr
  • 竖直对齐格式(pmb
  • 可伸展列格式(X
  • 列格式指令(*@!><
  • 定义列格式(\NewColumnType
  • 跨列表格(\multicolumn
  • 跨行表格(\multirow
  • 同时跨行跨列(\SetCell
  • 多条表格框线
  • 定义框线样式(\NewDashStyle
  • 背景颜色设定(bg
  • 行格式设定

下面是 tabularray 宏包计划实现的功能:

  • 逐列输入表格(vtabularray

使用方法:新建一个 tex 文档,然后用下面代码:

\documentclass{article}
\usepackage{tabularray}
\begin{document}
\begin{tblr}{|lc|r|}
\hline
One   & Two   & Three \\
Four  & Five  & Six \\
\hline
Seven & Eight & Nine \\
\hline
\end{tblr}
\end{document}

其中 tblr 是 tabularray 的简称,或者是 top-bottom-left-right 的简称。