zoukankan      html  css  js  c++  java
  • LaTeX 表格


    本系列文章由 @YhL_Leo 出品,转载请注明出处。
    文章链接: http://blog.csdn.net/yhl_leo/article/details/50066137


    一些LaTeX中表格的使用方法如下:

    1.table

    documentclass{article}
    
    egin{document}
    
        egin{table}[h]
    		centering
    		egin{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

    egin{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
    ewline
    start a new line within a cell (in a paragraph column)
    abularnewline
    start a new line within a cell (in a paragraph column) instead of \ to avoid a Misplaced oalign error in the tabular
    cline{i-j}
    partial horizontal line beginning in column i and ending in column j

    除了最简单的用例外,还可以这样:

    % example 1:
    egin{center}
    	egin{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}
    egin{tabular}{|c|c|c|}
    	hline multicolumn{3}{|c|}{?}\
    	hline 7&5&3\
    	hline 6&1&8\
    	hline
    end{tabular}



    example 2

    % example 3:
    egin{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}
    	abcolsep20pt
    arrayrulewidth2pt
    egin{tabular}{*{3}{|c}|}
    %egin{tabular}{|c|c|c|}
    	hline 2&9&4\
    	hline 7&5&3\
    	hline 6&1&8\
    	hline
    end{tabular}
    
    % example 2:
    ...
    usepackage{array}
    ...
    
    	abcolsep20pt
    arrayrulewidth2pt
    egin{tabular}{*{3}{|c}|}
    %egin{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:
    egin{center}
        egin{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:
    egin{center}
        egin{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}
    ...
    
    egin{center}
      egin{tabulary}{0.7	extwidth}{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的用法,如果我们想把文段分割成为表的形式:

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




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

    setlength{	abcolsep}{5pt} %colums, default value is 6pt
    
    
    enewcommand{arraystretch}{1.5} %rows, default value is 1.0

    另外一种方式是在hlinecline{i-j}后添加 oalign{smallskip}, 例如:

    egin{center}
    
        egin{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{	abcolsep}{4pt}
        egin{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
    
        $ $
    
        
    enewcommand{arraystretch}{1.5}
        egin{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{	abcolsep}{6pt}
        
    enewcommand{arraystretch}{1.0}
        egin{tabular}{ | l | l | r | }
    		hline
    oalign{smallskip}
    		multicolumn{2}{c}{Item} \
    		cline{1-2}
    oalign{smallskip}
    		Animal & Description & Price ($) \
    		
    oalign{smallskip}hline
    oalign{smallskip}
    		Gnat  & per gram & 13.65 \
    		& each     &  0.01 \
    		Gnu   & stuffed  & 92.50 \
    		Emu   & stuffed  & 33.33 \
    		Armadillo & frozen & 8.99 \
    		
    oalign{smallskip}hline
    	end{tabular}
    
        example 4
    
    end{center}



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

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




    一些LaTeX的环境也可以插入表格中:

    egin{tabular}{m{5cm} c} % here the m can be replaced by p or b.
    	\ hline
    	egin{verbatim}
    		I love coding
    	end{verbatim}
    	& LaTeX
    	\ hline
    end{tabular}



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

    ...
    usepackage{array}
    ...
    
    
    ewcolumntype{F}{>{$}c<{$}}
    egin{tabular}{FFF}
    	alpha & eta    & gamma   \
    	delta & epsilon & upsilon \
    	sigma & 	au     & phi     \
    end{tabular}




    @-expressions的用法:

    egin{tabular}{|@{}l|l@{}|}
      hline
      stuff & stuff \ hline
      stuff & stuff \
      hline
    end{tabular}
    
    egin{tabular}{r@{.}l}
      3   & 14159 \
      16  & 2     \
      123 & 456   \
    end{tabular}




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

    egin{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}
    ...
    
    egin{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}
    ...
    
    egin{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}



    egin{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}
    
    egin{tabular}{ccc}
    		oprule
    		2&9&4\
    	midrule
    		7&5&3\
    		6&1&8\
    	ottomrule
    end{tabular}




    4.colortbl

    常用的表格填色colortbl包:

    % example 1:
    usepackage{colortbl}
    
    egin{tabular}{ccc}
    	
    owcolor[gray]{.9}
    		2&9&4\
    	
    owcolor[gray]{.8}
    		7&5&3\
    	
    owcolor[gray]{.7}
    		6&1&8\
    end{tabular}



    example 1

    % example 2:
    egin{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:
    egin{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}
    ...
    
    egin{tabular}{|l|ccc|}
    hline
    diagbox{Time}{Room}{Day} & Mon & Tue & Wed \
    hline
    Morning & used & used & \
    Afternoon & & used & used \
    hline
    end{tabular}

    参考:

  • 相关阅读:
    SpringBoot+MyBatis通过ScriptRunner读取SQL文件
    Redis 分布式锁使用不当,酿成一个重大事故,超卖了100瓶飞天茅台!!!(转)
    better-scroll插件中导致fixed定位失效处理方便
    VUE SSR服务器端渲染NUXT采坑总结
    js的三种异步处理
    微信小程序支付功能讲解
    函数防抖与节流
    转:HTML5 History API 详解
    微信小程序 上拉刷新/下拉加载
    跨域你需要知道这些
  • 原文地址:https://www.cnblogs.com/hehehaha/p/6332214.html
Copyright © 2011-2022 走看看