\documentclass[]{article}
\begin{document}
\begin{table}[htbp]
\centering
\begin{tabular}{|c|p{3cm}|p{2cm}|}
\hline
& eigenvalues & Eigenvector\\\hline
$A_1* A_2$ & all the roots of \newline
$x^3-x^2-(a+b+c+d+e+f+g+h)x+abcdefgh=0$ &
$\left(\begin{array}{c}k_1x_i\\k_2y_i\\z_i\end{array}\right)$\\\hline
\end{tabular}
\end{table}
\end{document}
观察最后一列和最后一行的间距。这似乎很奇怪。数组向上对齐,而前一个单元格向下对齐。那么如何纠正呢?请帮忙。
答案1
您可以使用m
提供的列类型array
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\usepackage{booktabs} % for the second example
\begin{document}
\begin{tabular}{|c|>{\raggedright}m{3cm}|c|}
\hline
& Eigenvalues & Eigenvector\\
\hline
$A_1 A_2$ &
all the roots of
$x^3-x^2-(a+b+c+d+e+f+g+\nolinebreak h)x+abcdefgh=0$ &
$\begin{pmatrix} k_1x_i \\ k_2y_i \\ z_i \end{pmatrix}$ \\
\hline
\end{tabular}
\bigskip
\begin{tabular}{c>{\raggedright}m{3cm}c}
\toprule
& Eigenvalues & Eigenvector\\
\midrule
$A_1 A_2$ &
all the roots of
$x^3-x^2-(a+b+c+d+e+f+g+\nolinebreak h)x+abcdefgh=0$ &
$\begin{pmatrix} k_1x_i \\ k_2y_i \\ z_i \end{pmatrix}$ \\
\bottomrule
\end{tabular}
\end{document}
我添加了\raggedright
一个,以便在窄列中更好地排版。看到结果后,发现还添加了一个,\nolinebreak
以避免出现错误的换行。
第二张表格具有booktabs
以下特点:其外观更浅,并且删除了垂直规则,方便阅读。
你的表格哪里出了问题?p
列类型使每个单元格都以其内部第一行的基线为参考点。第三列只有一行,并且基线与其他所有列一样array
,除非另有规定,否则位于从上到下的中间。
答案2
我建议您使用array
环境而不是tabular
环境(因为大部分材料都处于数学模式),并使用m
而不是p
作为中间列。由于最后一列不需要换行符,因此请使用c
该列的列类型。
\documentclass{article}
\usepackage{array,amsmath}
\newcolumntype{M}[1]{>{$}m{#1}<{$}} % math-mode version of "m" col. type
\begin{document}
\begin{table}
\[
\begin{array}{|c|M{3.35cm}|c|}
\hline
& \text{eigenvalues} & \text{eigenvector}\\
\hline
A_1*A_2 & \text{all roots of }
x^3-x^2-(a+b+c+d+e+f+g+h)x+\mathit{abcdefgh}=0 &
\begin{pmatrix}
k_1x_i \\ k_2y_i \\ z_i
\end{pmatrix}\\
\hline
\end{array}
\]
\end{table}
\end{document}