自动计算列宽的tabularx宏包

 

David Carlisle编写的宏包tabularx增强了标准LaTeX制表环境tabular*
的功能,它能根据表格的总宽度自动计算特定表格列的宽度。一旦计算出来,则将格式自转换为 p{某个列宽值},是个段落盒子\parbox[t]{某个列宽值}。

在tabularx宏包中,X列格式被设置成p列格式的形式,它是由参数
\tabularxcolumn定义的,并且与\parbox [t]相关。事实上,X列格式的原始定义为:
      \newcommand{\tabularxcolumn}[1]{p{#1}}
若要X列格式被设置成与\parbox[c]相关的m列格式形式,则可以使用下面的命令:

\renewcommand{\tabularxcolumn}[1]{>{\small} m{#1}} [说明:\small给出表中文字为小字体,也可取值\normalsize、\large等。也可省略。]

    tabular*环境与tabularx环境的主要区别在于:
    1)tabularx环境改变列的宽度,而tabular*环境改变列与列之间的空白宽度。
    2)tabular*环境与tabularx环境都可以嵌套使用。但是tabularx环境嵌套使用
时,内部表格必须包含在一对花括弧{}之中。

 

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{latexsym}
\usepackage{CJK}

\usepackage{tabularx}
\usepackage{array}

\begin{document}
\begin{CJK*}{GBK}{song}
\CJKtilde

\begin{tabularx}{10.5cm}{|X|X|X|} %表格总宽度为10.5cm,共3列,宽度均相同。每列宽度为10.5/3=3.5。是自动计算出来的。如果将上面表将的设置改为\begin{tabularx}{\linewidth}{|p{3cm}|X|X|},则
表格的总宽度是行宽,第1列列宽为3cm,其他两列的列宽自动计算。
\hline
聪明的鱼儿在咬钩前常常排祠再三 & 这是因为它们要荆断食物是否安全 &知果它们认为有危险 \\
\hline
它们枕不会吃 & 如果它们判定没有危险 & 它们就食吞钩 \\
\hline
一眼识破诱饵的危险,却又不由自主地去吞钩的 & 那才正是人的心理而不是鱼的心理 & 是人的愚合而不是鱼的恳奋\\
\hline
\end{tabularx}

\end{CJK*}
\end{document}

结果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章