表格环境和数组环境有什么区别?什么时候应该使用前者,什么时候应该使用后者?
答案1
环境array
为math mode
,单元格内容将以数学模式排版(textstyle
默认),tabular
为text mode
。
虽然数组需要处于数学模式,但tabular
环境可以在 中使用math mode
,并且其内容将在 中排版text mode
。在 中array
,p、m 或 b 说明符也会将单元格内容切换为文本模式。
答案2
如果它们所包含的大部分材料应以文本模式排版,则应使用诸如
tabular
、tabular*
、tabularx
、tabulary
和之类的环境longtable
(以下称为类似环境)。(请注意,表格中有数字并不一定意味着必须在数学模式下排版数字。)由、、、和列类型格式化的材料应采用文本模式。tabular
l
c
r
p
m
当然,在
tabular
类似环境中也可以拥有数学模式材料。您只需将数学材料放在$
开关中,就像在普通模式下一样。您还可以使用专门的列类型(例如包D
的列类型dcolumn
和包S
的列类型siunitx
),默认情况下将其内容视为数学模式。(对于D
和S
列,您需要为应该的材料提供覆盖不是可以在数学模式下排版。环境
array
旨在用于数学环境中,LaTeX 会处理 、 和 列的内容l
,c
但r
不会处理p
列的内容)视为数学模式。除非您可以执行某些操作来覆盖此设置。如果表格的大部分内容将处于数学模式,则最好使用array
替代环境而不是tabular
类似环境:如果没有其他选择,您将免于输入大量$
sumbols!在类似环境中,列间空白量
tabular
由 给出2\tabcolsep
。对于array
环境,相应的参数称为。主 LaTeX 文档类中的和 的\arraycolsep
默认值分别为和。\tabcolsep
\arraycolsep
6pt
5pt
有一个非常重要的 LaTeX 软件包叫做大批
array
。尽管它的名字可能暗示了这一点,但它为两种环境提供了各种各样的好处和tabular
类似环境。事实上,该tabularx
包依赖于该包,因此会自动加载该array
包。