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}

相關內容