LATEX中表格的制作

合集下载

latex tabular用法

latex tabular用法

Latex中的tabular环境是非常常用的命令,它用于创建表格。

在Latex中,表格的创建是一项比较繁琐的任务,但是使用tabular环境可以让我们更加方便地创建出漂亮的表格。

在本文中,我们将深入探讨latex tabular用法,并且会按照从简到繁,由浅入深的方式来探讨这个主题。

1. 基本语法让我们来看一下latex tabular的基本语法。

在Latex中,使用tabular环境创建表格的语法如下:\begin{tabular}{column1,column2, ...}row1\_col1 & row1\_col2 & ... \\row2\_col1 & row2\_col2 & ... \\... & ... & ...\end{tabular}在这个基本语法中,我们通过\begin{tabular}{...}和\end{tabular}来标识表格的起始和结束,大括号内的内容用于指定表格的列数和每列的对齐方式,每一行的数据则使用&来分隔,使用\\来换行。

2. 列对齐在latex tabular中,我们可以通过指定列对齐方式来控制表格中每一列的对齐方式。

常用的对齐方式包括居左对齐(l),居中对齐(c),和居右对齐(r)。

指定三列分别居左对齐、居中对齐和居右对齐的表格语法如下:\begin{tabular}{l c r}left aligned & center aligned & right aligned \\\end{tabular}3. 单元格合并有时候,我们需要在表格中合并多个单元格,latex tabular也提供了相应的命令来实现这一功能。

使用\multicolumn命令可以实现横向合并单元格,使用\multirow命令可以实现纵向合并单元格。

4. 边框线在latex tabular中,我们可以通过指定边框线的方式来控制表格的边框线显示。

latex,横向表格

latex,横向表格

latex,横向表格竭诚为您提供优质文档/双击可除latex,横向表格篇一:latex表格排版——多行多列合并latex多列表格合并单元格排版效果如下图所示:复制下面代码直接可以运行\begin{table}[!h]\centering\caption{parametersofsRoi}\label{tab2}\begin{tabular}{cccccccc}\hline\multicolumn{1}{c}{\multirow{2}{1.2cm}{number}} "onclick="show_ajax(this)"class="keylink">table} 篇二:latex排版——复杂表格制作latex排版——复杂表格制作%多行或多列合并的情况%(1)多行合并代码如下\documentclass{article}\usepackage{multirow}%使用multirow必须加载该package\begin{document}\begin{table}[tbp]\centering\begin{tabular}{|ccccc|ccccc|}\hlinecaseb小空格a\,b没有空格ab紧贴a\!b/doc/b910654779.html,tex中插入数学公式两个m的宽度一个m的宽度1/3m宽度2/7m宽度1/6m宽度缩进1/6m宽度1.1公式带编号\begin{equation}w=2\times{{d}_{\min}}-1%\lable{eq:1}\end{equation}1.2公式不带编号独占一行\begin{equation*}w=2\times{{d}_{\min}}-1\end{equation*}$$w=2\times{{d}_{\min}}-1$$。

LaTeX表格制作

LaTeX表格制作

LaTeX表格制作目录第一章表格环境的定义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)表格1无线表格 (8)2带竖线的表格 (9)3带水平及竖线的表格 (9)4利用@表达式生成表格 (9)5一张复杂的表格 (10)第一章表格环境的定义环境tabular和tabular*是生成表格的基本工具1,其定义(语法)如下:\begin{tabular}[位置]{列}行\end{tabular}\begin{tabular*}{宽度}[位置]{列}行\end{tabular*}tabular环境可以用来排版带有横线和竖线的表格,L A T E X自动确定表格的宽度;tabular*环境与tabular环境类似,只是可以用参数指定表格的整体宽度,另外列参数必须在第一列后面的某个地方包含一个合适的表达式(见下面说明)。

通常,为了使表格在页面上居中,要利用center环境:\begin{center}表格\end{center}第二章表格环境参数格式§2.1位置可选参数该参数表示表格相对于外部文本行基线的位置,又称为垂直定位参数,有三种情况:?t:表格顶部与当前外部文本行的基线重合b:表格底部与当前外部文本行的基线重合缺省(不使用):表格按照外部文本行的基线垂直居中1在数学模式下使用的array环境的语法和参数的意义与tabular 环境中的完全一样§2.2列必选参数该参数表明表格的格式,故又称为列格式参数。

Latex 中表格的画法

Latex 中表格的画法

Latex 中表格的画法介绍一下不规则表格的一种画法,使用multirow 这个包,在latex文件最前面用这个包\usepackage{multirow}在正文中用以下代码:这个是模版,根据需要调整。

\begin{table}[htbp]\centering\caption{\label{comparison}Result comparison on LN data}\begin{tabular}{c|c|c|c|c|c|c|c}\hline\multirow{2}{*}{Instance} & \multirow{2}{*}{Original Instance} & \multirow{2}{*}{High Priority} &\multirow{2}{*}{Low Priority} &\multicolumn{2}{|c|}{Benchmark} & \multicolumn{2}{|c}{Our Algorithm} \\\cline{5-8}& & & & Utilization & Time(s) & Utilization & Time(s)\\\hlineLN01\&02 & LN01 \&LN02 & LN01 & LN02 & 99.3\% & 624& & \\\hline\end{tabular}\end{table}效果:解释:1 \begin{table}表示表格开始啦,中括号中的htbp表示的是表格的一些位置信息,居中啊,紧随文章啊,下一页的最开始啦之类的,这个是最基本的表格参数,不赘述。

2 \caption{}:{}中可以填上正文里这个表格的名字。

在括号中同时可以放上"\label{}"这个选项,\label{} 是你在文章中提到这个表格时的标记,是方便作者自己记忆的,不会出现在正文中,有点类似于\cite{}引用文章。

latex绘制表格的方法

latex绘制表格的方法

latex绘制表格的方法
在LaTeX中绘制表格,通常使用`tabular`环境。

以下是绘制表格的基本方法:
1. 引用这个表的时候就告诉LaTeX编译器开始划正式的表格了。

2. `c|c` 告诉LaTeX这个表有几列,每一个`c`表示一列,有`|`表示这个列和下一列之间有一条竖线,不加`|`表示没有竖线,可以根据自己的需求选择是否加`|`。

3. `\hline`表示画一条横线,横线的长度是表的宽度。

与之相比,`\cline{m-n}`表示画一条从m列到n列的横线。

4. 对于标准的一列,格式是`content1 & content2 & content3`,其中`contenti`是内容,之间用`&`隔开即可。

5. 如果需要合并多行或多列,可以使用`\multirow{2}{*}{Name}`的形式,其中`{2}`表示2行合并成一行,`{*}`表示文字居中写,`{Name}`就是文字的内容。

6. 加载了`booktabs`宏包后,可以使用`\toprule`和`\bottomrule`命令分别画出表格头和表格底的粗横线,而用`\midrule`画出表格中的横线。

以上就是LaTeX中绘制表格的基本方法。

孙一凡老师LaTeX教学---第五课LaTeX表格制作

孙一凡老师LaTeX教学---第五课LaTeX表格制作

