数学环境下行内向量的基线对齐问题

在描述行向量时,常采用只有单行元素的矩阵环境,例如matrixbmatrixpmatrix等矩阵环境来实现,当只有单行时,矩阵内元素的基线和矩阵外公式的基线并没有对齐,在大行距的情况下表现尤其明显。

下面的例子给出了该问题

1
2
3
4
5
6
7
8
\documentclass{standalone}
\usepackage{amsmath}
\linespread{1.5}\selectfont
\begin{document}
$\underline{A}=\begin{bmatrix}
\underline{A} & \underline{B} & \underline{C}
\end{bmatrix}$
\end{document}

效果如下

在 1.5 倍行距的情况下,基线明显没有对齐,在单倍行距下,会有一定的改善,但依然没有彻底解决该问题。查看bmatrix的代码可以发现,其实际上为array环境,其默认为垂直居中(array宏包文档,1.2 节),因此在这里我们定义了一条命令,对array环境指定对齐样式,如首行基线对齐(t),同时将行距设置为单倍行距。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
\documentclass{standalone}
\usepackage{amsmath}
\linespread{1.5}\selectfont
\newcommand*{\rowvector}[2]
{%
\begingroup%
\linespread{1}\selectfont%
\everymath{\displaystyle}%
\begin{array}[t]{@{}*#1 c@{}}
#2
\end{array}%
\endgroup%
}
\newcommand*{\browvector}[2]{\left[\rowvector{#1}{#2}\right]}
\begin{document}
$\underline{A}=\browvector{3}{\underline{A} & \underline{B} & \underline{C}}$
\end{document}

效果如下

参考文献