很多刚开始输入表格的时候,经常遇到表格内容换行的问题,除了固定列宽,很多用户用parbox,这里给大家介绍makecell 包,应该是非常好用的换行包,当然还有其他应用,这里引用用户的整理,希望能够帮助大家更好使用该包。 ① 盒子(box)上下重直间距—— ⑴表格单元格(注意:不包括表头)设置: ① ⑵ Ⅰ Vertical alignment——垂直方向基线,取值:t,c,b ; 优先级比 ① ③ ④ 比较 首先,要在导言区(Preamble)将以下两个宏包包含进来。 缺一不可。否则,会出现 ① [对照:multirow宏包用命令参数 选自:http://blog.csdn.net/lishoubox/article/details/7300054http://blog.csdn.net/lishoubox/article/details/7313659http://blog.csdn.net/lishoubox/article/details/7313921http://blog.csdn.net/lishoubox/article/details/7334494一,基础部分
\Gape[Heith corr][depth corr]{<text>}
和\gape
② \theadset
——表头文字的行距;
③ \theadfont
——表头文字的字体;
④ \theadalign
——表头文字的对齐; \theadalign{cc}
,默认行列均居中对齐,再如 \theadalign{lc}
:为行居左,列居中对齐。
⑤ \theadgape
——表头文字上下垂直距离。可以将\Gape
或 \gape
作为参数。二、单元格格式
\cellset
——单元格文字的行距;
② \cellalign
——单元格中文字垂直方向基线(t, c, b) 与单元格中多行文字水平(l,c, r) 对齐方式(注意:是多行文字之间的对齐,绝不是相对于单元格的对 齐;如l(左)对齐,并不是单元格中的每行文字均对齐到单元格的最左 边,而是单元格中的每行文字左边对齐到一条垂直直线上。)。如: \renewcommand\cellalign{t c }
:文字基线在上方;多行文字水平居中。\renewcommand\cellalign{b r }
:文字基线在下方;多行文字右对齐。 默认对齐方式:\renewcommand\cellalign{cc}
③ \cellgape
——单元格文字上下垂直距离。可以将\Gape
或 \gape
作为参数。如:\renewcommand\cellgape{\Gape[1pt]} \renewcommand\cellgape{\gape[t]}
\makecell
格式:\makecell[<vertical or/and horizontal alignment>]{<hcell text>}
\cellalign
的t,c,b 高。若省略,则按\cellalign 的设置的基线进行。
Ⅱ Horizontal alignment——水平对齐(相对于单元格),取值l,c,r,或 {p{3cm}} ,{m{3cm}} 、{b{3cm}}
,或 {>{\parindent 1cm}p{3cm}}
(缩进1cm长度)。\makecell[c]
——只有一个参数,代表水平居中,不代表重直基线居中。 [说明:3cm是指单元格中每行文字的长度,而不是单元格的宽度]
Ⅲ 若\makecell 后面接一个星号(即\makecell*
),则相当于文字与单元格上下 边线之间的垂直空隙增加了一个\jot
(约3pt)。
Ⅳ 如果采用{p{3cm}}
形式的水平对齐方式,则: 1)若定义了垂直基线位置参数(t,c,b) ,则形式为[c{p{3cm}}]
。 [说明:一般不采用这种方式,因为p{3cm},m{3cm},b{3cm}
中已包含垂直基线位置。] 2)若未定义垂直参数,则形式必须有双{},如:[{{p{3cm}}}]
,或 [{}{p{3cm}}]
。 [说明:该种方式为通常采用的方式。]三、单元格格式
\setcellgapes [<t or b>]{<value>}
作用: try to emulate one of possibilities of tabls package: to get necessary vertical spacing around cells. 仿真tabls宏包,在表格所有单元中产生单元格上下边线之间的垂直间隙。
② \makegapedcells
作用:使能 \setcellgapes [<t or b>]{<value>}
。 使用:要用在table环境中。若用到table环境外,则对位于后面所有表格均起作用,但对位于其前面的表格不起作用;若在table环境中加上\nomakegapedcells
,则会取消前面\makegapedcells
对该表格的影响。\begin{table}[htbp]\makegapedcells…\end{table}
\nomakegapedcells
作用:与\makegapedcells
相反,取消使能作用。
③ 不能更改单元格中文字行距,即下列指令与 \makegapedcells
不兼容。%\renewcommand\cellset{\renewcommand\arraystretch{1}%\setlength\extrarowheight{0pt}}
\setcellgapes[t]{8pt}
:适用于表格中所有单元格。\renewcommand\cellgape{\Gape[15pt][0pt]}
,只适用于\makecell{}
的单元格。\renewcommand\theadgape{\Gape[15pt][0pt]}
,只适用于\thead{}
的单元格。四、合并行
\usepackage{multirow}\usepackage{makecell}
\multirowthead
与\multirowcell
中文字不竖向居中!\multirowhead
命令 \multirowhead{
②\multirowcell
命令 \multirowcell{\multirow{<nrow>}[<njot>]{<width>}[<vmove>]{<contents>} ]\multirowcell
中省略了[\multirowcell
使用{{<width>}=*
。\multirowcell 中增加了[\multirowsetup
来改变文本在格子中被排版的方式。这个参数的默认定义就是\raggedright
,即文本在格子中左对齐,因而命令 \renewcomand{\multirowsetup}{\centering}
使文本在格子中居中排列。]
发表评论 取消回复