使用数学模式在数组行中垂直居中文本/数字

使用数学模式在数组行中垂直居中文本/数字

我尝试在数学模式环境中将文本置于两行数组的中心,以便数组第二列中的文本出现在第一列第一行和第二行之间的中间。以下是我目前所做的示例。

\documentclass{article}

\usepackage{amsmath}

\begin{document}
  \[
    A = \left[
    \begin{array}{c|c}
      B & \\
      a^{T} & b \\
    \end{array}
    \right]
  \]
\end{document}

我希望它显示如下内容:

在此处输入图片描述

如能就如何执行此操作提供任何帮助/建议,我们将不胜感激。

答案1

一个简单的方法是嵌套两个array环境:

\documentclass{article}
\begin{document}
\[
  A = \left[
  \begin{array}{c|c}
    \begin{array}{@{}c@{}}
      B \\
      a^{T}
    \end{array} & b \\
  \end{array}
  \right]
\]
\end{document}

大批

@{}请注意在最内列规范周围使用array。这将删除列间间距。否则,由于嵌套,第一列的间距将加倍array- 但您的问题中的示例似乎并非如此。或者,makecell包裹还提供了一种执行此操作的方法(使用命令\makecell{<array/tab>}),产生类似的结果:

\documentclass{article}
\usepackage{makecell}% http://ctan.org/pkg/makecell
\begin{document}
\[
  A = \left[
  \begin{array}{c|c}
    \makecell{B \\ a^{T}} & b \\
  \end{array}
  \right]
\]
\end{document}

答案2

另一个选择是使用包\multirow中的选项multirow

\documentclass{article}
\usepackage{multirow}
\begin{document}
\[
  A = \left[
  \begin{array}{c|c}
      B & \multirow{2}{*}{$b$}  \\
      a^{T} \\
  \end{array}
  \right]
\]
\end{document}

在此处输入图片描述

答案3

或者,您也可以在方程式中使用 amsmath 的对齐。看起来如下:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation}
  A= \left[ \left.
   \begin{aligned}
    B \\
    a^T
   \end{aligned}
  \right|
  b
  \right]
\end{equation}
\end{document}

但坦率地说,我认为沃纳的解决方案看起来更好一些。

相关内容