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}
結果: