为什么 \vdots 上方的空格在 bmatrix 中消失了?

为什么 \vdots 上方的空格在 bmatrix 中消失了?

在使用 Beamer 创建演示文稿时,我遇到了 括号内的矩阵间隙被打破。使用 Loop Space 提出的解决方案,我发现\vdotstikz 矩阵中有一个恼人的空白(也进行了讨论这里)。

现在我想知道,为什么使用标准时不显示这些空格bmatrix ,以及如何避免 tikz 矩阵中的这些空格。

以下 MWE 显示了差异:

\documentclass{standalone}
\usepackage{amsmath}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}[every node/.style={draw}, baseline=(dots)]
\matrix [draw=red]
{
    \node{Hallo}; \fill[blue!50] (0,0) circle (2pt); \\
    \fill[blue!50] (0,0) circle (2pt); \node(dots) {$\vdots$}; \\
    \node{g}; \fill[blue!50] (0,0) circle (2pt); \\
};
\end{tikzpicture}
$
\begin{bmatrix}
    \text{Hallo} \\
    \vdots \\
    \text{g}
\end{bmatrix}
$
\end{document}

结果

tikz 矩阵和 bmatrix 中 vdots 的区别

答案1

由于问题是“为什么”,因此以下内容显示 \rvdots 的基线位于底部。请注意,\vcenter不是相对于基线居中,而是相对于 居中\strut

\documentclass[border=5pt]{standalone}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{calc}


\DeclareRobustCommand{\rvdots}{%
  \vbox{%
    \baselineskip=4pt
    \lineskiplimit=0pt
    \kern-1pt
    \hbox{.}\hbox{.}\hbox{.}
  }}

\DeclareRobustCommand{\cvdots}{%
  \vcenter{%
    \baselineskip=4pt %spacing
    \hbox{.}\hbox{.}\hbox{.}
  }}

\begin{document}
\begin{tikzpicture}[every node/.style={scale=5,anchor=base,draw=red,inner sep=0pt}]
 \draw[blue] (0,0) -- (4,0);% baseline
 \node at (1,0) {$\rvdots$};
 \node at (2,0) {$\cvdots$};
 \node at (3,0) {\strut};
\end{tikzpicture}

\end{document}

点 nn 基线

相关内容