% !TeX spellcheck = en_US
% !TeX root = tikz-ext-manual.tex
% Copyright 2026 by Qrrbrbirlbel
%
% This file may be distributed and/or modified
%
% 1. under the LaTeX Project Public License and/or
% 2. under the GNU Free Documentation License.
%
\newcommand*\tikzextname{Ti\textit kZ-Extensions}
%\includeonly{
%  tikz-ext-manual-en-intro,
%  tikz-ext-manual-en-library-arrows-plus,
%  tikz-ext-manual-en-library-beamer,
%  tikz-ext-manual-en-library-calendar-plus,
%  tikz-ext-manual-en-library-layers,
%  tikz-ext-manual-en-library-node-families,
%  tikz-ext-manual-en-library-nodes,
%  tikz-ext-manual-en-library-paths.arcto,
%  tikz-ext-manual-en-library-paths.ortho,
%  tikz-ext-manual-en-library-paths.timer,
%  tikz-ext-manual-en-library-patterns.images,
%  tikz-ext-manual-en-library-positioning-plus,
%  tikz-ext-manual-en-library-scalepicture,
%  tikz-ext-manual-en-library-topaths.arcthrough,
%  tikz-ext-manual-en-library-topaths.autobend,
%  tikz-ext-manual-en-library-trans,
%  tikz-ext-manual-en-pgf-arrows,
%  tikz-ext-manual-en-pgf-trans,
%  tikz-ext-manual-en-pgf-shapes-circlearrow,
%  tikz-ext-manual-en-pgf-shapes-circlecrosssplit,
%  tikz-ext-manual-en-pgf-shapes-heatmark,
%  tikz-ext-manual-en-pgf-shapes-rectround,
%  tikz-ext-manual-en-pgf-shapes-superellipse,
%  tikz-ext-manual-en-pgf-shapes-uncentered,
%  tikz-ext-manual-en-calendar,
%  tikz-ext-manual-en-library-pgffor,
%  tikz-ext-manual-en-library-misc,
%}
\begin{document}
{\colorlet{blue}{black}% links shall be black
\title{\bfseries The \tikzextname\space Package\\
  \large Manual for version \tikzextversion\space (\tikzextversionnumber)\\[1mm]
\large\href{https://github.com/Qrrbrbirlbel/tikz-extensions}
   {\texttt{https://github.com/Qrrbrbirlbel/tikz-extensions}}
\author{Qrrbrbirlbel}}

\maketitle
\label{table-of-contents}

\tableofcontents
}
\include{tikz-ext-manual-en-intro}
%
\part{\tikzname\space Libraries}
\label{part:tikz}

These libraries only work with \tikzname.
\vspace{1em}
\begin{center}
\begin{tikzpicture}[
  very thick,
  scale=2.7,
  grow cyclic,
  level distance=1cm,
  level/.style={
    level distance/.expanded=\ifnum#1>1 \tikzleveldistance/1.5\else\tikzleveldistance\fi,
    nodes/.expanded={\ifodd#1 fill\else fill=none\fi}
  },
  level 1/.style={sibling angle=120},
  level 2/.style={sibling angle=90},
  level 3/.style={sibling angle=90},
  level 4/.style={sibling angle=45},
  nodes={circle,draw,inner sep=+0pt, minimum size=+5pt},
  ]

\path[rotate=30]
  node {}
  child foreach \cntI in {1,...,3} {
    node {}
    child foreach \cntII in {1,...,2} { 
      node {}
      child foreach \cntIII in {1,...,2} {
        node {}
        child foreach \cntIV in {1,...,2} {
          node {}
          child foreach \cntV in {1,...,2} {}
        }
      }
    }
  };
\end{tikzpicture}
\end{center}

\include{tikz-ext-manual-en-library-arrows-plus}
\include{tikz-ext-manual-en-library-beamer}
\include{tikz-ext-manual-en-library-calendar-plus}
\include{tikz-ext-manual-en-library-layers}
\include{tikz-ext-manual-en-library-node-families}
\include{tikz-ext-manual-en-library-nodes}
\include{tikz-ext-manual-en-library-paths.arcto}
\include{tikz-ext-manual-en-library-paths.ortho}
\include{tikz-ext-manual-en-library-paths.timer}
\include{tikz-ext-manual-en-library-patterns.images}
\include{tikz-ext-manual-en-library-positioning-plus}
\include{tikz-ext-manual-en-library-scalepicture}
\include{tikz-ext-manual-en-library-topaths.arcthrough}
\include{tikz-ext-manual-en-library-topaths.autobend}
\include{tikz-ext-manual-en-library-trans}
%
\part{\pgfname\space Libraries}
\label{part:pgf}
These libraries (should) work with both \pgfname\space and \tikzname.

\begin{center}
\begin{codeexample}[width=10cm,preamble=%
  \usetikzlibrary{graphs,graphdrawing,ext.misc} \usegdlibrary{force}]
\tikzset{
  mynode/.style={
    circle, minimum size=10mm, draw, densely dashdotted, thick,
    decide color/.expand once=#1},
  decide color/.style 2 args={
    /utils/ext/if=c#1
      {/utils/ext/ifnum={#2<5}{bluelight}{bluedark}}
      {/utils/ext/ifnum={#2<8}{light}{dark}}},
  light/.style={fill=gray!20},  bluelight/.style={fill=blue!10},
  dark/.style ={fill=gray!60},  bluedark/.style ={fill=blue!30}}
\tikz\graph[
  spring electrical layout, vertical=c2 to p13,
  node distance=1.5cm, typeset=$n_{\tikzgraphnodetext}$,
  nodes={mynode=\tikzgraphnodetext}] {
  % outer ring
  c2 -- {p1, p11, p6};
    p1 -- {p8, c6, p11};
      p8 -- {p3, p10, c6};
       p3 -- {p13, p15, p10};
         p13 -- {p15, c7};
           c7  -- {c3, c4, p15};
           c3  -- {p14, c4};
           p14 -- {p7, c4};
         p7 -- {p9, p2, c4};
       p9 -- {c5, p12, p2};
     c5 -- {c1, p4, p12};
   c1 -- {p6, p4};
  p6 -- {p11, p4};
  % inner ring
  p11 -- {c6, p12, p4};
  p5 -- {c6 -- {p10, p12}, p10 -- p15, p15 -- c4, c4 -- p2, p2 -- p12, p12 -- p4};
};
\end{codeexample}
\end{center}

\include{tikz-ext-manual-en-pgf-arrows}
\include{tikz-ext-manual-en-pgf-trans}
\include{tikz-ext-manual-en-pgf-shapes-circlearrow}
\include{tikz-ext-manual-en-pgf-shapes-circlecrosssplit}
\include{tikz-ext-manual-en-pgf-shapes-heatmark}
\include{tikz-ext-manual-en-pgf-shapes-rectround}
\include{tikz-ext-manual-en-pgf-shapes-superellipse}
\include{tikz-ext-manual-en-pgf-shapes-uncentered}

\part{Utilities}

\label{part:misc}
\vfill
\begin{codeexample}[width=6cm, preamble=\usetikzlibrary{ext.misc}]
\begin{tikzpicture}[
  declare function={bigR(\n)=smallR+.05*\n;},
  ext/declare constant={smallR=1; segments=20;},
  ext/full arc=segments]
\foreach \iN[evaluate={\endRadius=bigR(\iN+1);}, ext/use int=0 to segments-1]
  \filldraw[fill=gray!50] (\iN R:\endRadius)
    arc [radius=\endRadius, start angle=\iN R, delta angle=+1R] -- (\iN R+1R:smallR)
    arc [radius=smallR,       end angle=\iN R, delta angle=-1R] -- cycle;

\node                                              {$\phi^2$};
\node at (north west:{sqrt 2 * bigR(segments/2)})  {$\{\Omega\}_{i=1}^n$};
\node[rotate=-.5R, right] at (-.5R: bigR segments) {$\partial \varphi$};

\tikzset{yshift=-5cm, ext/declare constant={segments=25;}, ext/full arc=segments}
\filldraw[fill=gray!50] (right:smallR)
  \foreach \iN[evaluate={\endRadius=bigR(\iN+1);}, ext/use int=0 to segments-1] {
    -- (\iN R:\endRadius) arc[radius=\endRadius, start angle=\iN R, delta angle=1R]}
    -- (right:smallR)     arc[radius=smallR,     start angle=0,     delta angle=-360];

\node                                              {$\phi^2$};
\node at (north west:{sqrt 2 * bigR(segments/2)})  {$\{\Omega\}_{i=1}^n$};
\node[rotate=-.5R, right] at (-.5R: bigR segments) {$\partial \varphi$};
\end{tikzpicture}
\end{codeexample}
\vfill

\include{tikz-ext-manual-en-calendar}
\include{tikz-ext-manual-en-library-pgffor}
\include{tikz-ext-manual-en-library-misc}

%% END
\newcommand*{\addPackage}[1]{Added package \texttt{#1-ext}.}
\newcommand*{\addTikz}[1]{Added \tikzname\space library \texttt{ext.#1}.}
\newcommand*{\addPGF}[1]{Added \pgfname\space library \texttt{ext.#1}.}
\newcommand*{\addPGFkeys}[1]{Added \pgfname keys library \texttt{ext.#1}.}
\newcommand*{\addShape}[2][]{Added shape \texttt{\ifx\\#1\\#2\else#1\fi}\\(\pgfname\space library \texttt{ext.shapes.#2}).}
\part{Changelog, Index \& References}
\section*{Changelog}\addcontentsline{toc}{section}{Changelog}
\begin{multicols}{2}\raggedright
\noindent
Version \tikzextversion\ (\the\year-\ifnum\month<10 0\fi\the\month-\ifnum\day<10 0\fi\the\day)
\begin{itemize}
\item Bugfix to |ext.positioning-plus|. \cite{GH24}
\item Bugfix to |ext.beamer|.
\item Bugfix to |ext.paths.ortho|.
\item Added node pictures to |ext.nodes|.
\item Added |auto| key to |ext.topaths.arcthrough|.
\item |warn| is not the default compatibility setting anymore.
\end{itemize}
Version 0.6.2 (2025-04-24)
\begin{itemize}
\item Bugfix to and slight refactoring of |ext.paths.ortho|.
\item Bugfix to |pgffor-ext|/|ext.misc|.
\item Added better support for |graphs| library for |ext.beamer|.
\end{itemize}
Version 0.6.1 (2025-04-12)
\begin{itemize}
\item \addTikz{beamer}
\item Added new tips |ext_Double Cap|, |ext_Double Stealth| and |ext_Double Triange|.
\item Bugfix to |ext.arrows-plus|. \cite{GH18}
\end{itemize}
Version 0.6 (2025-03-18)
\begin{itemize}
\item Added \texttt{\textbackslash tikzextset},
            \texttt{\textbackslash tikzextversion} and
            \texttt{\textbackslash tikzextversionnumber}
\item Added six new |auto| placement mechanisms:
      |ext/above|, |ext/below|, |ext/west|, |ext/east|, |ext/north| and |ext/south|.
\item Added |ext/auto offset| for |auto| placement.
\item Added |ext/precise auto angle|.
\item \addTikz{arrows-plus}
\item \addTikz{topaths.autobend}
\item Made |ext.node-families| and |ext.scalepicture| memoizable.
\end{itemize}
Version 0.5.1 (2023-04-02)
\begin{itemize}
\item \addPGF{arrows}
\item Bugfix to |ext.pgfkeys-plus|. \cite{GH6}
\end{itemize}
Version 0.5 (2023-03-17)
\begin{itemize}
\item \addPackage{pgffor}
\item \addTikz{nodes}
\item \addTikz{layers}
\item Bugfixes to |ext.calendar-plus|.
\item Allow the original |rectangle| timer with |ext.paths.timer|.
\end{itemize}
Version 0.4.2 (2022-10-30)
\begin{itemize}
\item \addTikz{scalepicture}
\item Bugfixes to |shapes.uncenteredrectangle|, |paths.ortho|, |positioning-plus| and |pgfcalender-ext|.
\end{itemize}
Version 0.4.1 (2022-10-23)
\begin{itemize}
\item Cleaned up directory structure of documentary.
\item \addPGFkeys{pgfkeys-plus}
\item \addShape[uncentered rectangle]{uncenteredrectangle}
\item Fixed |ext.paths.arcto| -- again \cite{GH2}.
\end{itemize}
Version 0.4 (2022-10-10)
\begin{itemize}
\item CTAN version of 0.3.1
\end{itemize}
Version 0.3.1 (2022-10-09)
\begin{itemize}
\item Fixed |ext.paths.ortho| keys |only vertical first| and |only horizontal first|.
\item Moved all (except the |to path|s) to namespace |/tikz/ortho|.
     |/tikz/hvvh| and |/tikz/udlr| are considered deprecated.
\item Fixed |\pgfcalendarjulianyeartoweek|.
\item Added more calendar tests.
\item Added directory structure.
\end{itemize}
Version 0.3 (2022-09-24)
\begin{itemize}
\item \addShape[circle arrow]{circlearrow}
\item \addShape[circle cross split]{circlecrosssplit}
\item \addShape{heatmark}
\item \addShape[rectangle with rounded corners]{rectangleroundedcorners}
\item \addShape{superellipse}
\item \addTikz{node-families.shapes.geometric}
\item Fixed |ext.node-families|' key |size|.
\item Renamed internal macros to use custom namespace starting with |\tikzext@|.
\item Added some references.
\end{itemize}
Version 0.2 (2022-08-21)
\begin{itemize}
\item \addTikz{positioning-plus}
\item \addTikz{node-families}
\end{itemize}
Version 0.1 (2022-08-16)
\begin{itemize}
\item \addTikz{calendar-plus}
\item \addTikz{misc}
\item \addTikz{paths.arcto}
\item \addTikz{paths.ortho}
\item \addTikz{paths.timer}
\item \addTikz{patterns.images}
\item \addTikz{topaths.arcthrough}
\item \addTikz{transformations.mirror}
\item \addPGF{transformations.mirror}
\end{itemize}
\end{multicols}
\printindex

\makeatletter
\def\url#1{%
  \in@{/16595}{#1}%
  \ifin@
    \hyper@linkurl{\expandafter\Hurl\expandafter{\strip@url#1\relax}}{#1}%
  \else
    \hyper@linkurl{\Hurl{#1}}{#1}%
  \fi
}
\def\strip@url#1/16595\relax{#1}
\makeatother
\printbibliography[heading=bibintoc]
%\typeout{Examples: \the\codeexamplecount}%
\end{document}