期中報告(40%)說明:
pdf檔案已經放在老師的教學網站上 http://140.127.187.205/ifan/ 步驟一:分組(一組最多五人) 步驟二:下載教學網站上的pdf檔案 步驟二:下載教學網站上的pdf檔案 步驟三:分工合作,每人負責工作分配 步驟四:整合以後將.tex檔寄至老師信箱 步驟四:整合以後將.tex檔寄至老師信箱 ifan@.tw 注 意:期限(4/24) 意:期限(4/24) 評分標準(教過的LaTEX功能發揮) 評分標準(教過的LaTEX功能發揮)
{ }中的參數,除了c、l、r、|之外,另外還有其 他兩個參數:p{寬度} 、@{符號}與cline{a-b } 你發現了嗎?一般tabular表格的製作,各行寬度 大小都是自動設定,只有p{寬度}可以來自訂寬度 實例:
原例中:\begin{tabular}{|r|c|cl|}改為 \begin{tabular}{|p{1cm}|p{1cm}|p{1cm}|l|}
tabularx 巨集
新增功能:b{}功能 上頁介紹的m{}功能與之前介紹的段落p{}功能類似, 但是該列其他欄位會對齊這個段落的中間,另外,b{} b{} 也與他們相類似,所不同之處在於其他欄位會對齊該段 落的底部。 另外,上頁介紹的<{指令}功能,如果改成>{指令},會 跑到下一個欄位的起頭 例如:\begin{tabular}{l<{ :}>{$\|$}lb{2cm}}
加入這三項在前言區的改變: \renewcommand{\arraystretch}{1.2} \arrayrulewidth=1pt \tabcolsep=12pt
方便的巨集引用
這裡我們引用好用的巨集,它可以說是設計好 的整合套件,使我們更方便設計表格。 巨集引用: 1) \documentstyle 必須改成\documentclass 2) 在前言區加入\usepackage{巨集名稱} 3) 巨集主要可以加強指令功能,彙整並加強一般 常用的功能

latex制作表格-跨行跨列

latex制作表格-跨行跨列

latex制作表格-跨⾏跨列1、列的合并,使⽤ \multicolumn{跨⼏列}{格式}{填充内容}\documentclass[UTF8]{ctexart}\begin{document}三囚犯问题进⾏300次实验后\ldots\ldots\begin{tabular}{|c|c|c|}\hline被赦免的囚犯& \multicolumn{2}{|c|}{看守告诉A的名字} \\\hline$A \qquad 100/300$& B 50次& C 50次 \\\hline$B \qquad 100/300$&\multicolumn{2}{|c|}{C 100次} \\\hline$C \qquad 100/300$&\multicolumn{2}{|c|}{B 100次} \\\hline\end{tabular}\end{document}效果如下图:2、⾏的合并。

对于⾏的合并我们使⽤的是\cline这个命令.这个命令有点像我们的\hline这个命令。

它们两者都是⽤来画⽔平的表格线,但是\cline可以⽤来指定画线的起始和终⽌位置。

关键还要使⽤命令:multirow命令。

⾸先,要在导⾔区引⽤宏包: \usepackage{multirow}其次,命令格式: \multirow{跨的⾏数}*{填充内容}\documentclass[UTF8]{ctexart}\usepackage{multirow}\begin{document}\begin{tabular}{|c|r|r|}\hline\multirow{2}*{姓名} & \multicolumn{2}{c|}{成绩} \\ \cline{2-3}& 语⽂ & 数学 \\\hline张三 & 87 & 100 \\\hline\end{tabular}\end{document}如下效果:。

overleaf中制作表格的方法

overleaf中制作表格的方法

overleaf中制作表格的方法Overleaf中制作表格的方法Overleaf是一款非常受欢迎的在线LaTeX编辑器,用于创建科学和数学文档。

在Overleaf中制作表格可以通过多种方法实现,本文将详细介绍其中的几种方法。

使用tabular环境tabular环境是LaTeX中最基本的制作表格的方法之一。

以下是使用它来制作一个简单表格的基本语法:\begin{tabular}{|l|c|r|}\hline列1 & 列2 & 列3 \\\hline行1 & 数据1 & 数据2 \\\hline行2 & 数据3 & 数据4 \\\hline\end{tabular}其中{l|c|r}表示三列的对齐方式,l表示左对齐,c表示居中,r表示右对齐。

|用于绘制表格的竖线,\hline用于绘制表格的横线。

使用booktabs包booktabs包是一个提供了一些更好的水平线宽度和垂直间距的方法的LaTeX包。

以下是使用它制作表格的例子:\usepackage{booktabs}\begin{tabular}{llr}\toprule列1 & 列2 & 列3 \\\midrule行1 & 数据1 & 数据2 \\行2 & 数据3 & 数据4 \\\bottomrule\end{tabular}使用booktabs包的好处是能够生成更美观、更专业的表格。

使用multirow和multicolumn命令有时候,表格中会有跨行或跨列的单元格,可以使用multirow和multicolumn命令来实现。

以下是使用这两个命令的例子:\usepackage{multirow}\begin{tabular}{|c|c|c|}\hline\multirow{2}{*}{跨行内容} & 列2 & 列3 \\\cline{2-3}& 数据1 & 数据2 \\\hline行2 & 数据3 & 数据4 \\\hline\end{tabular}使用multirow命令可以实现单元格跨行,使用multicolumn命令可以实现单元格跨列。

latex编译表格语法

latex编译表格语法

latex编译表格语法在LaTeX中,编写和编译表格需要使用特定的语法和命令。

下面是一些常用的表格语法:1. 表格环境:使用`\begin{tabular}{列格式}`和`\end{tabular}`命令来定义表格环境。

其中,列格式指定了每列的对齐方式,常见的有居中对齐(`c`)、左对齐(`l`)和右对齐(`r`)。

2. 表格行:每行以`\\`结束,表示换行。

在行内,使用`&`来分隔不同的列。

3. 单元格格式:可以在`\begin{tabular}{列格式}`中使用`|`来添加垂直线,表示列之间的分隔。

例如,`\begin{tabular}{|c|c|c|}`表示每列之间都有垂直线。

4. 跨行和跨列:使用`\multicolumn{列数}{列格式}{内容}`命令可以将单元格合并为跨列的单元格。

例如,`\multicolumn{2}{|c|}{内容}`表示将两列合并为一个居中对齐的单元格。

5. 表格线:使用`\hline`命令可以绘制水平线,表示表格的横线。

例如,`\hline`表示绘制一条横线。

下面是一个简单的例子,展示了如何使用上述语法编写一个表格:\begin{tabular}{|c|c|c|}。

\hline.列1 & 列2 & 列3 \\。

\hline.行1 & 行1列2 & 行1列3 \\。

\hline.行2 & 行2列2 & 行2列3 \\。

\hline.\end{tabular}。

以上代码将生成一个具有三列和三行的表格,每列之间有垂直线,每行之间有水平线。

请注意,在编译表格之前,需要确保在文档的导言区使用了`\usepackage{array}`命令,以加载相关的宏包。

希望以上介绍对你有所帮助,如果还有其他问题,请随时提问。

搞定LaTeX论文中的表格

搞定LaTeX论文中的表格

搞定LaTeX论⽂中的表格论⽂中的表格制作⼀直是令⼈头疼的事情,直到我遇见了这个Excel插件。

在此之前,我⽤过⼀些其他的⼩⼯具,例如以及。

他们虽然部分解决了⼿动写latex表格的⿇烦,但是他们都有⼀个问题:还是需要我们把数据填进去。

做论⽂的实验数据,⼀般是放在Excel⾥⾯的。

如果有⼀个Excel插件,选中Excel的单元格,就能转化成LaTeX表格代码,那是最好不过的了。

幸运的是,有⼈帮我们做好了这样的轮⼦了。

项⽬地址:直接下载地址:如果⽹速不好的话,可以考虑这个国内下载地址:使⽤⽅法⾮常简单:把下载下来的这个Excel加载项添加到Excel⾥⾯就可以使⽤了。

具体的添加⽅式与Excel的版本及操作系统有关,就不赘述了,⾃⾏搜索即可。

插⼊Excel之后,选中要转换的表格,点击加载项==>Excel2LaTeX 就可以得到转化后的表格了。

Excel的居中、加⿊加粗、单元格合并等操作,都可以⽀持转化为LaTeX!我使⽤了⼀年多的经验是:⽤这个插件之前,不要在Excel⾥⾯调整表格宽度和⾼度,不然转化的结果会很难看。

