使用矢量时表格单元格内的对齐/间距

使用矢量时表格单元格内的对齐/间距
\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}

相关内容