表格中的列数由 cols 属性指定,或者由开头表格界定符(|===)后第一个非空行中找到的单元格数量隐式地指定。

使用cols属性来指定列的数量。

在表格块上,cols 属性在属性列表中设置。它接受以逗号分隔的列说明符列表。每个[术语]*列说明符*代表一个列以及分配给该列的宽度、对齐和样式属性。列说明符通常由数字表示,但在某些情况下,可以由符号或字母表示。在将列说明符分配给cols属性中,`cols`被分配了一个由四个数值列说明符组成的列表。

将列说明符分配给cols属性
[cols="1,1,1,1"]

将列说明符分配给cols属性中,赋给`cols`的值包含四个列指定器。值列表中的条目数量决定了表格中的列数。这意味着上述例子中的表格将包含四列。当指定器是一个数字,例如`1`或`50`,该整数代表表格中列相对于其他列的宽度比例。在将列说明符分配给cols属性中,每列的宽度将是相同的,因为每个指定器中的整数都相同。让我们看一下将列说明符分配给cols属性中的列指定器并将其与将列说明符分配给cols属性进行比较。

将列说明符分配给cols属性
这是AsciiDoc语法中的表格属性,而不是需要翻译的文本。所以我会原样返回:

'''
[cols="3,3,3,3"]
'''

“Both 将列说明符分配给cols属性 and 将列说明符分配给cols属性 will produce tables with four columns of equal width. Let’s use the cols value in 将列说明符分配给cols属性 to create a table.” 翻译成中文是:“将列说明符分配给cols属性将列说明符分配给cols属性都将产生四列等宽的表格。让我们使用将列说明符分配给cols属性中的`cols`值来创建一个表格。”

创建一个有四列等宽的表格
|=== (1)
[cols="3,3,3,3"] (2)
|Column 1 |Column 2 |Column 3 |Column 4 (3)
(4)
|Cell in column 1 (5)
|Cell in column 2
|Cell in column 3
|Cell in column 4
|=== (6)

在属性列表中,设置 cols 属性,后面加上等号(=),然后是用双引号(")包起来的逗号分隔的列指定符列表。 属性列表后的直接一行,输入开头的表格定界符。 表格定界符是一个竖线后跟三个等号(|===)。 一个表格单元格由一个竖线(|)指定。 因为在定界符后的第一行直接输入了四个连续的单元格,所以这一行隐式地被设置为表格的标题行。 在标题行后插入一个空行。 下一行的单元格可以一行输入,也可以分成多行输入。 在最后一行的最后一个单元格之后的新行,再输入一个表格定界符(|===)来关闭表格块。

创建一个有四列等宽的表格 创建了下面显示的表格。

.Result of 创建一个有四列等宽的表格 [cols="3,3,3,3"]

Column 1

Column 2

Column 3

Column 4

Cell in column 1

Cell in column 2

Cell in column 3

Cell in column 4

如所述,表格包括四列等宽,一个表头行和一个普通行。由于在创建一个有四列等宽的表格中的所有列都通过它们的列指定符(即`3`)被分配了相同的宽度,所以可以用column multiplier指定列的数量。或者,您可以通过增加其指定符的数值来调整单个列的宽度

使用列乘数

一种[.term] 列乘数 允许您将相同的宽度、水平对齐、垂直对齐和内容样式应用到表格中的多个连续列。乘数由一个整数(<n>)和一个星号()组成。整数代表要添加到表格的连续列的数量。星号()被称为[.term]乘数操作符,直接放在整数后面(<n>*)。操作符告诉转换器将整数解释为列乘数的一部分,而不是列说明符。

例如,让我们将 [cols="5,5,5"] 的值重写为列乘数。

将 '''Represent [cols="5,5,5"] using a column multiplier''' 翻译成中文是:使用列乘数表示 [cols="5,5,5"]。
[cols="3*"] (1)
  1. 给变量`cols`赋值一个整数,代表表格中的列数。在这个整数后面直接输入乘号操作符(*)。

整数`3`结合运算符`*`表示表格将包含三列等宽的列。

您也可以在带有列指定符的逗号分隔列表中使用乘数。在为cols指定一个列规范和一个列乘数。中,第一列由一个列指定符表示,接下来的三列由一个乘数表示。

为cols指定一个列规范和一个列乘数。
|===
[cols="5,3*"]
|Column 1 |Column 2 |Column 3 |Column 4

|Cell in column 1
|Cell in column 2
|Cell in column 3
|Cell in column 4
|===

如下所示,为cols指定一个列规范和一个列乘数。 创建了一个表格,包含一个 宽度较大的首列,之后是三列等宽的列。

.Result of 为cols指定一个列规范和一个列乘数。 [cols="5,3*"]

Column 1

Column 2

Column 3

Column 4

Cell in column 1

Cell in column 2

Cell in column 3

Cell in column 4

对齐和样式列操作符

AsciiDoc提供了控制列内容定位和样式的操作符,当设置了`cols`属性时。一个列指定符或倍增器可以包含一个或多个以下属性的可选操作符:

这些运算符很多也可以应用到单个单元格上。

使用第一行指定列数

当表格中的所有列都使用默认的宽度、对齐和样式值时,你不需要设置`cols`属性。相反,你可以通过在同一行上输入第一行的所有单元格来隐式声明列数。处理器将从这一行的单元格数量中推导出列数。使用它的第一行创建一个有三列的表格。使用其第一行来指示它有三列。

使用它的第一行创建一个有三列的表格。
|===
(1)
|Cell in column 1, row 1 |Cell in column 2, row 1 |Cell in column 3, row 1 (2)

|Cell in column 1, row 2 (3)
|Cell in column 2, row 2
|Cell in column 3, row 2
|===
  1. 在起始定界符后,请在第一行之前插入一个空行,除非你希望第一行被当作标题行。

  2. 将第一行的所有单元格输入到同一行中。 每个单元格代表一列。

  3. 后续行的单元格不需要输入到同一行中。

使用它的第一行创建一个有三列的表格。中的表格有三列,因为它的第一行包含三个单元格。

.Result of 使用它的第一行创建一个有三列的表格。

Cell in column 1, row 1

Cell in column 2, row 1

Cell in column 3, row 1

Cell in column 1, row 2

Cell in column 2, row 2

Cell in column 3, row 2