因为这个插件会把Excel的宽度也带⼊LaTeX中,但是⼀般我们在LaTeX中不希望表格是固定宽度。

最后附上⼀些其他的实⽤LaTeX画表格的建议:1. 好看的三线表画表格最常⽤的包⾃然是 booktabs了,好看的三线表的基本命令如下图。

⽐较⿇烦的是左右两端缩⼩⼀点点的横线,这个叫做 \cmidrule,语法规则是 \cmidrule(lr){start-end},注意,第⼀个括号是圆括号,lr分别表⽰想要左边缩短⼀点还是右边缩短⼀点,start和end是横线跨过的列(start和end都包括)。

cmidrule有什么⽤呢?想把⼀根横线拆成两根,但是它们⼜是相邻的时候,就可以⽤lr选项,让它们的左右边界缩短⼀点,看起来就是分开的了。

就像下⾯这个表格:2. 尽量别画竖线列的效果尽量⽤⽂字直接显现出来,把列的竖线画出来会显得表格很密,密不透风。

LaTex简明教程课件第四章 表格排版

LaTex简明教程课件第四章 表格排版

根据命令行生成的表格如图所示:
如果打算在每一行加一条横线,这在每一行后面添加 \hline,如果打算给每一列加一条竖线,则在{lccc}每 两个字母之间加符号|。如果给每一行每一列都加上横 线和竖线,对应的命令行如图所示。
表格对应的命令行
表格效果图
表格默认的字体大小和正文字体相同,如果需要单独 设置表格字体大小,需要在\begin{table}后加入控制 字体大小的控制命令。图给出了各种表格字体的示意 图,用户可以根据自己的需要设置表格字体大小。
Latex 设置字体大小命令由小到大依次为: \tiny \scriptsize \footnotesize \small
\normalsize \large \Large \LARGE \huge \Huge
各种表格字体
图形和表格的格式设置好之后,最后一项工作是在正 文中引用。在正文中引用一个图片的命令是 \ref{fig:example},引用一个表格的命令是 \ref{tab:example}。
\begin{array}[表格位置]{列样式} \end{array}
\begin{tabular}[表格位置]{列样式} \end{tabular}
这两个环境的选项和参数定义是相同的,区别在于 array 主要用于数组矩阵的排版,且只能用在数学环境 中,如equation 等。较为常用的是tabular制表环境。
{lccc} 表示各列元素对齐方式,left-l、right-r、 center-c;
\hline 在此行下面画一横线;
\\ 表示重新开始一行;
& 表示列的分隔线;
在\caption{title}中,title表明表格的标题;
\label{tab:example}中的fig:example表明表格在引用时 的标示。

latex表格标题和说明

latex表格标题和说明

latex表格标题和说明
在LaTeX中,可以使用`tabular`环境创建表格。

要为表格添加标题和说明,可以使用`caption`环境和`label`命令。

以下是一个示例:
```latex
\documentclass{article}
\usepackage{booktabs} % 使用更好的表格样式
\begin{document}
\begin{table}[htbp] % 使用[htbp]选项来调整表格位置
centering % 使表格居中
\caption{表格标题} % 添加表格标题
\label{tab:example} % 添加表格标签,以便在文中引用
\begin{tabular}{ll} % 定义表格列格式
\toprule % 添加表头线
列1 & 列2 \\
\midrule % 添加中间的横线
数据1 & 数据2 \\
数据3 & 数据4 \
\bottomrule % 添加表尾线
\end{tabular}
\end{table}
表格说明:这是一个示例表格,用于展示如何在LaTeX中创建带有标题和说明的表格。

\end{document}
```
在这个示例中,我们使用了`booktabs`包来美化表格样式。

`caption`环境用于添加表格标题,`label`命令用于添加表格标签。

表格本身使用`tabular`环境创建,其中`ll`表示两列,每列内容都居中对齐。

我们还使用了`toprule`、`midrule`和`bottomrule`命令来添加表头线、中间横线和表尾线。

LaTeX之表格绘制综合示例一

LaTeX之表格绘制综合示例一

LaTeX之表格绘制综合⽰例⼀LaTeX中绘制复杂表格有些⿇烦,这⾥记录下⼀些综合性的例⼦以备查询。

下⾯直接给出所举例⼦的完整源代码。

环境Ubuntu 20.04Visual Studio Code 1.62.3LuaLaTeX⽰例⼀:所绘表格选⾃裘巍⽼师所著《编译器设计之路》⼀书中的表2-5。

% 博客园,繁星间漫步,陆巍的博客\documentclass{article}% 注意宏包顺序,有可能会报错\usepackage{ctex}% 中⽂⽀持\usepackage{geometry}% ⽤于页⾯设置\usepackage[dvipsnames, svgnames, x11names]{xcolor}% 颜⾊⽀持\usepackage{tcolorbox}% ⽀持更好的⽂本框\tcbuselibrary{skins, breakable}% ⽀持⽂本框跨页\usepackage[english]{babel}% 载⼊美式英语断字模板\usepackage{colortbl}% 表格颜⾊\usepackage{longtable}% ⽀持长表格跨页\usepackage{multirow}% ⽀持表格的多⾏合并% 设置为A4纸,边距适中模式(参考永中office)\geometry{width = 210mm,height = 297mm,left = 19.1mm,right = 19.1mm,top = 25.4mm,bottom = 25.4mm}\hyphenpenalty = 1000% 断字设置,值越⼤,断字越少。

\setmainfont{Ubuntu Mono}% 设置全局英⽂字体\setlength{\parindent}{2em}% 缩进\setlength{\parskip}{1ex} % 段间距% 定义表格对齐⽅式\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}\begin{document}\section{表格绘制综合⽰例⼀}\begin{center}表2-5 Neo Pascal词法定义\begin{longtable}{m{6mm}|m{157mm}}\noalign{\hrule height 1pt}标识符 & 以字母形状,后跟字母与数字的任意组合的字符串。

latex编写表格

latex编写表格

array标准LaTeX 提供有array 和tabular 两个制表环境,它们的完整格式如下:\begin{array}[表格位置]{列样式} \end{array}\begin{tabular}[表格位置]{列样式} \end{tabular}\begin{tabular*}{表格总宽度}[表格位置]{列样式} \end{tabular*}这两个环境的选项和参数定义是相同的,不过array 主要用于数组矩阵的排版,且只能用在数学环境中,如equation 等。

array 宏包扩展了 array 和tabular 环境功能,主要增加和增强了列样式选项,甚至可编程定义新的列样式;还增加了许多细部微调功能,如改变垂直表格线的粗细和自动调整表格间隙等。

使用该宏包可以排印出外形美观、功能丰富的表格。

该宏包没有任何选项,扩展后的两个环境的列样式选项:选项说明l该列左对齐排列c该列居中排列r该列右对齐排列p{列宽}设置该列宽度,文本顶对齐@{声明}该列每行插入声明中文本m{列宽}设置该列宽度,文本居中对齐b{列宽}设置该列宽度,文本底对齐>{声明}声明可以是命令或插入列元素之前的文本<{声明}声明可以是命令或插入列元素之后的文本|列边或列间加入一条垂直线!{声明}用声明要求的样式取代列间垂直线应用举例:列样式还可设置为:>{\setlength{\parindent}{26pt}}p{列宽},对该列文本行或段落缩排。

源文件Frank Mittelbach et albooktabs它定义了三条划线命令:\toprule、\midrule 和\bottomrule,可分别对表格顶部、中部和底部使用不同粗细的水平线,见下例:它还可以改变表格的行距,使表格尤其是长表格更加美观。

该宏包可与enfloat、threeparttable、rotating宏包配合使用。

同时加载colortbl宏包,还可以划彩色格线。

latex编译表格语法

latex编译表格语法

latex编译表格语法在LaTeX中,编写和编译表格有多种语法和方法。

