tikz矩阵中有一行意外的填充

tikz矩阵中有一行意外的填充

当我在 tikz 中用括号生成矩阵,然后生成行向量时,我发现行向量顶行之前的填充(相对于括号顶部)比矩阵的填充大。有没有办法让这个填充与矩阵中的填充相同?

\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{matrix,positioning}

\begin{document}

\begin{tikzpicture}
\matrix (a) [matrix of math nodes,left delimiter=[,right delimiter={]}] {
    2 & 1 & 0 \\
    0 & 1 & 2 \\
};
\matrix (b) [matrix of math nodes,left delimiter=[,right delimiter={]},below=.5 of a] {
    0 & 0 & 2 \\
};
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案1

这是由于inner ysep节点的。如果您将它们设置为0,则分隔符的高度正确,但行之间的水平空间会看起来很丑陋。可以通过指定适合row sep矩阵的来纠正此问题。也inner xsep可以以同样的方式制作0column sep调整。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix,positioning}

\begin{document}

\begin{tikzpicture}
\matrix (a) [inner sep=1pt,matrix of math nodes,left delimiter=[,right delimiter={]},row sep=1.5ex,column sep=2ex] {
   2 & 1 & 0 \\
    0 & 1 & 2 \\
};
\matrix (b) [inner sep=1pt,matrix of math nodes,left delimiter=[,right delimiter={]},row sep=1.5ex,column sep=2ex,below=.5 of a] {
    0 & 0 & 2 \\
};
\end{tikzpicture}

\end{document}

在此处输入图片描述

然而,如果允许的话,我建议使用bmatrixfrom来完成这项工作。amsmath

\documentclass{article}
\usepackage{tikz}
\usepackage{amsmath}
\usetikzlibrary{matrix,positioning}

\begin{document}

\begin{tikzpicture}
\node (a) [inner sep=0pt] {
   $\begin{bmatrix}
       2 & 1 & 0 \\
       0 & 1 & 2
   \end{bmatrix}$
};
\node (b) [inner sep=0pt,below=.5 of a] {
    $\begin{bmatrix}
       0 & 0 & 2
    \end{bmatrix}$
};
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容