Para que serve o "#" no TikZ?

Para que serve o "#" no TikZ?

Eu sou um novato e pergunteiComo criar retângulos como neste exemplo?sobre como fazer alguns retângulos. Estou tentando ler o código e entendê-lo, pois preciso de retângulos em vez de quadrados. Mas não consigo encontrar na rede o que são esses números 1 a 4? Como a notação é curta, não consigo nem pesquisar. Então eu ficaria feliz se alguém me ajudasse com isso.

\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);
  };
}

Responder1

O “#” tem pouco a ver com TikZ. É utilizado na expressão de parâmetros formais na definição de um comando (aqui: \catalannumber). Em termos leigos, #1refere-se ao primeiro argumento passado para \catalannumber, #2refere-se ao segundo argumento, etc.

Não estou familiarizado com os números catalães, então nem tenho certeza se o que se segue faz algum sentido matemático, mas se você quiser obter uma rede retangular em vez de quadrada, poderá adaptar o código deComo desenhar um diagrama numérico catalão no TikZdo seguinte modo. O segundo argumento \catalannumberrectangleé "m,n", onde "m" é o número de colunas e "n" é o número de linhas da rede.

insira a descrição da imagem aqui

\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}

informação relacionada