我是新手,我問了如何建立像本例這樣的矩形?關於如何製作一些矩形。我正在嘗試閱讀程式碼並理解它,因為我需要矩形而不是正方形。但我在網路上找不到#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}