下面我将从多个角度来回答这个问题,以确保回答全面完整。

1. 使用tabular环境:最常见的方法是使用tabular环境。

下面是一个简单的例子:latex.\begin{tabular}{|c|c|c|}。

\hline.列1 & 列2 & 列3 \\。

\hline.行1 & 数据1 & 数据2 \\。

\hline.行2 & 数据3 & 数据4 \\。

\hline.\end{tabular}。

在这个例子中,`{c|c|c}`指定了三列,并且每列都以竖线分隔。

`\hline`用于绘制水平线,`&`用于分隔每个单元格,`\\`用于换行。

2. 使用booktabs宏包:如果你想创建更美观的表格,可以使用booktabs宏包。

这个宏包提供了更好的水平线和垂直线的样式,以及更好的间距。

下面是一个使用booktabs宏包的例子:latex.\usepackage{booktabs}。

\begin{tabular}{ccc}。

\toprule.列1 & 列2 & 列3 \\。

\midrule.行1 & 数据1 & 数据2 \\。

行2 & 数据3 & 数据4 \\。

\bottomrule.\end{tabular}。

在这个例子中,`\toprule`用于绘制顶部水平线,`\midrule`用于绘制中间水平线,`\bottomrule`用于绘制底部水平线。

3. 合并单元格:有时候需要合并表格中的单元格。

可以使用`\multicolumn`命令来实现。

下面是一个例子:latex.\begin{tabular}{|c|c|}。

\multicolumn{2}{|c|}{合并单元格} \\。

\hline.行1 & 数据1 \\。

\hline.行2 & 数据2 \\。

Latex排版——复杂表格制作

Latex排版——复杂表格制作

Latex排版——复杂表格制作%多行或多列合并的情况%(1)多行合并代码如下\documentclass{article}\usepackage{multirow} %使用multirow必须加载该package\begin{document}\begin{table}[tbp]\centering\begin{tabular}{|ccccc|ccccc|}\hlineCase & Structural \ State & Damage \ Location & Damage \ extent & Excitation \ Level(V) \\ \hline % \hline 在该行下面画一整条横线32 & \multirow{6}{*}{Damaged States (DS3)} & 1C and 3A & DB0 & 2 \\ % * 表示由系统自动调整文字33 & & 1C and 3A & DB0 & 5 \\34 & & 1C and 3A & DB0 & 8 \\35 & & 1C and 3A & DBB & 2 \\36 & & 1C and 3A & DBB & 5 \\37 & & 1C and 3A & DBB & 8 \\\hline\end{tabular}\caption{List of unknown states}\end{table}% (2)多行多列同时合并\begin{table}\begin{tabular}{|c|c|c|c|c|}\hline \hline\multirow{2}{*}{multi-rows} &\multicolumn{2}{|c|}{multi-columns} &\multicolumn{2}{|c|}{\multirow{2}{*}{multi-row and col}} \\\cline{2-3} % \cline用于画横线 \cline{i-j}表示从第i列画到第j列& column-1 & column-2 & \multicolumn{2}{|c|}{} \\\hlinelabel-1 & label-2 & label-3 & label-4 & label-5 \\\hline\end{tabular}\end{table}% (3)表格中的对齐和宽度控制\begin{tabular}{|c|p{0.35\textwidth}|p{0.35\textwidth}|}\hline& \centering{\textsf{AVANTAGES}} & \centering{\textsf{INCONVENIENTS}} \tabularnewline\hline\textbf{Rayleigh} & -aaaaa1aa & -aaa2aaaa \\& -aaaa3aaa & -aaaa4aaa\\\hline\textbf{Rice} & -RRRRR1RR & -RRRRR2RR \\&-RRR3RRRR&\\&-RRRR4RRR &\\\hline\textbf{Okumura-Hata}&-OOOOO1OOO&-OOOO2OOOO\\&&-OOOO3OOOO\\\hline\textbf{Weibull}&-WWWWW1WWWWW & -WWWW2WWWWWW\\&-WWWWWW3WWWW&-WWWWW4WWWWW\\\hline\end{tabular}\end{document}。

latex表格制作详解

latex表格制作详解

