哪些表格包执行哪些任务以及哪些包发生冲突?

哪些表格包执行哪些任务以及哪些包发生冲突?

我最近读了几个关于tabular环境的问题,似乎有很多包可以做这个领域的工作。我真的很想了解一下每个包的作用以及哪些包有冲突。

例如,快速谷歌搜索(加上我的记忆)让我得到了tabularx,,,,,,,...booktabsmultirowcollcellarraymdwtablongtablesupertabular

我应该使用哪一个来达到什么目的?更重要的是,哪些冲突?

[这应该是 CW 吗?每个答案一个包之类的?]

答案1

我想先从一个小清单开始,这些清单曾经是wiki 上,现在在这里维护。软件包概述

基本套餐

  • array 提供更灵活的列格式;修复了一些间距问题。几乎是“必用”的软件包。

  • booktabs 支持专业外观的表格;更好的垂直间距;更好的规则;专为没有垂直线的表格而设计(出版质量表格的标准)。

  • tabularx 提供一种可扩展以填充表格指定宽度的列类型。

  • tabulary 提供与其内容的自然宽度成比例的列类型。

  • multirow 让表格材料跨越多行。

  • dcolumn 创建按小数点对齐的列。类似的软件包:numprintrccolwarpcol. 另请参阅siunitx下文。

  • tabularht 设置具有指定高度的表格。

  • ragged2e 提供\Centering\RaggedLeft\RaggedRight,其功能类似于\centering\raggedleft\raggedright,但不禁用连字符,因此可产生更平滑的边距,尤其是对于窄列。此包以前称为raggedright

多页表

字幕和注释

  • threeparttable排版表格时标题和注释的宽度要匹配。

  • threeparttablex提供以下功能threeparttable使用创建的表longtable

  • floatrow(虽然主要涉及自定义浮动环境的布局)允许在表格中添加脚注和附加说明。

  • ctable允许使用命令而不是环境在表格和图形下方添加注释/脚注。

  • ltcaption允许修复左对齐或右对齐的标题问题longtable

  • fr-longtable(外部子包floatrow) 提供了longtable附加命令\endlasthead(longtable 的最后一个头) 和\endprelastfoot(倒数第二页的页脚)。

科学

  • siunitx(尽管主要涉及带单位的排版值)提供S按小数点对齐的列类型。

颜色和花式特征

  • colortbl 适用于彩色行/列/单元格。xcolor该选项包table提供了交替表行颜色来扩展它。

  • colortab 是上述内容的前身colortbl,它或多或少被它取代,但仍然可以找到一些用途(例如在使用纯 TeX 时)。

  • arydshln可以打印水平、垂直虚线。

  • delarray向数组添加分隔符(括号、圆括号、方括号)。

  • bigdelim在表中插入可变大小的多行分隔符。

  • blkarray将数组分成块并为每个块添加分隔符。

  • makecell多行单元格、更好的标题、单元格间隙、编号行、粗线、对角线划分的单元格等。

  • diagbox对角线分割的表状单元格。slashbox是此软件包的前身,已被其取代。请注意nicematrix(见下文)\diagbox还规定做得很好

  • hhline允许正确渲染垂直线和水平线之间的交点(阿拉Norton Commander 和类似的 DOS 伪图形)。

  • tabularkv允许在和之间进行选择tabular*tabularxtabularht使用更有机的“key=value”语法设置它们的属性。

全能选手

  • tabu 是一个单独的软件包,提供上述许多软件包的大部分功能。它是未维护且目前不推荐使用

  • tabularray 是一个新的LaTeX3软件包,提供软件包的大部分功能tabu 。它是过时软件包的替代品tabu

  • nicematrix是一个LaTeX3基于 LaTeX 标准环境构建矩阵和表格的包,arrayamsmath也在单元格、行和列下构建 PGF/TikZ 节点。最终用户可以直接在 TikZ 中使用这些节点,但该包还提供彩色矩形、规则、外部行和列、矩阵中的连续虚线等功能(在后台使用这些节点)。它与 兼容但booktabs不与 兼容longtable


哪些套餐特别值得推荐?快速指南:

  • array是一种通过命令调整整个列的通用技能
  • tabularx非常适合自动调整列大小
  • booktabs是专业布局的必备元素
  • longtable对于多页表来说非常流行。

根据所需功能选择更多包。

软件包冲突

  • xtabsupertabular不能一起工作。同时加载两者将导致冲突。xtab应该是首选,因为它是作为 的扩展编写的supertabular

  • 根据手册,arydshln必须分别在 、 、 和 之后加载arraylongtablecolortab这个colortbl问题中出现了这样的问题:无法在多列中插入多行

  • 此外,arydshln与 冲突supertabular

  • ltablex可能会干扰tabularx双列文档中的使用(因为它使用的longtable不能简单地放在浮动中),请参阅那里

答案2

cellspace是一个非常有用的包,例如,可以添加到booktabs。使用这两个包,您将获得非常好的结果:

来自cellspace 的自述文件

包单元格空间:确保表格单元格的最小间距。

[...]

此包旨在允许自动分隔数组的行。人们经常抱怨\hline当表格太高或太深时文本会接触表格。

答案3

这是一项很好的调查,标题为LaTeX2ε 中的表格:包和方法我觉得它非常有用。

相关内容