% \LaTeX-Main\
% !TeX encoding=UTF-8
%% The LaTeX package tikzfill - version 1.2.0 (2026/04/23)
%% tikzfill.tex: Manual
%%
%% -------------------------------------------------------------------------------------------
%% Copyright (c) 2022-2026 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
%% -------------------------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%%   http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%%
%% This work has the LPPL maintenance status `author-maintained'.
%%
%% This work consists of all files listed in README.md
%%
% \RequirePackage[check-declarations,enable-debug]{expl3}
\documentclass[a4paper,11pt]{article}
\usepackage{tikzfill.doc}

\hypersetup{
  pdftitle={Manual for the tikzfill package},
  pdfauthor={Thomas F. Sturm},
  pdfsubject={TikZ libraries for filling with images and patterns},
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}

\begin{tcboutputlisting}
% \documentclass[a4paper]{article}
% \usepackage{tikzfill}
% \usepackage[skins,breakable]{tcolorbox}
% \begin{document}
\begin{tcolorbox}[
  spread,
  blankest,
  center upper,
  phantom      = \thispagestyle{empty},
  top          = 65mm,
  fontupper    = \bfseries,
  frame engine = path,
  frame style  = {
    fill = none,
    preaction = {
      fill gea Weihmichl = {
        scale fixed = 1,
        xstep       = 21mm,
        ystep equidistance,
        style 1 = {},
        style 2 = {fill=black!5},
        style 3 = {fill=black!10},
        draw-if-row-col =
          {11/5,11/6,12/4,12/5,12/6,12/7,12/8,13/3,13/4,13/5,13/6,13/7,13/8},
        freeze-row,
      },
    },
    fill gea Edenland = {
      scale fixed = 1,
      xstep       = 21mm,
      ystep equidistance,
      init-row< = \TFRowColorLet{mycolor}{red}{blue},
      prime color 1 = mycolor,
      draw-if-not-row-col =
        {11/5,11/6,12/4,12/5,12/6,12/7,12/8,13/3,13/4,13/5,13/6,13/7,13/8},
      freeze-row,
    },
  },
]
  \Huge  The \texttt{tikzfill} package\\[10mm]
  \Large Manual for version \version\ (\datum)\\[10mm]
  \large Thomas F.~Sturm
\end{tcolorbox}
% \end{document}
\end{tcboutputlisting}
\tcbuselistingtext
\tcbinputlisting{title=Cover code,docexample,listing only}


\clearpage

\begin{center}
\begin{tcolorbox}[enhanced,hbox,tikznode,left=8mm,right=8mm,boxrule=0.4pt,
  colback=white,colframe=black!50!yellow,
  drop lifted shadow=black!50!yellow,arc is angular,
  before=\par\vspace*{5mm},after=\par\bigskip]
{\bfseries\LARGE The \texttt{tikzfill} package}\\[3mm]
{\large Manual for version \version\ (\datum)}
\end{tcolorbox}
{\large Thomas F.~Sturm%
  \footnote{Prof.~Dr.~Dr.~Thomas F.~Sturm, Institut f\"{u}r Mathematik und Informatik,
    University of the Bundeswehr Munich, D-85577 Neubiberg, Germany;
     email: \href{mailto:thomas.sturm@unibw.de}{thomas.sturm@unibw.de}}\par\medskip
\normalsize\url{https://www.ctan.org/pkg/tikzfill}\par
\url{https://github.com/T-F-S/tikzfill}
}
\end{center}
\bigskip
\begin{absquote}
  \begin{center}\bfseries Abstract\end{center}
  The |tikzfill| package is a collection of \tikzname\ libraries that provide
  additional options for filling \tikzname\ paths with images and patterns. The
  libraries support fillings based on external image files as well as \tikzname\
  pictures. They also include patterns of hexagons and rhombi.

  In addition, the package offers fillings composed of similar, though not
  necessarily identical, small pictures arranged on a grid, providing greater
  flexibility than usual \tikzname\ patterns.
\end{absquote}

\clearpage
\tableofcontents


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage
\section{Short Introduction}\label{sec:intro}

\tikzname\ is a very advanced and comprehensive graphics package for \LaTeX.
The package |tikzfill| comprises a collection of libraries for \tikzname\, which
add further options to fill \tikzname\ paths with images and patterns.

For \LaTeX, the provided libraries can be loaded using the preferred
\tikzname\ mechanism by
\begin{dispListing*}{}
\usetikzlibrary{fill.***} % LaTeX (primary choice) and plain TeX
\end{dispListing*}
where |***| is to be replaced by the actual library name found on the following pages.

Alternatively, the libraries can be loaded using \LaTeX\ style files
\begin{dispListing*}{}
\usepackage{tikzfill.***} % LaTeX (secondary choice)
\end{dispListing*}

If you want to load all \tikzname\ libraries of this package, you can use
the following \LaTeX\ style file
\begin{dispListing*}{}
\usepackage{tikzfill} % load all libraries
\end{dispListing*}


\begin{myvoid}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage
\section{Image and Picture Fill Library}\label{sec:imagefill}%

\begin{dispListing*}{title=\tikzname\ Library |fill.image|}
\usetikzlibrary{fill.image} % LaTeX (primary choice) and plain TeX
\usetikzlibrary[fill.image] % ConTeXt
\usepackage{tikzfill.image} % LaTeX (secondary choice)
\end{dispListing*}

This library defines options to fill graphs with images or arbitrary pictures.

Until |tcolorbox| version 5.1.1 (2022/06/24), the code of this library was part
of |tcolorbox|. Now, on suggestion of
\href{https://github.com/muzimuzhi}{muzimuzhi},
it is a separate library usable without |tcolorbox|. Also, the code is
completely rewritten with |expl3|.



\subsection{Fill Plain}
\begin{docTikzKey}{fill plain image}{=\meta{file name}}{no default, initially unset}
  Fills the current path with an external image referenced by \meta{file name}.
  The image is put in the center of the path, but it is not resized to fit into
  the path area.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\path[draw,fill plain image=goldshade.png]
  (2.75,-0.75) -- (3,0) -- (2.75,0.75)
  \foreach \w in {45,90,...,315}
    { -- (\w:1.5cm) } -- cycle;
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}


\begin{docTikzKey}{fill plain image*}{=\meta{file name}}{no default, initially unset}
  Fills the current path with an external image referenced by \meta{file name}.
  The image is put in the center of the path, but it is not resized to fit into
  the path area.
  The \meta{graphics options} are given to the underlying \docAuxCommand*{includegraphics} command.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\path[draw,
    fill plain image*={width=2.5cm}{goldshade.png}]
  (2.75,-0.75) -- (3,0) -- (2.75,0.75)
  \foreach \w in {45,90,...,315}
    { -- (\w:1.5cm) } -- cycle;
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}

\enlargethispage*{8mm}

\begin{docTikzKey}{fill plain picture}{=\meta{graphical code}}{no default, initially unset}
  Fills the current path with the given \meta{graphical code}.
  The result is put in the center of the path, but it is not resized to fit into
  the path area. Note that this is almost identical to the standard |path picture| option.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\path[draw,fill plain picture={%
  \draw[red!50!yellow,line width=2mm]
    (0,0) circle (8mm);
  \draw[red,line width=5mm] (-1,-1) -- (1,1);
  \draw[red,line width=5mm] (-1,1) -- (1,-1);
  }]
  (2.75,-0.75) -- (3,0) -- (2.75,0.75)
  \foreach \w in {45,90,...,315}
    { -- (\w:1.5cm) } -- cycle;
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}


\clearpage
\subsection{Fill Stretch}
\begin{docTikzKey}{fill stretch image}{=\meta{file name}}{no default, initially unset}
  Fills the current path with an external image referenced by \meta{file name}.
  The image is stretched to fill the path area.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\path[fill stretch image=goldshade.png]
  (2.75,-0.75) -- (3,0) -- (2.75,0.75)
  \foreach \w in {45,90,...,315}
    { -- (\w:1.5cm) } -- cycle;
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}


\begin{docTikzKey}{fill stretch image*}{=\marg{graphics options}\marg{file name}}{no default, initially unset}
  Fills the current path with an external image referenced by \meta{file name}.
  The \meta{graphics options} are given to the underlying \docAuxCommand*{includegraphics} command.
  The image is stretched to fill the path area.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\path[fill stretch image*=
  {angle=90,origin=c}{goldshade.png}]
  (2.75,-0.75) -- (3,0) -- (2.75,0.75)
  \foreach \w in {45,90,...,315}
    { -- (\w:1.5cm) } -- cycle;
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}


\begin{docTikzKey}{fill stretch picture}{=\meta{graphical code}}{no default, initially unset}
  Fills the current path with the given \meta{graphical code}.
  The result is stretched to fill the path area.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\path[draw,fill stretch picture={%
  \draw[red!50!yellow,line width=2mm]
    (0,0) circle (8mm);
  \draw[red,line width=5mm] (-1,-1) -- (1,1);
  \draw[red,line width=5mm] (-1,1) -- (1,-1);
  }]
  (2.75,-0.75) -- (3,0) -- (2.75,0.75)
  \foreach \w in {45,90,...,315}
    { -- (\w:1.5cm) } -- cycle;
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}


\clearpage
\subsection{Fill Overzoom}
\begin{docTikzKey}{fill overzoom image}{=\meta{file name}}{no default, initially unset}
  Fills the current path with an external image referenced by \meta{file name}.
  The image is zoomed such that the path area fills the image.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\path[fill overzoom image=goldshade.png]
  (2.75,-0.75) -- (3,0) -- (2.75,0.75)
  \foreach \w in {45,90,...,315}
    { -- (\w:1.5cm) } -- cycle;
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}


\begin{docTikzKey}{fill overzoom image*}{=\marg{graphics options}\marg{file name}}{no default, initially unset}
  Fills the current path with an external image referenced by \meta{file name}.
  The \meta{graphics options} are given to the underlying \docAuxCommand*{includegraphics} command.
  The image is zoomed such that the path area fills the image.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\path[fill overzoom image*=
  {angle=90,origin=c}{goldshade.png}]
  (2.75,-0.75) -- (3,0) -- (2.75,0.75)
  \foreach \w in {45,90,...,315}
    { -- (\w:1.5cm) } -- cycle;
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}


\begin{docTikzKey}{fill overzoom picture}{=\meta{graphical code}}{no default, initially unset}
  Fills the current path with the given \meta{graphical code}.
  The result is zoomed such that the path area fills the image.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\path[draw,fill overzoom picture={%
  \draw[red!50!yellow,line width=2mm]
    (0,0) circle (8mm);
  \draw[red,line width=5mm] (-1,-1) -- (1,1);
  \draw[red,line width=5mm] (-1,1) -- (1,-1);
  }]
  (2.75,-0.75) -- (3,0) -- (2.75,0.75)
  \foreach \w in {45,90,...,315}
    { -- (\w:1.5cm) } -- cycle;
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}


\clearpage
\subsection{Fill Zoom}
\begin{docTikzKey}{fill zoom image}{=\meta{file name}}{no default, initially unset}
  Fills the current path with an external image referenced by \meta{file name}.
  The image is zoomed such that it fits inside the path area.
  Typically, some parts of the path area will stay unfilled.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\path[draw,fill zoom image=goldshade.png]
  (2.75,-0.75) -- (3,0) -- (2.75,0.75)
  \foreach \w in {45,90,...,315}
    { -- (\w:1.5cm) } -- cycle;
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}


\begin{docTikzKey}{fill zoom image*}{=\marg{graphics options}\marg{file name}}{no default, initially unset}
  Fills the current path with an external image referenced by \meta{file name}.
  The \meta{graphics options} are given to the underlying \docAuxCommand*{includegraphics} command.
  The image is zoomed such that it fits inside the path area.
  Typically, some parts of the path area will stay unfilled.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\path[draw,fill zoom image*=
  {angle=90,origin=c}{goldshade.png}]
  (2.75,-0.75) -- (3,0) -- (2.75,0.75)
  \foreach \w in {45,90,...,315}
    { -- (\w:1.5cm) } -- cycle;
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}


\begin{docTikzKey}{fill zoom picture}{=\meta{graphical code}}{no default, initially unset}
  Fills the current path with the given \meta{graphical code}.
  The result is zoomed such that it fits inside the path area.
  Typically, some parts of the path area will stay unfilled.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\path[draw,fill zoom picture={%
  \draw[red!50!yellow,line width=2mm]
    (0,0) circle (8mm);
  \draw[red,line width=5mm] (-1,-1) -- (1,1);
  \draw[red,line width=5mm] (-1,1) -- (1,-1);
  }]
  (2.75,-0.75) -- (3,0) -- (2.75,0.75)
  \foreach \w in {45,90,...,315}
    { -- (\w:1.5cm) } -- cycle;
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}


\clearpage
\subsection{Fill Shrink}
\begin{docTikzKey}{fill shrink image}{=\meta{file name}}{no default, initially unset}
  Fills the current path with an external image referenced by \meta{file name}.
  The image is zoomed such that it fits inside the path area, but it never
  gets enlarged.
  Typically, some parts of the path area will stay unfilled.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\path[draw,fill shrink image=goldshade.png]
  (2.75,-0.75) -- (3,0) -- (2.75,0.75)
  \foreach \w in {45,90,...,315}
    { -- (\w:1.5cm) } -- cycle;
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}


\begin{docTikzKey}{fill shrink image*}{=\meta{file name}}{no default, initially unset}
  Fills the current path with an external image referenced by \meta{file name}.
  The \meta{graphics options} are given to the underlying \docAuxCommand*{includegraphics} command.
  The image is zoomed such that it fits inside the path area, but it never
  gets enlarged.
  Typically, some parts of the path area will stay unfilled.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\path[draw,
    fill shrink image*={width=1.5cm}{goldshade.png}]
  (2.75,-0.75) -- (3,0) -- (2.75,0.75)
  \foreach \w in {45,90,...,315}
    { -- (\w:1.5cm) } -- cycle;
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}


\begin{docTikzKey}{fill shrink picture}{=\meta{graphical code}}{no default, initially unset}
  Fills the current path with the given \meta{graphical code}.
  The result is zoomed such that it fits inside the path area, but it never
  gets enlarged.
  Typically, some parts of the path area will stay unfilled.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\path[draw,fill shrink picture={%
  \draw[red!50!yellow,line width=2mm]
    (0,0) circle (8mm);
  \draw[red,line width=5mm] (-1,-1) -- (1,1);
  \draw[red,line width=5mm] (-1,1) -- (1,-1);
  }]
  (2.75,-0.75) -- (3,0) -- (2.75,0.75)
  \foreach \w in {45,90,...,315}
    { -- (\w:1.5cm) } -- cycle;
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}


\clearpage
\subsection{Fill Tile}
\begin{docTikzKey}{fill tile image}{=\meta{file name}}{no default, initially unset}
  Fills the current path with a tile pattern using an external image referenced by \meta{file name}.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\path[fill tile image=pink_marble.png]
  (2.75,-0.75) -- (3,0) -- (2.75,0.75)
  \foreach \w in {45,90,...,315}
    { -- (\w:1.5cm) } -- cycle;
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}


\begin{docTikzKey}{fill tile image*}{=\marg{graphics options}\marg{file name}}{no default, initially unset}
  Fills the current path with a tile pattern using an external image referenced by \meta{file name}.
  The \meta{graphics options} are given to the underlying \docAuxCommand*{includegraphics} command.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\path[fill tile image*={width=8mm}{pink_marble.png}]
  (2.75,-0.75) -- (3,0) -- (2.75,0.75)
  \foreach \w in {45,90,...,315}
    { -- (\w:1.5cm) } -- cycle;
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}

\begin{docTikzKey}{fill tile picture}{=\meta{graphical code}}{no default, initially unset}
  Fills the current path with a tile pattern using the given \meta{graphical code}.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\path[draw,fill tile picture={%
  \draw[red!50!yellow,line width=2mm]
    (0,0) circle (8mm);
  \draw[red,line width=5mm] (-1,-1) -- (1,1);
  \draw[red,line width=5mm] (-1,1) -- (1,-1);
  }]
  (2.75,-0.75) -- (3,0) -- (2.75,0.75)
  \foreach \w in {45,90,...,315}
    { -- (\w:1.5cm) } -- cycle;
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}


\begin{docTikzKey}{fill tile picture*}{=\marg{fraction}\marg{graphical code}}{no default, initially unset}
  Fills the current path with a tile pattern using the given \meta{graphical code}.
  The graphic is resized by \meta{fraction}.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\path[draw,fill tile picture*={0.25}{%
  \draw[red!50!yellow,line width=2mm]
    (0,0) circle (8mm);
  \draw[red,line width=5mm] (-1,-1) -- (1,1);
  \draw[red,line width=5mm] (-1,1) -- (1,-1);
  }]
  (2.75,-0.75) -- (3,0) -- (2.75,0.75)
  \foreach \w in {45,90,...,315}
    { -- (\w:1.5cm) } -- cycle;
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}


\clearpage
\subsection{Filling Options}
\begin{docTikzKey}{fill image opacity}{=\meta{fraction}}{no default, initially |1.0|}
  Sets the fill opacity for the image or picture fill options to the given \meta{fraction}.
\begin{dispExample}
\begin{tikzpicture}
\path[fill stretch image=goldshade.png] (0,0) circle (8mm);
\path[fill=red,fill stretch image=goldshade.png,fill image opacity=0.75]
  (2,0) circle (8mm);
\path[fill=red,fill stretch image=goldshade.png,fill image opacity=0.5]
  (4,0) circle (8mm);
\path[fill=red,fill stretch image=goldshade.png,fill image opacity=0.25]
  (6,0) circle (8mm);
\path[fill=red] (8,0) circle (8mm);
\end{tikzpicture}
\end{dispExample}
\end{docTikzKey}


\begin{docTikzKey}{fill image scale}{=\meta{fraction}}{no default, initially |1.0|}
  Stretches, zooms, overzooms or shrinks the image or picture to the given \meta{fraction} of the
  width and height of the current path.
\begin{dispExample}
\begin{tikzpicture}
\path[draw,fill zoom image=goldshade.png]
  (0,0) rectangle +(2,2);

\path[draw,fill zoom image=goldshade.png,fill image scale=0.75]
  (3,0) rectangle +(2,2);

\path[draw,fill zoom image=goldshade.png,fill image scale=1.5]
  (6,0) rectangle +(2,2);
\end{tikzpicture}
\end{dispExample}
\end{docTikzKey}


\begin{docTikzKey}{fill image options}{=\meta{graphics options}}{no default, initially empty}
  The \meta{graphics options} are given to the underlying \docAuxCommand*{includegraphics} command
  for the image fill options. This can be just together with
  \refKey{/tikz/fill stretch image}, \refKey{/tikz/fill overzoom image}, \refKey{/tikz/fill zoom image},
  and \refKey{/tikz/fill tile image}.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\path[fill image options={width=8mm},
  fill tile image=pink_marble.png]
  (2.75,-0.75) -- (3,0) -- (2.75,0.75)
  \foreach \w in {45,90,...,315}
    { -- (\w:1.5cm) } -- cycle;
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}


\begin{dispExample*}{sbs,lefthand ratio=0.6,center lower,fonttitle=\bfseries,
  title=Image blending example}
\begin{tikzpicture}[every node/.style=
  {circle,minimum width=2cm}]
\node[fill stretch image=blueshade.png]
  (A) at (120:3cm) {A};
\node[fill stretch image=goldshade.png]
  (B) at (60:3cm) {B};
\node[
  preaction={fill stretch image=blueshade.png},
  fill stretch image=goldshade.png,
  fill image opacity=0.5] (C) {C};
\path (A) -- node{$+$} (B);
\draw[->,very thick] (A)--(C);
\draw[->,very thick] (B)--(C);
\end{tikzpicture}
\end{dispExample*}






%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage
\section{Hexagon Pattern Library}\label{sec:hexagon}%

\begin{dispListing*}{title=\tikzname\ Library |fill.hexagon|}
\usetikzlibrary{fill.hexagon} % LaTeX (primary choice) and plain TeX
\usetikzlibrary[fill.hexagon] % ConTeXt
\usepackage{tikzfill.hexagon} % LaTeX (secondary choice)
\end{dispListing*}

Based on |patterns.meta|, this library defines new hexagon patterns to fill graphs.



%-------------------------------------------------------------------------------
\subsection{Hexagon}
The \docValue{hexagon} pattern draws hexagons which may be filled or outlined.
A single pattern is one of two different \emph{bands}, called band 0 and band 1.

\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern = { hexagon
    [
      size = 5mm, angle = 15, line width = 1mm
    ]},
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}

Both bands together build a uniform combined pattern.

\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  preaction = {
    pattern = { hexagon
      [
        size = 5mm, angle = 15, line width = 1mm, band = 1
      ]},
    pattern color=blue },
  pattern = { hexagon
    [
      size = 5mm, angle = 15, line width = 1mm, band = 0
    ]},
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}

\begin{docTikzKey}{pattern hexagon}{=\marg{pattern keys}}{style, no default}
  Convenience shortcut for setting the combined pattern (in one color).

\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern hexagon =
    {
      size = 5mm, angle = 15, line width = 1mm
    },
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}

\clearpage

\begin{docPatternKey}[][doc label=size@hex]{size}{=\meta{size}}{no default, initially |8mm|}
  The given \meta{size} denotes the length of an edge of one hexagonical tile
  where the (possibly smaller) hexagon is located in.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern hexagon =
    {
      size = 5mm,
    },
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKey}



\begin{docPatternKey}[][doc label=fill@hex]{fill}{}{no value, initially set}
  Sets the hexagons to be filled. |fill| and |draw| are mutually exclusionary.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern hexagon =
    {
      fill,
    },
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKey}


\begin{docPatternKey}[][doc label=draw@hex]{draw}{}{no value, initially unset}
  Sets the hexagons to be outlined. |fill| and |draw| are mutually exclusionary.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern hexagon =
    {
      draw,
    },
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKey}


\begin{docPatternKey}[][doc label=line width@hex]{line width}{=\meta{length}}{no default, initially |0.4pt|}
  Sets the \meta{length} value of the line width.
  This is only relevant, if the hexagons are not filled.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern hexagon =
    {
      draw, line width = 1mm,
    },
  pattern color=red
  ]
(0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKey}



\begin{docPatternKeys}
  {
    {
      doc name        = xshift,
      doc parameter   = {=\meta{xshift}},
      doc description = {no default, initially |0pt|},
      doc label       = xshift@hex
    },
    {
      doc name        = yshift,
      doc parameter   = {=\meta{yshift}},
      doc description = {no default, initially |0pt|},
      doc label       = yshift@hex
    }
  }
  The pattern is shifted by \meta{xshift} and \meta{yshift}.
  \par
  Note that for \docValue*{hexagon} is valid, that a pattern is shifted first and rotated afterwards.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  preaction={pattern hexagon grid, pattern color=blue},
  pattern hexagon =
    {
      xshift=3mm, yshift=1mm,
    },
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKeys}



\begin{docPatternKey}[][doc label=angle@hex]{angle}{=\meta{angle}}{no default, initially |0|}
  The pattern is rotated by the given \meta{angle}.
  \par
  Note that for \docValue*{hexagon} is valid, that a pattern is shifted first and rotated afterwards.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern hexagon =
    {
      angle = 15,
    },
  pattern color=red
  ]
(0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKey}



\begin{docPatternKey}[][doc label=pos@hex]{pos}{=\meta{value}}{no default, initially |0.8|}
  Sets the edge position with a \meta{value} between 0 and 1, where $0$ is
  the center and $1$ the outer rim of the hexagonical tile. $1$ is a less
  efficient way to either fill the whole graph or to draw a \docValue*{hexagon grid}.

\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  preaction={ pattern hexagon={pos=0.8},
    pattern color=blue!80!red },
  preaction={ pattern hexagon={pos=0.6},
    pattern color=blue!60!red },
  preaction={ pattern hexagon={pos=0.4},
    pattern color=blue!40!red },
  pattern hexagon={pos=0.2},
    pattern color=blue!20!red,
  ]
(0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKey}


\clearpage


\begin{docPatternKey}[][doc label=band@hex]{band}{=\meta{number}}{no default, initially |0|}
  \meta{number} can take 0 or 1 and denotes one of two different bands of the pattern.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  preaction = { pattern={hexagon[band=1,draw,
      line width=1mm]},
    pattern color=blue },
  pattern={hexagon[band=0,pos=0.5]},
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKey}



\clearpage
%-------------------------------------------------------------------------------
\subsection{Hexagon Grid}
The \docValue{hexagon grid} pattern draws a grid made of hexagons. It is
a single pattern und more efficient than \docValue*{hexagon} with settings |draw,pos=1|.

\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern = { hexagon grid
    [
      size = 5mm, angle = 15, line width = 1mm
    ]},
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}


\begin{docTikzKey}{pattern hexagon grid}{=\marg{pattern keys}}{style, no default}
  Convenience shortcut for setting the pattern to \docValue{hexagon grid}:
\begin{dispListing}
  pattern = { hexagon grid [ ... ] }
\end{dispListing}
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern hexagon grid =
    {
      size = 5mm, angle = 15, line width = 1mm
    },
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}



\begin{docPatternKey}[][doc label=size@hexgrid]{size}{=\meta{size}}{no default, initially |8mm|}
  The given \meta{size} denotes the length of an edge of one hexagon.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern hexagon grid =
    {
      size = 5mm,
    },
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKey}

\clearpage


\begin{docPatternKeys}
  {
    {
      doc name        = xshift,
      doc parameter   = {=\meta{xshift}},
      doc description = {no default, initially |0pt|},
      doc label       = xshift@hexgrid
    },
    {
      doc name        = yshift,
      doc parameter   = {=\meta{yshift}},
      doc description = {no default, initially |0pt|},
      doc label       = yshift@hexgrid
    }
  }
  The pattern is shifted by \meta{xshift} and \meta{yshift}.
  \par
  Note that for \docValue*{hexagon grid} is valid, that a pattern is shifted first and rotated afterwards.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  preaction={pattern={hexagon grid}, pattern color=blue},
  pattern hexagon grid =
    {
      xshift=3mm, yshift=1mm,
    },
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKeys}


\begin{docPatternKey}[][doc label=angle@hexgrid]{angle}{=\meta{angle}}{no default, initially |0|}
  The pattern is rotated by the given \meta{angle}.
  \par
  Note that for \docValue*{hexagon grid} is valid, that a pattern is shifted first and rotated afterwards.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern hexagon grid =
    {
      angle = 15,
    },
  pattern color=red
  ]
(0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKey}



\begin{docPatternKey}[][doc label=line width@hexgrid]{line width}{=\meta{length}}{no default, initially |0.4pt|}
  Sets the \meta{length} value of the line width.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern hexagon grid =
    {
      line width = 2mm,
    },
  pattern color=red
  ]
(0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKey}


\clearpage
%-------------------------------------------------------------------------------
\subsection{Hexagon Cycle}
The \docValue{hexagon cycle} pattern draws several hexagon rings in a cyclic manor.
A single pattern is one of two different \emph{bands}, called band 0 and band 1.

\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern = { hexagon cycle
    [
      size = 5mm, angle = 15
    ]},
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}

Both bands together build a uniform combined pattern.

\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  preaction = {
    pattern = { hexagon cycle
      [
        size = 5mm, angle = 15, band = 1
      ]},
    pattern color=blue },
  pattern = { hexagon cycle
    [
      size = 5mm, angle = 15, band = 0
    ]},
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}

\begin{docTikzKey}{pattern hexagon cycle}{=\marg{pattern keys}}{style, no default}
  Convenience shortcut for setting the combined pattern (in one color).

\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern hexagon cycle =
    {
      size = 5mm, angle = 15
    },
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}

\clearpage

\begin{docPatternKey}[][doc label=size@hexcycle]{size}{=\meta{size}}{no default, initially |8mm|}
  The given \meta{size} denotes the length of an edge of one hexagonical tile
  where the (smaller) hexagons are located in.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern hexagon cycle =
    {
      size = 5mm,
    },
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKey}


\begin{docPatternKeys}
  {
    {
      doc name        = xshift,
      doc parameter   = {=\meta{xshift}},
      doc description = {no default, initially |0pt|},
      doc label       = xshift@hexcycle
    },
    {
      doc name        = yshift,
      doc parameter   = {=\meta{yshift}},
      doc description = {no default, initially |0pt|},
      doc label       = yshift@hexcycle
    }
  }
  The pattern is shifted by \meta{xshift} and \meta{yshift}.
  \par
  Note that for \docValue*{hexagon cycle} is valid, that a pattern is shifted first and rotated afterwards.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  postaction={pattern={hexagon grid}, pattern color=blue},
  pattern hexagon cycle =
    {
      xshift=3mm, yshift=1mm,
    },
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKeys}


\begin{docPatternKey}[][doc label=angle@hexcycle]{angle}{=\meta{angle}}{no default, initially |0|}
  The pattern is rotated by the given \meta{angle}.
  \par
  Note that for \docValue*{hexagon cycle} is valid, that a pattern is shifted first and rotated afterwards.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern hexagon cycle =
    {
      angle = 15,
    },
  pattern color=red
  ]
(0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKey}


\clearpage


\begin{docPatternKey}[][doc label=rings@hexcycle]{rings}{=\meta{number}}{no default, initially |3|}
  Sets the \meta{number} of rings as $0, 1, 2, 3, \ldots$

\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern hexagon cycle =
    {
      rings = 2,
    },
  pattern color=red
  ]
(0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKey}


\begin{docPatternKey}[][doc label=gap@hexcycle]{gap}{=\meta{value}}{no default, initially |1|}
  Sets the gap between two rings as \meta{value} times the line width of a ring.
  \meta{value} has to be greater or equal $0.01$.

\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern hexagon cycle =
    {
      gap = 0.5,
    },
  pattern color=red
  ]
(0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKey}


\begin{docPatternKey}[][doc label=band@hexcycle]{band}{=\meta{number}}{no default, initially |0|}
  \meta{number} can take 0 or 1 and denotes one of two different bands of the pattern.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  preaction = { pattern={hexagon cycle[
    band=1, gap=0.5 ]}, pattern color=blue },
  pattern={hexagon cycle[band=0,rings=2]},
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKey}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage
\section{Rhombus Pattern Library}\label{sec:rhombus}%

\begin{dispListing*}{title=\tikzname\ Library |fill.rhombus|}
\usetikzlibrary{fill.rhombus} % LaTeX (primary choice) and plain TeX
\usetikzlibrary[fill.rhombus] % ConTeXt
\usepackage{tikzfill.rhombus} % LaTeX (secondary choice)
\end{dispListing*}

Based on |patterns.meta|, this library defines new rhombus patterns to fill graphs.

%-------------------------------------------------------------------------------
\subsection{Rhombus}
The \docValue{rhombus} pattern draws rhombi or diamonds. The rhombi may be
filled or outlined and can be arranged in different \emph{bands}, called band 0, band 1, and band 2.

\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern = { rhombus
    [
      size = 8mm, angle = 15
    ]},
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}


\begin{docTikzKey}{pattern rhombus}{=\marg{pattern keys}}{style, no default}
  Convenience shortcut for setting the pattern to \docValue{rhombus}:
\begin{dispListing}
  pattern = { rhombus [ ... ] }
\end{dispListing}
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern rhombus =
    {
      size = 8mm, angle = 15
    },
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKey}


\begin{docPatternKey}[][doc label=size@rhombus]{size}{=\meta{size}}{no default, initially |10mm|}
  The given \meta{size} denotes the length of an edge of one rhombical tile
  where the (possibly smaller) rhombus is located in.

\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern rhombus =
    {
      size = 5mm,
    },
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKey}

\clearpage

\begin{docPatternKey}[][doc label=fill@rhombus]{fill}{}{no value, initially set}
  Sets the rhombi to be filled. |fill| and |draw| are mutually exclusionary.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern rhombus =
    {
      fill,
    },
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKey}


\begin{docPatternKey}[][doc label=draw@rhombus]{draw}{}{no value, initially unset}
  Sets the rhombi to be outlined. |fill| and |draw| are mutually exclusionary.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern rhombus =
    {
      draw,
    },
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKey}


\begin{docPatternKey}[][doc label=line width@rhombus]{line width}{=\meta{length}}{no default, initially |0.4pt|}
  Sets the \meta{length} value of the line width. This is only relevant, if
  the rhombi are not filled.

\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern rhombus =
    {
      line width = 1mm, draw
    },
  pattern color=red
  ]
(0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKey}


\begin{docPatternKey}[][doc label=angle@rhombus]{angle}{=\meta{angle}}{no default, initially |-40|}
  The pattern is rotated by the given \meta{angle}.
  \par
  Note that for \docValue*{rhombus} is valid, that a pattern is rotated first and shifted afterwards.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern rhombus =
    {
      angle = 15,
    },
  pattern color=red
  ]
(0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKey}

\clearpage

\begin{docPatternKeys}
  {
    {
      doc name        = xshift,
      doc parameter   = {=\meta{xshift}},
      doc description = {no default, initially |0pt|},
      doc label       = xshift@rhombus
    },
    {
      doc name        = yshift,
      doc parameter   = {=\meta{yshift}},
      doc description = {no default, initially |0pt|},
      doc label       = yshift@rhombus
    }
  }
  The pattern is shifted by \meta{xshift} and \meta{yshift}.
  \par
  Note that for \docValue*{rhombus} is valid, that a pattern is rotated first and shifted afterwards.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  preaction={pattern rhombus, pattern color=blue},
  pattern rhombus =
    {
      xshift=3mm, yshift=1mm,
    },
  pattern color=red
  ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKeys}



\begin{docPatternKey}[][doc label=ratio@rhombus]{ratio}{=\meta{value}}{no default, initially |2|}
  Sets the \meta{value} of the ratio
  between the longer diagonal and the shorter diagonal.
  Therefore, $\text{\meta{value}}\ge 1$.

\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  pattern rhombus =
    {
      ratio = 4
    },
  pattern color=red
  ]
(0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKey}



\begin{docPatternKey}[][doc label=pos@rhombus]{pos}{=\meta{value}}{no default, initially |1|}
  Sets the edge position with a \meta{value} between 0 and 1, where $0$ is
  the center and $1$ the outer rim of the rhombical tile.

\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  preaction={ pattern rhombus={pos=1},
    pattern color=blue },
  preaction={ pattern rhombus={pos=0.8},
    pattern color=blue!80!red },
  preaction={ pattern rhombus={pos=0.6},
    pattern color=blue!60!red },
  preaction={ pattern rhombus={pos=0.4},
    pattern color=blue!40!red },
  pattern rhombus={pos=0.2},
    pattern color=blue!20!red,
  ]
(0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKey}

\clearpage


\begin{docPatternKey}[][doc label=band@rhombus]{band}{=\meta{number}}{no default, initially |0|}
  \meta{number} can take 0, 1, or 2.
  Here, 0 and 1 denote one of two different bands of the pattern,
  while 2 denotes the combination of both.
\begin{dispExample*}{sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}
\begin{tikzpicture}
\draw[
  preaction = {
    pattern rhombus = {
      pos = 0.8, band = 0 },
    pattern color=red },
  pattern rhombus = {
      pos = 0.8, band = 1
    },
  pattern color=blue
  ] (0,0) rectangle (4,4);
\end{tikzpicture}

\begin{tikzpicture}
\draw[
  pattern rhombus = {
      pos = 0.8, band = 2
    },
  pattern color=red
  ] (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docPatternKey}


\end{myvoid}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage
\section{Geometric Array Library}\label{sec:geomarray}%

\begin{dispListing*}{title=\tikzname\ Library |fill.geomarray|}
\usetikzlibrary{fill.geomarray} % LaTeX (primary choice) and plain TeX
\usetikzlibrary[fill.geomarray] % ConTeXt
\usepackage{tikzfill.geomarray} % LaTeX (secondary choice)
\end{dispListing*}

The fillings provided by this library consist of similar, though not necessarily
identical, small pictures arranged on a grid. These pictures are conceptually
similar to \tikzname\ pic objects and are referred to as \enquote{items} in the
following. Unlike \tikzname\ tiling patterns, which are fixed in form, these
pictures \emph{may} vary. Note that this flexibility comes at the cost of
increased compilation time.

Since \tikzname\ already uses terms such as grid and pattern, we refer to such a
pattern-like grid of pic-like objects as a \enquote{geometric array} of
\enquote{items}.

Each geometric array consists of rows and columns of items arranged in either a
rectangular or triangular grid. Built-in support is provided for scaling items
from row to row, enabling fading-like effects.

The most common use case is to employ a predefined template (see
Section~\ref{sec:gea-templates}) and adjust its geometry and colors.

\tcbset{gea-example/.style={sbs,lefthand ratio=0.66,right=2mm,sidebyside gap=5mm,center lower}}

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[ fill gea Edenland = {
  scale fixed = 1,
  step equi = 10mm,
  init-row< = \TFRowColorLet{mycolor}{red}{blue},
  prime color 1 = mycolor,
  freeze-row,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}


%-------------------------------------------------------------------------------
\subsection{Base Settings}

\begin{docTikzKeys}
  {
    {
      doc name        = fill geomarray,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-18,
    }
  }
  Applies a \tikzname\ |path picture| with geometric array settings
  customized by varios \meta{options} to the current
  path. Without additional settings, this produces a default filling. Templates
  from Section~\ref{sec:gea-templates} apply \refKey{/tikz/fill geomarray}.\par
  Note that the following keys are reset by this key:
  \refKey{/tikz/geomarray/init},
  \refKey{/tikz/geomarray/init-row},\\
  \refKey{/tikz/geomarray/init-item}, and
  \refKey{/tikz/geomarray/draw-item}.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[ fill geomarray ]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}


\clearpage

\begin{docGeaKeys}
  {
    {
      doc name         = triangular,
      doc key choices* = {true,false},
      doc description  = {default \texttt{true}, initially \texttt{false}},
      doc new          = 2026-03-18,
    }
  }
  Geometric arrays can be either rectangular or triangular grids. Triangular
  grids shift every second row by half of a horizontal step.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill geomarray = { triangular },
]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docGeaKeys}


\begin{docGeaKeys}
  {
    {
      doc name        = xstep,
      doc parameter   = {=\marg{length}},
      doc description = {initially |10mm|},
      doc new         = 2026-03-18,
    }
  }
  Sets the horizontal step distance between two columns to \meta{length}.
  This value can be used read-only as \docAuxCommand{l_tikzfill_gea_xstep_dim}
  for item drawing.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill geomarray = { xstep = 7mm },
]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docGeaKeys}


\begin{docGeaKeys}
  {
    {
      doc name        = ystep,
      doc parameter   = {=\marg{length}},
      doc description = {initially |10mm|},
      doc new         = 2026-03-18,
    }
  }
  Sets the vertical step distance between two rows to \meta{length}.
  This value can be used read-only as \docAuxCommand{l_tikzfill_gea_ystep_dim}
  for item drawing.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill geomarray = { ystep = 7mm },
]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docGeaKeys}


\clearpage
\begin{docGeaKeys}
  {
    {
      doc name        = step,
      doc parameter   = {=\marg{length}},
      doc description = {style},
      doc new         = 2026-03-20,
    }
  }
  Sets both \refKey{/tikz/geomarray/xstep} and \refKey{/tikz/geomarray/ystep}
  to \meta{length}.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill geomarray = { step = 7mm },
]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docGeaKeys}


\begin{docGeaKeys}
  {
    {
      doc name        = step half,
      doc parameter   = {=\marg{length}},
      doc description = {style},
      doc new         = 2026-03-23,
    }
  }
  Sets \refKey{/tikz/geomarray/xstep} to \meta{length} and \refKey{/tikz/geomarray/ystep}
  to half of \meta{length}.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill geomarray = { step half = 10mm },
]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docGeaKeys}


\begin{docGeaKeys}
  {
    {
      doc name        = step double,
      doc parameter   = {=\marg{length}},
      doc description = {style},
      doc new         = 2026-03-23,
    }
  }
  Sets \refKey{/tikz/geomarray/xstep} to \meta{length} and \refKey{/tikz/geomarray/ystep}
  to double of \meta{length}.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill geomarray = { step double = 7mm },
]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docGeaKeys}


\clearpage
\begin{docGeaKeys}
  [
      doc description = {style, no value},
  ]
  {
    {
      doc name        = ystep equidistance,
      doc new         = 2026-03-18,
    },
    {
      doc name        = ystep equidistance*,
      doc new         = 2026-03-25,
    }
  }
  For rectangular geometric arrays, this sets \refKey{/tikz/geomarray/ystep}
  to \refKey{/tikz/geomarray/xstep}. For triangular geometric arrays,
  \refKey{/tikz/geomarray/ystep} is set such that the centers of the items
  become equidistant. Note that \refKey{/tikz/geomarray/triangular} has
  to be set beforehand.\par
  \refKey{/tikz/geomarray/ystep equidistance*} switches
  rectangular and triangular computation.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Furth = {
    triangular,
    xstep = 7mm,
    ystep equidistance,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docGeaKeys}


\begin{docGeaKeys}
  [
      doc parameter   = {=\marg{length}},
      doc description = {style},
  ]
  {
    {
      doc name        = step equi,
      doc new         = 2026-03-20,
    },
    {
      doc name        = step equi*,
      doc new         = 2026-03-25,
    }
  }
  Sets \refKey{/tikz/geomarray/xstep} to \meta{length}
  and applies \refKey{/tikz/geomarray/ystep equidistance}
  or \refKey{/tikz/geomarray/ystep equidistance*}, respectively.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Bruckberg = { step equi = 7mm },
]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docGeaKeys}


\begin{docGeaKeys}
  [
      doc parameter   = {=\marg{length}},
      doc description = {style},
  ]
  {
    {
      doc name        = step equi half,
      doc new         = 2026-03-23,
    },
    {
      doc name        = step equi* half,
      doc new         = 2026-03-23,
    }
  }
  Sets \refKey{/tikz/geomarray/xstep} to \meta{length}
  and applies \refKey{/tikz/geomarray/ystep equidistance}
  or \refKey{/tikz/geomarray/ystep equidistance*}, respectively,
  but halve ystep.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Bruckberg = { step equi half = 10mm },
]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docGeaKeys}


\clearpage
\begin{docGeaKeys}
  [
      doc parameter   = {=\marg{length}},
      doc description = {style},
  ]
  {
    {
      doc name        = step equi double,
      doc new         = 2026-03-23,
    },
    {
      doc name        = step equi* double,
      doc new         = 2026-03-23,
    }
  }
  Sets \refKey{/tikz/geomarray/xstep} to \meta{length}
  and applies \refKey{/tikz/geomarray/ystep equidistance}
  or \refKey{/tikz/geomarray/ystep equidistance*}, respectively,
  but double ystep.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Bruckberg = { step equi double = 7mm },
]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docGeaKeys}


\begin{docGeaKeys}
  {
    {
      doc name        = angle,
      doc parameter   = {=\marg{angle}},
      doc description = {initially |0|},
      doc new         = 2026-03-18,
    }
  }
  Rotates the whole geometric array by \meta{angle}.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill geomarray = { angle = 20 },
]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docGeaKeys}


\clearpage
\begin{docGeaKeys}
  {
    {
      doc name        = scale,
      doc parameter   = {=\marg{data points}},
      doc description = {initially |0/0.9,1/0.9|},
      doc new         = 2026-03-18,
    }
  }
Defines a comma-separated list of interpolation \meta{data points} of type
\emph{t}|/|\emph{scale}. The $t$ values must be strictly monotonically
increasing from 0 to 1 (including both endpoints). They represent relative row
positions.\par
The \emph{scale} values are piecewise linearly interpolated and specify the actual scale
of an item in a given row, where $1$ typically denotes full scale (though not
necessarily).\par
During item drawing, \docAuxCommand{l_tikzfill_gea_row_frac_fp} represents the
current relative row position, while \docAuxCommand{l_tikzfill_gea_scale_fp}
represents the interpolated scale value according to the specified interpolation
\meta{data points}.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill geomarray = {
    step equi = 5mm,
    scale = {0/0.5,0.5/0.2,1/1},
  },
]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docGeaKeys}


\begin{docGeaKeys}
  {
    {
      doc name        = scale linear,
      doc parameter   = {=\marg{scale0}\marg{scale1}},
      doc description = {initially \texttt{\textbraceleft 0.9\textbraceright\textbraceleft 0.9\textbraceright}},
      doc new         = 2026-03-23,
    }
  }
  This is a shortcut for setting
  \refKey{/tikz/geomarray/scale}|={0/|\meta{scale0}|,1/|\meta{scale1}|}|,
  i.e. the scale changes linearly from \meta{scale0} to \meta{scale1}
  from the first to the last row of the geometric array.
\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill geomarray = {
    scale linear = {0.2}{0.9},
  },
]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docGeaKeys}



\begin{docGeaKeys}
  {
    {
      doc name        = scale fixed,
      doc parameter   = {=\marg{scale}},
      doc description = {initially |0.9|},
      doc new         = 2026-03-18,
    }
  }
  This is a shortcut for setting
  \refKey{/tikz/geomarray/scale}|={0/|\meta{scale}|,1/|\meta{scale}|}|,
  i.e. a fixed \meta{scale} is used for all rows of the geometric array.
\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill geomarray = { scale fixed = 0.5 },
]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docGeaKeys}

\clearpage

\begin{docGeaKeys}
  [
      doc key choices* = {true,false},
      doc description  = {default \texttt{true}, initially \texttt{false}},
  ]
  {
    {
      doc name        = xflip,
      doc new         = 2026-04-14,
    },
    {
      doc name        = xflip even,
    },
    {
      doc name        = xflip odd,
    }
  }
  For drawing an item in the geometric array, the $x$-value of all coordinates is
  multiplied by $-1$, resulting in a reflection across the $y$-axis. This can be
  applied to all items or restricted to items in even or odd rows.
\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Hohenthann = {
    scale fixed = 1,
    step equi* double = 10mm,
    style 1 = {draw=white, fill=blue},
    text<={\color{yellow}RL},
    xflip odd,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docGeaKeys}


\begin{docGeaKeys}
  [
      doc key choices* = {true,false},
      doc description  = {default \texttt{true}, initially \texttt{false}},
  ]
  {
    {
      doc name        = yflip,
      doc new         = 2026-04-14,
    },
    {
      doc name        = yflip even,
    },
    {
      doc name        = yflip odd,
    }
  }
  For drawing an item in the geometric array, the $y$-value of all coordinates is
  multiplied by $-1$, resulting in a reflection across the $x$-axis. This can be
  applied to all items or restricted to items in even or odd rows.
\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Pfettrach = {
    step half = 15mm,
    style 1 = { fill = red!40 },
    style 2 = { fill = red },
    text<={\color{yellow}RL},
    yflip even,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docGeaKeys}

\clearpage


%-------------------------------------------------------------------------------
\subsection{Custom Creation of Geometric Arrays}

The following pseudocode illustrates how a geometric array is constructed,
including four hook positions for inserting custom code.

\begin{dispListing*}{title=Pseudo code for geometric array creation}
init                    % (1) initialize before looping
                        %     Usable values:
                        %     \l_tikzfill_gea_xstep_dim   \l_tikzfill_gea_ystep_dim
                        %     \l_tikzfill_gea_cols_in     \l_tikzfill_gea_rows_int
\loop_over_rows
  {
    init-row            % (2) initialize at begin of a row
                        %     Usable values:
                        %     \l_tikzfill_gea_row_tl
                        %     \l_tikzfill_gea_row_frac_fp \l_tikzfill_gea_scale_fp
    \loop_over_columns
      {
        init-item       % (3) initialize before drawing an item
                        %     Usable values:
                        %     \l_tikzfill_gea_col_tl
        draw-item       % (4) item drawing code
      }
  }
\end{dispListing*}

Code can be inserted at these four positions using the following options:
\begin{itemize}
\item
  The most important position is the last one, addressed by
  \refKey{/tikz/geomarray/draw-item}. Here, the actual \tikzname\ drawing code for
  the item must be provided.
\item
  The first three positions, addressed by
  \refKey{/tikz/geomarray/init},\\
  \refKey{/tikz/geomarray/init-row}, and \refKey{/tikz/geomarray/init-item},
  may contain optional initialization code to prepare for subsequent drawing.
  No \tikzname\ drawing code should be placed here; instead, these positions are
  intended, for example, for calculations affecting the entire array or a single
  row.
\item
  In addition to providing fully custom code, a practical and convenient approach
  is to apply a template (see Section~\ref{sec:gea-templates}) and adjust only
  selected settings at one of the four positions.
\end{itemize}


\begin{docGeaKeys}
  [
      doc parameter   = {=\marg{code}},
  ]
  {
    {
      doc name        = init,
      doc description = {initially empty},
      doc new         = 2026-03-18,
    },
    {
      doc name        = init<,
    },
    {
      doc name        = init>,
    },
  }
  This code position is executed before the loop over rows begins. The following
  read-only values are available: the grid step sizes
  \docAuxCommand{l_tikzfill_gea_xstep_dim} and
  \docAuxCommand{l_tikzfill_gea_ystep_dim}, as well as the number of columns and
  rows given by \docAuxCommand{l_tikzfill_gea_cols_int} and
  \docAuxCommand{l_tikzfill_gea_rows_int} (the actual counts are one greater,
  since indexing starts at $0$).
  \begin{itemize}
  \item \refKey{/tikz/geomarray/init}  replaces the contents by \meta{code}.
  \item \refKey{/tikz/geomarray/init<} appends \meta{code}.
  \item \refKey{/tikz/geomarray/init>} prepends \meta{code}.
  \end{itemize}
\end{docGeaKeys}


\clearpage
\begin{docGeaKeys}
  [
      doc parameter   = {=\marg{code}},
  ]
  {
    {
      doc name        = init-row,
      doc description = {initially empty},
      doc new         = 2026-03-18,
    },
    {
      doc name        = init-row<,
    },
    {
      doc name        = init-row>,
    },
  }
  This code position is inside the main loop over rows, at the beginning of row
  \docAuxCommand{l_tikzfill_gea_row_tl}. Here,
  \docAuxCommand{l_tikzfill_gea_row_frac_fp} denotes the relative row position as
  a fractional value between $0$ and $1$. The macro
  \docAuxCommand{l_tikzfill_gea_scale_fp} represents the current scale value for
  the row, as defined by \refKey{/tikz/geomarray/scale}.
  \begin{itemize}
  \item \refKey{/tikz/geomarray/init-row}  replaces the contents by \meta{code}.
  \item \refKey{/tikz/geomarray/init-row<} appends \meta{code}.
  \item \refKey{/tikz/geomarray/init-row>} prepends \meta{code}.
  \end{itemize}
\end{docGeaKeys}


\begin{docGeaKeys}
  [
      doc parameter   = {=\marg{code}},
  ]
  {
    {
      doc name        = init-item,
      doc description = {initially empty},
      doc new         = 2026-03-18,
    },
    {
      doc name        = init-item<,
    },
    {
      doc name        = init-item>,
    },
  }
  This code position is inside the inner loop over columns, at the beginning of
  column \docAuxCommand{l_tikzfill_gea_col_tl}. Here, final calculations or
  settings may be applied before the current item is drawn.
  \begin{itemize}
  \item \refKey{/tikz/geomarray/init-item}  replaces the contents by \meta{code}.
  \item \refKey{/tikz/geomarray/init-item<} appends \meta{code}.
  \item \refKey{/tikz/geomarray/init-item>} prepends \meta{code}.
  \end{itemize}
\end{docGeaKeys}


\begin{docKeys}
  [
      doc parameter   = {=\marg{code}},
      doc keypath     = tikz/geomarray,
  ]
  {
    {
      doc name        = draw-item,
      doc description = {initially special},
      doc new         = 2026-03-18,
    },
    {
      doc name        = draw-item<,
    },
    {
      doc name        = draw-item>,
    },
  }
  This code position contains the \tikzname\ drawing code for the current item.
  All previously mentioned read-only values are available for use in drawing. The
  center of the item corresponds to the \tikzname\ position $(0,0)$. The style
  settings
  \docAuxKey[tikz]{fill-gea-style-1} to
  \docAuxKey[tikz]{fill-gea-style-9} may be used as drawing options.
  \begin{itemize}
  \item \refKey{/tikz/geomarray/draw-item}  replaces the contents by \meta{code}.
  \item \refKey{/tikz/geomarray/draw-item<} appends \meta{code}.
  \item \refKey{/tikz/geomarray/draw-item>} prepends \meta{code}.
  \end{itemize}
\end{docKeys}


\begin{dispExample*}{gea-example}
\ExplSyntaxOn
\begin{tikzpicture}
\draw[ fill~geomarray = {
  scale~fixed = 1.3,
  triangular,
  ystep = 7mm,
  init  = \sys_gset_rand_seed:n {1701},
  init-item = { \TFDefineRandomColor{mycolor} },
  draw-item = {
    \path[fill=mycolor,draw=mycolor!50!black]
    circle [
      x~radius=\fp_to_dim:n {\l_tikzfill_gea_xstep_dim / 2
                  * \l_tikzfill_gea_scale_fp },
      y~radius=\fp_to_dim:n {\l_tikzfill_gea_ystep_dim / 2
                  * \l_tikzfill_gea_scale_fp },
    ];
  },
}]
  (0,0) rectangle (4,6);
\end{tikzpicture}
\ExplSyntaxOff
\end{dispExample*}


\clearpage

\begin{docKeys}
  {
    {
      doc name        = draw-if-row-col,
      doc parameter   = {=\marg{coordinate list}},
      doc keypath     = tikz/geomarray,
      doc description = {initially unset},
      doc new         = 2026-04-17,
    },
  }
  Restricts item drawing to those items whose coordinates are contained in the
  specified comma-separated \meta{coordinate list} of type \meta{row}/\meta{col}.
  The keys \refKey{/tikz/geomarray/init<} and \refKey{/tikz/geomarray/init-item<}
  are used to append the corresponding code.
\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
\begin{tikzpicture}
\draw[
  preaction = {
    fill gea Bruckberg = {
      scale fixed = 1, step equi = 7mm,
      style 1     = { draw = oc-gray-1 },
      freeze-row,
      },
  },
  fill gea Bruckberg = {
    scale fixed = 1, step equi = 7mm,
    style 1 = {
      draw         = oc-blue-9,
      top color    = oc-blue-2,
      bottom color = oc-blue-4  },
    debug text,
    draw-if-row-col = { 4/5, 3/1, 3/4, 6/2 },
}]
  (0,0) rectangle (4,6);
\end{tikzpicture}
\end{dispExample*}
\end{docKeys}


\begin{docKeys}
  {
    {
      doc name        = draw-if-not-row-col,
      doc parameter   = {=\marg{coordinate list}},
      doc keypath     = tikz/geomarray,
      doc description = {initially unset},
      doc new         = 2026-04-20,
    },
  }
  Restricts item drawing to those items whose coordinates are not contained in the
  specified comma-separated \meta{coordinate list} of type \meta{row}/\meta{col}.
  The keys \refKey{/tikz/geomarray/init<} and \refKey{/tikz/geomarray/init-item<}
  are used to append the corresponding code.
\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
\begin{tikzpicture}
\draw[
  preaction = { fill = oc-teal-1 },
  fill gea Pfettrach = {
    scale fixed = 0.96, step half = 10mm,
    style 1 = { fill = oc-teal-2 },
    style 2 = { fill = oc-teal-4 },
    draw-if-not-row-col = { 4/3, 4/4, 5/3, 10/2 },
    freeze-row,
  }
]
  (0,0) rectangle (4,6);
\node at (1,5) {Hello};
\node at (2.5,2.2) {World};
\end{tikzpicture}
\end{dispExample*}
\end{docKeys}


\clearpage

\begin{docKeys}
  [
      doc keypath     = tikz/geomarray,
      doc description = {initially unset},
  ]
  {
    {
      doc name        = draw-if-row,
      doc parameter   = {=\marg{row list}},
      doc new         = 2026-04-21,
    },
    {
      doc name        = draw-if-not-row,
      doc parameter   = {=\marg{row list}},
    },
    {
      doc name        = draw-if-even-row,
    },
    {
      doc name        = draw-if-odd-row,
    },
  }
  Restricts item drawing to those items whose rows are
  \begin{itemize}
  \item contained in the specified comma-separated \meta{row list},
  \item not contained in the specified comma-separated \meta{row list},
  \item even,
  \item odd, respectively.
  \end{itemize}
  The keys \refKey{/tikz/geomarray/init<} and \refKey{/tikz/geomarray/init-row<}
  are used to append the corresponding code.
\end{docKeys}


\begin{docKeys}
  [
      doc keypath     = tikz/geomarray,
      doc description = {initially unset},
  ]
  {
    {
      doc name        = draw-if-col,
      doc parameter   = {=\marg{column list}},
      doc new         = 2026-04-21,
    },
    {
      doc name        = draw-if-not-col,
      doc parameter   = {=\marg{column list}},
    },
    {
      doc name        = draw-if-even-col,
    },
    {
      doc name        = draw-if-odd-col,
    },
  }
  Restricts item drawing to those items whose columns are
  \begin{itemize}
  \item contained in the specified comma-separated \meta{column list},
  \item not contained in the specified comma-separated \meta{column list},
  \item even,
  \item odd, respectively.
  \end{itemize}
  The keys \refKey{/tikz/geomarray/init<} and \refKey{/tikz/geomarray/init-item<}
  are used to append the corresponding code.
\end{docKeys}




\begin{docKeys}
  {
    {
      doc name        = draw-if-random,
      doc parameter   = {=\meta{probability}},
      doc keypath     = tikz/geomarray,
      doc description = {initially unset},
      doc new         = 2026-04-17,
    },
  }
  Restricts item drawing to random items with given
  \mbox{\meta{probability}$\in[0,1]$}.
  The keys \refKey{/tikz/geomarray/init<} and \refKey{/tikz/geomarray/init-item<}
  are used to append the corresponding code.
\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
\begin{tikzpicture}
\ExplSyntaxOn
\sys_gset_rand_seed:n {1701}
\ExplSyntaxOff
\draw[
  preaction = {
    fill gea Bruckberg = {
      scale fixed = 1, step equi = 7mm,
      style 1     = { draw = oc-gray-1 },
      freeze-row,
      },
  },
  fill gea Bruckberg = {
    scale fixed = 1, step equi = 7mm,
    style 1 = {
      draw         = oc-lime-9,
      top color    = oc-lime-2,
      bottom color = oc-lime-4  },
    debug text,
    draw-if-random = 0.33,
}]
  (0,0) rectangle (4,6);
\end{tikzpicture}
\end{dispExample*}
\end{docKeys}



\clearpage

\begin{docGeaKeys}
  [
      doc parameter   = {=\marg{options}\marg{text}},
  ]
  {
    {
      doc name        = node,
      doc new         = 2026-03-26,
    },
    {
      doc name        = node<,
    },
    {
      doc name        = node>,
    },
  }
  This is a shortcut for drawing a \tikzname\ |node| applying
  \refKey{/tikz/geomarray/draw-item},
  \refKey{/tikz/geomarray/draw-item<}, or
  \refKey{/tikz/geomarray/draw-item>}, respectively.
  The node contents are set by \meta{text} and any \tikzname\ \meta{options}
  for the node can be applied.
\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill geomarray =
    {
      node< = {white,draw=yellow,circle}{X}
    },
]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docGeaKeys}



\begin{docGeaKeys}
  [
      doc parameter   = {=\marg{text}},
  ]
  {
    {
      doc name        = text,
      doc new         = 2026-03-26,
    },
    {
      doc name        = text<,
    },
    {
      doc name        = text>,
    },
  }
  This is a shortcut for setting \meta{text} with |\pgftext| applying
  \refKey{/tikz/geomarray/draw-item},
  \refKey{/tikz/geomarray/draw-item<}, or
  \refKey{/tikz/geomarray/draw-item>}, respectively.
  In contrast to \refKey{/tikz/geomarray/node}, there are no drawing options, but
  \refKey{/tikz/geomarray/text} is much faster.
\begin{dispExample*}{gea-example}
% \usepackage{fontawesome7}
\begin{tikzpicture}
\draw[
  preaction = {top color=yellow!20,bottom color=yellow},
  fill geomarray =
    {
      triangular,
      text = {\Huge\color{red}\faTriangleExclamation},
      angle = 20,
    },
]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docGeaKeys}

\clearpage

\begin{docKeys}
  [
      doc parameter   = {=\marg{path style}},
      doc keypath     = tikz/geomarray,
  ]
  {
    {
      doc name        = style 1,
      doc description = {initially |fill=red|},
      doc new and updated = {2026-03-18}{2026-04-14},
    },
    {
      doc name        = style 2,
      doc description = {initially |fill=green|},
    },
    {
      doc name        = style 3,
      doc description = {initially |fill=blue|},
    },
    {
      doc name        = style 4,
      doc description = {initially |fill=cyan|},
    },
    {
      doc name        = style 5,
      doc description = {initially |fill=magenta|},
    },
    {
      doc name        = style 6,
      doc description = {initially |fill=yellow|},
    },
    {
      doc name        = style 7,
      doc description = {initially |fill=lightgray|},
    },
    {
      doc name        = style 8,
      doc description = {initially |fill=orange|},
    },
    {
      doc name        = style 9,
      doc description = {initially |fill=purple|},
    },
    {
      doc name        = style 10,
      doc description = {initially |fill=lime|},
    },
    {
      doc name        = style 11,
      doc description = {initially |fill=olive|},
    },
    {
      doc name        = style 12,
      doc description = {initially |fill=pink|},
    },
    {
      doc name        = style 13,
      doc description = {initially |fill=teal|},
    },
    {
      doc name        = style 14,
      doc description = {initially |fill=violet|},
    },
    {
      doc name        = style base,
      doc description = {initially empty},
    },
  }
  These convenience options generate styles named\\
  \docAuxKey[tikz]{fill-gea-style-1}, \docAuxKey[tikz]{fill-gea-style-2},\\
  \docAuxKey[tikz]{fill-gea-style-3}, \docAuxKey[tikz]{fill-gea-style-4},\\
  \docAuxKey[tikz]{fill-gea-style-5}, \docAuxKey[tikz]{fill-gea-style-6},\\
  \docAuxKey[tikz]{fill-gea-style-7}, \docAuxKey[tikz]{fill-gea-style-8},\\
  \docAuxKey[tikz]{fill-gea-style-9}, \docAuxKey[tikz]{fill-gea-style-10},\\
  \docAuxKey[tikz]{fill-gea-style-11}, \docAuxKey[tikz]{fill-gea-style-12},\\
  \docAuxKey[tikz]{fill-gea-style-13}, \docAuxKey[tikz]{fill-gea-style-14},\\
  and \docAuxKey[tikz]{fill-gea-style-base}.\\
  Styles of this kind are used within templates (see
  Section~\ref{sec:gea-templates}) for drawing. The style
  \docAuxKey[tikz]{fill-gea-style-1} is also used in the default configuration.
  Modifying these styles is the simplest way to customize the appearance.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[ fill gea Bruckberg =
  {
    style 1 =
      {
        draw         = gray,
        top color    = blue!50,
        bottom color = red
      },
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docKeys}


\begin{docKeys}
  [
      doc parameter   = {=\meta{color}},
      doc keypath     = tikz/geomarray,
  ]
  {
    {
      doc name        = prime color 1,
      doc description = {initially |red|},
      doc new         = {2026-04-14},
    },
    {
      doc name        = prime color 2,
      doc description = {initially |blue|},
    },
  }
  These convenience options assign the specified \meta{color} to the L3 token
  lists \docAuxCommand{l_tikzfill_gea_prime_col_i_tl} and
  \docAuxCommand{l_tikzfill_gea_prime_col_ii_tl}. The \meta{color} must be a valid
  |xcolor| color expression.\\
  Some templates (e.g. \refKey{/tikz/fill gea Marktstauden})
  use these settings for drawing.
\end{docKeys}



\begin{docKeys}
  {
    {
      doc name        = ratio,
      doc parameter   = {=\meta{fp expr}},
      doc keypath     = tikz/geomarray,
      doc description = {initially |1|},
      doc new         = {2026-04-14},
    }
  }
  This convenience option assigns the evaluated floating point expression \meta{fp expr} to the L3 token
  list \docAuxCommand{l_tikzfill_gea_ratio_tl}.\\
  Some templates (e.g. \refKey{/tikz/fill gea Niederhatzkofen})
  use this setting for drawing.
\end{docKeys}



\clearpage
\begin{docGeaKeys}
  {
    {
      doc name        = debug text,
      doc parameter   = {\colOpt{=\meta{color}}},
      doc description = {default |black|, initially |black|},
      doc new         = 2026-03-18,
    },
    {
      doc name        = debug node,
      doc parameter   = {\colOpt{=\marg{options}}},
      doc description = {default |black|, initially |black|},
      doc new         = 2026-04-14,
    }
  }
  Prints the row and column numbers in the specified \meta{color}
  or with the specified \meta{options}. Note that this
  option appends drawing code; therefore, it should be specified after other
  drawing settings. It is intended for debugging or for identifying a specific
  item.\par
  During item drawing, the following values are available (read-only):
  \begin{itemize}
  \item \docAuxCommand{l_tikzfill_gea_rows_int}: total number of rows minus one.
  \item \docAuxCommand{l_tikzfill_gea_cols_int}: total number of columns minus one.
  \item \docAuxCommand{l_tikzfill_gea_row_tl}: current row index, with\\
  $0\le$\docAuxCommand{l_tikzfill_gea_row_tl}$\le$\docAuxCommand{l_tikzfill_gea_rows_int}.
  \item \docAuxCommand{l_tikzfill_gea_col_tl}: current column index, with\\
  $0\le$\docAuxCommand{l_tikzfill_gea_col_tl}$\le$\docAuxCommand{l_tikzfill_gea_cols_int}.
  \end{itemize}
  \refKey{/tikz/geomarray/debug text} displays the current pair consisting of
  \docAuxCommand{l_tikzfill_gea_row_tl} and \docAuxCommand{l_tikzfill_gea_col_tl}.\par
  Note that at least the first and last row or column may lie partially or entirely
  outside the clipping area.\par
  \refKey{/tikz/geomarray/debug text} is based on \refKey{/tikz/geomarray/text<},
  while
  \refKey{/tikz/geomarray/debug node} is based on \refKey{/tikz/geomarray/node<}.
\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill geomarray = { debug text },
]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docGeaKeys}


\begin{docGeaKeys}
  {
    {
      doc name        = freeze-row,
      doc description = {experimental},
      doc new         = 2026-03-18,
    }
  }
This is an experimental compile-time optimization for geometric arrays in which
each row contains uniform items. For each row, an item is drawn only once into a
box (\enquote{frozen}), and this box is then copied to fill the row.\par
Depending on the complexity of the graphical code, this can reduce compilation
time. However, note the restriction that all items within a row must be uniform.
Also note that applying \refKey{/tikz/geomarray/freeze-row} may shift the
geometric array if the center of an item's enclosing box is not identical to its
origin.
\end{docGeaKeys}



\clearpage
%-------------------------------------------------------------------------------
\subsection{Auxiliary Macros}

\begin{docCommands}
  {
    {
      doc name      = TFRowColorLet,
      doc parameter = \marg{name}\marg{color1}\marg{color2},
      doc new       = 2026-03-18,
    }
  }
  Creates a new color with given \meta{name} which mixes the colors
  \meta{color1} and \meta{color2}. On the first row, \meta{color1} is used,
  on the last row \meta{color2}, and a linear mixture in between.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Bruckberg = {
    init-row< =
      \TFRowColorLet{mycolor}{red}{blue!50!white},
    style 1 = {draw=gray, fill=mycolor},
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docCommands}



\begin{docCommands}
  {
    {
      doc name      = TFRowColorLetSeq,
      doc parameter = \marg{name}\marg{comma-list},
      doc new       = 2026-03-18,
    }
  }
  Creates a new color with given \meta{name} which mixes the colors
  given by the \meta{comma-list} from the
  first row (first color) to the last row (last color)
  and a linear mixture in between.

\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
\begin{tikzpicture}
\draw[
  fill gea Essenbach = {
    init-row< = \TFRowColorLetSeq{mycolor}
      {oc-red-6,oc-blue-6,oc-green-6,oc-yellow-6},
    style 1   = {fill=mycolor},
    step equi = 5mm,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docCommands}


\begin{docCommands}
  {
    {
      doc name      = TFDefineRandomColor,
      doc parameter = \marg{name},
      doc new       = 2026-03-18,
    }
  }
  Defines a random color with given \meta{name}. Random numbers are taken
  from the L3 programming layer.
\begin{dispExample*}{gea-example}
\ExplSyntaxOn
\sys_gset_rand_seed:n {1701}
\ExplSyntaxOff
\begin{tikzpicture}
\draw[
  fill gea Furth = {
    triangular,
    step equi  = 8mm,
    init-item< = \TFDefineRandomColor{mycolor},
    style 1    = {ball color=mycolor},
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docCommands}


\clearpage
%-------------------------------------------------------------------------------
\subsection{Templates}\label{sec:gea-templates}


\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Altdorf,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-18,
    }
  }
  The basic item shape of this template is a rectangle.
  \refKey{/tikz/geomarray/style 1} is used for graph drawing.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Altdorf = {
    init-row< =
      \TFRowColorLet{mycolor}{red}{blue},
    style 1 =
      {draw=gray, fill=mycolor},
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}




\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Loeschenbrand,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-20,
    }
  }
  This is a variation of \refKey{/tikz/fill gea Altdorf} where
  \refKey{/tikz/geomarray/style 1} and
  \refKey{/tikz/geomarray/style 2} are used in a checkerboard pattern.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Loeschenbrand = {
    scale fixed = 1,
    style 1 =
      {bottom color=black, top color=black!50},
    style 2 =
      {bottom color=black!10, top color=white},
    angle = -10,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}


\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Ganslberg,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-18,
    }
  }
  This is a variation of \refKey{/tikz/fill gea Altdorf} in which
  \refKey{/tikz/geomarray/style 1} and \refKey{/tikz/geomarray/style 2} are used for
  odd and even rows, respectively.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Ganslberg = {
    style 1 =
      {bottom color=red, top color=red!50},
    style 2 =
      {bottom color=blue, top color=blue!50},
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}

\clearpage

\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Essenbach,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-18,
    }
  }
  The basic item shape of this template is a rhombus.
  \refKey{/tikz/geomarray/style 1} is used for graph drawing.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Essenbach = {
    init-row< =
      \TFRowColorLet{mycolor}{red}{blue},
    style 1 =
      {draw=gray, fill=mycolor},
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}


\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Mirskofen,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-18,
    }
  }
  This is a variation of \refKey{/tikz/fill gea Essenbach} in which
  \refKey{/tikz/geomarray/style 1} and \refKey{/tikz/geomarray/style 2} are used for
  odd and even rows, respectively.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Mirskofen = {
    scale fixed = 1,
    step equi = 5mm,
    init-row< =
      \TFRowColorLet{mycolor}{blue!60}{blue!30},
    style 1 = {fill=mycolor},
    style 2 = {},
    angle = 45,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}


\clearpage
\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Pfettrach,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-18,
    }
  }
  The basic item shape of this template is a rhombus divided into two parts.
  \refKey{/tikz/geomarray/style 1} and
  \refKey{/tikz/geomarray/style 2} are used for the two parts.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Pfettrach = {
    step half = 10mm,
    style 1 = { fill = red!40 },
    style 2 = { fill = red },
    freeze-row,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\begin{dispExample*}{gea-example}
\ExplSyntaxOn
\sys_gset_rand_seed:n {1701}
\ExplSyntaxOff
\begin{tikzpicture}
\draw[
  fill gea Pfettrach = {
    scale fixed = 1,
    step equi = 7mm,
    init-item< = \TFDefineRandomColor{col1}%
      \TFDefineRandomColor{col2},
    style 1 = { fill = col1 },
    style 2 = { fill = col2 },
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}


\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Kolmhub,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-18,
    }
  }
  This is a variation of \refKey{/tikz/fill gea Pfettrach} in which
  \refKey{/tikz/geomarray/style 1},
  \refKey{/tikz/geomarray/style 2},
  \refKey{/tikz/geomarray/style 3}, and
  \refKey{/tikz/geomarray/style 4},
  are used for
  odd and even rows, respectively.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Kolmhub = {
    step = 6mm,
    style 1 = { fill = red!40 },
    style 2 = { fill = red },
    style 3 = { fill = blue!40 },
    style 4 = { fill = blue },
    freeze-row,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}


\clearpage
\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Bruckberg,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-18,
    }
  }
  The basic item shape of this template is a hexagon.
  \refKey{/tikz/geomarray/style 1} is used for graph drawing.

\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
\begin{tikzpicture}
\draw[
  preaction = {fill=oc-orange-7},
  fill gea Bruckberg = {
    scale fixed = 0.97,
    step equi = 7mm,
    style 1 = {
      top color    = oc-yellow-6,
      bottom color = oc-orange-5  },
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
% \usepackage{fontawesome7}
\ExplSyntaxOn
\begin{tikzpicture}
\draw[
  preaction = {fill=oc-orange-7},
  fill~gea~Bruckberg = {
    scale~fixed = 1,
    step~equi = 7mm,
    init< = \sys_gset_rand_seed:n {101},
    init-item< = \tl_set:Ne \l_tmpa_tl
      {oc-\clist_rand_item:n {red,grape,indigo,cyan,
        green,yellow} },
    style~1 = {draw=\l_tmpa_tl-4,fill=\l_tmpa_tl-3},
    text< = {
        \color{\l_tmpa_tl-6}\large
        \faIcon{face-\clist_rand_item:n {smile,frown,
          grin-beam,meh,tired,laugh,smile-wink}}
      },
}]
  (0,0) rectangle (4,8);
\end{tikzpicture}
\ExplSyntaxOff
\end{dispExample*}
\end{docTikzKeys}

\clearpage
\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Bachhorn,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-18,
    }
  }
  This is a variation of \refKey{/tikz/fill gea Bruckberg} in which
  \refKey{/tikz/geomarray/style 1} and \refKey{/tikz/geomarray/style 2} are used for
  odd and even rows, respectively.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  preaction = {top color=red!25,bottom color=blue!25},
  fill gea Bachhorn = {
    scale = {0/0.3,1/0.9},
    step equi = 7mm,
    style 1 = { draw=gray, fill=red },
    style 2 = { draw=gray, fill=blue },
    angle = 60,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}


\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Weihmichl,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-18,
    }
  }
  The basic item shape of this template is a hexagon divided into three parts.
  \refKey{/tikz/geomarray/style 1},
  \refKey{/tikz/geomarray/style 2}, and
  \refKey{/tikz/geomarray/style 3}, are used for the three parts.
\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
\begin{tikzpicture}
\draw[
  fill gea Weihmichl = {
    scale fixed = 1,
    step equi = 8mm,
    init-row< = \TFRowColorLetSeq{mycolor}{
      oc-blue-6,oc-yellow-6,oc-red-6},
    style 1 = {fill=mycolor!50!white},
    style 2 = {fill=mycolor},
    style 3 = {fill=mycolor!50!black},
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}


\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Edenland,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-04-20,
    }
  }
  This is a variation of \refKey{/tikz/fill gea Weihmichl} in which a
  prime color, \refKey{/tikz/geomarray/prime color 1}, defines
  the individual colors of the three parts. The key \refKey{/tikz/geomarray/style base}
  specifies a style applied to all parts.
\begin{dispExample*}{gea-example}
\ExplSyntaxOn
\sys_gset_rand_seed:n {12345}
\ExplSyntaxOff
\begin{tikzpicture}
\draw[ fill gea Edenland = {
  scale fixed = 1,
  step equi = 10mm,
  ystep equidistance,
  style base = draw,
  init-item< = \TFDefineRandomColor{mycolor},
  prime color 1 = mycolor,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}



\clearpage

\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Baumgarten,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-04-21,
    }
  }
  This template consists of two quadrilaterals arranged in an L-shape.
  \refKey{/tikz/geomarray/style 1} and
  \refKey{/tikz/geomarray/style 2} are used for the two parts.

\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
\begin{tikzpicture}
\draw[
  fill gea Baumgarten = {
    scale fixed = 1,
    step double = 5mm,
    style 1 = { draw, top color=oc-cyan-3,
                bottom color=oc-cyan-5 },
    style 2 = { draw, top color=oc-indigo-3,
                bottom color=oc-indigo-5 },
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}



\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Furth,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-18,
    }
  }
  The basic item shape of this template is a circle.
  \refKey{/tikz/geomarray/style 1} is used for graph drawing.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  preaction = {fill=blue!25},
  fill gea Furth = {
    triangular,
    step equi = 4mm,
    scale = {0/0,1/1.2},
    style 1 = { fill=blue },
    freeze-row,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}



\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Schatzhofen,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-18,
    }
  }
  This is a variation of \refKey{/tikz/fill gea Furth} in which
  \refKey{/tikz/geomarray/style 1} and \refKey{/tikz/geomarray/style 2} are used for
  odd and even rows, respectively.

\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
\begin{tikzpicture}
\draw[
  fill gea Schatzhofen = {
    triangular,
    scale fixed=1.2,
    step equi = 6mm,
    style 1 = { top color=oc-blue-3,
      bottom color=oc-blue-9},
    style 2 = { top color=oc-teal-3,
      bottom color=oc-teal-9},
    freeze-row,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}



\clearpage
\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Ergolding,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-24,
    }
  }
  The basic item shape of this template is a tripod.
  \refKey{/tikz/geomarray/style 1} is used for graph drawing.

\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
\begin{tikzpicture}
\draw[
  fill gea Ergolding = {
    step equi = 8mm,
    init-row< = \TFRowColorLetSeq{mycolor}{
      oc-blue-6,oc-yellow-6,oc-red-6},
    style 1 = {draw,fill=mycolor!50!white},
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}


\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Hascherkeller,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-24,
    }
  }
  The basic item shape of this template is a tripod divided into three parts.
  \refKey{/tikz/geomarray/style 1},
  \refKey{/tikz/geomarray/style 2}, and
  \refKey{/tikz/geomarray/style 3}, are used for the three parts.
\begin{dispExample*}{gea-example}
\ExplSyntaxOn
\sys_gset_rand_seed:n {42}
\ExplSyntaxOff
\begin{tikzpicture}
\draw[
  fill gea Hascherkeller = {
    scale fixed = 1,
    step equi = 8mm,
    init-item< = \TFDefineRandomColor{mycolor},
    style 1 = {fill=mycolor!50!white},
    style 2 = {fill=mycolor},
    style 3 = {fill=mycolor!50!black},
    angle=30,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}


\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Klosterholz,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-04-20,
    }
  }
  This is a variation of \refKey{/tikz/fill gea Hascherkeller} in which a
  prime color, \refKey{/tikz/geomarray/prime color 1}, defines
  the individual colors of the three parts. The key \refKey{/tikz/geomarray/style base}
  specifies a style applied to all parts.
\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
\begin{tikzpicture}
\draw[
  fill gea Klosterholz = {
    scale fixed = 1,
    step equi = 8mm,
    init-row< = \TFRowColorLet{mycolor}
      {oc-lime-4}{oc-teal-4},
    prime color 1 = mycolor,
    style base = {draw=oc-gray-8,line join=round},
    freeze-row,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}



\clearpage
\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Unterglaim,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-24,
    }
  }
  The basic item shape of this template is an octogon.
  \refKey{/tikz/geomarray/style 1} is used for graph drawing.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  preaction = {fill=yellow!70!gray},
  fill gea Unterglaim = {
    scale fixed = 1,
    style 1 =
      {draw, top color=blue!50,bottom color=blue},
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}



\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Grandsberg,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-20,
    }
  }
  This is a variation of \refKey{/tikz/fill gea Unterglaim} where
  \refKey{/tikz/geomarray/style 1} and
  \refKey{/tikz/geomarray/style 2} are used in a checkerboard pattern.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  preaction = {fill=black!90},
  fill gea Grandsberg = {
    scale fixed = 1,
    step = 5mm,
    init-row< =
      \TFRowColorLet{mycolor}{red!60}{blue!30},
    style 1 = {draw=black!90,fill=mycolor},
    style 2 = {fill=yellow!75!gray},
    angle   = 45,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}


\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Kottingrohr,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-18,
    }
  }
  This is a variation of \refKey{/tikz/fill gea Unterglaim} in which
  \refKey{/tikz/geomarray/style 1} and \refKey{/tikz/geomarray/style 2} are used for
  odd and even rows, respectively.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Kottingrohr = {
    triangular,
    scale linear = {0.5}{1},
    step = 6mm,
    style 1 = {bottom color=red, top color=red!50},
    style 2 = {bottom color=blue, top color=blue!50},
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}


\clearpage

\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Ostergaden,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-04-22,
    }
  }
  This template consists of a rectangle with two attached
  hexagons.
  An optical illusion creates the impression of an octogon.

  \refKey{/tikz/geomarray/style 1},
  \refKey{/tikz/geomarray/style 2}, and\\
  \refKey{/tikz/geomarray/style 3} are used for the three parts.

  The ratio between the inner rectangle and the (theoretical)
  base rectangle is controlled by
  \refKey{/tikz/geomarray/ratio}, which defaults to $2-\sqrt{2}$.
  For equal values of \refKey{/tikz/geomarray/xstep} and
  \refKey{/tikz/geomarray/ystep}, this default produces the impression of a
  regular octagon.

\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
\begin{tikzpicture}
\draw[
  fill gea Ostergaden = {
    scale fixed = 1,
    step equi = 7mm,
    style 1 = { draw, top color=oc-red-3,
                bottom color=oc-red-4 },
    style 2 = { draw, fill=oc-indigo-3 },
    style 3 = { draw, fill=oc-blue-3 },
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}


\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
\begin{tikzpicture}
\draw[
  fill gea Ostergaden = {
    ratio = 1/3,
    scale fixed = 1,
    step equi = 7mm,
    style 1 = { draw, fill=oc-teal-8 },
    style 2 = { draw, top color=oc-lime-2,
                bottom color=oc-lime-5 },
    style 3 = { draw, top color=oc-blue-2,
                bottom color=oc-blue-5 },
    angle = 45,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}


\clearpage
\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Hohenthann,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-25,
    }
  }
  The basic item shape of this template is an arrow.
  \refKey{/tikz/geomarray/style 1} is used for graph drawing.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Hohenthann = {
    scale fixed = 1,
    step equi* double = 7mm,
    style 1 = {draw=white,
      left color=blue!50,right color=blue},
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}


\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Bibelsbach,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-25,
    }
  }
  This is a variation of \refKey{/tikz/fill gea Hohenthann} in which
  \refKey{/tikz/geomarray/style 1} and \refKey{/tikz/geomarray/style 2} are used for
  odd and even rows, respectively.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Bibelsbach = {
    scale fixed = 1,
    step equi* double = 7mm,
    style 1 = {draw=white,
      left color=blue!50,right color=blue},
    style 2 = {draw=white,
      left color=red!50,right color=red},
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}



\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Roseneck,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-25,
    }
  }
  This is a variation of \refKey{/tikz/fill gea Hohenthann} in which
  \refKey{/tikz/geomarray/style 1} and \refKey{/tikz/geomarray/style 2} are used for
  odd and even columns, respectively.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Roseneck = {
    scale fixed = 1,
    step equi* double = 7mm,
    style 1 = {draw=white,
      left color=blue!50,right color=blue},
    style 2 = {draw=white,
      left color=red!50,right color=red},
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}


\clearpage
\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Altenkofen,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-25,
    }
  }
  This is a variation of \refKey{/tikz/fill gea Hohenthann} in which
  \refKey{/tikz/geomarray/style 1} and \refKey{/tikz/geomarray/style 2}
  are used are used in a checkerboard pattern.
\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Altenkofen = {
    scale fixed = 1,
    step equi* double = 7mm,
    style 1 = {draw=white,
      left color=blue!50,right color=blue},
    style 2 = {draw=white,
      left color=red!50,right color=red},
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}


\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Irlmuehle,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-25,
    }
  }
  This is a variation of \refKey{/tikz/fill gea Hohenthann} in which
  \refKey{/tikz/geomarray/style 1},
  \refKey{/tikz/geomarray/style 2},
  \refKey{/tikz/geomarray/style 3}, and
  \refKey{/tikz/geomarray/style 4}
  are used are used.
\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Irlmuehle = {
    scale fixed = 1,
    step equi* double = 7mm,
    style 1 = {fill=red},
    style 2 = {fill=red!50},
    style 3 = {fill=blue},
    style 4 = {fill=blue!50},
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}


\clearpage
\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Gammelsdorf,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-25,
    }
  }
  The basic item shape of this template is an arrow divided into two parts.
  \refKey{/tikz/geomarray/style 1} and
  \refKey{/tikz/geomarray/style 2} are used for the two parts.
\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
\begin{tikzpicture}
\draw[
  preaction = {fill=oc-teal-9},
  fill gea Gammelsdorf = {
    step equi* double = 6mm,
    init-row< =
      \TFRowColorLet{mycolor}{oc-cyan-6}{oc-green-6},
    style 1 = {fill=mycolor},
    style 2 = {fill=mycolor!50},
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}


\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Traich,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-25,
    }
  }
  This is a variation of \refKey{/tikz/fill gea Gammelsdorf} in which
  \refKey{/tikz/geomarray/style 1} and \refKey{/tikz/geomarray/style 2}
  are used in a checkerboard pattern.
\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
\begin{tikzpicture}
\draw[
  fill gea Traich = {
    scale fixed = 1,
    step equi* = 7mm,
    init-row< =
      \TFRowColorLet{mycolor}{oc-cyan-6}{oc-green-6},
    style 1 = {fill=mycolor},
    style 2 = {fill=mycolor!50},
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}



\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Winbuerg,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-25,
    }
  }
  This is a variation of \refKey{/tikz/fill gea Gammelsdorf} in which
  \refKey{/tikz/geomarray/style 1},
  \refKey{/tikz/geomarray/style 2},
  \refKey{/tikz/geomarray/style 3}, and
  \refKey{/tikz/geomarray/style 4} are used.
\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
\begin{tikzpicture}
\draw[
  fill gea Winbuerg = {
    scale fixed = 1,
    step equi* double = 7mm,
    init-row< =
      \TFRowColorLet{mycolA}{oc-cyan-6}{oc-green-6}%
      \TFRowColorLet{mycolB}{oc-blue-6}{oc-violet-6},
    style 1 = {fill=mycolA},
    style 2 = {fill=mycolA!50},
    style 3 = {fill=mycolB!50},
    style 4 = {fill=mycolB},
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}


\clearpage
\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Kreuzholzen,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-25,
    }
  }
  This is a variation of \refKey{/tikz/fill gea Gammelsdorf} in which
  \refKey{/tikz/geomarray/style 1} up to
  \refKey{/tikz/geomarray/style 8} are used.
\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
\begin{tikzpicture}
\draw[
  fill gea Kreuzholzen = {
    scale fixed = 1,
    step equi* double = 6mm,
    style 1 = {fill=oc-green-6},
    style 2 = {fill=oc-green-2},
    style 3 = {fill=oc-lime-2},
    style 4 = {fill=oc-lime-6},
    style 5 = {fill=oc-orange-9},
    style 6 = {fill=oc-orange-6},
    style 7 = {fill=oc-red-6},
    style 8 = {fill=oc-red-9},
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}


\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Grafenhaun,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-03-25,
    }
  }
  The basic item shape of this template is a hexagon divided into four
  pentagons (or two pentagons and two tetragons).
  \refKey{/tikz/geomarray/style 1},
  \refKey{/tikz/geomarray/style 2},
  \refKey{/tikz/geomarray/style 3}, and
  \refKey{/tikz/geomarray/style 4}
  are used for the four parts.\par
  The optimal congruence of the parts is found with
  \refKey{/tikz/geomarray/step equi* half}, but other relations between
  xstep and ystep also produce pleasing results.

\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
\begin{tikzpicture}
\draw[
  fill gea Grafenhaun = {
    step equi* half = 12mm,
    scale fixed = 1,
    style 1 = {draw,fill=oc-red-4},
    style 2 = {draw,fill=oc-yellow-4},
    style 3 = {draw,fill=oc-orange-4},
    style 4 = {draw,fill=oc-pink-4},
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}

\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
\begin{tikzpicture}
\draw[
  fill gea Grafenhaun = {
    step equi = 10mm,
    scale fixed = 1,
    init-row< =
      \TFRowColorLet{mycolor}{oc-lime-4}{oc-orange-4},
    style 1 = {fill=mycolor},
    style 2 = {fill=mycolor!75!white},
    style 3 = {fill=mycolor!75!gray},
    style 4 = {fill=mycolor!75!black},
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}



\clearpage
\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Niederhatzkofen,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-04-17,
    }
  }
  The basic item shape of this template is a hexagon divided into nine parts,
  three of which form an inner hexagon surrounded by the remaining six parts. The
  styles \refKey{/tikz/geomarray/style 1} to \refKey{/tikz/geomarray/style 9} are
  used for these nine parts.

  The ratio between the inner and outer hexagon is controlled by
  \refKey{/tikz/geomarray/ratio}, which defaults to $\frac{1}{\sqrt{3}}$. Notable
  ratio values include:
  \begin{itemize}
  \item $\rule[-2mm]{0mm}{6mm}\frac{1}{\sqrt{3}}$: all nine parts have equal area.
  \item $\rule[-2mm]{0mm}{6mm}\frac13$: intersections are equally spaced.
  \item $\rule[-2mm]{0mm}{6mm}\frac12$: triangular structures become visible.
  \item $\rule[-2mm]{0mm}{6mm}\frac23$: three hexagonal structures become visible.
  \end{itemize}
\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
\begin{tikzpicture}
\draw[
  fill gea Niederhatzkofen = {
    scale fixed = 1,
    step equi = 15mm,
    style 1 = {draw, fill=oc-teal-5},
    style 2 = {draw, fill=oc-cyan-5},
    style 3 = {draw, fill=oc-grape-5},
    style 4 = {draw, fill=oc-violet-5},
    style 5 = {draw, fill=oc-indigo-5},
    style 6 = {draw, fill=oc-blue-5},
    style 7 = {draw, fill=oc-yellow-5},
    style 8 = {draw, fill=oc-green-5},
    style 9 = {draw, fill=oc-lime-5},
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}


\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Eggerach,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-04-23,
    }
  }
  This is a variation of \refKey{/tikz/fill gea Niederhatzkofen} in which
  \refKey{/tikz/geomarray/style base}
  specifies a style applied to all nine parts.
\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Eggerach = {
    scale fixed = 1,
    step equi = 15mm,
    xflip even,
    style base = {draw, top color=red!10,
      bottom color=red!50},
    angle = 30,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}


\clearpage
\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Marktstauden,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-04-17,
    }
  }
  This is a variation of \refKey{/tikz/fill gea Niederhatzkofen} in which two
  prime colors, \refKey{/tikz/geomarray/prime color 1} and
  \refKey{/tikz/geomarray/prime color 2}, define the individual colors of the six
  outer and three inner parts. The key \refKey{/tikz/geomarray/style base}
  specifies a style applied to all nine parts.
\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
\begin{tikzpicture}
\draw[
  fill gea Marktstauden = {
    scale fixed = 1,
    ratio = 1/3,
    step equi = 15mm,
    style base = { draw },
    prime color 1 = oc-grape-5,
    prime color 2 = oc-red-5,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}

\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
\begin{tikzpicture}
\draw[
  fill gea Marktstauden = {
    scale fixed = 1,
    ratio = 0.5,
    step equi = 15mm,
    style base = { draw },
    prime color 1 = oc-lime-5,
    prime color 2 = oc-indigo-5,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}

\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
\begin{tikzpicture}
\draw[
  fill gea Marktstauden = {
    scale fixed = 1,
    ratio = 2/3,
    xflip even,
    step equi = 15mm,
    style base = { draw },
    prime color 1 = oc-red-5,
    prime color 2 = oc-yellow-5,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}

\end{docTikzKeys}



\clearpage
\begin{docKeys}
  {
    {
      doc name        = fill gea Alpersdorf,
      doc parameter   = {=\marg{options}},
      doc keypath     = tikz,
      doc description = {initially unset},
      doc new         = 2026-04-17,
    }
  }
  The basic item shape of this template is a hexagon divided into fourteen parts.
  An optical illusion creates the impression of a decagon.
  The styles \refKey{/tikz/geomarray/style 1} to \refKey{/tikz/geomarray/style 14} are used for these fourteen parts.

  The option \refKey{/tikz/geomarray/triangular} is applied by default. The key
  \refKey{/tikz/geomarray/step equi} produces squares and several equilateral
  triangles. When the specialized key
  \docAuxKey[tikz/geomarray]{step equi special} is used,
  the six vertices of the hexagon lie on a circle.

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Alpersdorf = {
    scale fixed = 1,
    step equi = 15mm,
    freeze-row,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}

\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Alpersdorf = {
    scale fixed = 1,
    step equi special = 15mm,
    freeze-row,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}

\end{docKeys}



\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Schwarzberg,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-04-23,
    }
  }
  This is a variation of \refKey{/tikz/fill gea Alpersdorf} in which
  \refKey{/tikz/geomarray/style base}
  specifies a style applied to all fourteen parts.
\begin{dispExample*}{gea-example}
\begin{tikzpicture}
\draw[
  fill gea Schwarzberg = {
    scale fixed = 1,
    step equi special = 20mm,
    style base = {draw, top color=white,
      bottom color=blue!10},
    angle = 90,
    freeze-row,
}]
  (0,0) rectangle (4,4);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}


\clearpage

\begin{docTikzKeys}
  {
    {
      doc name        = fill gea Scheckenhofen,
      doc parameter   = {=\marg{options}},
      doc description = {initially unset},
      doc new         = 2026-04-17,
    }
  }
  This is a variation of \refKey{/tikz/fill gea Alpersdorf} in which two
  prime colors, \refKey{/tikz/geomarray/prime color 1} and
  \refKey{/tikz/geomarray/prime color 2}, define the individual colors of the
  fourteen parts. The key \refKey{/tikz/geomarray/style base}
  specifies a style applied to all parts.
\begin{dispExample*}{gea-example}
% \usepackage{opencolor}
\begin{tikzpicture}
\draw[
  fill gea Scheckenhofen = {
    scale fixed = 1,
    step equi special = 15mm,
    init-row< = \TFRowColorLetSeq{mycolor}
      {oc-lime-4,oc-red-4,oc-cyan-4},
    prime color 1 = mycolor,
    prime color 2 = oc-yellow-4,
    style base = { draw=black, line width=0.2pt },
    angle = 90,
    freeze-row,
}]
  (0,0) rectangle (4,6);
\end{tikzpicture}
\end{dispExample*}
\end{docTikzKeys}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage
\printindex


\end{document}