L A T E X Table Hints and TipsAdrian P.Robsonadrian.robson@1st June,2013Contents1Introduction2 2Standard Tables2 3Spacing23.1Row Spacing (2)3.1.1Arraystretch (2)3.1.2Extrarowheight (3)3.1.3Bigstruts (3)3.1.4Comparison of Methods (4)3.2Column Spacing (4)4Decimal Point Alignment5 5Vertical Alignment and Text Wrapping6 6Ragged Right Alignment66.1Simple Command (6)6.2Column Types (7)6.3Tabulary (7)6.4Comparison of Methods (7)7Multiple Rows87.1Multiple Rows with Text Wrapping (9)7.2Over Sized Spanning Rows (10)8Table Headings118.1Heading Alignment (11)8.2Sideways Headings (11)9Specifying Table Width129.1Tabularx (12)9.2Tabulary (13)9.3Comparison of Methods (13)10Larger Tables1310.1Sideways (13)10.2Longtable (14)11Footnotes in Tables15 12Professional Layout1511IntroductionThis is a collection of various methods for laying out and formatting L A T E X tables.All of these examples work with pdfL A T E X[13],which is the author’s preferred tool.A more general discussion of L A T E X methods can be found in L A T E X Hints and Tips[12].2Standard TablesTables are made in L A T E X using the tabular environment like this \begin{tabular}{|l|l|l|}\hline\multicolumn{3}{|c|}{A Table}\\\hline \hline1,1&1,2&1,3\\\hline2,1&2,2&2,3\\\cline{1-2}3,1&3,2&\\\hline\end{tabular}A Table 1,11,21,3 2,12,22,3 3,13,2For more information on basic tables consult a good text like The Not So Short Introduction to L A T E X2ε[10].3Spacing3.1Row SpacingThe standard row height is too small when\hline is used.There are three ex-plicit ways of correcting this:modifying the arraystretch command,changing the extrarowheight length,or using the bigstrut command.Alternatively, the booktabs or ctable packages can be used as discuses in§12.3.1.1ArraystretchThe crudest way to increase row spacing,which works without any additional packages,is to increase the arraystretch ratio.This injects space above and below all of the rows’text.It is done like this:{\renewcommand{\arraystretch}{1.2}\begin{tabular}{|c|l|}\hlinea&Row1\\\hlineb&Row2\\\hlinec&Row2\\d&Row4\\\hline\end{tabular}}The renewcommand and the table are enclosed in braces to limit the scope of the redefinition.Its effect is to turn2a Row1b Row2c Row3d Row4intoa Row1b Row2c Row3d Row4and with abigger valuea Row1b Row2c Row3d Row43.1.2ExtrarowheightA more sophisticated approach is to used the array package[8]and change the length\extrarowheight as follows:\usepackage{array}...{\setlength{\extrarowheight}{1.5pt}\begin{tabular}{|l|l|}\hlinea&Row1\\\hlineb&Row2\\\hlinec&Row3\\d&Row4\\\hline\end{tabular}}This adds space only above the text.With the correct value,it compensates for the\hline command spacing.Its effect is to turna Row1b Row2c Row3d Row4intoa Row1b Row2c Row3d Row4and with abigger valuea Row1b Row2c Row3d Row43.1.3BigstrutsThe above methods apply the compensation to all rows,even if they do not have\hline commands.A subtler alternative is to use the bigstrut package [11]like this:\usepackage{bigstrut}...\begin{tabular}{|l|l|}\hlinea&Row1\bigstrut\\\hlineb&Row2\bigstrut\\\hlinec&Row2\bigstrut[t]\\d&Row4\bigstrut[b]\\\hline\end{tabular}3which changes the basic tablea Row1b Row2c Row3d Row4intoa Row1b Row2c Row2d Row4The\bigstrut command is used when there is are\hline above and below; \bigstrut[t]when there is an\hline only above;and\bigstrut[b]when there is only one below.The bigstrut package only works well with tables that have single line cells. It does not work with the text wrap column specifiers p{},m{}and b{}.(For more information on text wrap see§5).3.1.4Comparison of MethodsThe affect of the three methods is as follows:arraystretch{1.2}extrarowheight{1.5pt}bigstruta Row1b Row2c Row3d Row4a Row1b Row2c Row3d Row4a Row1b Row2c Row2d Row4For tables without text wrapping,the bigskip approach is definitely the best if the table has some rows without horizontal lines.Otherwise,extrarowheight is less verbose and gives a more compact e arraystretch if the table needs a large row height.For tables with text wrapping,extrarowheight is probably best.3.2Column SpacingColumn width can be modified by changing\tabcolsep like this:\setlength{\tabcolsep}{10pt}\begin{tabular}{|l|l|}\hlinea&Row1\\\hlineb&Row2\\\hlinec&Row3\\\hline\end{tabular}which changes the defaulta Row1b Row2c Row3intoa Row1b Row2c Row3There is a standard column specifier@{cmnd},which suppresses inter-column space and inserts cmnd instead.This can be used to insert or remove space into a particular column.For example:4\setlength{\extrarowheight}{1.5pt}\begin{tabular}{|@{\hspace{1cm}}l|@{}l|}\hlineAbcd&Abcd\\\hline Abcd&Abcd\\\hline\end{tabular}Abcd Abcd Abcd Abcd4Decimal Point AlignmentThe traditional method of aligning decimal points uses the@command.Two columns are used for a decimal number,and a multicolumn command is used in the heading,as the following shows:\begin{tabular}{|l|r@{.}l|l|}a&\multicolumn{2}{c|}{b}&c\\ test&2&8&test\\test&1&45&test\\test&0&5&test\end{tabular}a b c test 2.8test test 1.45test test0.5testA disadvantage of this method is that the numbers are expressed in the code without a decimal point.As an alternative,the dcolumn package[1]allows decimal numbers to be expressed naturally in a single column.The package defines a column specifier D{<sepcode>}{<sepout>}{<decimal places>}Thefirst argument is the decimal separator character used in the code,the second is the character in the output,and the last is the number of decimal places.Typically,a newcolumntype command is used in the preamble to make table declaration a little simpler.Even though there is just one column,A multicolumn command still has to be used to get the correct alignment and font style in the header,as the following example shows:\newcolumntype{d}[1]{D{.}{.}{#1}}...\begin{tabular}{|l|d{2}|l|}a&\multicolumn{1}{c|}{b}&c\\ test&2.8&test\\test&1.45&test\\test&0.5&test\end{tabular}a b c test2.8test test1.45test test0.5testAs the example shows,using an appropriate positive value for number of decimal places produces the same table layout as the traditional method.This aligns the decimal places,and minimises the column width.Alternatively,a negative value for decimal places will centre the decimal place in the column,but will not minimise the width.For number lists with reasonably balanced whole and decimal parts this looks good.However,for lists5with disproportionate whole and decimal parts,the columns can have too much empty space,as the following shows:a b c test208.6test test1.45test test0.532test a b c test2000008.6test test1.45test test0.5test5Vertical Alignment and Text WrappingVertical alignment can be controlled with the array package[8],which has additional text wrap formatting commands:p{width}Top align,the same as usual.m{width}Middle alignb{width}Bottom alignThese produce the following layouts:Column Formatp{}p{}l11 11 11222233Column Formatm{}m{}l111111222233Column Formatb{}b{}l111111222233Notice how the m{}or b{}alignment affects the whole table.In addition,p{} m{}and b{}formats cannot be successfully mixed in the same table.Occasionally the text wrap formats cause‘bad box’warnings,which can often be resolved by with\raggedright(see§6).6Ragged Right AlignmentFor narrow wrapped text blocks left justification often looks best,and can get rid of’bad box’warnings.There are three ways to achieve this:a simple command, column types,and the tabulary package.All of these methods support or can be adapted to provide alignments other than left justified.Thefirst two are very versatile and can be used to inject general formatting commands.6.1Simple CommandThe most verbose butflexible way to achieve left justification is just to use \raggedright in the cell:\newcommand{\rr}{\raggedright}\newcommand{\tn}{\tabularnewline} ...{\renewcommand{\arraystretch}{1.2} \begin{tabular}{|c|p{5cm}|}\hline1,1&\rr...text...\tn\hline 2,1&...text...\\\hline \end{tabular}}1,1Lorem ipsumdolor sit amet,consecteturadipiscing elit. 2,1Nullam rhon-cus,sem luctusultrices.6Using this method for left justification can be applied to individual cells. Note that\tabularnewline replaces\\in the row containing the\raggedright command.The definitions for\rr and\tn are just to make things a little more compact.6.2Column TypesAnother way of managing ragged right formatting is to define a new column type using the array package[8].Its>{decl}option inserts decl directly before the entry for the column;and<{decl}directly after.The following shows how it can be used:\usepackage{array}...\newcolumntype{x}[1]{>{\raggedright}p{#1}} \newcommand{\tn}{\tabularnewline} ...{\renewcommand{\arraystretch}{1.2} \begin{tabular}{|c|x{5cm}|}\hline1,1&...text...\tn\hline2,1&...text...\tn\hline\end{tabular}}1,1Lorem ipsumdolor sit amet,consecteturadipiscing elit. 2,1Nullam rhoncus,sem luctusultrices.With this method ragged right formatting is applied to a whole column.The newcolumntype command is used to define a column type that can be reused. However,the formatting could have been embedded in the tabular heading. Again\tabularnewline is needed when\raggedright is used.6.3TabularyAnother alternative is to use the tabulary package[4].With this method ragged right columns are simply declared with the L command.However,the total table width must be defined as a parameter,as shown below.See§9.2for more on this package.\usepackage{tabulary}...\renewcommand{\arraystretch}{1.2} \begin{tabulary}{6.5cm}{|c|L|}\hline1,1&...text...\\\hline2,1&...text...\\\hline\end{tabulary}1,1Lorem ipsum dolor sit amet,consecteturadipiscing elit.2,1Nullam rhoncus,sem luctus ultrices.6.4Comparison of MethodsSimple commands are useful for small tables or when the formatting does not apply to the whole column.The tabulary package is much simpler than column types,but requires the table width to be specified.Column types can be used for any appropriate formatting or space requirements.77Multiple RowsThe easiest way to have tables with spanning rows is to use the multirow package[11].In its simplest form,it can be used like this:\usepackage{multirow}...\begin{tabular}{|c|l|}\hlinea&Row1\\\hlineb&\multirow{2}{*}{Spanning rows}\\\cline{1-1}c&\\\hlined&Row4\\\hline\end{tabular}giving the following:a Row1bSpanning rowscd Row4The\multirow command declares the location of the spanning rows.Its first argument is the number of rows to span.The second,in this case,states that the text argument’s natural width should be used.The relevant columns in lower rows must be left blank.The full multirow command is more complicated: \multirow{nrows}[bigstruts]{width}[fixup]{text}If the bigstrut package is used,the number of struts in the spanned rows should be stated as the bigstruts parameter.Count2for every\bigstrut and1for a\bigstrut[t]or\bigstrut[b].The text width can be set with the width parameter,in which case the text will be wrapped and left justified.Line breaks can be forced with a\\ command.However,the text must have no more lines than the number of rows ing an*for the width,as in the example above,makes the column’s cells single line and as wide as necessary.If the vertical position of the text needsfine tuning,it can be moved up or down with the fixup optional parameter.To span rows and columns together,a\multirow should be nested in a \multicolumn.Matching but empty\multicolmn commands are needed for all of the lower spanned rows.All of these options are shown in the following example:\begin{tabular}{|c|c|l|l|}\hline1,1&1,2&1,3&1,4\bigstrut\\\hline2,1&\multirow{2}[4]{1.5cm}{Four bigstruts}&\multirow{3}[6]{*}{Six bigstruts}&\multirow{3}[6]{*}[1ex]{Six bigstruts and fixup}\bigstrut\\\cline{1-1}3,1&&&\bigstrut\\\cline{1-2}4,1&4,2&&\bigstrut\\\hline5,1&8\multirow{2}[2]{*}{Two bigstruts}&5,3&5,4\bigstrut[t]\\6,1&&6,3&6,4\bigstrut[b]\\\hline7,1&\multicolumn{2}{l|}{\multirow{2}[4]{*}{Four bigstruts}}&7,4\bigstrut\\\cline{1-1}\cline{4-4} 8,1&\multicolumn{2}{l|}{}&8,4\bigstrut\\\hline9,1&9,2&9,3&9,4\bigstrut\\\hline\end{tabular}1,11,21,31,42,1Fourbigstruts Six bigstruts Six bigstruts andfixup 3,14,14,25,1Two bigstruts 5,35,46,16,36,47,1Four bigstruts 7,48,18,49,19,29,39,47.1Multiple Rows with Text WrappingMultiple row and text wrap column specifiers(see§5)do not mix well because multirow is left justified,and the the p{},m{}and b{}formats are normally justified.This is shown in the following example,which generates two‘bad box’warnings:\setlength{\extrarowheight}{1.5pt} \begin{tabular}{|c|p{2cm}|}\hline1,1&**text**\\\hline2,1&\multirow{2}{2cm}{**text**}\\\cline{1-1} 3,1&\\\cline{1-1} 4,1&\\\cline{1-1} 5,1&\\\hline6,1&**text**\\\hline\end{tabular}1,1Lorem ipsumdolor sitamet.2,1Loremipsum dolorsit ametconsectetur. 3,14,15,16,1Lorem ipsumdolor sitamet.The easiest way to resolve this is to make everythingflush left by defining a ragged right column type as described in§6:\newcolumntype{P}[1]{>{\raggedright}p{#1}}\newcolumntype{M}[1]{>{\raggedright}m{#1}}\setlength{\extrarowheight}{1.5pt}\begin{tabular}{|c|P{2cm}|}%could be|c|M{2cm}|9\hline1,1&\muchlessText \tn\hline2,1&\multirow{2}{2cm}[-1.5pt]{\lessText }\tn\cline{1-1}3,1&\tn\cline{1-1}4,1&\tn\cline{1-1}5,1&\tn\hline 6,1&\muchlessText \tn\hline \end{tabular}which creates the following layouts:With P{}With M{}1,1Loremipsum dolor sit amet.2,1Loremipsum dolor sit amet consectetur.3,14,15,16,1Loremipsum dolor sit amet.1,1Loremipsum dolorsit amet.2,1Loremipsum dolor sit amet consectetur.3,14,15,16,1Loremipsum dolorsit amet.7.2Over Sized Spanning RowsHaving a \multirow that has more lines than the rows it spans is not so easy to layout well.Expanding the spanned rows with struts appears to be the only solution,but it requires a lot of trial-and-error adjustments.The following table shows the method:\newlength{\rowA}\setlength{\rowA}{8ex}%modify as needed \newcommand{\strutA}{%no space before strut\rule[-0.45\rowA]{0pt}{\rowA}%put text approx mid strut }...\begin{tabular}{|c|l|c|}\hline1,1&1,2&1,3\bigstrut \\\hline2,1&\multirow{2}{5cm}[1ex]{...lots of text ...}&2,3\strutA\\\cline{1-1}\cline{3-3}3,1&&3,3\strutA \\\hline 4,1&4,2&4,3\bigstrut \\\hline \end{tabular}101,11,21,32,1Lorem ipsum dolor sit amet, consectetur adipiscing elit.Curabitur id nisl nunc,nonadipiscing arcu.Morbi nec leosit amet.2,33,13,34,14,24,3A\rule of zero width is used for the strut.A negative raise height positions the text in the rows vertical centre.In the example,the strut is put in a centre aligned column.In this context it must be put next to the column’s text with no spaces,or the alignment will be disturbed.This is not normally an issue for other alignments.For convenience the strut is defined as a command called\strutA,which is used in the spanned rows2and3.The height of the strut is given by the length rowA.This is more complicated to write,but makes the trial-and-error layout process easier.Adjust rowA until there is room for the spanning row’s text.The fixup parameter in the\multirow command is used to correct the vertical position of its text as necessary.8Table Headings8.1Heading AlignmentIt is sometimes nice to have a column heading with a different alignment to its column.The standard multicolumn command can be used to do this:\begin{tabular}{|l|l|l|}\hline\multicolumn{1}{|c}{C1}&\multicolumn{1}{|c}{C2}&\multicolumn{1}{|c|}{C2}\\\hline aa&b&cccc\\\hlineaaa&bb&cccc\\\hlineaaaa&bbb&cccc\\\hlineaaaaa&bbbb&cccc\\\hlineaaaaaa&bbbb&cccc\\\hline\end{tabular}C1C2C2 aa b c aaa bb cc aaaa bbb ccc aaaaa bbbb cccc aaaaaa bbbb cccc8.2Sideways HeadingsHorizontal space can be saved by printing long column headings sideways.The rotating package[6]can be used to achieve this with its sideways environment:11\usepackage{rotating} ...\begin{tabular}{|l|l|l|} \hline\multicolumn{1}{|c|}{ \begin{sideways}Column1\,\end{sideways}}&\multicolumn{1}{c|}{\begin{sideways}Column22\,\end{sideways}}&\multicolumn{1}{c|}{\begin{sideways}Column333\,\end{sideways}}\\\hline aa&bbbb&cccc\\\hlineaaa&bbbb&cccc\\\hlineaaaa&bbbb&cccc\\\hlineaaaaa&bbbb&cccc\\\hlineaaaaaa&bbbb&cccc\\\hline\end{tabular}Column1Column22Column333aa bbbb cccc aaa bbbb cccc aaaa bbbb cccc aaaaa bbbb cccc aaaaaa bbbb ccccThe multicolumn method given in§8.1is used to centre the headings;and\, is used to add a little space at the top of the heading.9Specifying Table WidthThe tabularx[3]and tabulary[4]packages are much better than the standard tabular*for specifying table width.9.1TabularxThe tabularx environment expands specific columns to meet the table’s width requirement.The width of the table is given as a parameter,and the columns that can be expanded are denoted with the X alignment command,as the fol-lowing shows:\begin{center}\setlength{\extrarowheight}{1.5pt}\begin{tabularx}{0.75\textwidth}{|l|X|}\hline1,1&**some text**\\\hline2,1&**some text**\\\hline\end{tabularx}\end{center}1,1Lorem ipsum dolor sit amet,consectetur adipiscingelit.Curabitur id nisl nunc,non adipiscing arcu.Morbi nec leo sit amet.2,1Nullam rhoncus,sem luctus ultrices accumsan,urna enim fermentum.12There must be at least one X column.If there is more than one X column the necessary space is equally distributed.The columns are always padded to give the the table its specified width.Text is wrapped and justified if it does notfit into the column.Note the use of0.75\textwidth to specify the width as a proportion of page width.9.2TabularyThe tabulary environment expands specific columns to meet the table’s width requirement and allows alignment to be specified for these columns as follows: L\raggedrightC\centeringR\raggedleftJ normal justificationThe maximum width for the table is given as a parameter.However,unlike tabularx,columns are not padded if they are too narrow.\setlength{\extrarowheight}{1.5pt}\begin{tabulary}{4cm}{|l|L|}\hline1,1&**some text**\\\hline2,1&**some text**\\\hline\end{tabulary}full width...not full width...1,1Lorem ipsum dolor sit amet,consecteturadipiscing elit.2,1Curabitur id nisl nunc, non adipiscing arcu.1,1Lorem ipsum. 2,1Curabitur id.9.3Comparison of MethodsThe tabularx package is useful for absolute table widths,but it has limited alignment options.The tabulary package provides better alignment options;and its adaptive width behaviour does not normally cause problems.It is convenient to set its width at a suitable maximum,say0.75\textwidth,and let the package select appropriate column widths.10Larger TablesLarger tables can sometimes be handled by turning them sideways,or by letting them span pages.10.1SidewaysThe most versatile way to turn a table sideways is to use the sidways environ-ment from the rotate package[6].For example:13\usepackage{rotating} ...\begin{sideways}\begin{tabular}{|l|l|}\hline1,1&1,2\\\hline 2,1&2,2\\\hline \end{tabular}\end{sideways}1,11,22,12,2This method can be used in afloating table environment or just embedded in the text.10.2LongtableThe longtable package is designed to make tables that span page breaks.It is rather complicated to use,and its documentation[2]should be consulted for all of its features.It maintains column widths across page breaks,and centres the table.There are reports of incompatibility with many other packages,but for simple use it appears to be okay.Multiple compilation passes are normally needed to get the layout correct.Here is a very simple example:\usepackage{longtable}\usepackage{array}%for extrarowheight\setlength{\extrarowheight}{1.5pt}\begin{longtable}{|l|l|}%header------------------------\hlineHeading1&Heading2\\\hline\hline\endhead%header------------------------Lorem ipsum...&Consectetur...\\\hlineLorem ipsum...&Consectetur...\\\hline..\end{longtable}Heading1Heading2Lorem ipsum dolor sit amet.Consectetur adipiscing elit.Lorem ipsum dolor sit amet.Consectetur adipiscing elit.Lorem ipsum dolor sit amet.Consectetur adipiscing elit.--------Page break--------Heading1Heading2Lorem ipsum dolor sit amet.Consectetur adipiscing elit.Lorem ipsum dolor sit amet.Consectetur adipiscing elit.14In the example above,\extrarowheight is used to improve the table’s ver-tical spacing.Alternatively arraystretch could be use if space is needed below the lines.However,the normally useful bigstrut package does not work with longtable.See§3.1for more about these methods.11Footnotes in TablesA footnote in a non-floating longtable or tabulary table is put with any normal page footnotes at the end of the page containing the table.When a longtable breaks over a page,footnotes are placed on the correct page.Table and page footnotes have the same counter,and are numbered from the start of the document.Floating tables cannot have normal footnotes.Footnotes can be kept next to their table by using a minipage to hold the table.Each minipage has its own disjoint footnote counter,and uses alphabetic lower case footnote marks.This method does not work for tabulary,but it can be used withfloating tables.The following is a tabular example:\begin{minipage}{6cm}\begin{tabular}{|l|l|}\hline1,2&1,2\footnote{This is a footnote.}\\\hline2,1&2,2\\\hline3,1&3,2\\\hline\end{tabular}\end{minipage}1,21,2a2,12,23,13,2a This is a footnote.12Professional LayoutThe booktabs package[7]provides support for‘formal tables,’which the pack-age’s author promotes as a better way of presenting data.In particular,he derides the use of vertical rules and double rules.Here is an example taken from the package documentation:\begin{tabular}{llr}\toprule\multicolumn{2}{c}{Item}\\\cmidrule(r){1-2}Animal&Description&Price(\$)\\ \midruleGnat&per gram&13.65\\&each&0.01\\Gnu&stuffed&92.50\\Emu&stuffed&33.33\\ Armadillo&frozen&8.99\\\bottomrule\end{tabular}ItemAnimal Description Price($)Gnat per gram13.65each0.01 Gnu stuffed92.50 Emu stuffed33.33 Armadillo frozen8.99As this shows,the package provides better vertical spacing around horizontal rules.There is also the derived ctable package[5],which focuses on table and figurefloats,and provides facilities for making table po Mori’s article Tables in L A T E X2ε:Packages and Methods[9]has a detailed discussion of good table layout and the ctable and booktab packages.15References[1]David Carlisle,The dcolumn package.Download from /tex-archive/macros/latex/required/tools/dcolumn.pdf[2]David Carlisle,The longtable package.Download from /tex-archive/macros/latex/required/tools/longtable.pdf[3]David Carlisle,The tabularx package.Download from /tex-archive/macros/latex/required/tools/tabularx.pdf[4]David Carlisle,The tabulary package.Download from /tex-archive/macros/latex/contrib/tabulary/tabulary.pdf[5]Wybo Dekker,The ctable package.Downloadable from /tex-archive/macros/latex/contrib/ctable/ctable.pdf[6]Robin Fairbairns,Sebastian Rahtz and Leonor Barroca,A package forrotated objects in L A T E X.Downloadable from /tex-archive/macros/latex/contrib/rotating/rotating.pdf[7]Simon Fear,Publication quality tables in L A T E X.Download from www.ctan.org/tex-archive/macros/latex/contrib/booktabs/booktabs.pdf[8]Frank Mittelbach and David Carlisle,A new implementation of L A T E X’stabular and array environment.Downloadable from /tex-archive/macros/latex/required/tools/array.pdf[9]Lapo Filippo Mori,Tables in L A T E X2ε:Packages and Methods,ThePracT E X Journal,2007,No.1.Downloadable from /pracjourn/2007-1/mori/mori.pdf[10]Tobias Oetiker,The Not So Short Introduction to L A T E X2ε.Downloadablefrom /tex-archive/info/lshort/english/lshort.pdf[11]Piet van Oostrum,Øystein Bache and Jerry Leichter,The multirow,bigstrut and bigdelim packages.Downloadable from /tex-archive/macros/latex/contrib/multirow/doc/multirow.pdf[12]Adrian Robson,L A T E X Hints and Tips.Download from /docs/latexTricks.pdf[13]The TeX Users Group(TUG),The pdfT E X project page.Available at/applications/pdftex16[Version3.1,tableTricks.tex,11/03/15,13:49]。

LATEX中表格的制作

LATEX中表格的制作

LATEX中表格的制作一,基本表格制作标准 LaTeX 提供有 array 和 tabular 两个制表环境,它们的完整格式如下:\begin{array}[表格位置]{列样式} \end{array}\begin{tabular}[表格位置]{列样式} \end{tabular}\begin{tabular*}{表格总宽度}[表格位置]{列样式} \end{tabular*}这两个环境的选项和参数定义是相同的,不过 array 主要用于数组矩阵的排版,且只能用在数学环境中,如 equation 等。

array 宏包扩展了 array 和 tabular 环境功能,主要增加和增强了列样式选项,甚至可编程定义新的列样式;还增加了许多细部微调功能,如改变垂直表格线的粗细和自动调整表格间隙等。

使用该宏包可以排印出外形美观、功能丰富的表格。

该宏包没有任何选项,扩展后的两个环境的列样式选项:选项说明l 该列左对齐排列c该列居中排列r该列右对齐排列p{列宽}设置该列宽度,文本顶对齐@{声明}该列每行插入声明中文本m{列宽}设置该列宽度,文本居中对齐b{列宽}设置该列宽度,文本底对齐>{声明}声明可以是命令或插入列元素之前的文本<{声明}声明可以是命令或插入列元素之后的文本|列边或列间加入一条垂直线!{声明}用声明要求的样式取代列间垂直线应用举例:列样式还可设置为:>{\setlength{\parindent}{26pt }}p{ 列宽},对该列文本行或段落缩排。

源文件Frank Mittelbach et albooktabs它定义了三条划线命令:\toprule、\midrule 和 \bottomrule,可分别对表格顶部、中部和底部使用不同粗细的水平线,见下例:它还可以改变表格的行距,使表格尤其是长表格更加美观。

该宏包可与enfloat、threeparttable、rotating宏包配合使用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LATEX中表格的制作
一,基本表格制作
标准 LaTeX 提供有 array 和 tabular 两个制表环境,它们的完整格式如下:\begin{array}[表格位置]{列样式} \end{array}
\begin{tabular}[表格位置]{列样式} \end{tabular}
\begin{tabular*}{表格总宽度}[表格位置]{列样式} \end{tabular*}
这两个环境的选项和参数定义是相同的,不过 array 主要用于数组矩阵的排版,且只能用在数学环境中,如 equation 等。

array 宏包扩展了 array 和 tabular 环境功能,主要增加和增强了列样式选项,甚至可编程定义新的列样式;还增加了许多细部微调功能,如改变垂直表格线的粗细和自动调整表格间隙等。

使用该宏包可以排印出外形美观、功能丰富的表格。

该宏包没有任何选项,扩展后的两个环境的列样式选项:
选项说明
l 该列左对齐排列
c该列居中排列
r该列右对齐排列
p{列宽}设置该列宽度,文本顶对齐
@{声明}该列每行插入声明中文本
m{列宽}设置该列宽度,文本居中对齐
b{列宽}设置该列宽度,文本底对齐
>{声明}声明可以是命令或插入列元素之前的文本
<{声明}声明可以是命令或插入列元素之后的文本
|列边或列间加入一条垂直线
!{声明}用声明要求的样式取代列间垂直线
应用举例:
列样式还可设置为:>{\setlength{\parindent}{26pt }}p{ 列宽},对该列文本行或段落缩排。

Frank Mittelbach et al
它定义了三条划线命令:\toprule、\midrule 和 \bottomrule,可分别对表格顶部、中部和底部使用不同粗细的水平线,见下例:
它还可以改变表格的行距,使表格尤其是长表格更加美观。

该宏包可与、、宏包配合使用。

同时加载宏包,还可以划彩色格线。

使用 booktabs 宏包应注意:绝不要画垂直线,绝不要画双线;如果表格左右两边的内容毫无关联,最好将其分为两个表格而不是用垂直线隔开。

另外在排表格时,单位符号应置于列首;相同数据不要用“ 同上” 之类的简称;0.1 不要写成.1 。

再加载宏包,该宏包的三条划线命令也可在跨页长表格中使用。

Simon Fear
它可以设置表格中数据、文本、行、列、单元格前景和背景以及边框的颜色,从而得到彩色表格。

它需要 array 和 color 两个宏包的支持。

它提供了一组着色命令,经常用到是列着色命令,其格式为:
\columncolor[色系]{色名}[左伸出][右伸出]。

常用色系有三原色 rgb 和灰度 gray 两种;被预定义的色名有68个,详见宏包介绍中所附的色标;左右伸出的长度单位可用 pt。

举例说明:
源文件经过 LaTeX、dvips、pspdf 编译后,得到:
David Carlisle
若表格中一列的数字位数不一且都带有小数点或逗号时,为便于阅读和美观起见,应将这些符号上下对齐,但做起来很麻烦。

该宏包就可解决这一问题,它把小数点或逗号也定义为一列。

一般可以直接使用其提供的“ D” 格式:D{键入符号}{输出符号}{小数点位数},举例说明:
另外也可使用 \newcolumntype 命令自行定义对齐样式。

该宏包是 LaTeX 工具宏包套件之一。

David Carlisle
带框的表格中总会有水平线与垂直线相交,在交点处会出现各种形态,这在标准LaTeX 表格环境中是不可改变的。

该宏包提供了一条 \hhline{ 交点样式} 画线命令,用它可以很好地处理交点形态问题。

编注:从美观角度讲,排版表格要尽可能避免使用垂直线,即尽量不使用该宏包。

David Carlisle
在 LaTeX 中的表格是当做一个“盒子”来处理,不能分割,所以无法跨页显示。

该宏包是 LaTeX 工具宏包套件之一,可用于跨页表格。

它定义了一个长表环境,只需将tabular 环境改为 longtable 环境,跨页长表格就可自动拆分为多页表格。

注意:使用长表环境后,须经两或三次编译,才能得到正确结果。

由于改变了原有输出方式,所以它不能用在 multicolumn 多栏环境或twocolumn 双栏页面格式中。

David Carlisle
它将 longtable 和 tabularx 两个宏包合并,两者的功能在 longtable 环境中体现。

当调用 ltxtable.tex 时,其实就是加载上述两个宏包。

David Carlisle
它提供了一组命令,可使表格中列数据单独定位:居中、靠左或靠右,可将某一列标题旋转90度,可在单元格中划对角线,还可设定表格线段的粗细等。

二,分页表格
在标准 LaTeX 中的表格是当做一个“盒子”来处理的,不能分割,所以无法跨页显示。

其一是使用longtable,其二是使用supertabular.在这里我们使用supertabular.
supertabular是一个tabular environment的扩展.通常使用tabular时,表格只能在一页,如果表格太大,超过了bottom margin,就会报Overfull vbox错误.
supertabular接到\\ command后,会重新计算可以使用的空间,如果到了页面高度,就会自动插入tabeltail,开始新的一页,新的一页以tablehead连接.
主要用到的command有以下几个.
1, \tablefirsthead takes one argument, it defines the contents of the first occurence of the tabular head.The use of this command is optional. Don’t forget to close the head by a \\.用来显示列第一行.
2, \tablehead takes one argument, it defines the contents of all subsequent ocurrences of the tabular head.Don’t forget to close the head by a \\.当分页时,会显示在下页的第一行.
3, \tabletail takes one argument, it defines something which should be inserted before each \end{tabular}, except the last.当分页时,会显示在该页最后一行,但是最后一页不会显示.
需要注意的是, \tablefirsthead, \tablehead一定要加\\.
具体的使用参考附件document.
三,关于表格并列
经常会遇到表格并列的问题.
并列,一般的做法是用minipage来实现,然后minipage里包含子minipage,分别每个字minipage设定宽度,可以控制位置.如果用到图表混排的话,使用figure应该会更好.
当然如果使用minipage,可能会遇到种种比如分页,对齐的问题.如果想让minipage里的表格对齐两边对齐,可以使用\raggedright和\raggedleft,命令形式可以很好的配合环境命令使用.如果出现无法对齐,可能的原因就是minipage的宽度调节的有问题,或者是表格太大,无法并排.
使用\noindent可以是并排表格时,外面的环境的左缩进消失.相关内容,可以参考段落格式排版.
四,关于表格的其他
1,如果想让表格宽度太窄,希望能和段落左右对齐,即左右拉伸,可以使用\extracolsep
代码:\begin{tabular*}{1\textwidth}{@{\extracolsep{\fill}} r c r c}
2,表格合并.\multicolumn{2}{c}{\cellcolor[gray]{0.8}{Delivery To}}
3,如果想让几个小表格始终在同一个页面.可以将其放在一个minipage下.
4,隔行变色.\rowcolors{1}{light-gray}{white}
注意隔行变色,如果和\begin{tabular*}{1\textwidth}{@{\extracolsep{\fill}} r c r c}使用会出现比较奇怪的现象,就是左边会出现一点空白,然后没有填充颜色,可以在每行加入\makebox[0pt][l]{\fboxsep2pt\colorbox{bg-gray}{\strut\hspace*{0.94\linewidth}}} 的方法来解决。

不过在分页的时候还是会出问题。

5,同时设定表格的宽度和表格内文字的位置.
\begin{tabular}[l]{|>{\centering}p{13mm}|p{16mm}<{\centering}|p{18mm}<{\ce ntering}|p{10mm}<{\centering}|p{10mm}<{\centering}|}。

相关文档
最新文档