有时我们需要控制某列的宽度,可以将其对齐方式参数从 l、c、r 改 为 p{宽度}。这时纵向对齐方式是居顶,t、c、b等参数失效。
\begin{table }[ htbp]
\centering
\begin{tabular }{p{80 pt}p{80 pt}p{80 pt}}
\toprule
操作系统 & 发行版 & 编辑器 \\
\midrule
Windows & MikTeX & TexMakerX \\
Unix/Linux & teTeX & Kile \\
Mac OS & MacTeX & TeXShop \\
通用 & TeX Live & TeXworks \\
\ bottomrule
\end{tabular}
\end{table}
使用宽度控制参数之后,表格内容缺省居左对齐。我们可以用列前置 命令 >{} 配合 \centering、\raggedleft 命令来把横向对齐方式改成居中 或居右。列前置命令仅对紧邻其后的一列有效,其语法如下:
语法:>{命令}列参数
\begin{table }[ htbp]
\centering
\begin{tabular }{p{80 pt}>{\centering}p{80 pt}>{\raggedleft\
arraybackslash }p{80 pt}}
\toprule
操作系统 & 发行版 & 编辑器 \\
\midrule
Windows & MikTeX & TexMakerX \\
Unix/Linux & teTeX & Kile \\
Mac OS & MacTeX & TeXShop \\
通用 & TeX Live & TeXworks \\
\ bottomrule
\end{tabular}
\end{table}
若要控制整个表格的宽度,可以使用 Carlisle 的 tabularx 宏包[2] 的同 名环境,其语法如下,其中 X 参数表示某列可以折行。
语法:{表格宽度}{横向对齐、分隔符、折行}
\begin{table }[ htbp]
\centering
\begin{tabularx }{350 pt}{ lXlX}
\toprule
李白 & 平林漠漠烟如织,寒山一带伤心碧。暝色入高楼,有人楼上愁。
玉阶空伫立,宿鸟归飞急。何处是归程,长亭更短亭。&
泰戈尔 & 夏天的飞鸟,飞到我的窗前唱歌,又飞去了。
秋天的黄叶,它们没有什么可唱,只叹息一声,飞落在那里。\\
\ bottomrule
\end{tabularx }
\end{table}
如果想把纵向对齐方式改为居中和居底,可以使用 Mittelbach 和 Carlisle 的 array 宏包[3],它提供了另两个对齐方式参数:m{宽度}、b{宽度}。