TikZ 中的“#”代表什么?

TikZ 中的“#”代表什么?

我是一名新手,我问过如何创建如本例所示的矩形?关于如何制作一些矩形。我正在尝试阅读代码并理解它,因为我需要矩形而不是正方形。但我在网上找不到这个#1到#4是什么?由于符号很短,我甚至无法搜索它。所以如果有人能帮助我,我会很高兴。

\newcommand\catalannumber[3]{
  % start point, size, Dyck word (size x 2 booleans)
  \fill[cyan!25]  (#1) rectangle +(#2,#2);
  \fill[fill=lime]
  (#1)
  \foreach \dir in {#3}{
    \ifnum\dir=0
    -- ++(1,0)
    \else
    -- ++(0,1)
    \fi
  } |- (#1);
  \draw[help lines] (#1) grid +(#2,#2);
  \draw[dashed] (#1) -- +(#2,#2);
  \coordinate (prev) at (#1);
  \foreach \dir in {#3}{
    \ifnum\dir=0
    \coordinate (dep) at (1,0);
    \else
    \coordinate (dep) at (0,1);
    \fi
    \draw[line width=2pt,-stealth] (prev) -- ++(dep) coordinate (prev);
  };
}

答案1

“#” 与 TikZ 关系不大。它用于命令定义中形式参数的表达(此处:)\catalannumber。通俗地说,#1表示传递给 的第一个参数\catalannumber#2表示第二个参数,等等。

我不熟悉加泰罗尼亚数,所以我甚至不确定接下来的内容是否有任何数学意义,但如果你想得到一个矩形格子而不是正方形格子,你可以调整代码如何在 TikZ 上绘制加泰罗尼亚数图如下所示。的第二个参数\catalannumberrectangle是“m,n”,其中“m”是格子的列数,“n”是格子的行数。

在此处输入图片描述

\documentclass[border=2mm]{standalone}
\usepackage{tikz}

\newcommand\catalannumberrectangle[3]{
  % start point, size, Dyck word (size x 2 booleans)
  \fill[cyan!25]  (#1) rectangle +(#2);
  \fill[fill=lime]
  (#1)
  \foreach \dir in {#3}{
    \ifnum\dir=0
    -- ++(1,0)
    \else
    -- ++(0,1)
    \fi
  } |- (#1);
  \draw[help lines] (#1) grid +(#2);
  \draw[dashed] (#1) -- +(#2);
  \coordinate (prev) at (#1);
  \foreach \dir in {#3}{
    \ifnum\dir=0
    \coordinate (dep) at (1,0);
    \else
    \coordinate (dep) at (0,1);
    \fi
    \draw[line width=2pt,-stealth] (prev) -- ++(dep) coordinate (prev);
  };
}

\begin{document}
\begin{tikzpicture}
  \catalannumberrectangle{0,-9}{8,4}{0,1,0,0,1,1,0,1,0,0,0,0};
\end{tikzpicture}
\end{document}

相关内容