LATEX中表格的制作∗
(for CTex2.0 and CJK)
汤银才
(上海师范大学数理信息学院,tangyc8866@hotmail.com)
2002年12月20日
∗国家CTEX基金资助项目
1
目目目录录录
第一章 表格环境的定义 4
第二章 表格环境参数格式 4
§2.1 位置可选参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
§2.2 列必选参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
第三章 表格文本行中的命令 5
§3.1 \ tabularnewline命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
§3.2 \ hline命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
§3.3 \ cline{n-m}命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
§3.4 \ vline命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
§3.5 \multicolumn{数}{列}{文本}命令 . . . . . . . . . . . . . . . . . . . . . . 6
§3.6 @表达式:@文本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
第四章 表格样式参数命令 7
§4.1 \tabcolsep命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
§4.2 \arrayrulewidth命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
§4.3 \doublerulesep命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
§4.4 \arraystretch命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
第五章 表格示例 8
§5.1 无线表格 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
§5.2 带竖线的表格 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
§5.3 带水平及竖线的表格 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
§5.4 复杂的表格 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2
表表表格格格
1 无线表格 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2 带竖线的表格 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3 带水平及竖线的表格 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4 利用@表达式生成表格 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5 一张复杂的表格 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3
第第第一一一章章章 表表表格格格环环环境境境的的的定定定义义义
环境tabular和tabular*是生成表格的基本工具1,其定义(语法)如下:
\begin{tabular}[位置]{列}
行
\end{tabular}
\begin{tabular*}{宽度}[位置]{列}
行
\end{tabular*}
tabular环境可以用来排版带有横线和竖线的表格,LATEX自动确定表格的宽度;tabular*环
境与tabular环境类似,只是可以用参数指定表格的整体宽度,另外列参数必须在第一
列后面的某个地方包含一个合适的表达式(见下面说明)。通常,为了使表格在页面上居
中,要利用center环境:
\begin{center} 表格 \end{center}
第第第二二二章章章 表表表格格格环环环境境境参参参数数数格格格式式式
§2.1 位位位置置置可可可选选选参参参数数数
该参数表示表格相对于外部文本行基线的位置,又称为垂直定位参数,有三种情况:
• t: 表格顶部与当前外部文本行的基线重合
• b: 表格底部与当前外部文本行的基线重合
• 缺省(不使用): 表格按照外部文本行的基线垂直居中
1在数学模式下使用的array环境的语法和参数的意义与tabular环境中的完全一样
4
§2.2 列列列必必必选选选参参参数数数
该参数表明表格的格式,故又称为列格式参数。在这个参数中,对每一列必须有一个
相应的格式符号,另外还可能包含相应于表格左右边界和列间距的其它项。列格式符
号可以取下列值:
• l:列中文本左对齐
• r:列中文本右对齐
• c:列中文本居中
• p{宽度}:指定列的文本宽度,宽度由宽度参数给出,列中文本按该宽度自动换行
• |:画一条竖直线
• ||:画二条紧相邻的竖直线
• *{数}{列}:包含在列中的列格式被复制成数份,例如*{5}{|c} 等价于|c|c|c|c|c
第第第三三三章章章 表表表格格格文文文本本本行行行中中中的的的命命命令令令
表格中的每一水平行都由\\结束。这些行由一组彼此之间用&符号分开的列条目组成。
因此每一行应具有与列定义中列中相同数目的列条目,其中有些条目可以是空白的。
§3.1 \ tabularnewline命命命令令令
\ tabularnewline命令用于强制一表格行的结束,而\\除了可以结束整个一行表格
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
外,还可以在单个列的内容中实现换行.
§3.2 \ hline命命命令令令
这条命令只能位于第一行前面或紧接在行结束命令\\的后面,表示在刚结束的那一行
画一根水平的直线。如果这条命令位于表格的开头,那么就会在表格顶部画一横线,
5
横线的宽度与表格的宽度相同. 放在一起的两条水平\hline命令就会画出两条间隔很小
的水平线.
§3.3 \ cline{n-m}命命命令令令
这条命令的放置同\hline命令,并且在一行中可以出现多次。该命令从第n列的左边开
始,画一条到第m列右边结束的水平线.
§3.4 \ vline命命命令令令
该命令画一条竖直线,其高度等于其所在行的行高。用这种命令,可以得到那些不是
贯穿整个表格的竖直线.
§3.5 \multicolumn{数数数}{列列列}{文文文本本本}命命命令令令
这条命令只能位于一行的开始或者一个列分隔符(&)的后面,它把接下来的数个列合并
成一个列处理,其内容为文本。该列的总宽度等于合并前各个列的宽度之和加上列间
距之和。列参数的含义与tabular环境中列参数相似。
§3.6 @表表表达达达式式式:::@文文文本本本
@表达式在出现两列中间和的每一行上插入文本,同时去掉原来在这两列间自动插入的
空白。我们有下面的几点为变通:
1. 如果我们需要继续使用空白,必须在@表达式的文本参数中包含\hspace{}命令。
2. 如果希望某两个特定列之间的间隔与缺省的标准间隔不同,可以在表格环境
的行参数中相应的位置上放上@{\hsapce{宽度}}控制,此时该处列间间隔将变
成宽度。
3. @表达式中可以使用\extracolsep{宽度}控制,使后面所有列间间隔在原来标准
间隔的基础上增加宽度大小。
6
4. 在tabular*环境中。必须使用@{\extracolsep\fill}命令,使得后面所有列间距
可以伸展到预定义的表格宽度。
5. 一个表格即使左右边界没有竖线或其他表征符号,相应的位置与后面(前面)的列
之间也会插入等于标准列间隔一半的空白。如果不希望有这些空白,可以在行参
数开始或结束处使用@{}表达式。
第第第四四四章章章 表表表格格格样样样式式式参参参数数数命命命令令令
在表格的生成中,LATEX要利用许多样式参数,来设置其标准值。我们也可以在导言区
或某一环境中用\setlength 命令改变这些值。
§4.1 \tabcolsep命命命令令令
用于tabular或tabular*环境,表示两列间标准间隔的一半大小2
§4.2 \arrayrulewidth命命命令令令
代表表格中水平线与垂直线的宽度
§4.3 \doublerulesep命命命令令令
代表表格中使用垂直竖线时两根竖线间的距离
§4.4 \arraystretch命命命令令令
代表表格中行间距的缩放比例因子(缺省的标准值为1)
2\arraycolsep命令用于array环境,也表示两列间标准间隔的一半大小
7
第第第五五五章章章 表表表格格格示示示例例例
§5.1 无无无线线线表表表格格格
表 1: 无线表格
Positiion Club Games W T L Goals Points
1 Amesville Rockets 33 19 13 1 66:31 51:15
2 Borden Comets 33 18 9 6 65:37 45:21
...
...
...
17 Quincy Giants 33 7 5 21 40:89 19:47
18 Arlson Regulars 33 3 11 19 37:74 17:49
表1是用下面的命令生成的
\begin{tabular}{rlcrrrcc}
Positiion & Club & Games & W & T & L & Goals & Points \\ [0.5ex]
1 & Amesville Rockets & 33 & 19 & 13 & 1 & 66:31 & 51:15\\
2 & Borden Comets & 33 & 18 & 9 & 6 & 65:37 & 45:21\\
$\vdots$ & $\vdots$ & & & & & &$\vdots$\\
17 & Quincy Giants & 33 & 7 & 5 & 21 & 40:89 &19:47\\
18 & Arlson Regulars & 33 & 3 & 11 &19 & 37:74 &17:49
\end{tabular}
§5.2 带带带竖竖竖线线线的的的表表表格格格
表2将列格式{rlcrrrcc}改为{r|l||c|rrr|c|c}得到的(见第9页)
§5.3 带带带水水水平平平及及及竖竖竖线线线的的的表表表格格格
表3将列格式改为{r|l||c|rrr|c|c},并插入一些水平线后得到第8页的表3.
由于表格的第三列全为33,因此可以将列格式改为{rl@c{~~~33}crrrcc}, 而行条目不
再输入33,而用二个空列代替(其中空格符号~~~用于调整33的位置),我们得到表4.
8
表 2: 带竖线的表格
Positiion Club Games W T L Goals Points
1 Amesville Rockets 33 19 13 1 66:31 51:15
2 Borden Comets 33 18 9 6 65:37 45:21
...
...
...
17 Quincy Giants 33 7 5 21 40:89 19:47
18 Arlson Regulars 33 3 11 19 37:74 17:49
表 3: 带水平及竖线的表格
Positiion Club Games W T L Goals Points
1 Amesville Rockets 33 19 13 1 66:31 51:15
2 Borden Comets 33 18 9 6 65:37 45:21
...
...
...
17 Quincy Giants 33 7 5 21 40:89 19:47
18 Arlson Regulars 33 3 11 19 37:74 17:49
表 4: 利用@表达式生成表格
Positiion Club Games W T L Goals Points
1 Amesville Rockets 33 19 13 1 66:31 51:15
2 Borden Comets 33 18 9 6 65:37 45:21
...
... 33
...
17 Quincy Giants 33 7 5 21 40:89 19:47
18 Arlson Regulars 33 3 11 19 37:74 17:49
9
§5.4 复复复杂杂杂的的的表表表格格格
表 5: 一张复杂的表格
1st Regional Scoccer League—Final Results 1995/1995
Club W T L Goal points Remarks
1 Amesville Rockets 19 13 1 66:31 51:15 League Champs
2 Borden Comets 18 9 6 65:37 45:21 Trophy Winners
3 Clarkson Chargers 17 7 9 70:44 41:25 Condidates
4 Daysdon Bombers 14 10 9 66:50 38:28 for
5 Edbartown Devils 16 6 11 63:53 38:28 National
6 Freeburg Fighters 15 7 11 64:47 37:29 League
7 Gadsby Tigers 15 7 11 52:37 37:29
8 Harrisville Hotshots 12 11 10 62:58 35:31
9 Idleton Shoves 13 9 11 49:51 35:31
10 Jamestown Hornets 11 11 11 48:47 33:33
11 Kingstom Sowboys 13 6 14 54:45 32:34 Medium Teams
12 Lonsdale Stompers 12 8 13 50:42 32:34
13 Marsdon Heros 9 13 11 50:42 31:35
14 Norburg flames 10 8 15 50:68 28:38
15 Ollison champions 6 8 19 31:77 20:46
16 Petersville Lancers 7 5 21 40:89 19:47 Disbanding
17 Quincy Giants 7 5 21 40:89 19:47
18 Arlson Regulars 3 11 19 37:74 17:49
Demoted
10
表5由下面的命令生成.
\begin{tabular}{|r|l|rrr|r@{:}l|r@{:}l||c|}
\hline
\multicolumn{10}{|c|}
{\bfseries 1st Regional Scoccer League---Final Results 1995/1995} \\ \hline
&\itshape Club &\itshape W &\itshape T &\itshape L
&\multicolumn{2}{c|}{\itshape Goal}
&\multicolumn{2}{c||}{\itshape points}
&{\itshape Remarks} \\ \hline\hline
1 & Amesville Rockets & 19 & 13& 1 &66&31 &51&15& League Champs\\ \hline
2 & Borden Comets & 18 & 9 & 6 &65&37 &45&21& Trophy Winners\\ \hline
3 & Clarkson Chargers & 17 & 7 & 9 &70&44 &41&25& Condidates \\ \cline{1-9}
4 & Daysdon Bombers & 14 & 10& 9 &66&50 &38&28& for \\ \cline{1-9}
5 & Edbartown Devils & 16 & 6 & 11&63&53 &38&28& National\\ \cline{1-9}
6 & Freeburg Fighters & 15 & 7 & 11&64&47 &37&29& League\\ \hline
7 & Gadsby Tigers & 15 & 7 & 11&52&37 &37&29& \\ \cline{1-9}
8 & Harrisville Hotshots & 12 & 11& 10&62&58 &35&31& \\ \cline{1-9}
9 & Idleton Shoves & 13 & 9 & 11&49&51 &35&31& \\\cline{1-9}
10& Jamestown Hornets & 11 & 11& 11&48&47 &33&33&\\ \cline{1-9}
11& Kingstom Sowboys & 13 & 6 & 14&54&45 &32&34 & Medium Teams\\ \cline{1-9}
12& Lonsdale Stompers & 12 & 8 & 13&50&42 &32&34&\\ \cline{1-9}
13& Marsdon Heros & 9 & 13& 11&50&42 &31&35&\\ \cline{1-9}
14& Norburg flames & 10 & 8 & 15&50&68 &28&38&\\ \hline
15& Ollison champions & 6 & 8 & 19&31&77 &20&46& \\ \hline
16& Petersville Lancers & 7 & 5 & 21&40&89 &19&47& Disbanding\\ \hline
17& Quincy Giants & 7 & 5 & 21&40&89 &19&47&\\
18& Arlson Regulars & 3 & 11& 19& 37&74 &17&49&\raisebox{2.3ex}[0pt]{Demoted}
\\ \hline
\end{tabular}
11
对于表5说明几点:
• 列格式中两个r@{:}l是为了使比分号(:)对齐,这种方式也常用于小数点对齐;
• 由于列标题”Goals”和”Points”都占两列空间,因此采用\multicolumn命令解决;
• 表格中3-5,7-14,17行的水平线用命令\cline{1-9}生成,而其余水平线则用通常的
命令\hline生成;
• 源文件中第18行的文本Demoted被提升到第17行和第18行的中间,这里采用
了\raisebox命令将”Demoted”向上提升了2.3ex,注意这里缺省参数[0pt]是不能
少的,它抑制了两行间额外高度的增加.
12