summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/tikzsymbols/tikzsymbols.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/tikzsymbols/tikzsymbols.dtx')
-rw-r--r--Master/texmf-dist/source/latex/tikzsymbols/tikzsymbols.dtx1417
1 files changed, 1417 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/tikzsymbols/tikzsymbols.dtx b/Master/texmf-dist/source/latex/tikzsymbols/tikzsymbols.dtx
new file mode 100644
index 00000000000..5c953163316
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tikzsymbols/tikzsymbols.dtx
@@ -0,0 +1,1417 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2013 by Ben Vitecek
+%
+% This file 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 2008-05-04 or later.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{tikzsymbols}
+\usepackage[english]{babel}
+\usepackage[T1]{fontenc}
+\usepackage{array}
+\usepackage{longtable}
+\usepackage[colorlinks=true]{hyperref}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\makeatletter
+\newcommand{\definedBasicTree}[5][1]{%
+\def\leaf@or@not@leaf{#5}%
+\def\@leaf@is@leaf{leaf}%
+\begin{tikzpicture}[scale=#1,x=1.3ex,y=1.3ex]
+\draw[#2] (0,0) -- (0,1);
+\draw[#3] (0,1) -- (1,1);
+\draw[#4] (1,1) -- (1,0);
+\ifx\leaf@or@not@leaf\@leaf@is@leaf%
+\draw[#3] (1,0) -- (0.5,0);
+\draw[#4] (0.5,0) -- (0,0);
+\fi%
+\end{tikzpicture}%
+}\makeatother
+\newcommand{\mysec}[1]{\noindent\bfseries\large #1 \par}
+
+\begin{document}
+\DocInput{tikzsymbols.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+%
+%
+%
+%\changes {v1.0} {2013/01/19} {Initial version}
+%\changes {v1.05} {2013/02/13} {Deleted a ``t'' in the BasicTree-code, shortened the trunk from the tree a bit, renamed some codes, made an index}
+%\changes {v1.6} {2013/02/14} {Now ``Person'' can be used in sections, etc.}
+%\changes {v1.6} {2013/02/14} {Now an error message is generated if the last parameter of ``BasicTree'' is neither ``leaf'' nor empty.}
+%\changes {v1.6} {2013/02/14} { New options: draft and final. If in documentclass the option ``draft'' is defined, the package recognizes it. Plus some warnings if you use class option draft/final with package option tree=on/off.}
+%\changes {v1.6} {2013/02/14} { Renamed ``tikzsymbolsaftersymbolinput'' to ``tikzsymbolsaftersymbolinput''}
+%
+%
+%
+%
+% \GetFileInfo{tikzsymbols.sty}
+%
+%\DoNotIndex {\begin{tikzpicture},\end{tikzpicture}}
+%\DoNotIndex {\verb, \DeclareRobustCommandx}
+%\DoNotIndex {=\verb}
+%\DoNotIndex {\verb||}
+%\DoNotIndex {\draw,\fill,\DeclareRobustCommand, \colorlet,\shade}
+%\DoNotIndex {\xspace,\begin,\end}
+%
+%
+%
+%
+%
+%
+%
+%\title{\textsf{tikzsymbols}\thanks{This document corresponds to \textsf{tikzsymbols}~\fileversion, dated~\filedate.}}
+%\author{Ben Vitecek \\ \texttt{b.vitecek@gmx.at}}
+%\maketitle
+%
+%\begin{abstract}\centering
+%Just some symbols created with ``tikz''.
+%
+% English is not my native language. So there might be some errors \Winkey
+%\end{abstract}
+%
+%
+%\tableofcontents
+%
+%
+%
+% \section{Short Introduction}
+%
+% There are about two emoticons available in \LaTeX{}: Smiley and Frowny.
+% But why aren't there more? Or why did nobody make cooking-symbols?
+% I thought about this questions and during a project I developed some (cooking)symbols.
+% Developing them was real fun and so I made some more, reworked some etc.
+% And one day I had the idea ``Why not uploading these symbols in CTAN?''
+% Well, now I am here and writing this documentation about my first package.
+% It's a strange feeling \dots
+%
+% \section{Options} \label{Options}
+%^^A This package offers exactly \textbf{one} option (and I am extremly proud of this one option. Do you know why? Because it took almost two hours to produce it. There is no thing like a ``easy'' keyval syntax! Well, maybe it took so long because it was my first time producing something like that \dots{} However, I am extremely glad that this option works \dSmiley).
+%
+% These options are for the commands in the section ``Trees'' \ref{Trees}.
+% The trees look pretty nice, but have one drawback: \LaTeX{} needs extremely long to produce them.
+% So these options come in handy: by turning \verb|tree=off| or using \verb|draft| the trees will be replaced by squares (for an example see section ``Trees'' \ref{Trees}).
+% Those squares are fast produced by \LaTeX{} and have almost the same size as the trees, they are ``spacefillers''.
+% In your final document you can turn \verb|tree=on|, delete it or write \verb|final| and the trees will be produced.
+%
+%^^A Since version 1.6 this package offers some new options:
+%
+%^^A The option \verb|tree| can be turned on/off using the xkeyval package.
+%
+%^^A Instead of \verb|tree=off| you can also write \verb|draft|; instead of \verb|tree=on| you can just write \verb|final|.
+%
+%^^A And if you are using the class option \verb|draft| or \verb|final|, you can write.
+%^^A\vspace{1ex}
+%
+%
+%
+% \begin{longtable}{c|c}
+% Options to produce normal trees: \BasicTree{black!60!}{black!40!white}{black!30!white}{leaf} & Options for ``spacefillers'': \definedBasicTree{black!60!}{black!40!white}{black!30!white}{leaf}\\\hline\vspace{-1.5ex} \endhead
+% \verb|\usepackage{tikzsymbols}| \\[1ex]
+%\verb|\usepackage{tree=on}{tikzsymbols}| & \verb|\usepackage{tree=off}{tikzsymbols}| \\[1ex]
+% \verb|\usepackage{final}{tikzsymbols}|&\verb|\usepackage{draft}{tikzsymbols}| \\[1ex]
+% \verb|\documentclass[final]{class}| & \verb|\documentclass[draft]{class}| \\
+% \verb|\usepackage{tikzsymbols}| & \verb|\usepackage{tikzsymbols}|
+% \end{longtable}
+%
+%
+%
+% Note: you shouldn't use both, \verb|tree=on/off| and class-option \verb|draft|.
+% It's just unnecessary.
+%
+% While working on this document I used the \verb|draft| syntax and in the final output I deleted it.
+%
+% But there are no warnings, if you misspell something e.g. \verb|tree=onf|.
+% You will see what happens.
+%
+%
+% \section{Symbols}
+% In this section the symbols are introduced.
+% They \Smiley \tiny all \dInnocey \Huge change \Kochtopf \small automaticly \Wintertree \large with \oven \normalsize the textsize \Person.
+%
+%
+% \subsection{cooking-symbols \Kochtopf}
+% At the following table the cooking-symbols are listed.
+%
+% The first column shows the Command (at first the german at second the english).
+% The second are the optional keys.
+%
+%<scale> can be a number between 0 and $\infty$\footnote{Infinite; every positve number}, default is $1$.
+% The optional parameter(s) are for both, the german and the english commands the same.
+%
+% Da Umlaute nicht angezeigt werden k\"onnen, werden die Umlaute \"o, \"a, \"u ersetzt durch: o, a, u.
+%
+% \begin{longtable}{llcc}
+% \multicolumn{2}{l}{German \& English Commands} & Optional parameter(s) & Output (defaultsize) \\\hline\vspace{-1.5ex}\endhead
+%
+% \verb|\Kochtopf| & \verb|\pot| & \oarg{scale} & \Kochtopf \\
+% \verb|\Bratpfanne| & \verb|\fryingpan|& \oarg{scale} & \Bratpfanne \\
+% \verb|\Schneebesen| & \verb|\eggbeater| & \oarg{scale} & \eggbeater\\
+% \verb|\Sieb| & \verb|\sieve| & \oarg{scale} & \sieve\\
+% \verb|\Purierstab| & \verb|\blender|\footnote{I know that ``P\"urierstab'' should be translated as ``immersion blender'', but I'm just using ``blender''} & \oarg{scale} & \blender\\
+% \verb|\Dreizack| & \verb|\trident| & \oarg{scale} & \Dreizack\\
+% \verb|\Backblech| & \verb|\bakingplate| & \oarg{scale} & \bakingplate\\
+% \verb|\Ofen| & \verb|\oven| & \oarg{scale} & \Ofen\\
+% \verb|\Pfanne| & \verb|\pan| & \oarg{scale} & \Pfanne \\
+% \verb|\Herd| & \verb|\cooker| & \oarg{scale} & \cooker \\
+% \verb|\Saftpresse| & \verb|\squeezer| & \oarg{scale} & \Saftpresse \\
+% \verb|\Schussel| & \verb|\bowl| & \oarg{scale} & \Schussel \\
+% \end{longtable}
+%
+% \Kochtopf[0]
+%
+%
+%
+%
+%\subsection{Emoticons \texorpdfstring{\Smiley}{Smiley}}
+%\subsubsection{``normal'' Emoticons \texorpdfstring{\Cat}{Cat}}
+%
+% First column shows the commands, the second the optional paramter(s), the third the default-output.
+%
+% <scale> can be a number between 0 and $\infty$\footnote{Infinite; every positve number}, default is $1$.
+%
+% <color> can be every defined color.
+%
+%
+%\begin{longtable}{lcc}
+% Commands & Optional parameter(s) & Output (default) \\\hline\vspace{-1.5ex}\endhead
+%
+% \verb|\Sadey| & \oarg{scale}\oarg{color} & \Sadey \\
+% \verb|\Smiley| & \oarg{scale}\oarg{color} & \Smiley \\
+% \verb|\Annoey| & \oarg{scale}\oarg{color} & \Annoey \\
+% \verb|\Neutrey| & \oarg{scale}\oarg{color} & \Neutrey \\
+% \verb|\Winkey| & \oarg{scale}\oarg{color} & \Winkey \\
+% \verb|\Sey| & \oarg{scale}\oarg{color} & \Sey \\
+% \verb|\Innocey| & \oarg{scale}\oarg{color}\oarg{halo color} & \Innocey \\
+% \verb|\wInnocey| & \oarg{scale} & \wInnocey \\
+% \verb|\Cooley| & \oarg{scale}\oarg{color} & \Cooley \\
+% \verb|\Tongey| & \oarg{scale}\oarg{color} & \Tongey \\
+% \verb|\Nursey|\footnote{\label{Kreuz}The cross has nothing to do with religion meanings.}& \oarg{scale}\oarg{color}\oarg{cap color}\oarg{cross color} &\Nursey \\
+% \verb|\Vomey| & \oarg{scale}\oarg{color}\oarg{vomit color} & \Vomey \\
+% \verb|\Cat| & \oarg{scale} & \Cat \\
+% \verb|\NiceReapey| & \oarg{scale} & \NiceReapey
+%
+%\end{longtable}
+%
+%Examples: \verb|\Sadey[][red]|\Sadey[][red] \quad\verb|\Cooley[3][cyan]|\Cooley[3][cyan]
+%
+%\verb|\Vomey[1.5][green!80!black][olive]|\Vomey[1.5][green!80!black][olive].
+%
+%\verb|\Nursey[][yellow][blue][red]|\Nursey[1][yellow][blue][red].
+%
+% \verb|\colorbox{yellow}{\Winkey \Annoey \Neutrey}|\colorbox{yellow}{\Winkey \Annoey \Neutrey}
+%
+%\verb|{\color{blue}\Sey}| {\color{blue}\Sey}
+%
+%\subsubsection{``3D'' Emoticons \texorpdfstring{\dSmiley}{dSmiley}}
+% First column shows the commands (note: the ``3D'' Emoticons begin with \verb|\d...|), the second the optional paramter(s), the third the default-output.
+%
+% <scale> can be a number between 0 and $\infty$\footnote{Infinite; every positve number}, default is $1$.
+% <color> can be every defined color (see examples below).
+%
+%
+%\begin{longtable}{lcc}
+% Commands & Optional parameter(s) & Output (default) \\\hline\vspace{-1.5ex}\endhead
+%
+% \verb|\dSadey| & \oarg{scale}\oarg{color} & \dSadey \\
+% \verb|\dSmiley| & \oarg{scale}\oarg{color} & \dSmiley \\
+% \verb|\dAnnoey| & \oarg{scale}\oarg{color} & \dAnnoey \\
+% \verb|\dNeutrey| & \oarg{scale}\oarg{color} & \dNeutrey \\
+% \verb|\dWinkey| & \oarg{scale}\oarg{color} & \dWinkey \\
+% \verb|\dSey| & \oarg{scale}\oarg{color} & \dSey \\
+% \verb|\dInnocey| & \oarg{scale}\oarg{color}\oarg{halo color} & \dInnocey \\
+% \verb|\dCooley| & \oarg{scale}\oarg{color} & \dCooley \\
+% \verb|\dTongey| & \oarg{scale}\oarg{color}\oarg{tongue color} & \dTongey \\
+% \verb|\dNursey|$^{\ref{Kreuz}}$& \oarg{scale}\oarg{color}\oarg{cap color}\oarg{cross color} & \dNursey \\
+% \verb|\dVomey| & \oarg{scale}\oarg{color}\oarg{vomit color} & \dVomey
+%
+%\end{longtable}
+%
+% Examples:
+%\verb|\dSadey[][red]|\dSadey[][red]\quad\verb|\dCooley[3][cyan]|\dCooley[3][cyan]
+%
+%\verb|\dVomey[1.5][green!70!black][olive]|\dVomey[1.5][green!80!black][olive].
+%
+%\verb|\dNursey[][yellow][blue][red]|\dNursey[1][yellow][blue][red].
+%
+%
+% \subsection{other Symbol(s) \Person}
+% \begin{longtable}{lcc}
+% Commands & Optional parameter(s) & Output (default) \\\hline\vspace{-1.5ex}\endhead
+%\verb|\Person| & \oarg{scale} & \Person
+%\end{longtable}
+
+%
+%\subsection{Trees \BasicTree{blue!60!black}{red}{green}{leaf}}\label{Trees}
+% ``Hey, these trees look exactly like the ones in the tikzmanual'' -- ``NO! Not ``exatcly'', they look pretty a like\dots{} Well I changed them a bit\dots{} \dots{} Hey! The best ideas are stolen \dots''
+%
+% <scale> can be a number between 0 and $\infty$\footnote{Infinite; every positve number}, default is $1$.
+%
+% <color> can be every defined color.
+%
+% \verb|{|\emph{leaf}\verb|}| uses the colors of \marg{leaf color a} and \marg{leaf color b}, you can leave this one empty, if you don't want leaves (\verb|\Wintertree| is without \emph{leave}, see examples below).
+%
+% If you are using those trees, \LaTeX{} needs longer to produce the pdf.
+% So you may use the package option \verb|tree=off| (see section \ref{Options}) to make \LaTeX{} faster.
+%
+% \begin{longtable}{lcc}
+% Commands & Optional/Needed parameter(s) & Output \\\hline\endhead
+% \verb|\BasicTree| & \oarg{scale}\marg{trunk color}\marg{leaf color a}\marg{leaf color b}\verb|{|\emph{leaf}\verb|}| & see below\\
+%
+% \verb|\Springtree| & \oarg{scale} & \Springtree \\
+% \verb|\Summertree| & \oarg{scale} & \Summertree \\
+% \verb|\Autumntree| & \oarg{scale} & \Autumntree \\
+% \verb|\Wintertree| & \oarg{scale} & \Wintertree \\
+% \verb|\WorstTree| & \oarg{scale} & \WorstTree
+% \end{longtable}
+%
+%
+%\noindent\verb|\BasicTree| examples:
+%
+% \verb|\BasicTree{red}{orange}{yellow}{leaf}|\BasicTree{red}{orange}{yellow}{leaf}
+%
+% \verb|\BasicTree[5]{orange!95!black}{orange!80!black}{orange!70!black}{leaf}|\BasicTree[5]{orange!95!black}{orange!80!black}{orange!70!black}{leaf}
+%
+% \verb|\BasicTree[2]{blue!65!white}{cyan!50!white}{cyan!50!white}{}|\BasicTree[2]{blue!65!white}{cyan!50!white}{cyan!50!white}{}
+%\\[5ex]
+% \verb|\BasicTree| example with option \verb|tree=off| (see section \ref{Options}):
+%
+%
+% \verb|\BasicTree{red}{orange}{yellow}{leaf}|\definedBasicTree{red}{orange}{yellow}{leaf}
+%
+% \verb|\BasicTree[5]{orange!95!black}{orange!80!black}{orange!70!black}{leaf}|\definedBasicTree[5]{orange!95!black}{orange!80!black}{orange!70!black}{leaf}
+%
+% \verb|\BasicTree[2]{blue!65!white}{cyan!50!white}{cyan!50!white}{}|\definedBasicTree[2]{blue!65!white}{cyan!50!white}{cyan!50!white}{}
+%\\[1ex]
+% I think it's best if you define your own tree using \verb|\newcommand| and \verb|\BasicTree| (don't forget \verb|\xspace|):
+%\begin{verbatim}
+% \newcommand{\Myicetree}[1][1]{%
+% \BasicTree[#1]{blue!65!white}{cyan!50!white}{cyan!50!white}{}\xspace}
+%\end{verbatim}
+%
+%
+% \subsection{Something to redefine}
+%
+% At the end of the code I am using the command:\\
+% \verb|\newcommand{\tikzsymbolsaftersymbolinput}{\xspace}|
+%
+% You may change this (for some reasons I don't know).
+% If you want ``\dots'' after every symbol you can define:
+% \verb|\renewcommand{\tikzsymbolsaftersymbolinput}{\dots}|
+% \renewcommand{\tikzsymbolsaftersymbolinput}{\dots}
+% which will lead to: \Smiley \Summertree \Schneebesen
+%
+% Well that's it.
+% \renewcommand{\tikzsymbolsaftersymbolinput}{\xspace}
+%
+%
+% \section{Warnings and Errors}
+%
+% You can use this symbols in chapters, sections, subsections, etc.
+% But the log file will print a warning, something like:
+% \begin{quotation}
+%\noindent Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
+%(hyperref) removing `\verb|\Smiley|' on input line 137.
+%\end{quotation}
+%
+% You can avoid those messages by putting the symbol into this command:
+%
+% \verb|\texorpdfstring{\Smiley}{Smiley}|
+%
+%For example you may use something like that:
+%
+% \verb|\subsubsection{``3D'' Emoticons \texorpdfstring{\dSmiley}{dSmiley}}| or
+%
+%\verb|\subsection{Emoticons \texorpdfstring{\Smiley}{Smiley}]}| \\or
+%
+%\verb|\subsubsection{``normal'' Emoticons \texorpdfstring{\Cat}{Cat}}|
+%\\[1ex]
+% If you misspell \verb|tree=on| or \verb|tree=off| the ouptut will be something like: ``1redorangeyellowleaf''. If that happens, you misspelled something (``on'' or ``off'').
+% I have no idea how I can solve this (it was hard enough to make an option that works).
+%
+% \section[Code]{Code (do you really need this section?)}
+% There is not much to see, all this symbols were created with ``tikz''.
+% But it may helps you (somehow).
+
+%The first lines are always the same: what do I need, how is the package named:
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}[2011/06/27]
+\ProvidesPackage{tikzsymbols}
+[2013/02/14 v1.6 Some symbols created using tikz.]
+\RequirePackage{xargs}
+\RequirePackage{tikz}
+\RequirePackage{xcolor}
+\RequirePackage{xspace}
+\RequirePackage{xkeyval}
+% \end{macrocode}
+% Furthermore we need to load some libraries from tikz:
+
+% \begin{macrocode}
+ \usetikzlibrary{arrows,decorations.pathmorphing,trees}
+% \end{macrocode}
+
+%\begin{macro}{\tikzsymbolsaftersymbolinput}
+% Now we define this strange named macro.
+% This macro is inserted after the tikz-code, and is defined as \verb|\xspace| (there may be some changes in future, and to write less I define this macro)
+% \begin{macrocode}
+\newcommand{\tikzsymbolsaftersymbolinput}{\xspace}
+% \end{macrocode}
+%\end{macro}
+
+% \subsection{Cookingsymbolcode}
+%\begin{macro}{\Person}
+% The first symbol: a person.
+% In german it would be called ``Strichmaxerl''.
+% I am using \verb|\DefineRobustCommand| so that the symbols can be used in \verb|\section{}|, \verb|\footnote|, \verb|\index{}|, etc.
+% \begin{macrocode}
+\DeclareRobustCommand{\Person}[1][1]{%
+ \begin{tikzpicture}[line width=0.12ex*#1,scale=#1,x=1.35ex,y=1.35ex]%
+ \draw (0,-0.1) -- (0.15,0.2) -- (0.3,-0.1);
+ \draw (.15,.2) -- (.15,.4);
+ \draw (.15,.4) -- (.4,.5);
+ \draw (.15,.4) -- (-0.1,.5);
+ \draw (.15, .4) -- (.15, .53);
+ \draw (.15,.8) circle (0.18);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+% \end{macrocode}
+%\end{macro}
+
+%
+%\begin{macro}{\Kochtopf = \pot}
+% You can either use the german commands or the english ones:
+% \begin{macrocode}
+\DeclareRobustCommand{\Kochtopf}[1][1]{%
+\begin{tikzpicture}[x=2ex,y=2.2ex, line width=0.07ex*#1,scale=#1]
+\draw[rounded corners=0.2ex*#1] (0,0.5) -- (0,0) -- (1,0) -- (1,0.5);
+\draw(0,0.4) arc (90:270:0.1);
+\draw(1,0.4) arc (90:-90:0.1);
+\draw (0,0.5) -- (1,0.5) .. controls (1,0.6) and (0,0.6) .. (0,0.5);
+\draw (0.6,0.585) arc (0:180:0.1);
+\draw[decorate,decoration={snake,amplitude=.12ex*#1,segment length=0.93ex*#1}]
+(0,0.35) -- (1,0.35);
+\draw (0.1,0.25) circle (0.04);
+\draw (0.3,0.2) circle (0.04);
+\draw (0.13, 0.125) circle (0.04);
+\draw (0.6,0.25) circle (0.04);
+\draw (0.45,0.1) circle (0.04);
+\draw (0.88,0.2) circle (0.04);
+\draw (0.7,0.11) circle (0.04);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+\let\pot\Kochtopf
+% \end{macrocode}
+%\end{macro}
+%
+
+%\begin{macro}{\Bratpfanne = \fryingpan}
+% You may wonder why I am writing something like: \verb|amplitude=.12ex*#1|.
+% Well it' hard to explain in english, but I try my best:
+% After being scaled these symbols would look not so good without \verb|*#1|.
+% The lines would be too thin, the corners not rounded enough , etc.
+% To prevent too thin lines due to scaling I am multiplying the line width and the corners etc. so that they look with scale=5 a like with scale=1.
+% \begin{macrocode}
+\DeclareRobustCommand{\Bratpfanne}[1][1]{%
+\begin{tikzpicture}[x=0.7ex,y=1.4ex, line width=0.07ex*#1, scale=#1]
+\draw[rounded corners=0.07ex*#1] (-1,0) -- (1,0) -- (1.5,0.4) -- (-1.5,0.4) -- cycle;
+\draw[ line width=0.037ex*#1, rounded corners=0.023ex*#1]
+(-1.4,0.3) -- (-3.5,0.3) -- (-3.5,0.25) -- (-1.3,0.25);
+\draw[line width=0.023ex*#1] (-1.1,0.1) -- (1.1,0.1);
+\draw[line width=0.035ex*#1, decorate,
+ decoration={snake,amplitude=.05ex*#1,segment length=0.408ex*#1}]
+(-0.3,0.5) -- (-0.3,1);
+\draw[line width=0.035ex*#1, decorate,
+ decoration={snake,amplitude=.05ex*#1,segment length=0.408ex*#1}]
+ (0.3,0.5) -- (0.3,1);
+\draw[line width=0.035ex*#1, decorate,
+ decoration={snake,amplitude=.05ex*#1,segment length=0.408ex*#1}]
+(-1,0.5) -- (-1,1);
+\draw[line width=0.035ex*#1, decorate,
+ decoration={snake,amplitude=.05ex*#1,segment length=0.408ex*#1}]
+ (1,0.5) -- (1,1);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+\let\fryingpan\Bratpfanne
+% \end{macrocode}
+%\end{macro}
+
+%
+%\begin{macro}{\Schneebesen = \eggbeater}
+% The next one:
+% \begin{macrocode}
+\DeclareRobustCommand{\Schneebesen}[1][1]{%
+\begin{tikzpicture}[y=2.1ex,x=1.4ex, scale=#1]
+\draw[line width=0.01ex*(#1-.#1*3)]
+ (0,0) .. controls (0.2,0.0) and (0.2,0.2) .. (0,0.4);
+\draw[line width=0.01ex*(#1-.#1*3)]
+ (0,0) .. controls (-0.2,0.0) and (-0.2,0.2) .. (0,0.4);
+\draw[line width=0.01ex*(#1-.#1*3)]
+ (0,0) .. controls (-0.1,0.0) and (-0.1,0.2) .. (0,0.4);
+\draw[line width=0.01ex*(#1-.#1*3)]
+ (0,0) .. controls (0.1,0.0) and (0.1,0.2) .. (0,0.4);
+\draw[line width=0.01ex*(#1-.#1*3)]
+ (0,0) .. controls (-0.15,0.0) and (-0.15,0.2) .. (0,0.4);
+\draw[line width=0.01ex*(#1-.#1*3)]
+ (0,0) .. controls (0.15,0.0) and (0.15,0.2) .. (0,0.4);
+\draw[line width=0.01ex*(#1-.#1*3)]
+ (0,0) .. controls (-0.05,0.0) and (-0.05,0.2) .. (0,0.4);
+\draw[line width=0.01ex*(#1-.#1*3)]
+ (0,0) .. controls (0.05,0.0) and (0.05,0.2) .. (0,0.4);
+\draw[line width=0.01ex*(#1-.#1*3)]
+ (0,0) --(0,0.4);
+\fill[line width=0.05ex*#1, rounded corners=0.07ex*#1]
+ (-0.05,0.37) -- (0.05,0.37) -- (0.05,0.75) -- (-0.05,0.75) -- cycle;
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+\let\eggbeater\Schneebesen
+% \end{macrocode}
+%\end{macro}
+
+%
+%\begin{macro}{\Sieb = \sieve}
+% Now a long one;
+% \begin{macrocode}
+\DeclareRobustCommand{\Sieb}[1][1]{%
+\begin{tikzpicture}[x=2.8ex, y=2.8ex,line width=0.02ex*#1 ,scale=#1]
+\draw[line width=0.09ex*#1] (-0.2,0) -- (1.01,0);
+\draw (0.2,0) arc (180:360:0.4);
+\draw(0.25,0) arc (180:360:0.35);
+\draw (0.3,0) arc (180:360:0.3);
+\draw (0.35,0) arc (180:360:0.25);
+\draw (0.4,0) arc (180:360:0.2);
+\draw (0.45,0) arc (180:360:0.15);
+\draw (0.5,0) arc (180:360:0.1);
+\draw (0.55,0) arc (180:360:0.05);
+\draw (.95,0) -- (0.95,-0.194);
+\draw (.9,0) -- (0.9,-0.265);
+\draw (.85,0) -- (0.85,-0.313);
+\draw (.8,0) -- (0.8,-0.345);
+\draw (.75,0) -- (0.75,-0.37);
+\draw (.7,0) -- (0.7,-0.39);
+\draw (.65,0) -- (0.65,-0.4);
+\draw (.6,0) -- (0.6,-0.4);
+\draw (.55,0) -- (0.55,-0.4);
+\draw (.5,0) -- (0.5,-0.39);
+\draw (.45,0) -- (0.45,-0.37);
+\draw (.4,0) -- (0.4,-0.348);
+\draw (.35,0) -- (0.35,-0.314);
+\draw (.3,0) -- (0.3,-0.265);
+\draw (.25,0) -- (0.25,-0.194);
+\draw (0.2,-0.05) -- (1,-0.05);
+\draw (0.21,-0.1) -- (0.99,-0.1);
+\draw (0.23,-0.15) -- (0.97,-0.15);
+\draw (0.255,-0.2) -- (0.945,-0.2);
+\draw (0.289,-0.25) -- (0.911,-0.25);
+\draw (0.335,-0.3) -- (0.865,-0.3);
+\draw (0.406,-0.35) -- (0.794,-0.35);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+\let\sieve\Sieb
+% \end{macrocode}
+%\end{macro}
+%
+
+%\begin{macro}{\Purierstab = \blender}
+% Da es keine Umlaute gibt, werden \"a, \"u, \"o einfach zu: a, u, o.
+% This symbol is far from perfect. And I know that the correct translation of ``P\"urierstab'' would be ``immersion blender'', but I am just using ``blender'':
+% \begin{macrocode}
+\DeclareRobustCommand{\Purierstab}[1][1]{%
+\begin{tikzpicture}[x=2.3ex, y=2.2ex, line width=0.07ex*#1,scale=#1]
+\draw[rounded corners=0.07ex*#1] (0,0) -- (0.3,0) -- (0.15,0.1) --cycle;
+\fill[rounded corners=0.07ex*#1] (0.15,0.3) -- (0.24,0.4) -- (0.24,0.7) --
+ (0.06,0.7) -- (0.06,0.4) -- cycle;
+\draw (0.15,0.4) -- (0.15,0.1);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+\let\blender\Purierstab
+% \end{macrocode}
+%\end{macro}
+%
+
+%\begin{macro}{\Dreizack = \trident}
+% Important for cooking:
+% \begin{macrocode}
+\DeclareRobustCommand{\Dreizack}[1][1]{%
+\begin{tikzpicture}[x=2.3ex, y=2.2ex, line width=0.035ex*#1,scale=#1]
+\fill[rounded corners=0.07ex*(#1-.#1)] (0,0) -- (0,0.4) -- (0.1,0.4)
+ -- (0.1,0.0) -- cycle;
+\draw (0.05,0) -- (0.05,0.7);
+\draw[rounded corners=0.07ex*(#1-.#1*#1*2] (0,0.7) -- (0,0.55)
+ -- (0.05,0.55) -- (0.1,0.55) -- (0.1,0.7);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+\let\trident\Dreizack
+% \end{macrocode}
+%\end{macro}
+%
+
+%\begin{macro}{\Backblech = \bakingplate}
+% I may overdo it a little bit \dots:
+% \begin{macrocode}
+\DeclareRobustCommand{\Backblech}[1][1]{%
+\begin{tikzpicture}[x=6.53ex,y=5.ex, line width=0.07ex*#1,scale=#1]
+\filldraw[rounded corners=0.09ex*#1] (0,0) rectangle (0.3,0.3);
+\draw[rounded corners=0.07ex*#1, line width=0.03ex*#1]
+ (0.1,0) -- (-0.025,0) -- (-0.025,0.3) -- (0.1,0.3);
+\draw[rounded corners=0.07ex*#1, line width=0.03ex*#1]
+ (0.2,0) -- (.325,0) -- (.325,0.3) -- (0.2,0.3);
+\foreach \@BackblechlochX in {0.007,0.293}
+\foreach \@BackblechlochY in {0.007,0.293}
+\fill[white] (\@BackblechlochX,
+\@BackblechlochY) circle (0.02ex);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+\let\bakingplate\Backblech
+% \end{macrocode}
+%\end{macro}
+%
+
+%\begin{macro}{\Ofen = \oven}
+% I may overdo it a little bit 2:
+% \begin{macrocode}
+\DeclareRobustCommand{\Ofen}[1][1]{%
+\begin{tikzpicture}[x=0.50ex,y=.5ex, line width=0.07ex*#1,scale=#1]
+\draw (0,0) rectangle (4,3);
+\draw (0.25,0.25) rectangle (3.75,2);
+\foreach \@Ofenschalter in {0.5,1.1,2.9,3.5}
+\fill (\@Ofenschalter,2.5) circle (0.22);
+\draw (1.5,2.28) rectangle (2.5,2.72);
+\draw[line width=0.05ex*#1] (1,1.75) -- (3,1.75);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+\let\oven\Ofen
+% \end{macrocode}
+%\end{macro}
+
+%
+%\begin{macro}{\Pfanne = \pan}
+% I can't think of a better word \dots:
+% \begin{macrocode}
+\DeclareRobustCommand{\Pfanne}[1][1]{%
+\begin{tikzpicture}[x=2.3ex,y=2.3ex, line width=0.09ex*#1,scale=#1]
+\draw [rounded corners=0.023ex*#1](0,0) -- (0.9,0) -- (1,0.3) -- (-0.1,0.3) -- cycle;
+\draw (-0.2,0.22) -- (-0.08,0.22);
+\draw (0.97,0.22) -- (1.08,0.22);
+\draw[decorate,decoration={snake,amplitude=.046ex*#1,
+ segment length=0.82ex*#1},line width=0.05ex*#1] (-0.05,0.1) -- (0.95,0.1);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+\let\pan\Pfanne
+% \end{macrocode}
+%\end{macro}
+%
+
+%\begin{macro}{\Herd = \cooker}
+% I hope it' the right translation:
+% \begin{macrocode}
+\DeclareRobustCommand{\Herd}[1][1]{%
+\begin{tikzpicture}[x=1ex,y=1ex,line width=0.04ex*#1,scale=#1]
+\draw[line width=0.08ex*#1] (0,0) rectangle (2,1.5);
+\draw (0.5,0.45) circle (0.35);
+\draw (0.5,0.45) circle (0.2);
+\draw (1.45,0.45) circle (0.3);
+\draw (0.5,1.15) circle (0.21);
+\draw (1.05,0.95) rectangle (1.85,1.35);
+\draw (1.45,1.15) circle (0.15);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+\let\cooker\Herd
+% \end{macrocode}
+%\end{macro}
+
+%
+%\begin{macro}{\Saftpresse = \squeezer}
+% It's an old squeezer:
+% \begin{macrocode}
+\DeclareRobustCommand{\Saftpresse}[1][1]{%
+\begin{tikzpicture}[x=1.2ex,y=1ex,line width=0.07ex*#1,scale=#1]
+\draw[rounded corners=0.1ex*#1] (0,0.85) -- (0,0) -- (1.5,0) -- (1.5,0.85) -- cycle;
+\draw (0,0.7) -- (1.5,0.7);
+\draw[rounded corners=0.1ex*#1] (0.3,0.7) -- (0.75,1.55) -- (1.2,0.7);
+\draw[rounded corners=0.1ex*#1] (0.45,0.7) -- (0.75,1.55) -- (1.05,0.7);
+\draw[rounded corners=0.1ex*#1] (0.65,0.7) -- (0.75,1.55) -- (0.85,0.7);
+\draw[line width=0.05ex*#1, decorate,
+ decoration={snake,amplitude=.05ex*#1,segment length=0.48ex*#1}] (0,0.3) -- (1.5,0.3);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+\let\squeezer\Saftpresse
+% \end{macrocode}
+%\end{macro}
+%
+
+%\begin{macro}{\Schussel = \bowl}
+% It may looks a bit queery, but I like it.
+% Wieder dasselbe mit den Umlauten: \"u=u.
+% \begin{macrocode}
+\DeclareRobustCommand{\Schussel}[1][1]{%
+\begin{tikzpicture}[x=1ex,y=1ex,line width=0.07ex*#1, scale=#1]
+\draw[rounded corners=0.5ex*#1]
+ (-0.02,1.4) -- (0,1.4) -- (0,0.05) -- (1.5,0.05) -- (1.5,1.4) -- (1.52,1.4);
+\draw (0.35,0) -- (1.15,0);
+\end{tikzpicture}
+\tikzsymbolsaftersymbolinput%
+}
+\let\bowl\Schussel
+% \end{macrocode}
+%\end{macro}
+%
+%
+%
+%
+%\iffalse
+%<package>%%% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+%\fi
+%
+%
+%
+%
+% \subsection{Emoticonscode}
+%
+%\begin{macro}{\Sadey \dSadey}
+% An other name of Sadey is Frowny, but I named it Sadey because there are enough Frownys in the world.
+% All ``3D'' Emoticons start with \verb|\d...|, and all Emoticons end with an ``ey'' (exception: ``Cat'').
+% The ``default color'' of the 2D Emoticons is \verb|opacity=0|, with that default option, it's useful for \verb|\colorbox{yellow}{\Sadey}| which leads to \colorbox{yellow}{\Sadey} instead of \colorbox{yellow}{\Sadey[][white]} (with default=white).
+% \begin{macrocode}
+\DeclareRobustCommandx{\Sadey}[2][1=1, 2={opacity=0}, usedefault]{%
+\begin{tikzpicture}[x=2.4ex, y=2.4ex, line width=0.09ex*#1,scale=#1]
+\fill[#2, line width=0.12ex*#1] (0,0) circle (0.33);
+\draw[line width=0.12ex*#1] (0,0) circle (0.33);
+\fill (0.1,0.1) circle (0.05);
+\fill (-0.1,0.1) circle (0.05);
+\draw (-0.2,-0.11) .. controls (-0.1,-0.06) and (0.1,-0.06) .. (0.2,-0.11);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+\DeclareRobustCommandx{\dSadey}[2][1=1,2=yellow,usedefault]{%
+\begin{tikzpicture}[x=2.4ex, y=2.4ex, line width=0.09ex*#1,scale=#1]
+\shade[ball color=#2] (0,0) circle (0.33);
+\shade[ball color=black] (0.1,0.1) circle (0.05);
+\shade[ball color=black] (-0.1,0.1) circle (0.05);
+\draw[black] (-0.2,-0.11) .. controls (-0.1,-0.06) and (0.1,-0.06) .. (0.2,-0.11);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+% \end{macrocode}
+%\end{macro}
+%
+
+
+%
+%
+%\begin{macro}{\Annoey \dAnnoey}
+% An annoyed Smiley -\_-
+% \begin{macrocode}
+\DeclareRobustCommandx{\Annoey}[2][1=1,2={opacity=0},usedefault]{%
+\begin{tikzpicture}[x=2.4ex, y=2.4ex, line width=0.09ex*#1,scale=#1]
+\fill[#2, line width=0.12ex*#1] (0,0) circle (0.33);
+\draw[line width=0.12ex*#1] (0,0) circle (0.33);
+\draw (0.08,0.1) -- (0.22,0.1);
+\draw (-0.08,0.1) -- (-0.22,0.1);
+\draw (-0.2,-0.1) -- (0.2,-0.1);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+\DeclareRobustCommandx{\dAnnoey}[2][1=1,2=yellow,usedefault]{%
+\begin{tikzpicture}[x=2.4ex, y=2.4ex, line width=0.09ex*#1,scale=#1]
+\shade[ball color=#2] (0,0) circle (0.33);
+\draw[black] (0.08,0.1) -- (0.22,0.1);
+\draw[black] (-0.08,0.1) -- (-0.22,0.1);
+\draw[black] (-0.2,-0.1) -- (0.2,-0.1);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%
+
+%\begin{macro}{\Smiley \dSmiley}
+% A normal Smiley
+% \begin{macrocode}
+\DeclareRobustCommandx{\Smiley}[2][1=1,2={opacity=0} ,usedefault]{%
+\begin{tikzpicture}[x=2.4ex, y=2.4ex, line width=0.12ex*#1,scale=#1]
+\fill[#2,line width=0.12ex*#1] (0,0) circle (0.33);
+\draw[line width=0.12ex*#1] (0,0) circle (0.33);
+\fill (-0.1,0.1) circle (0.05);
+\fill (0.1,0.1) circle (0.05);
+\draw (-0.2,-0.1) .. controls (-0.1,-0.2) and (0.1,-0.2) .. (0.2,-0.1);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+\DeclareRobustCommandx{\dSmiley}[3][1=1,2=yellow,3=yellow,usedefault]{%
+\begin{tikzpicture}[x=2.4ex, y=2.4ex, line width=0.12ex*#1,scale=#1]
+\shade[ball color=#2] (0,0) circle (0.33);
+\shade[ball color=black] (-0.1,0.1) circle (0.05);
+\shade[ball color=black] (0.1,0.1) circle (0.05);
+\draw[black] (-0.2,-0.1) .. controls (-0.1,-0.2) and (0.1,-0.2) .. (0.2,-0.1);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+% \end{macrocode}
+%\end{macro}
+%
+
+
+%
+%\begin{macro}{\Neutrey \dNeutrey}
+% neutral Smiley \verb+:|+
+% \begin{macrocode}
+\DeclareRobustCommandx{\Neutrey}[2][1=1, 2={opacity=0}, usedefault]{%
+\begin{tikzpicture}[x=2.4ex, y=2.4ex, line width=0.09ex*#1,scale=#1]
+\fill[#2,line width=0.12ex*#1] (0,0) circle (0.33);
+\draw[line width=0.12ex*#1] (0,0) circle (0.33);
+\fill (0.1,0.1) circle (0.05);
+\fill (-0.1,0.1) circle (0.05);
+\draw (-0.2,-0.1) -- (0.2,-0.1);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+\DeclareRobustCommandx{\dNeutrey}[2][1=1,2=yellow,usedefault]{%
+\begin{tikzpicture}[x=2.4ex, y=2.4ex, line width=0.09ex*#1,scale=#1]
+\shade[ball color=#2] (0,0) circle (0.33);
+\shade[ball color=black] (0.1,0.1) circle (0.05);
+\shade[ball color=black] (-0.1,0.1) circle (0.05);
+\draw[black] (-0.2,-0.1) -- (0.2,-0.1);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+% \end{macrocode}
+%\end{macro}
+%
+
+
+
+%\begin{macro}{\Winkey \dWinkey}
+% ;)
+% \begin{macrocode}
+\DeclareRobustCommandx{\Winkey}[2][1=1,2={opacity=0} ,usedefault]{%
+\begin{tikzpicture}[x=2.4ex, y=2.4ex, line width=0.12ex*#1,scale=#1]
+\fill[#2, line width=0.12ex*#1] (0,0) circle (0.33);
+\draw[line width=0.12ex*#1] (0,0) circle (0.33);
+\draw(0.17,0.1) -- (0.05,0.1);
+\fill (-0.1,0.1) circle (0.05);
+\draw (-0.2,-0.1) .. controls (-0.1,-0.2) and (0.15,-0.2) .. (0.2,0);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+\DeclareRobustCommandx{\dWinkey}[2][1=1,2=yellow,usedefault]{%
+\begin{tikzpicture}[x=2.4ex, y=2.4ex, line width=0.12ex*#1,scale=#1]
+\shade[ball color=#2] (0,0) circle (0.33);
+\draw(0.17,0.1) -- (0.05,0.1);
+\shade[ball color=black] (-0.1,0.1) circle (0.05);
+\draw[black] (-0.2,-0.1) .. controls (-0.1,-0.2) and (0.15,-0.2) .. (0.2,0);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+% \end{macrocode}
+%\end{macro}
+%
+
+
+
+
+%\begin{macro}{\Sey \dSey}
+% I can't think of a better name \verb|:S|
+% \begin{macrocode}
+\DeclareRobustCommandx{\Sey}[2][1=1,2={opacity=0} ,usedefault]{%
+\begin{tikzpicture}[x=2.4ex, y=2.4ex, line width=0.09ex*#1,scale=#1]
+\fill[#2, line width=0.12ex*#1] (0,0) circle (0.33);
+\draw[line width=0.12ex*#1] (0,0) circle (0.33);
+\fill (0.1,0.1) circle (0.05);
+\fill (-0.1,0.1) circle (0.05);
+\draw (-0.2,-0.08) .. controls (-0.0,-0.2) and (0.0,0) .. (0.2,-0.12);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+\DeclareRobustCommandx{\dSey}[2][1=1,2=yellow ,usedefault]{%
+\begin{tikzpicture}[x=2.4ex, y=2.4ex, line width=0.09ex*#1,scale=#1]
+\shade[ball color=#2] (0,0) circle (0.33);
+\shade[ball color=black] (0.1,0.1) circle (0.05);
+\shade[ball color=black] (-0.1,0.1) circle (0.05);
+\draw[black] (-0.2,-0.08) .. controls (-0.0,-0.2) and (0.0,0) .. (0.2,-0.12);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+% \end{macrocode}
+%\end{macro}
+%
+
+
+%\begin{macro}{\Innocey \dInnocey}
+% An innocent Smiley
+% \begin{macrocode}
+\DeclareRobustCommandx{\Innocey}[3][1=1,2={opacity=0},3=yellow ,usedefault]{%
+\begin{tikzpicture}[x=2.4ex, y=2.4ex, line width=0.12ex*#1,scale=#1]
+\fill[#2,line width=0.12ex*#1] (0,0) circle (0.33);
+\draw[line width=0.12ex*#1] (0,0) circle (0.33);
+\fill (-0.1,0.1) circle (0.05);
+\fill (0.1,0.1) circle (0.05);
+\draw (-0.2,-0.1) .. controls (-0.1,-0.2) and (0.1,-0.2) .. (0.2,-0.1);
+\draw[#3, line width=0.095ex*#1] (0.32,0.31) arc (0:360:0.32 and 0.1);
+\draw[line width=0.05ex*#1] (0.3,0.31) arc (0:360:0.3 and 0.07);
+\draw[line width=0.05ex*#1] (0.35,0.31) arc (0:360:0.35 and 0.12);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+\DeclareRobustCommand{\wInnocey}[1][1]{\Innocey[#1][opacity=0][white]}
+\DeclareRobustCommandx{\dInnocey}[3][1=1,2=yellow,3=yellow,usedefault]{%
+\begin{tikzpicture}[x=2.4ex, y=2.4ex, line width=0.12ex*#1,scale=#1]
+\shade[ball color=#2] (0,0) circle (0.33);
+\shade[ball color=black] (-0.1,0.1) circle (0.05);
+\shade[ball color=black] (0.1,0.1) circle (0.05);
+\draw[black] (-0.2,-0.1) .. controls (-0.1,-0.2) and (0.1,-0.2) .. (0.2,-0.1);
+\draw[color=#3!97!black, line width=0.09ex*#1] (0.32,0.31) arc (0:360:0.32 and 0.1);
+\draw[line width=0.05ex*#1] (0.3,0.31) arc (0:360:0.3 and 0.07);
+\draw[line width=0.05ex*#1] (0.35,0.31) arc (0:360:0.35 and 0.12);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+% \end{macrocode}
+%\end{macro}
+%
+
+
+
+%\begin{macro}{\Cooley \dCooley}
+% Cool
+% \begin{macrocode}
+\DeclareRobustCommandx{\Cooley}[2][1=1,2={opacity=0} ,usedefault]{%
+\begin{tikzpicture}[x=2.4ex, y=2.4ex, line width=0.12ex*#1,scale=#1]
+\fill[#2,line width=0.12ex*#1] (0,0) circle (0.33);
+\draw[line width=0.12ex*#1] (0,0) circle (0.33);
+\fill[rounded corners=0.1ex*#1]
+ (0.24,0.15) -- (0.01,0.15) -- (0.01,0) -- (0.24,0) -- cycle;
+\fill[rounded corners=0.1ex*#1]
+ (-0.24,0.15) -- (-0.01,0.15) -- (-0.01,0) -- (-0.24,0) -- cycle;
+\draw (-0.2,-0.1) .. controls (-0.1,-0.2) and (0.1,-0.2) .. (0.2,-0.1);
+\draw (0.02,0.1) -- (-0.02,0.1);
+\draw (-0.2,0.1) -- (-0.3,0.13);
+\draw (0.2,0.1) -- (0.3,0.13);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+\DeclareRobustCommandx{\dCooley}[2][1=1,2=yellow,usedefault]{%
+\begin{tikzpicture}[x=2.4ex, y=2.4ex, line width=0.12ex*#1,scale=#1]
+\shade[ball color=#2] (0,0) circle (0.33);
+\draw[black] (0.02,0.1) -- (-0.02,0.1);
+\draw[black] (-0.2,0.1) -- (-0.295,0.146);
+\draw[black] (0.2,0.1) -- (0.295,0.146);
+\shade[ball color=black,rounded corners=0.1ex*#1]
+ (0.24,0.15) -- (0.01,0.15) -- (0.01,0) -- (0.24,0) -- cycle;
+\shade[ball color=black,rounded corners=0.1ex*#1]
+ (-0.24,0.15) -- (-0.01,0.15) -- (-0.01,0) -- (-0.24,0) -- cycle;
+\draw[black] (-0.2,-0.1) .. controls (-0.1,-0.2) and (0.1,-0.2) .. (0.2,-0.1);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+% \end{macrocode}
+%\end{macro}
+%
+
+
+%\begin{macro}{\Tongey \dTongey}
+% :P
+% \begin{macrocode}
+\DeclareRobustCommandx{\Tongey}[3][1=1,2={opacity=0},3=red ,usedefault]{%
+\begin{tikzpicture}[x=2.4ex, y=2.4ex, line width=0.12ex*#1,scale=#1]
+\fill[#2,line width=0.12ex*#1] (0,0) circle (0.33);
+\draw[line width=0.12ex*#1] (0,0) circle (0.33);
+\fill (-0.1,0.1) circle (0.05);
+\fill (0.1,0.1) circle (0.05);
+\fill[#3,line width=0.058ex*#1, rounded corners=0.12ex*#1]
+ (0,-0.09) -- (0.05,-0.2) -- (0.16,-0.23) -- (0.2,-0.15) -- (0.19,-0.03);
+\draw[line width=0.07ex*#1, yshift=0.21ex]
+ (-0.2,-0.1) .. controls (-0.1,-0.2) and (0.1,-0.2) .. (0.2,-0.1);
+\draw[line width=0.058ex*#1, rounded corners=0.11ex*#1]
+ (0,-0.09) -- (0.05,-0.2) -- (0.16,-0.23) -- (0.2,-0.15) -- (0.19,-0.03);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+\DeclareRobustCommandx{\dTongey}[3][1=1,2=yellow,3=red,usedefault]{%
+\begin{tikzpicture}[x=2.4ex, y=2.4ex, line width=0.12ex*#1,scale=#1]
+\shade[ball color=#2] (0,0) circle (0.33);
+\shade[ball color=black] (-0.1,0.1) circle (0.05);
+\shade[ball color=black] (0.1,0.1) circle (0.05);
+\shade[ball color=#3,line width=0.058ex*#1, rounded corners=0.12ex*#1]
+ (0,-0.09) -- (0.05,-0.2) -- (0.16,-0.23) -- (0.2,-0.15) -- (0.19,-0.03);
+\draw[black, line width=0.058ex*#1, rounded corners=0.12ex*#1]
+ (0,-0.09) -- (0.05,-0.2) -- (0.16,-0.23) -- (0.2,-0.15) -- (0.19,-0.03);
+\draw[black, line width=0.07ex*#1, yshift=0.21ex]
+ (-0.2,-0.1) .. controls (-0.1,-0.2) and (0.1,-0.2) .. (0.2,-0.1);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+% \end{macrocode}
+%\end{macro}
+%
+
+
+%\begin{macro}{\Nursey \dNursey}
+% a Nurse (the cross has nothing to do with religion).
+% \begin{macrocode}
+\DeclareRobustCommandx{\Nursey}[4][1=1,2={opacity=0},3={opacity=0},4=black,usedefault]{%
+\begin{tikzpicture}[x=2.3ex, y=2.3ex, line width=0.12ex*#1,scale=#1]
+\fill[#3,rounded corners=.023ex*#1]
+ (-0.3,0) -- (-0.3,0.3) -- (0,0.6) -- (0.3,0.3) -- (0.3,0);
+\fill[#2,line width=0.12ex*#1] (0,0) circle (0.3);
+\draw[line width=0.12ex*#1] (0,0) circle (0.3);
+\fill (-0.1,0.1) circle (0.05);
+\fill (0.1,0.1) circle (0.05);
+\draw[line width=0.09ex*#1, yshift=0.07ex]
+ (-0.2,-0.1) .. controls (-0.1,-0.2) and (0.1,-0.2) .. (0.2,-0.1);
+\draw[rounded corners=.023ex*#1]
+ (-0.3,0) -- (-0.3,0.3) -- (0,0.6) -- (0.3,0.3) -- (0.3,0);
+\draw[#4,line width=.046ex*#1] (0,0.35) -- (0,0.5);
+\draw[#4,line width=.046ex*#1] (-0.05,0.45) -- (0.05,0.45);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+\DeclareRobustCommandx{\dNursey}[4][1=1,2=yellow,3=white,4=red,usedefault]{%
+\begin{tikzpicture}[x=2.3ex, y=2.3ex, line width=0.12ex*#1,scale=#1]
+\shade[ball color=#2] (0,0) circle (0.3);
+\shade[ball color=black] (-0.1,0.1) circle (0.05);
+\shade[ball color=black] (0.1,0.1) circle (0.05);
+\draw[black, line width=0.09ex*#1, yshift=0.07ex]
+ (-0.2,-0.1) .. controls (-0.1,-0.2) and (0.1,-0.2) .. (0.2,-0.1);
+\shade[ball color=#3, rounded corners=.023ex*#1,yshift=-0.09ex]
+ (-0.3,0) -- (-0.3,0.3) -- (0,0.6) -- (0.3,0.3) -- (0.3,0) arc(0:180:0.3);
+\shade[ball color=#4,line width=.046ex*#1]
+ (-0.01,0.31) -- (-0.01,0.46) -- (0.01,0.46) -- (0.01,0.31)--cycle;
+\shade[ball color=#4,line width=.046ex*#1]
+ (-0.05,0.4) -- (0.05,0.4) -- (0.05,0.42)--(-0.05,0.42) -- cycle;
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+% \end{macrocode}
+%\end{macro}
+%
+
+
+
+%\begin{macro}{\Vomey \dVomey}
+% *Bl\"a\"argh*
+% \begin{macrocode}
+\DeclareRobustCommandx{\Vomey}[3][1=1,2={opacity=0},3={opacity=0},usedefault]{%
+\begin{tikzpicture}[x=0.58ex,y=0.58ex, line width=0.09ex*#1,scale=#1]
+\fill[#2,rounded corners=0.05ex*#1] (0,0) arc (15:330:1) -- (-0.6,-0.3) -- cycle;
+\draw[rounded corners=0.05ex*#1] (0,0) arc (15:330:1) -- (-0.6,-0.3) -- cycle;
+\draw[line width=0.05ex*#1] (-0.5,0.3) -- (-0.3,0.1);
+\fill (-0.45,0.27) arc (100:350:0.1);
+\fill[#3] (1.8,-0.5) .. controls (2.5,-0.3) and (2.8,-0.7) .. (2.5,-1) ..
+ controls (3,-1) and (3,-1.7) .. (2,-1.5) .. controls (1.7,-2) and (1,-2) .. (1,-1.5) ..
+ controls (0.5,-1.9) and (0.3,-1) .. (0.7,-0.9);
+\fill[#3] (0,-0.4) .. controls (1,0) and (2,-1) .. (2,-1) ..
+ controls (1.7,-1.2) and (1.3,-1.2) .. (1,-1) ..
+ controls (0.8,-0.7) and (0.5,-0.5) .. (0,-0.4);
+\draw (0,-0.4) .. controls (1,0) and (2,-1) .. (2,-1);
+\draw (0,-0.4) .. controls (0.5,-0.5) and (0.8,-0.7) .. (1,-1);
+\draw (1.8,-0.5) .. controls (2.5,-0.3) and (2.8,-0.7) .. (2.5,-1) ..
+ controls (3,-1) and (3,-1.7) .. (2,-1.5) .. controls (1.7,-2)
+ and (1,-2) .. (1,-1.5) .. controls (0.5,-1.9) and (0.3,-1) .. (0.7,-0.9);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+\DeclareRobustCommandx{\dVomey}[3][1=1,2=yellow,3={brown!10!olive},usedefault]{%
+\begin{tikzpicture}[x=0.58ex,y=0.58ex, line width=0.09ex*#1,scale=#1]
+\shade[ball color=#2!90!brown,rounded corners=0.03ex*#1]
+ (0,0) arc (15:330:1) -- (-0.6,-0.3) -- cycle;
+\draw[black, line width=0.05ex*#1] (-0.5,0.3) -- (-0.3,0.1);
+\shade[ball color=black] (-0.45,0.27) arc (100:350:0.1);
+\shade[ball color=#3] (1.8,-0.5) .. controls (2.5,-0.3) and (2.8,-0.7) .. (2.5,-1) ..
+ controls (3,-1) and (3,-1.7) .. (2,-1.5) .. controls (1.7,-2) and (1,-2) .. (1,-1.5) ..
+ controls (0.5,-1.9) and (0.3,-1) .. (0.7,-0.9);
+\shade[ball color=#3] (0,-0.4) .. controls (1,0) and (2,-1) .. (2,-1) .. controls
+ (1.7,-1.2) and (1.3,-1.2) .. (1,-1) .. controls (0.8,-0.7) and (0.5,-0.5) .. (0,-0.4);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+% \end{macrocode}
+%\end{macro}
+%
+
+
+%\begin{macro}{\Cat}
+% *Miau*
+% \begin{macrocode}
+\DeclareRobustCommandx{\Cat}[1][1=1,usedefault]{%
+\begin{tikzpicture}[x=2.33ex,y=2.33ex, line width=0.093ex*#1,scale=#1]
+\draw (0,0) circle (0.3);
+\draw[rounded corners=0.163ex*#1] (-0.3,0) -- (-0.35,0.5) -- (0,0.3);
+\draw[rounded corners=0.163ex*#1] (0,0.3) -- (0.35,0.5) -- (0.3,0);
+\fill (-0.15,.15) circle (0.05);
+\fill (0.15,.15) circle (0.05);
+\draw[rounded corners=0.175ex*#1,yshift=-0.12ex] (0,0) -- (0,-0.1) -- (-0.1,-0.095);
+\draw[rounded corners=0.175ex*#1,yshift=-0.12ex] (0,0) -- (0,-0.1) -- (0.1,-0.095);
+\draw[rounded corners=.12ex*#1,yshift=-.15ex, line width=0.03em*(#1-.#1)]
+(-0.1,0.1) -- (0,0) -- (0.1,0.1) -- cycle ;
+\draw[line width=0.035ex*#1](-0.1,-0.05)..controls(-0.25,0)and(-0.35,0).. (-0.4,-0.05);
+\draw[line width=0.035ex*#1, ](-0.1,-0.05)..
+ controls(-0.25,-0.01)and(-0.35,-0.09).. (-0.4,-0.14);
+\draw[line width=0.035ex*#1, ](-0.1,-0.05)..
+ controls(-0.25,-0.045)and(-0.35,-0.13).. (-0.4,-0.23);
+\draw[line width=0.035ex*#1](0.1,-0.05)..controls(0.25,0)and(0.35,0).. (0.4,-0.05);
+\draw[line width=0.035ex*#1 ]
+ (0.1,-0.05)..controls(0.25,-0.01)and(0.35,-0.09).. (0.4,-0.14);
+\draw[line width=0.035ex*#1]
+ (0.1,-0.05)..controls(0.25,-0.045)and(0.35,-0.13).. (0.4,-0.23);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+% \end{macrocode}
+%\end{macro}
+%
+
+
+%\begin{macro}{\NiceReapey}
+% Not very well made.
+% But it's better than nothing
+% \begin{macrocode}
+\DeclareRobustCommandx{\NiceReapey}[1][1=1,usedefault]{%
+\begin{tikzpicture}[x=0.11em,y=0.11em, line width=0.07ex*#1,scale=#1]
+\draw (1.7,-1) arc (360:180:1.7 and 2)
+ arc (260:110:1.5 and 2) .. controls (-1,3.3) and (1,3.3) .. (1.9,2.97)
+ arc (260:100:-1.3 and -2) -- cycle;
+\fill[black!20!white] (3,3) .. controls (5,3) and (6,2) .. (7,1.5) -- (3,1.5) -- cycle;
+\draw (3,-3) -- (3,3) .. controls (5,3) and (6,2) .. (7,1.5) -- (3,1.5);
+\draw (0,-1.5) circle (1 and 0.5);
+\draw[line width=0.04ex*#1] (-0.2,-1) -- (-0.2,-2);
+\draw[line width=0.04ex*#1] (0.2,-1) -- (0.2,-2);
+\draw[line width=0.04ex*#1] (0.6,-1) -- (0.6,-2);
+\draw[line width=0.04ex*#1] (-0.6,-1) -- (-0.6,-2);
+\draw[line width=0.04ex*#1] (-1,-1.5) -- (1,-1.5);
+\fill (1.25,1.25) circle ( 0.5 and 0.75);
+\fill (-1.25,1.25) circle ( 0.5 and 0.75);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%
+
+%<package>%%% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+%
+% \subsection{Trees}
+% Many great ideas are stolen.
+% Don't know who said that, but it's true.
+%
+%
+%\begin{macro}{\@leaf@is@leaf}
+% I this name \dots However, We need this command for creating an errormessage if the last paramter of BasicTree is neither ``leaf'' nor empty.
+% \begin{macrocode}
+\def\@leaf@is@leaf{leaf}
+% \end{macrocode}
+%\end{macro}
+
+
+%\begin{macro}{\if@draft \if@final}
+% We need them for some package warnings.
+% \begin{macrocode}
+\newif\if@tikzsymbols@draft
+\newif\if@tikzsymbols@final
+% \end{macrocode}
+%\end{macro}
+
+
+%
+%\begin{macro}{\@Tree@SetUp}
+% First we define our \verb|@Tree@SetUp| (how the trees will look like) (I used the code from the ``tikz'' manual and changed it a little bit):
+% \begin{macrocode}
+\DeclareRobustCommand{\@Tree@SetUp}[1][1]{\tikzset{%
+ld/.style={level distance=##1ex},lw/.style={line width=##1ex},%
+level 1/.style={ld=0.60, trunk, lw=0.1*#1 ,sibling angle=60},%
+level 2/.style={ld=0.20, trunk!80!leaf a,lw=.073*#1,sibling angle=70},%
+level 3/.style={ld=0.25,trunk!60!leaf a,lw=.05*#1,sibling angle=70}, %
+level 4/.style={ld=0.10, trunk!40!leaf a,lw=.025*#1,sibling angle=60},%
+level 5/.style={ld=0.15, trunk!20!leaf a,lw=.02*#1,sibling angle=60},%
+level 6/.style={ld=0.08,leaf a, lw=.021*#1,sibling angle=60},%
+}}%
+% \end{macrocode}
+%\end{macro}
+
+%\begin{macro}{\Basic@Tree}
+% Now we define our \verb|\Basic@Tree|. We will need it later for our package option (basic code is also from ``tikz'' manual).
+% \begin{macrocode}
+\DeclareRobustCommandx{\Basic@Tree}[5][1=1, usedefault]{{%
+\@Tree@SetUp[#1]%
+\pgfarrowsdeclare{leaf}{leaf}%
+{\pgfarrowsleftextend{-.1ex} \pgfarrowsrightextend{-0.05ex}}%
+{%
+\pgfpathmoveto{\pgfpoint{-.01ex}{0ex}}%
+\pgfpatharc{150}{30}{0.16ex*(#1/2)}% dicke
+\pgfpatharc{-30}{-150}{0.16ex*(#1/2)}%
+\pgfusepathqfill%
+}%
+\colorlet{trunk}{#2}%
+\colorlet{leaf a}{#3}%
+\colorlet{leaf b}{#4}\begin{tikzpicture}[x=1ex,y=1ex,scale=#1]%
+\coordinate (root) [grow cyclic,rotate=90] child {
+child [line cap=round] foreach \a in {0,1, 2} { child foreach \b in {0,1} {
+child foreach \c in {0,1,2} { child foreach \d in {0,1} {
+child foreach \leafcolor in {leaf a,leaf b} { edge from parent [color=\leafcolor,-#5] }
+}}} } edge from parent [shorten >=-0.05ex,serif cm-,line cap=butt]
+};%
+\end{tikzpicture}%
+}}
+% \end{macrocode}
+%\end{macro}
+
+%\begin{macro}{draft}
+% If the class option \verb|draft|, then Squares instead of trees. Furthermore we set \verb|\@drafttrue| and \verb|\@finalfalse| for some warnings:
+% \begin{macrocode}
+\DeclareOptionX{draft}{\@tikzsymbols@drafttrue\@tikzsymbols@finalfalse
+\def\Basic@Tree{\Basic@Tree@off}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{final}
+% If the class option \verb|final|, then trees. Same as before:
+% \begin{macrocode}
+\DeclareOptionX{final}{\@tikzsymbols@draftfalse\@tikzsymbols@finaltrue
+\def\Basic@Tree{\Basic@Tree@on}}
+% \end{macrocode}
+% It's extremely annoying: you are working almost a day to find out how this package recognizes \verb|draft| and at the end there are just two lines of code.
+%
+%\end{macro}
+
+%\begin{macro}{tree}
+% Now we declare the name of our option: ``tree'' (I could have named it stone, or wood, etc. but I used ``tree''). This code is copy \& pasted from this site: \href{http://tex.stackexchange.com/questions/13270/a-package-template-using-xkeyval}{http://tex.stackexchange.com/}. Plus some warnings, if you use class option \verb|draft| or \verb|final| with package option \verb|tree=on/off|:
+% \begin{macrocode}
+\DeclareOptionX{tree}{%
+ \def\Basic@Tree{\csname Basic@Tree@#1\endcsname}%
+ \if@tikzsymbols@draft%
+\PackageWarningNoLine{tikzsymbols}{You can use class option \MessageBreak
+draft with package option tree=on/off;
+\MessageBreak but I think it would be better if you
+\MessageBreak delete tree=on/off}\fi%
+\if@tikzsymbols@final%
+\PackageWarningNoLine{tikzsymbols}{You can use class option \MessageBreak
+final with package option tree=on/off;
+\MessageBreak but I think it would be better if you
+\MessageBreak delete tree=on/off}\fi%
+ }
+% \end{macrocode}
+%\end{macro}
+
+%\begin{macro}{\Basic@Tree@off}
+% We define \verb|\Basic@Tree@off|; it will be shown if \verb|tree=off|. Furthermore, we check if the last parameter is ``leaf'':
+% \begin{macrocode}
+\DeclareRobustCommandx{\Basic@Tree@off}[5][1=1, usedefault]{{%
+\def\leaf@or@not@leaf{#5}%
+\begin{tikzpicture}[scale=#1,x=1.3ex,y=1.3ex]
+\draw[#2] (0,0) -- (0,1);
+\draw[#3] (0,1) -- (1,1);
+\draw[#4] (1,1) -- (1,0);
+\ifx\leaf@or@not@leaf\@leaf@is@leaf%
+\draw[#3] (1,0) -- (0.5,0);
+\draw[#4] (0.5,0) -- (0,0);
+\fi%
+\end{tikzpicture}%
+}}
+% \end{macrocode}
+%\end{macro}
+
+%\begin{macro}{\Basic@Tree@on}
+% We define \verb|\Basic@Tree@off|; it will be shown if \verb|tree=on|:
+% \begin{macrocode}
+\DeclareRobustCommandx{\Basic@Tree@on}[5][1=1, usedefault]{{%
+\@Tree@SetUp[#1]%
+\pgfarrowsdeclare{leaf}{leaf}%
+{\pgfarrowsleftextend{-.1ex} \pgfarrowsrightextend{-0.05ex}}%
+{%
+\pgfpathmoveto{\pgfpoint{-.01ex}{0ex}}%
+\pgfpatharc{150}{30}{0.16ex*(#1/2)}% dicke
+\pgfpatharc{-30}{-150}{0.16ex*(#1/2)}%
+\pgfusepathqfill%
+}%
+\colorlet{trunk}{#2}%
+\colorlet{leaf a}{#3}%
+\colorlet{leaf b}{#4}\begin{tikzpicture}[x=1ex,y=1ex,scale=#1]%
+\coordinate (root) [grow cyclic,rotate=90] child {
+child [line cap=round] foreach \a in {0,1, 2} { child foreach \b in {0,1} {
+child foreach \c in {0,1,2} { child foreach \d in {0,1} {
+child foreach \leafcolor in {leaf a,leaf b} { edge from parent [color=\leafcolor,-#5] }
+}}} } edge from parent [shorten >=-0.05ex,serif cm-,line cap=butt]
+};%
+\end{tikzpicture}%
+}}
+% \end{macrocode}
+%\end{macro}
+
+%
+%\begin{macro}{\ProcessOptionsX*}
+%Again a code from the internet (don't know what \verb|\relax| does):
+% \begin{macrocode}
+\ProcessOptionsX*\relax
+% \end{macrocode}
+%\end{macro}
+
+%\begin{macro}{\BasicTree}
+% We define our \verb|\BasicTree|. We check if the last paramter is ``leaf'', if not we check if the last paramter is empty, if not we generate an error meassge:
+% \begin{macrocode}
+\newcommand\BasicTree[5][1]{%
+\def\leaf@or@not@leaf{#5}%
+\ifx\leaf@or@not@leaf\@leaf@is@leaf%
+\Basic@Tree[#1]{#2}{#3}{#4}{#5}\tikzsymbolsaftersymbolinput%
+\else%
+\ifx\\#5\\%
+\Basic@Tree[#1]{#2}{#3}{#4}{#5}\tikzsymbolsaftersymbolinput%
+\else%
+\PackageError{tikzsymbols}{The last parameter has either to be \MessageBreak
+`leaf` or has to be empty}{See the documentation. Section `Trees«.}%
+\fi\fi%
+}
+% \end{macrocode}
+%\end{macro}
+
+%
+%\begin{macro}{\WorstTree}
+% An extremly bad Tree. It's really worst.
+% \begin{macrocode}
+\DeclareRobustCommand{\WorstTree}[1][1]{%
+\begin{tikzpicture}[x=1ex,y=1ex, line width=0.04ex*#1,scale=#1]
+\fill[brown] (-0.3,0) .. controls (0.2,0.3) and (0.2,0.7) .. (0.2,1) -- (0.5,1) ..
+ controls (0.5,0.7) and (0.5,0.3) .. (1,0);
+\draw (-0.3,0) .. controls (0.2,0.3) and (0.2,0.7) .. (0.2,1) -- (0.5,1) ..
+ controls (0.5,0.7) and (0.5,0.3) .. (1,0) ;
+\fill[green] (0.2,0.8) -- (0,0.8) .. controls (-0.4,0.7) and (-0.4,1) .. (-0.3,1.2) ..
+ controls (-0.3, 1.6) and (-0.1,1.6) .. (0.1,1.5) ..
+ controls (0.3,1.8) and (0.6,1.6) .. (0.7,1.5) ..
+ controls (1.1, 1.6) and (1,1.4) .. (1,1.2) ..
+ controls (1.2,1) and (1.2,0.7) .. (0.8,0.8) -- (0.5,0.8);
+\draw (0.214,0.8) -- (0,0.8) .. controls (-0.4,0.7) and (-0.4,1) .. (-0.3,1.2) ..
+ controls (-0.3, 1.6) and (-0.1,1.6) .. (0.1,1.5) ..
+ controls (0.3,1.8) and (0.6,1.6) .. (0.7,1.5) .. controls (1.1, 1.6) and (1,1.4) ..
+ (1,1.2) .. controls (1.2,1) and (1.2,0.7) .. (0.8,0.8) -- (0.486,0.8);
+\fill[red] (0,1) circle (0.1);
+\fill[red] (0.4,1.2) circle (0.1);
+\fill[red] (0.8,1.1) circle (0.1);
+\end{tikzpicture}%
+\tikzsymbolsaftersymbolinput%
+}
+% \end{macrocode}
+%``Hey! That is the code from the tikzmanuel!!'' -- ``Yes, I know.''
+%\end{macro}
+
+
+
+
+
+
+%\begin{macro}{\Springtree}
+%\begin{macro}{\Summertree}
+%\begin{macro}{\Autumntree}
+%\begin{macro}{\Wintertree}
+% Some predefined Trees.
+%
+% ``Hey that look like the trees in the \dots'' -- ``Yes, Yes, I know!''.
+%
+% We don't need \verb|\tikzsymbolsaftersymbolinput| because it is already defined in \verb|\BasicTree|.
+% \begin{macrocode}
+\DeclareRobustCommandx{\Springtree}[1][1=1, usedefault]%
+ {\BasicTree[#1]{brown!70!black}{green!90!black}{green!80!black}{leaf}}
+\DeclareRobustCommandx{\Summertree}[1][1=1, usedefault]%
+ {\BasicTree[#1]{brown!50!black}{green!80!black}{red!80!green}{leaf}}
+\DeclareRobustCommandx{\Autumntree}[1][1=1, usedefault]%
+ {\BasicTree[#1]{red!30!black}{red!75!black}{orange}{leaf}}
+\DeclareRobustCommandx{\Wintertree}[1][1=1, usedefault]%
+ {\BasicTree[#1]{black}{black!50}{black!25}{}}
+% \end{macrocode}
+%\end{macro}
+%\end{macro}\end{macro}\end{macro}
+% Well that's it. Happy \TeX ing!
+%
+% PS. Something went wrong with the Change History, but I don't know what.
+
+
+
+
+
+
+\DeclareRobustCommand{\@Keep@Cool@I}{%
+\begin{tikzpicture}[x=1em, y=1em, line width=0.03em]
+\fill[decorate,decoration={snake,amplitude=.02em,segment length=0.4em},cyan!20!]
+(0,0) -- (0,1) -- (1,1) -- (1,0) -- cycle;
+\draw (0.3,0.3) -- (0.55,0.7);% Kšrper
+\draw (0.05,0.4) -- (0.3,0.3) -- (0.1,0.1);
+\draw (0.3,0.8) -- (0.5,0.61);
+\draw (0.49,0.61) -- (0.8,0.65);
+\draw (0.65,0.9) circle (0.17);
+\end{tikzpicture}%
+\MySymbolAfterSymbolinput%
+}
+\DeclareRobustCommand{\@Keep@Cool@II}{%
+\begin{tikzpicture}[x=1em,y=1em]
+\fill[decorate,decoration={snake,amplitude=.02em,segment length=0.6em},cyan!20!] (-0.3,-0.3) rectangle (0.5,1);
+\draw (0,-0.1) -- (0.15,0.2) -- (0.3,-0.1);% Beine
+\draw (.15,.2) -- (.15,.4);% Kšrper
+\draw (.15,.4) -- (.4,.5);% Rechter Arm
+\draw (.15,.4) -- (-0.1,.5);% Linker Arm
+\draw (.15, .4) -- (.15, .53);% Hals
+\draw (.15,.8) circle (0.18);% Kopf
+\end{tikzpicture}%
+\MySymbolAfterSymbolinput%
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+%\PrintChanges \PrintIndex \ No newline at end of file