我发现在表格行之间添加更多间距的解决方案是使用\arraystretch
但这对我来说不起作用。我的表格\begin{array}
里面有。并且\arraystretch
正在拉伸表格内的数组,而不是在显示的向量底部和表格行之间添加更多空间,而这正是我想要的。
请注意array
:我无法将用于排版最后一列中的向量的代码更改为其他代码。因为该代码是自动生成的。
我可以更改表中的任何其他内容,但必须保留array
原有的代码。我没有办法更改这一点。
并举例说明。
\documentclass[12pt]{article}
\usepackage{amsmath}
\begin{document}
\begin{center}
\bgroup
\renewcommand{\arraystretch}{2}
\begin{tabular}{|c|c|c|c|c|}\hline
eigenvalue & {\footnotesize algebraic multiplicity $m$}& {\footnotesize geometric multiplicty $k$}& {\small defective?}& eigenvectors \\ \hline
$3 i$&$1$&$1$&No&$\left[\begin{array}{c}i \\1 \\\end{array}\right]$ \\ \hline
$-3 i$&$1$&$1$&No&$\left[\begin{array}{c}-i \\1 \\\end{array}\right]$ \\ \hline
\end{tabular}
\egroup
\end{center}
\end{document}
使用 lualatex 编译时,这是输出
更改\renewcommand{\arraystretch}{2}
为\renewcommand{\arraystretch}{5}
也会拉伸内部的矢量,保持矢量底部和表格边缘之间的空间相同,这不是我想要的。
结果如下5
解决这个问题的正确方法是什么?我只需要在显示的向量的顶部/底部与分隔行的线之间留出更多空间。其余单元格保持原样即可。
TL 2020
参考:
答案1
您可以使用 包\makegapedcells
中定义的宏为单元格内容添加一些垂直空间makecell
。由于您的表格太宽,无法适应文本宽度,我建议重新制定第二列和第三列的列标题:
\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{makecell}
\begin{document}
\begin{center}
\setcellgapes{5pt}
\makegapedcells
\begin{tabular}{|*{5}{c|} }
\hline
& \multicolumn{2}{c|}{ multiplicity}
& & \\
\cline{2-3}
eigenvalue
& algebraic $m$
& multiplicty $k$
& defective?
& eigenvectors \\
\hline
$3i$ & 1 & 1 & No & $\begin{bmatrix} i \\1 \end{bmatrix}$ \\
\hline
$-3i$ & 1 & 1 & No & $\begin{bmatrix} -i \\1 \end{bmatrix}$ \\
\hline
\end{tabular}
\end{center}
\end{document}
编辑:
如果您出于某种原因将代码用于矩阵,则只需将使用的代码替换bmatrix
为使用的代码的简短而优雅的代码array
:
\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{makecell}
\begin{document}
\begin{center}
\setcellgapes{5pt}
\makegapedcells
\begin{tabular}{|*{5}{c|} }
\hline
& \multicolumn{2}{c|}{ multiplicity}
& & \\
\cline{2-3}
eigenvalue
& algebraic $m$
& multiplicty $k$
& defective?
& eigenvectors \\
\hline
$3i$ & 1 & 1 & No & $\left[\begin{array}{c} i \\1 \end{array}\right]$ \\
\hline
$-3i$ & 1 & 1 & No & $\left[\begin{array}{c} -i \\1 \end{array}\right]$ \\
\hline
\end{tabular}
\end{center}
\end{document}
上述解决方案的结果与之前相同......
答案2
该cellspace
包使您能够定义最小在以字母为前缀的说明符的列中,单元格顶部和底部的垂直填充S
(或者,C
如果您加载siunitx
,则该math
选项对矩阵环境执行相同的操作amsmath
。独立于这个问题,我擅自通过\left[\begin{array}[c}...\end{array}\right]
用更简单的替换来简化您的代码\begin{bmatrix} ... \end{bmatrix}
。
\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage[math]{cellspace}
\setlength{\cellspacetoplimit}{6pt}
\setlength{\cellspacebottomlimit}{6pt}
\begin{document}
\begin{center}
\begin{tabular}{|*{5}{Sc|}}\hline
eigenvalue & {\footnotesize algebraic multiplicity $m$}& {\footnotesize geometric multiplicty $k$}& {\small defective?}& eigenvectors \\ \hline
$3 i$&$1$&$1$&No&$\begin{bmatrix}i \\ \,1\, \end{bmatrix}$ \\ \hline
$-3 i$&$1$&$1$&No&$\begin{bmatrix} -i \\1 \\\end{bmatrix}$ \\ \hline
\end{tabular}
\end{center}
\end{document}