TikZ 矩阵中节点的位置

TikZ 矩阵中节点的位置

我希望能够在 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)所在的点处定义一个名为 的坐标。您的第二次使用(您尝试放置 的位置)是定义一个名为 的坐标,但未明确指定node9hello(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}

相关内容