![TikZ 矩阵中节点的位置](https://linux22.com/image/284101/TikZ%20%E7%9F%A9%E9%98%B5%E4%B8%AD%E8%8A%82%E7%82%B9%E7%9A%84%E4%BD%8D%E7%BD%AE.png)
我希望能够在 TikZ 矩阵最后一行的元素下方添加注释。我以为下面的 MWE 允许我这样做,但事实并非如此。具体来说,我以为下面的 MWE 会在元素 9 下方打印“hello”。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix
{
\node {8}; &[2mm] \node{1}; &[-1mm] \node {6}; \\
\node {3}; & \node{5}; & \node {7}; \\
\node {4}; & \node(a){9}; & \node {2}; \\
};
\node (a.south) {hello};
\end{tikzpicture}
\end{document}
我怎样才能让它工作?
答案1
使用\node [below] at (a.south) {hello}
有效。如果没有,at
您将定义一个名为的新节点(a.south)
。
为何没有错误信息?
省略
at
不会产生错误,因为它是完全有效的语法。因此,\node (X) {text 1};
(X)
定义当前位置的坐标,并\node at (Y) {text 2};
将给定的文本放置在
at
名为的坐标处(Y)
。在您的具体示例中, 的第一次使用
\node (a) {9}
是在包含文本的(a)
所在的点处定义一个名为 的坐标。您的第二次使用(您尝试放置 的位置)是定义一个名为 的坐标,但未明确指定node
9
hello
(a.south)
在哪里您希望node
放置此内容。
代码:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix
{
\node {8}; &[2mm] \node{1}; &[-1mm] \node {6}; \\
\node {3}; & \node{5}; & \node {7}; \\
\node {4}; & \node(a){9}; & \node {2}; \\
};
\node [below] at (a.south) {hello};
\end{tikzpicture}
\end{document}