当我在 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
可以以同样的方式制作0
并column 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}
然而,如果允许的话,我建议使用bmatrix
from来完成这项工作。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}