![合并数组中的行和列](https://linux22.com/image/282196/%E5%90%88%E5%B9%B6%E6%95%B0%E7%BB%84%E4%B8%AD%E7%9A%84%E8%A1%8C%E5%92%8C%E5%88%97.png)
我正在尝试写一些块矩阵
\[A_n=
\left(
\begin{array}{cc|cc}
&& 0 & 0 \\
& A_{n-2}&n-2&0 \\
\hline\\
0&-n+2&1&n-1 \\
0&0&-n+1&1
\end{array}
\right)
\]
我怎样才能使左上角的条目写在中间?或者换一种说法:如何将 (1,1)(1,2)(2,1) 和 (2,2) 两列合并起来?
答案1
您可能遇到的是以下两个实例中的第二个(第一个是您的):
\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\begin{document}
\begin{align*}
A_n &= \left(\begin{array}{cc|cc}
& & 0 & 0 \\
& A_{n-2} & n - 2 & 0 \\
\hline \\
0 & -n + 2 & 1 & n - 1 \\
0 & 0 & -n + 1 & 1
\end{array}\right) \\
A_n &= \left(\begin{array}{cc|cc}
& & 0 & 0 \\
\multicolumn{2}{c|}{\smash{\raisebox{.5\normalbaselineskip}{$A_{n-2}$}}}
& n - 2 & 0 \\
\hline \\[-\normalbaselineskip]
0 & -n + 2 & 1 & n - 1 \\
0 & 0 & -n + 1 & 1
\end{array}\right)
\end{align*}
\end{document}
水平居中是通过 实现的\multicolumn{2}{c}
,而垂直居中是通过 实现的\raisebox{.5\normalbaselineskip}
。消除了任何垂直扭曲(由于提高了盒装内容),而垂直对齐垂直规则(顶部和底部)\smash
后的负跳过。\hrule