1 问题描述
初步使用 LATEX 的朋友在使用表格的时候,会遇到一些烦恼。比如说,下面代码:
\begin{table}[htb]
\centering
\begin{minipage}[t]{0.9\linewidth} % 如果想在表格中使用脚注,minipage是个不错的办法
\caption[模板比较]{版本$VerA$、$VerB$及$VerC$的各方面比较}
\label{Tab:verCmp}
\begin{tabular*}{\linewidth}{llll}%
\toprule[1.5pt]
{\hei\wuhao 指标} & {\hei\wuhao $VerA$} &{\hei\wuhao $VerB$} &{\hei\wuhao $VerC$}\\
\midrule[1pt]
{\wuhao 基础类} & {\wuhao book} &book & scrbook\\
{\wuhao 设计方式} & 无cls,版式代码与主文件混合&有cls &有cls\\
{\wuhao 使用帮助} & 无,填少量内容,运行了一个示例&无,填少量内容,运行了一个示例 &有,很详细\\
{\wuhao 中文支持} & 使用CJK包 &使用xeCJK包 & 使用xeCJK包\\
{\wuhao 代码结构} & 混乱&cls有大量注释掉的代码,没做代码重构,混乱 &清晰,有注释\\
{\wuhao 开发基础} & 改自大连理工模板&多个模板的揉和 & 借鉴许多优良设计,如ThuThesis、seuThesis等\\
\bottomrule[1.5pt]
\end{tabular*}
\end{minipage}
\end{table}
编译运行后1,出现的结果如下:
从运行结果中可以看出两个问题:
- 字号调整没有做到全局调整,因为table本身就是一个group,完全可以采用一个命令
\wuhao
来完成,而没有必要对每个单元格都加上这个命令; - 单元格没有根据页面的宽度自动调整自己的距离,致使一些内容显示到了页面的外部,列
VerC
就没被显示出来。
2 解决方法
为了解决上面两个问题,需要修改上述代码。幸运的是,包table本身包含的语法支持上述两个问题的解决。我们依次来看这两个问题的解决方法.
问题1解决方法:
\begin{table}[htb]
\wuhao
...
将其他出现\wuhao的地方删除
问题2的解决方法:包table提供了选项p{xxcm}用于指定某一列的宽度,如果这列中某个单元格的显示的内容超出了该指定的宽度,单元格中的内容就会自动换行,以保证不超出这个的宽度。例如,对问题代码可以做如下的修改:
...
\begin{tabular*}{\linewidth}{lp{3cm}p{4cm}p{4cm}}
...
代码经过上述修改后,再次运行,得到的输出结果为:
可见已达到预期的结果。
- 注意上面代码中,
\wuhao
和\hei
是自定义命令,读者在编译此代码时,需根据自己的情况做相应的替换。 ↩