返回使用 Tabulate 绘制表格
在 ConText 中,表格有多种使用方式:tabulate,btable 和 xtable。最简单常用的是 tabulate。
    
\starttabulatehead\stoptabulatehead包围的内容可以定义我们的表头,里面的\NC用于分隔单元格列,\HL用于画出上下边框增加辨识度。\starttabulate\stoptabulate里面包裹我们的表格信息。
\starttabulatehead \HL \NC 年份 \NC 产品 \NC 销量 \NC\NR \HL \stoptabulatehead \starttabulate[|c|c|c|] \NC 2021 \NC 柚子 \NC 4500 \NC\NR \NC 2022 \NC 水蜜桃 \NC 480 \NC\NR \NC 2023 \NC 柠檬 \NC 50 \NC\NR \NC 2024 \NC 蓝莓 \NC 930 \NC\NR \HL \stoptabulate
参数|c|c|c|指定了表格内的对齐方式,也就是 format TEMPLATE。 完整的表达方式为[format=|c|c|c|],但是可以省略为[|c|c|c|]。 图上的示例有三列,所以 TEMPLATE 内有 3 个字母 c,并用|分隔开,代表每列 centered 居中对齐。

TEMPLATE 可用项

除了 c 以外,TEMPLATE 还有很多其他可用的选项:(完整代码见Gitee - tabulate_2.tex)
    
字母 含义 代码示例 结果示例
c
l
r
centered 居中对齐
left aligned 左对齐
right aligned 右对齐
|c|l|r|
b{} 在文字前加内容 |cb{Year }|c|c|
a{} 在文字后加内容 |c|c|ca{(kg)}|
in 列的内容左侧加 n 倍的空白
(如果没有在 \setuptabulate
中设置,默认是 0.5 em 的倍数)
|ci3|c|c|
kn 列的内容左右两侧加 n 倍的空白 |ck3|c|c|
jn 列的内容右侧加 n 倍的空白 |cj3|c|c|
w() 列宽设置固定值 |cw(2cm)|c|c|
cg{} 列内元素以 X 对齐 |c|c|cg{.}|
B 列的内容加粗 |cb{Year }|c|c|
p
p()
多行内容,以段落显示 |c|c|c|p(7cm)|
**:括号内表示列宽

表内命令

tabulate内包含了一些诸如 \NC, \HL 的命令行,来设置表的样式:
    • \HL: 画一条横线
    • \NC: 新列
    • \NS:合并多列
    • \NN: 新的数学单元格
    • \NR: 新行
    • \NB: 新行,在分页时不要把这行分成 2 页
    • \TB: 行之间的空隙
    • \VL: 画一条竖线 (作用和 \NC 一样,但同时画出右边框线)
使用\VL在表头“年份”和“产品”后画竖分割线,并使用\TB[1cm]在表头下方加上 1 厘米的空白。
\starttabulatehead \HL \NC 年份 \NC 产品 \NC 销量 \NC\NR \HL \TB[1cm] \stoptabulatehead …… \stoptabulate
\NS 可以合并当前行的多列为一列,使用方法为:\NS[额外占据?列][对齐方式]。比如下面这个例子,\NS[1][c], 开始新的一列并额外占据1列,也就是合并 2 列为 1 列,并且内容居中。 ** 对段落单元格( TEMPLATE 设置 p )不生效,只有在单行内容时有效果。
\starttabulatehead \HL \NC 年份 \VL 月份 \VL 产品 \VL 销量 \VL 评分 \NC\NR \HL \stoptabulatehead \starttabulate[format=|c|c|c|c|c|] \HL \NC 2021 \VL 1 \VL 柚子 \VL 4500 \VL 4.5 \NC\NR \HL \NC 2022 \VL 2 \VL 水蜜桃 \VL 480 \VL 4.5 \NC\NR \HL \NC 2023 \NS[1][c] 柠檬  \VL 480 \VL 4.5 \NC\NR \HL \NC 2024 \VL 4 \VL 蓝莓 \VL 930  \VL 4.5 \NC\NR \HL \stoptabulate
当列中有数学公式时,可以在开启新列时使用 \NN 开启数学单元格模式。
\starttabulate[|lw(1.8cm)|lw(1.8cm)|] \HL \NN 10e-3 \NN 10e3  \NR \HL \stoptabulate
不使用 tablulate 的 math mode 需要更长的数学表达式:
\starttabulate[|lw(1.8cm)|lw(1.8cm)|] \HL \NC $10$\times$10^{-3}$ \NC $10$\times$10^3$ \NR \HL \stoptabulate

表格颜色

完整代码见Gitee - tabulate_7.tex
命令 含义 代码示例 结果示例
\VL[color] 单元格竖线颜色 \NC 年份
\VL[green] 产品
\VL[blue] 销量
\NC\NR
\HL[color] 横线颜色 \NC 2022
\NC 柚子
\NC 480
\NC\NR
\HL[orange]
\color{text} 单元格:文字颜色 \NC 2023
\NC \yellow{柠檬}
\NC 1250
\NC\NR
TEMPLATE: CT{color} 整列:文字颜色 |l|lCT{yellow}|l|
\CC[color] 单元格:文字背景色 \NC 2023
\CC[yellow] 柠檬
\NC 1250
\NC\NR
TEMPLATE: CC{color} 整列:文字背景色 |l|lCC{yellow}|l|
\CM[color] 单元格:整个单元格区域颜色 \NC 2023
\CM[yellow] 柠檬
\NC 1250
\NC\NR
TEMPLATE: CM{color} 整列:整个单元格区域颜色 |l|lCM{yellow}|l|
\CL[color] 单元格:文字背景色和左边空白区域颜色 \NC 2023
\CL[yellow] 柠檬
\NC 1250
\NC\NR
TEMPLATE: CL{color} 整列:文字背景色和左边空白区域颜色 |l|lCL{yellow}|l|
\CR[color] 单元格:文字背景色和右边空白区域颜色 \NC 2023
\CR[yellow] 柠檬
\NC 1250
\NC\NR
TEMPLATE: CR{color} 整列:文字背景色和右边空白区域颜色 |l|lCR{yellow}|l|
在 tabulate 中同样可以使用命令语句来装饰表格,首先在 TEMPALTE 中使用h\command(对应要使用的命令语句), 然后在表格内容里面,使用 \HC 来真正的激活命令调用。
\def\barChart#1{\blackrule[width=#1em]} …… \starttabulate[|l|c|lh\barChart|] \NC 2021 \NC 柚子 \HC {4.5}\NC\NR …… \HL \stoptabulate

表格跨页

    
\starttabulatehead \FL \NC 年份 \NC 产品 \NC 销量 \NC\NR \TL \stoptabulatehead \starttabulate[format=|c|lw(2cm)|r|,split=yes,header=repeat] …… \stoptabulate
©2024 All Rights 石家庄市友文信息技术有限责任公司冀ICP备2023031763号