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は 2 番目の引数を指します。

私はカタロニア数に詳しくないので、以下に述べることが数学的に意味をなすかどうかさえわかりませんが、正方形ではなく長方形の格子を得たい場合は、次のコードを適応させることができます。TikZ でカタロニア数図を描く方法次のようにします。 の 2 番目の引数\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}

関連情報