LaTeX中table使用小技巧:全局调整字号及单元格内容自动换行

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,出现的结果如下:
LaTeX中table使用小技巧:全局调整字号及单元格内容自动换行_第1张图片
从运行结果中可以看出两个问题:

  1. 字号调整没有做到全局调整,因为table本身就是一个group,完全可以采用一个命令\wuhao来完成,而没有必要对每个单元格都加上这个命令;
  2. 单元格没有根据页面的宽度自动调整自己的距离,致使一些内容显示到了页面的外部,列VerC就没被显示出来。

2 解决方法

为了解决上面两个问题,需要修改上述代码。幸运的是,包table本身包含的语法支持上述两个问题的解决。我们依次来看这两个问题的解决方法.

问题1解决方法:

\begin{table}[htb]
  \wuhao
  ...
  将其他出现\wuhao的地方删除

问题2的解决方法:包table提供了选项p{xxcm}用于指定某一列的宽度,如果这列中某个单元格的显示的内容超出了该指定的宽度,单元格中的内容就会自动换行,以保证不超出这个的宽度。例如,对问题代码可以做如下的修改:

...
\begin{tabular*}{\linewidth}{lp{3cm}p{4cm}p{4cm}}
...

代码经过上述修改后,再次运行,得到的输出结果为:
LaTeX中table使用小技巧:全局调整字号及单元格内容自动换行_第2张图片
可见已达到预期的结果。


  1. 注意上面代码中,\wuhao\hei是自定义命令,读者在编译此代码时,需根据自己的情况做相应的替换。 ↩

你可能感兴趣的:(工具学习,LaTeX)