可能重复:
表格中的列填充
我正在尝试在表格中插入一个矩阵,正在寻找一种好的方法。通常当我在方程式中写矩阵时,我会使用数组环境,所以我天真地在表格中定义了一个数组,它有点起作用了。唯一的问题是矩阵本身似乎占用了单元格内的大量空间。一个例子是
\begin{tabular}{|c|c|}
\hline
\textbf{EKF} & \textbf{UKF}\\
\hline
$Q = \left[ \begin{array}{cc} 0.1 & 0 \\ 0 & 0.1 \end{array}\right]$ & $Q = left[ \begin{array}{cc} 0.01 & 0 \\ 0 & 0.01 \end{array}\right]$\\
\hline
$R = 5 \times 10^{-3}$ & $R = 5 \times 10^{-5}$ \\
\hline
\end{tabular}
有什么方法可以增加包含矩阵的单元格中的间距,而不会让矩阵占据所有空间?
答案1
有几种可能性:
\documentclass{article}
\usepackage{array}
\begin{document}
\begingroup
\renewcommand{\arraystretch}{4}
\begin{tabular}{|*2{>{\renewcommand{\arraystretch}{1}}c|}}
\hline
\textbf{EKF} & \textbf{UKF}\\
\hline
$Q = \left[ \begin{array}{cc} 0.1 & 0 \\ 0 & 0.1 \end{array}\right]$ & $Q = \left[ \begin{array}{cc} 0.01 & 0 \\ 0 & 0.01 \end{array}\right]$\\
\hline
$R = 5 \times 10^{-3}$ & $R = 5 \times 10^{-5}$ \\
\hline
\end{tabular}
\endgroup
\bigskip
\begin{tabular}{|*2{>{\centering\arraybackslash}p{.3\textwidth}|}}
\hline
\textbf{EKF} & \textbf{UKF}\\
\hline
\[Q = \left[ \begin{array}{cc} 0.1 & 0 \\ 0 & 0.1 \end{array}\right]\] & \[Q = \left[ \begin{array}{cc} 0.01 & 0 \\ 0 & 0.01 \end{array}\right]\]\\
\hline
\[R = 5 \times 10^{-3}\] & \[R = 5 \times 10^{-5}\]\\
\hline
\end{tabular}
\end{document}
*{2}{c|}
只是重复c|
或一般第二个参数(p{.3\textwidth}
在这种情况下)多次,这是标准乳胶,不需要任何包装。
>
array
是来自包(核心 LaTeX 发行版的一部分)的扩展语法,它将声明插入到该列的每个单元格中,在本例中,将\centering\arraybackslash
声明\centering
插入\centering
到 p 列的每个单元格中,使文本居中。不幸的是,\centering
本地将 定义\\
为居中文本的换行命令,因此它不再结束表格行,\arraybackslash
重新声明 的表格/数组定义\\
。
答案2
我认为你应该消除垂直规则并使用包裹booktabs
每个 之后 控制 垂直 间距\\
.
此外,正如 egreg 所评论的,使用 amsmathbmatrix
环境可以获得更好的矩阵间距:
代码:
\documentclass{article}
\usepackage{booktabs}
\usepackage{amsmath}
\begin{document}
\begin{tabular}{ c c }
\toprule
\textbf{EKF} & \textbf{UKF}\\
\midrule\\
\addlinespace[-2ex]
$Q = \begin{bmatrix} 0.1 & 0 \\ 0 & 0.1 \end{bmatrix}$ &
$Q = \begin{bmatrix} 0.01 & 0 \\ 0 & 0.01 \end{bmatrix}$\\
\addlinespace[1.5ex]
$R = 5 \times 10^{-3}$ & $R = 5 \times 10^{-5}$ \\
\bottomrule
\end{tabular}
\end{document}