% !TeX spellcheck = en_US % !TeX root = tikz-ext-manual.tex % Copyright 2022 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} \newcommand*\tikzextversion{0.5.1} %\includeonly{ %% tikz-ext-manual-en-library-misc, %% tikz-ext-manual-en-library-nodes, % tikz-ext-manual-en-pgf-arrows, %} \begin{document} {\colorlet{blue}{black}% links shall be black \title{\bfseries The \tikzextname\space Package\\ \large Manual for version \tikzextversion\\[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}\tikzsetnextfilename{main-cover} \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} \tikzsetfigurename{calendar-plus} \include{tikz-ext-manual-en-library-calendar-plus} \tikzsetfigurename{layers} \include{tikz-ext-manual-en-library-layers} \tikzsetfigurename{node-families} \include{tikz-ext-manual-en-library-node-families} \tikzsetfigurename{nodes} \include{tikz-ext-manual-en-library-nodes} \tikzsetfigurename{paths.arcto} \include{tikz-ext-manual-en-library-paths.arcto} \tikzsetfigurename{paths.ortho} \include{tikz-ext-manual-en-library-paths.ortho} \tikzsetfigurename{paths.timer} \include{tikz-ext-manual-en-library-paths.timer} \tikzsetfigurename{patterns.images} \include{tikz-ext-manual-en-library-patterns.images} \tikzsetfigurename{positioning-plus} \include{tikz-ext-manual-en-library-positioning-plus} \tikzsetfigurename{scalepicture} \include{tikz-ext-manual-en-library-scalepicture} \tikzsetfigurename{topaths.arcthrough} \include{tikz-ext-manual-en-library-topaths.arcthrough} \tikzsetfigurename{trans} \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}\tikzsetnextfilename{main-graph} \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/TeX/if=c#1 {/utils/TeX/ifnum={#2<5}{bluelight}{bluedark}} {/utils/TeX/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} \tikzsetfigurename{PGF.arrows}\include{tikz-ext-manual-en-pgf-arrows} \tikzsetfigurename{PGF.trans}\include{tikz-ext-manual-en-pgf-trans} \tikzsetfigurename{PGF.shapes}% \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\tikzsetnextfilename{main-misc} \begin{codeexample}[width=6cm, preamble=\usetikzlibrary{ext.misc}] \begin{tikzpicture}[ declare function={bigR(\n)=smallR+.05*\n;}, declare constant={smallR=1; segments=20;}, full arc=segments] \foreach \iN[evaluate={\endRadius=bigR(\iN+1);}, 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, declare constant={segments=25;}, full arc=segments} \filldraw[fill=gray!50] (right:smallR) \foreach \iN[evaluate={\endRadius=bigR(\iN+1);}, 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 \tikzsetfigurename{misc.calendar}\include{tikz-ext-manual-en-calendar} \tikzsetfigurename{misc.pgffor}\include{tikz-ext-manual-en-library-pgffor} \tikzsetfigurename{misc.misc}\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 0.5.1 \begin{itemize} \item \addPGF{arrows} \item Bugfix to |ext.pgfkeys-plus|. \cite{GH6} \end{itemize} Version 0.5 \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 \begin{itemize} \item \addTikz{scalepicture} \item Bugfixes to |shapes.uncenteredrectangle|, |paths.ortho|, |positioning-plus| and |pgfcalender-ext|. \end{itemize} Version 0.4.1 \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 \begin{itemize} \item CTAN version of 0.3.1 \end{itemize} Version 0.3.1 \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 \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 \begin{itemize} \item \addTikz{positioning-plus} \item \addTikz{node-families} \end{itemize} Version 0.1 \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}