2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > latex如何绘制标准三线表 lllegal charactor in array arg 如何合并单元格?

latex如何绘制标准三线表 lllegal charactor in array arg 如何合并单元格?

时间:2021-09-28 20:40:50

相关推荐

latex如何绘制标准三线表  lllegal charactor in array arg 如何合并单元格?

tabular环境提供了最简单的表格功能,此时还不需要调用任何宏包。下面我们画出一个最基本的表格。

其中\hline命令表示横线,表示竖线;&用来分列,\\用来换行,l、c、r分别表示居左、居中、居右。

正如图形浮动环境figure一样,表格也有一种类似的浮动环境table,其标题和交叉引用的方法和图形浮动环境类似。

科研文献总常用的三线表,采用的是booktabs宏包,三条线分别用\toprulemidrulebottomrule等命令表示。

\documentclass{ctexart}\usepackage{booktabs} % 三线表宏包\begin{document}\begin{table}\centering\begin{tabular}{lll} %全部居中\toprule操作系统 & 发行版 & 编译器\\\midruleWindows & MikTeX & TexMakerX\\Unix/Linux & texTeX & Kile \\MacOS & MacTex & TeXShop\\\bottomrule\end{tabular}\end{table}\end{document}

tabular环境中的行可以采用居顶、居中、居底等纵向对齐方式,分别用t、c、b来表示,缺省的是居中对齐。列之间的分隔符也可以改用其他符号,比如||来画双竖线。

语法:[纵向对齐]{横向对齐和分隔符}

如果我们要扩大或者缩小某一列的宽度怎么办?我们可以将对齐方式参数从l、c、r改为p{宽度},这时的纵向对齐方式是居顶,t、c、b等参数失效。

可以看出,在控制参数之后,表格内容缺省居左对齐。我们可以用列前置命令>{}配合\centering\raggedleft命令来把横向对齐方式改为居中或者居右。列前置命令仅对紧邻其后的一列有效。我加上之后就报错了:lllegal character in array arg.

于是,我参考文章LaTeX中的那些坑

原来少了一个\arraybackslash,只需要对最后一列的参数加上\arraybackslash命令即可, 之后我在导言区调用array宏包,就可以实现三线表的居中对齐了。

\documentclass{ctexart}\usepackage{booktabs} % 三线表宏包\usepackage{array}\begin{document}\begin{table}[htbp]\centering\begin{tabular}{p{60pt}>{\centering}p{60pt}>{\raggedleft\arraybackslash}p{60pt}} \toprule[1.5pt] %控制线的粗细操作系统 & 发行版 & 编译器\\\midrule[1pt]Windows & MikTeX & TexMakerX\\Unix/Linux & texTeX & Kile \\MacOS & MacTex & TeXShop\\\bottomrule[1.5pt]\end{tabular}\end{table}\end{document}

至于为什么这样做,反正是换行的意思,避免冲突,具体参考LaTeX中的那些坑

array宏包还提供另外两种对齐方式参数:

m{width}:与p{width}类似,文字垂直居中,水平居左;

b{width}:与p{width}类似,文字靠底部,水平居左;

有时候表格的某单元需要横跨几列,我们使用\multicolumn命令,同时使用booktabs宏包的\cmidrule命令来画横跨几列的横线。

\multicolumn{横跨列数}{对齐方式}{内容}

\cmidrule{起始列-结束列}

\documentclass{ctexart}\usepackage{booktabs} % 三线表宏包\usepackage{array}\usepackage{multirow} %合并单元格\begin{document}\begin{table}[htbp]\centering\begin{tabular}{ccccc} \toprule& \multirow{2}{*}{Re-SSD} & \multirow{2}{*}{MFN}&\multicolumn{2}{c}{程序运行时长(s)}\\\cmidrule{4-5}& & &追赶法&逆矩阵法\\\midrule%[1pt]字母数据A&0.0740 & 0 & 2.191141 &14.049576 \\字母数据R&0.0672 & 0 &4.449666& 40.723701 \\脑部MRI数据&0.0628 & 0 & 3.310251 & 27.489843\\肺部CT数据& 0.0460 & 0 & 2.072329 & 14.016090\\\bottomrule\end{tabular}\end{table}\end{document}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。