LaTeX 表格


本系列文章由 @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}




2.tabular

\begin{tabular}{|c|c|c|}
	\hline 2&9&4\\
	\hline 7&5&3\\
	\hline 6&1&8\\
	\hline
\end{tabular}




例子里面的|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}



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}



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}



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}



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}



另外使用宏包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}


其中的对齐方式除了 L, C外,还有 R, J


让我们看下\parbox的用法,如果我们想把文段分割成为表的形式:

\begin{tabular}{cc}
  boring cell content & \parbox[t]{5cm}{rather long par\\new par}
\end{tabular}




调整行列间距可以使用命令:

\setlength{\tabcolsep}{5pt} %colums, default value is 6pt

\renewcommand{\arraystretch}{1.5} %rows, default value is 1.0

另外一种方式是在\hlinecline{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}



其他用法如在某一行后空出一定间距:

\begin{tabular}{ll}
	\hline
	Mineral & Color \\[0.5cm]
	Ruby & red \\
	Sapphire & blue \\
	\hline
\end{tabular}




一些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}



使用列规格设置命令:>{\cmd} and <{\cmd},如设置表格中的字符都是数学手写字体:

...
\usepackage{array}
...

\newcolumntype{F}{>{$}c<{$}}
\begin{tabular}{FFF}
	\alpha & \beta    & \gamma   \\
	\delta & \epsilon & \upsilon \\
	\sigma & \tau     & \phi     \\
\end{tabular}




@-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}




行的特别设置,给出几个例子:

\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}



...
\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}



...
\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}



\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}




3.booktabs

三线表

\usepackage{booktabs}

\begin{tabular}{ccc}
	\toprule
		2&9&4\\
	\midrule
		7&5&3\\
		6&1&8\\
	\bottomrule
\end{tabular}




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}



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}



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}



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}

<script type="math/tex" id="MathJax-Element-1"> </script>

参考:

  • 24
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值