这里提供本人编写的用于排版 LaTeX 表格的 tabularray 宏包,2021 年 03 月发布。最新版本为 tabularray 2022A(英文文档,源码仓库)。目前已上传到 CTAN 中,可以在最新版 MiKTeX 或 TeXLive 中直接使用。
非常感谢耿楠老师提供和更新这个宏包的中文文档,你可以到这里下载。
排版 LaTeX 表格,功能最全面的要属 tabu 宏包。但是这个宏包多年未更新,从 2019 年开始与最新的 LaTeX 内核不再兼容,和其他宏包比如 xcolor 也会有冲突。
实际上,LaTeX 的表格都是使用 \halign,\noalign,\span,\omit 等 TeX 命令实现的。各个宏包为实现新的功能,就得修改 LaTeX 内部的表格命令。这就导致宏包代码复杂,难以维护,且经常互相冲突。
目前 LaTeX3 编程框架已经基本成熟,这里提供的 tabularray 宏包将抛弃旧有的 \halign 等命令,直接用 LaTeX3 函数解析表格内容和格式,然后排版出整个表格。这个宏包在兼容 LaTeX2 表格基本语法的前提下,将实现表格的内容与格式的彻底分离,可以用 keyval 方式完全设定表格的样式。
下面是 tabularray 宏包已经实现的功能:
- 表格嵌套
- 水平对齐格式(
l
,c
,r
) - 竖直对齐格式(
p
,m
,b
) - 可伸展列格式(
X
) - 列格式指令(
*
,@
,!
,>
,<
) - 定义列格式(
\NewColumnType
) - 跨行跨列表格(
\SetCell
) - 多条表格框线
- 定义框线样式(
\NewDashStyle
) - 背景颜色设定(
bg
) - 行格式设定
- 跨页表格(
longtblr
)
使用方法:新建一个 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 的简称。