本系列文章由 @YhL_Leo 出品,转载请注明出处。
文章链接: http://blog.csdn.net/yhl_leo/article/details/50066137
一些LaTeX中表格的使用方法如下:
1.table
- \documentclass{article}
-
- \begin{document}
-
- \begin{table}[h]
- \centering
- \begin{tabular}{|l|c|c|}\hline
- Setting&\multicolumn{2}{c|}{A4 size paper}\\\hline
- &mm&inches\\
- Top&25&1.0\\
- Bottom&25&1.0\\
- Left&20&0.8\\
- Right&20&0.8\\
- Column Width&82&3.2\\
- Column Spacing&6&0.25\\\hline
- \end{tabular}
- \caption{Margin settings for A4 size paper}
- \label{tab:Margin_settings}
- \end{table}
-
- \end{document}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
2.tabular
- \begin{tabular}{|c|c|c|}
- \hline 2&9&4\\
- \hline 7&5&3\\
- \hline 6&1&8\\
- \hline
- \end{tabular}
- 1
- 2
- 3
- 4
- 5
- 6
例子里面的|c|
这样的,那个地方叫做导言区,来约定表格的每列属性的:
l
| left-justified column |
c
| centered column |
r
| right-justified column |
b
| bottom |
c
| center (default) |
t
| top |
p{'width'}
| paragraph column with text vertically aligned at the top |
m{'width'}
| paragraph column with text vertically aligned in the middle (requires array package) |
b{'width'}
| paragraph column with text vertically aligned at the bottom (requires array package) |
|
| vertical line |
||
| double vertical line |
另外,还有一些常用的命令:
&
| column separator |
\\
| start new row (additional space may be specified after \\ using square brackets, such as \\[6pt] |
\hline
| horizontal line |
\newline
| start a new line within a cell (in a paragraph column) |
\tabularnewline
| start a new line within a cell (in a paragraph column) instead of \\ to avoid a Misplaced \noalign error in the tabular |
\cline{i-j}
| partial horizontal line beginning in column i and ending in column j |
除了最简单的用例外,还可以这样:
- % example 1:
- \begin{center}
- \begin{tabular}{ | l || c || r }
- \hline
- 1 & 2 & 3 \\ \hline
- 4 & 5 & 6 \\ \hline \hline
- 7 & 8 & 9 \\
- \hline
- \end{tabular}
- \end{center}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
example 1
- % example 2:
- %\multicolumn{n}{format}{item}
- \begin{tabular}{|c|c|c|}
- \hline \multicolumn{3}{|c|}{?}\\
- \hline 7&5&3\\
- \hline 6&1&8\\
- \hline
- \end{tabular}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
example 2
- % example 3:
- \begin{tabular}{|r|l|}
- \hline
- 7C0 & hexadecimal \\
- 3700 & octal \\ \cline{2-2}
- 11111000000 & binary \\
- \hline \hline
- 1984 & decimal \\
- \hline
- \end{tabular}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
example 3
在array
环境中(使用时需要包含:\usepackage{array}
),重新实现了tabular环境,加了不少新选项进去:
对于tabular
的第一个例子略作修改,可以发现在不含有array
包和含有时效果是不一样的:
- % example 1:
- %\usepackage{array}
- \tabcolsep20pt
- \arrayrulewidth2pt
- \begin{tabular}{*{3}{|c}|}
- %\begin{tabular}{|c|c|c|}
- \hline 2&9&4\\
- \hline 7&5&3\\
- \hline 6&1&8\\
- \hline
- \end{tabular}
-
- % example 2:
- ...
- \usepackage{array}
- ...
-
- \tabcolsep20pt
- \arrayrulewidth2pt
- \begin{tabular}{*{3}{|c}|}
- %\begin{tabular}{|c|c|c|}
- \hline 2&9&4\\
- \hline 7&5&3\\
- \hline 6&1&8\\
- \hline
- \end{tabular}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
example 1
example 2
对于表格内有长文本时,直接排下来不但很难看而且很容超出页面的范围,可以这么做:
- Without specifying width for last column:
- \begin{center}
- \begin{tabular}{| l | l | l | l |}
- \hline
- Day & Min Temp & Max Temp & Summary \\ \hline
- Monday & 11C & 22C & A clear day with lots of sunshine.
- However, the strong breeze will bring down the temperatures. \\ \hline
- Tuesday & 9C & 19C & Cloudy with rain, across many northern regions. Clear spells
- across most of Scotland and Northern Ireland,
- but rain reaching the far northwest. \\ \hline
- Wednesday & 10C & 21C & Rain will still linger for the morning.
- Conditions will improve by early afternoon and continue
- throughout the evening. \\
- \hline
- \end{tabular}
- \end{center}
-
- With width specified:
- \begin{center}
- \begin{tabular}{ | l | l | l | p{5cm} |}
- \hline
- Day & Min Temp & Max Temp & Summary \\ \hline
- Monday & 11C & 22C & A clear day with lots of sunshine.
- However, the strong breeze will bring down the temperatures. \\ \hline
- Tuesday & 9C & 19C & Cloudy with rain, across many northern regions. Clear spells
- across most of Scotland and Northern Ireland,
- but rain reaching the far northwest. \\ \hline
- Wednesday & 10C & 21C & Rain will still linger for the morning.
- Conditions will improve by early afternoon and continue
- throughout the evening. \\
- \hline
- \end{tabular}
- \end{center}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
另外使用宏包tabulary
也可以实现:
- \usepackage{tabulary}
- ...
-
- \begin{center}
- \begin{tabulary}{0.7\textwidth}{LCL}
- Short sentences & \# & Long sentences \\
- \hline
- This is short. & 173 & This is much loooooooonger, because there are many more words. \\
- This is not shorter. & 317 & This is still loooooooonger, because there are many more words. \\
- \end{tabulary}
- \end{center}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
其中的对齐方式除了
L
,
C
外,还有
R
,
J
。
让我们看下\parbox
的用法,如果我们想把文段分割成为表的形式:
- \begin{tabular}{cc}
- boring cell content & \parbox[t]{5cm}{rather long par\\new par}
- \end{tabular}
- 1
- 2
- 3
调整行列间距可以使用命令:
- \setlength{\tabcolsep}{5pt} %colums, default value is 6pt
-
- \renewcommand{\arraystretch}{1.5} %rows, default value is 1.0
- 1
- 2
- 3
另外一种方式是在\hline
和cline{i-j}
后添加\noalign{\smallskip}
, 例如:
- \begin{center}
-
- \begin{tabular}{ | l | l | r | }
- \hline
- \multicolumn{2}{c}{Item} \\
- \cline{1-2}
- Animal & Description & Price (\$) \\
- \hline
- Gnat & per gram & 13.65 \\
- & each & 0.01 \\
- Gnu & stuffed & 92.50 \\
- Emu & stuffed & 33.33 \\
- Armadillo & frozen & 8.99 \\
- \hline
- \end{tabular}
-
- example 1
-
- $ $
-
- \setlength{\tabcolsep}{4pt}
- \begin{tabular}{ | l | l | r | }
- \hline
- \multicolumn{2}{c}{Item} \\
- \cline{1-2}
- Animal & Description & Price (\$) \\
- \hline
- Gnat & per gram & 13.65 \\
- & each & 0.01 \\
- Gnu & stuffed & 92.50 \\
- Emu & stuffed & 33.33 \\
- Armadillo & frozen & 8.99 \\
- \hline
- \end{tabular}
-
- example 2
-
- $ $
-
- \renewcommand{\arraystretch}{1.5}
- \begin{tabular}{ | l | l | r | }
- \hline
- \multicolumn{2}{c}{Item} \\
- \cline{1-2}
- Animal & Description & Price (\$) \\
- \hline
- Gnat & per gram & 13.65 \\
- & each & 0.01 \\
- Gnu & stuffed & 92.50 \\
- Emu & stuffed & 33.33 \\
- Armadillo & frozen & 8.99 \\
- \hline
- \end{tabular}
-
- example 3
-
- $ $
-
- \setlength{\tabcolsep}{6pt}
- \renewcommand{\arraystretch}{1.0}
- \begin{tabular}{ | l | l | r | }
- \hline\noalign{\smallskip}
- \multicolumn{2}{c}{Item} \\
- \cline{1-2}\noalign{\smallskip}
- Animal & Description & Price (\$) \\
- \noalign{\smallskip}\hline\noalign{\smallskip}
- Gnat & per gram & 13.65 \\
- & each & 0.01 \\
- Gnu & stuffed & 92.50 \\
- Emu & stuffed & 33.33 \\
- Armadillo & frozen & 8.99 \\
- \noalign{\smallskip}\hline
- \end{tabular}
-
- example 4
-
- \end{center}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
其他用法如在某一行后空出一定间距:
- \begin{tabular}{ll}
- \hline
- Mineral & Color \\[0.5cm]
- Ruby & red \\
- Sapphire & blue \\
- \hline
- \end{tabular}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
一些LaTeX的环境也可以插入表格中:
- \begin{tabular}{m{5cm} c} % here the m can be replaced by p or b.
- \\ \hline
- \begin{verbatim}
- I love coding
- \end{verbatim}
- & LaTeX
- \\ \hline
- \end{tabular}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
使用列规格设置命令:>{\cmd} and <{\cmd}
,如设置表格中的字符都是数学手写字体:
- ...
- \usepackage{array}
- ...
-
- \newcolumntype{F}{>{$}c<{$}}
- \begin{tabular}{FFF}
- \alpha & \beta & \gamma \\
- \delta & \epsilon & \upsilon \\
- \sigma & \tau & \phi \\
- \end{tabular}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
@-expressions的用法:
- \begin{tabular}{|@{}l|l@{}|}
- \hline
- stuff & stuff \\ \hline
- stuff & stuff \\
- \hline
- \end{tabular}
-
- \begin{tabular}{r@{.}l}
- 3 & 14159 \\
- 16 & 2 \\
- 123 & 456 \\
- \end{tabular}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
行的特别设置,给出几个例子:
- \begin{tabular}{ |l|l| }
- \hline
- \multicolumn{2}{|c|}{Team sheet} \\
- \hline
- GK & Paul Robinson \\
- LB & Lucas Radebe \\
- DC & Michael Duberry \\
- DC & Dominic Matteo \\
- RB & Dider Domi \\
- MC & David Batty \\
- MC & Eirik Bakke \\
- MC & Jody Morris \\
- FW & Jamie McMaster \\
- ST & Alan Smith \\
- ST & Mark Viduka \\
- \hline
- \end{tabular}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- ...
- \usepackage{multirow}
- ...
-
- \begin{tabular}{ |l|l|l| }
- \hline
- \multicolumn{3}{ |c| }{Team sheet} \\
- \hline
- Goalkeeper & GK & Paul Robinson \\ \hline
- \multirow{4}{*}{Defenders} & LB & Lucas Radebe \\
- & DC & Michael Duburry \\
- & DC & Dominic Matteo \\
- & RB & Didier Domi \\ \hline
- \multirow{3}{*}{Midfielders} & MC & David Batty \\
- & MC & Eirik Bakke \\
- & MC & Jody Morris \\ \hline
- Forward & FW & Jamie McMaster \\ \hline
- \multirow{2}{*}{Strikers} & ST & Alan Smith \\
- & ST & Mark Viduka \\
- \hline
- \end{tabular}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- ...
- \usepackage{multirow}
- ...
-
- \begin{tabular}{cc|c|c|c|c|l}
- \cline{3-6}
- & & \multicolumn{4}{ c| }{Primes} \\ \cline{3-6}
- & & 2 & 3 & 5 & 7 \\ \cline{1-6}
- \multicolumn{1}{ |c }{\multirow{2}{*}{Powers} } &
- \multicolumn{1}{ |c| }{504} & 3 & 2 & 0 & 1 & \\ \cline{2-6}
- \multicolumn{1}{ |c }{} &
- \multicolumn{1}{ |c| }{540} & 2 & 3 & 1 & 0 & \\ \cline{1-6}
- \multicolumn{1}{ |c }{\multirow{2}{*}{Powers} } &
- \multicolumn{1}{ |c| }{gcd} & 2 & 2 & 0 & 0 & min \\ \cline{2-6}
- \multicolumn{1}{ |c }{} &
- \multicolumn{1}{ |c| }{lcm} & 3 & 3 & 1 & 1 & max \\ \cline{1-6}
- \end{tabular}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- \begin{tabular}{ r|c|c| }
- \multicolumn{1}{r}{}
- & \multicolumn{1}{c}{noninteractive}
- & \multicolumn{1}{c}{interactive} \\
- \cline{2-3}
- massively multiple & Library & University \\
- \cline{2-3}
- one-to-one & Book & Tutor \\
- \cline{2-3}
- \end{tabular}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
3.booktabs
即三线表:
- \usepackage{booktabs}
-
- \begin{tabular}{ccc}
- \toprule
- 2&9&4\\
- \midrule
- 7&5&3\\
- 6&1&8\\
- \bottomrule
- \end{tabular}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
4.colortbl
常用的表格填色colortbl
包:
- % example 1:
- \usepackage{colortbl}
-
- \begin{tabular}{ccc}
- \rowcolor[gray]{.9}
- 2&9&4\\
- \rowcolor[gray]{.8}
- 7&5&3\\
- \rowcolor[gray]{.7}
- 6&1&8\\
- \end{tabular}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
example 1
- % example 2:
- \begin{tabular}
- {>{\columncolor[gray]{.9}}c|
- >{\columncolor[gray]{.8}}c|
- >{\columncolor[gray]{.7}}c}
- 2&9&4\\
- 7&5&3\\
- 6&1&8\\
- \end{tabular}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
example 2
- %example 3:
- \begin{tabular}{ccc}
- \cellcolor[rgb]{.9,.9,.9}2&
- \cellcolor[rgb]{.8,.9,.9}9&
- \cellcolor[rgb]{.7,.9,.9}4\\
- \cellcolor[rgb]{.9,.8,.9}7&
- \cellcolor[rgb]{.8,.8,.9}5&
- \cellcolor[rgb]{.7,.8,.9}3\\
- \cellcolor[rgb]{.9,.7,.9}6&
- \cellcolor[rgb]{.8,.7,.9}1&
- \cellcolor[rgb]{.7,.7,.9}8\\
- \end{tabular}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
example 3
5.diagbox
画斜线表头的包diagbox
- \usepackage{diagbox}
- ...
-
- \begin{tabular}{|l|ccc|}
- \hline
- \diagbox{Time}{Room}{Day} & Mon & Tue & Wed \\
- \hline
- Morning & used & used & \\
- Afternoon & & used & used \\
- \hline
- \end{tabular}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
参考: