Anonymous avatar Anonymous committed fa3cbd1

add tkz-berge and tkz-graph in anticipation of #10908

Comments (0)

Files changed (2)

+    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+    %                                                               %
+    %              tkz-berge.sty      encodage : utf8               %
+    %                                                               %
+    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+    %                                                               %
+    %           Créé par Alain Matthes le 08-05-2007.               %
+    %        contribution :  Rafael Villarroel 2007   (RV)          %
+    %                                                               %
+    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%% Objet :  Création de graphes
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{tkz-berge}[13/01/2009 v 2.8 tkz-berge for named graphs]
+% modif Doyle form 1
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\RequirePackage{tkz-graph,tkz-arith}
+%                             NAMED GRAPHS
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                         Graphes cls
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\define@cmdkey  [GR] {cl} {L}{}
+\define@boolkey [GR] {cl} {Math}[true]{}
+\define@boolkey [GR] {cl} {inv}[true]{}
+\define@cmdkey  [GR] {cl} {RA}{}
+\define@cmdkey  [GR] {cl} {RB}{}
+\define@cmdkey  [GR] {cl} {RC}{}
+\define@cmdkey  [GR] {cl} {RD}{}
+\define@cmdkey  [GR] {cl} {RE}{}
+\define@cmdkey  [GR] {cl} {RS}{}
+\define@cmdkey  [GR] {cl} {prefix}{}
+\define@cmdkey  [GR] {cl} {prefixx}{}
+\define@cmdkey  [GR] {cl} {prefixxx}{}
+\define@cmdkey  [GR] {cl} {prefixxxx}{}
+\define@cmdkey  [GR] {cl} {prefixxxxx}{}
+\define@cmdkey  [GR] {cl} {form}{}
+\define@cmdkey  [GR] {cl} {num}{}
+\presetkeys     [GR] {cl} {RA         = 4,%
+                           RB         = 3,%
+                           RC         = 2,%
+                           RD         = 1,%
+                           RE         = 0.5,%
+                           RS         = 0,%
+                           form       = 1,%
+                           prefix     = a,%
+                           prefixx    = b,%
+                           prefixxx   = c,%
+                           prefixxxx  = d,%
+                           prefixxxxx = e,%
+                           num        = {},%
+                           Math       = false}{}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                      Tools Graphes particuliers
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                           Some tools
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\def\gr@math@sep{_}
+
+\newcommand*{\write@math}[3]{%
+            \Vertex[x = #1,y = #2,%
+                    L = \cmdGR@cl@prefix\gr@math@sep{#3}]{\cmdGR@cl@prefix#3}}
+\newcommand*{\write@nomath}[3]{%
+            \Vertex[x = #1,y = #2]{\cmdGR@cl@prefix#3}}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                           Empty graphs
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%
+\newcommand*{\grEmptyCycle}[2][]{%
+\begingroup%
+   \setkeys[GR]{cl}{#1}%
+   \pgfmathsetcounter{tkzb@temp}{#2-1}
+   \foreach \x in  {0,...,\thetkzb@temp}{%
+       \pgfmathparse{360/#2*\x}
+       \let\tkz@angle\pgfmathresult%
+       \ifGR@cl@Math%
+           \presetkeys [GR] {vertex} {Math = true}{}%
+           \Vertex[a = \tkz@angle,%
+                   d = \cmdGR@cl@RA,%
+                   L = \cmdGR@cl@prefix\gr@math@sep{\x}]{\cmdGR@cl@prefix\x}%
+       \else%
+           \Vertex[a = \tkz@angle,%
+                   d = \cmdGR@cl@RA]{\cmdGR@cl@prefix\x}%
+       \fi%
+       }%
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                         grEmptyPath  from (RV)
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+
+
+\newcommand*{\grEmptyPath}[2][]{%
+\begingroup%
+    \setkeys[GR]{cl}{#1}%
+    \pgfmathsetcounter{tkzb@ca}{#2-1} 
+    \ifcase\cmdGR@cl@form
+    \or
+      \def\tkzb@result{0}
+       \foreach \x in  {0,...,\thetkzb@ca}{%
+         \pgfmathparse{\cmdGR@cl@RA*(\x)}
+         \let\tkzb@result\pgfmathresult
+         \ifGR@cl@Math%
+           \presetkeys [GR] {vertex} {Math = true}{}%
+           \ifthenelse{\equal{\cmdGR@cl@num}{}}{%
+             \write@math{\tkzb@result}{\cmdGR@cl@RS}{\x}}{%
+             \write@math{\tkzb@result}{\cmdGR@cl@RS}{\x;\cmdGR@cl@num}}%
+         \else
+           \ifthenelse{\equal{\cmdGR@cl@num}{}}{%
+             \write@nomath{\tkzb@result}{\cmdGR@cl@RS}{\x}}{%
+             \write@nomath{\tkzb@result}{\cmdGR@cl@RS}{\x;\cmdGR@cl@num}}%
+         \fi}%
+    \or
+    \foreach \x in  {0,...,\thetkzb@ca}{%
+       \pgfmathparse{\cmdGR@cl@RA*(\x)}
+       \let\tkzb@result\pgfmathresult
+       \ifGR@cl@Math%
+           \presetkeys [GR] {vertex} {Math = true}{}%
+           \ifthenelse{\equal{\cmdGR@cl@num}{}}{%
+           \write@math{\cmdGR@cl@RS}{\tkzb@result}{\x}}{%
+           \write@math{\cmdGR@cl@RS}{\tkzb@result}{\cmdGR@cl@num;\x}}%
+       \else
+           \ifthenelse{\equal{\cmdGR@cl@num}{}}{%
+           \write@nomath{\cmdGR@cl@RS}{\tkzb@result}{\x}}{%
+           \write@nomath{\cmdGR@cl@RS}{\tkzb@result}{\cmdGR@cl@num;\x}}%
+       \fi}%
+    \fi
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                                 grEmptyStar
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grEmptyStar}[2][]{%
+\begingroup%
+   \setkeys[GR]{cl}{#1}%
+   \pgfmathsetcounter{tkzb@ca}{#2-1}
+   \ifGR@cl@Math\presetkeys [GR] {vertex} {Math = true}{}%
+     \write@math{0}{0}{\thetkzb@ca}%
+   \else
+     \write@nomath{0}{0}{\thetkzb@ca}%
+   \fi
+   \grEmptyCycle[#1]{\thetkzb@ca}
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                               grEmptyGrid
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand{\grEmptyGrid}[3][]{%
+\begingroup%
+   \setkeys[GR]{cl}{#1}%
+   \pgfmathsetcounter{tkzb@ca}{#2-1}
+   \pgfmathsetcounter{tkzb@cb}{#3-1}
+   \foreach \x in {0,...,\thetkzb@ca}{%
+      \foreach \y in {0,...,\thetkzb@cb}{%
+      \ifGR@cl@Math\presetkeys [GR] {vertex} {Math = true}{}%
+         \write@math{\cmdGR@cl@RA*\x}{\cmdGR@cl@RB*\y}{\x;\y}%
+      \else
+         \write@nomath{\cmdGR@cl@RA*\x}{\cmdGR@cl@RB*\y}{\x;\y}%
+      \fi}%
+   }
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                             grEmptyLadder
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grEmptyLadder}[2][]{%
+\begingroup%
+  \setkeys[GR]{cl}{#1}%
+  \grEmptyPath[#1,RS=0]{#2}
+  \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+  \edef\tkzb@rtemp{\cmdGR@cl@RB}
+  \grEmptyPath[#1,prefix=\tkzb@ptemp,RS=\tkzb@rtemp]{#2}
+\endgroup%
+}
+
+
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                                 Edges 
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\EdgeInGraphFromOneToComp}[3]{% #4 
+\begingroup%
+   \pgfmathsetcounter{tkzb@ta}{#2-1}
+   \foreach \cx in  {0,...,\thetkzb@ta}{%
+        \ifthenelse{\equal{\cx}{#3}}{}{\Edge(#1#3)(#1\cx)}%
+        }%
+\endgroup%
+}
+
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+% new tool EdgeInGraphLoop loop 0--1--2.........n--0
+% star 0--1--2.........n-
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\EdgeInGraphLoop}{\@ifstar%
+                              \EdgeInGraphLoopStar%
+                              \EdgeInGraphLoopNoStar}
+\newcommand*{\EdgeInGraphLoopNoStar}[2]{% #4 
+\begingroup%
+    \pgfmathsetcounter{tkzb@ta}{#2-1}
+    \setcounter{tkzb@next}{0}
+    \Edge(#1\thetkzb@ta)(#1\thetkzb@next)
+    \pgfmathaddtocounter{tkzb@ta}{-1}
+    \foreach \x in  {0,...,\thetkzb@ta}{%
+        \stepcounter{tkzb@next}
+        \Edge(#1\x)(#1\thetkzb@next)%
+       }%
+\endgroup%
+}
+\newcommand*{\EdgeInGraphLoopStar}[2]{% #4 
+\begingroup%
+    \pgfmathsetcounter{tkzb@ta}{#2-2}
+    \setcounter{tkzb@next}{0}
+    \foreach \x in  {0,...,\thetkzb@ta}{%
+        \stepcounter{tkzb@next}
+        \Edge(#1\x)(#1\thetkzb@next)%
+       }%
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+% new tool EdgeInGraphSeq sequence  i--i+1--.....--j
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\EdgeInGraphSeq}[3]{% #4 
+\begingroup%
+    \pgfmathsetcounter{tkzb@ta}{#2}
+    \pgfmathsetcounter{tkzb@tb}{#3-1}
+    \setcounter{tkzb@next}{#2}
+    \foreach \x in  {\thetkzb@ta,...,\thetkzb@tb}{%
+        \stepcounter{tkzb@next}
+        \Edge(#1\x)(#1\thetkzb@next)%
+       }%
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+% new tool EdgeInGraphMod replace nextmod
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\EdgeInGraphMod}{\@ifstar%
+                              \EdgeInGraphModStar%
+                              \EdgeInGraphModNoStar}
+\newcommand*{\EdgeInGraphModNoStar}[3]{% #2 order
+\begingroup%
+    \pgfmathsetcounter{tkzb@ta}{#2-1}
+    \foreach \x in  {0,...,\thetkzb@ta}{%
+        \pgfmathsetcounter{tkzb@tb}{modI(\x+#3,#2)}
+        \Edge(#1\thetkzb@tb)(#1\x)%
+        }%
+\endgroup%
+}
+%#1 prefix #2 order #3 add #4 start #5 décalage
+\newcommand*{\EdgeInGraphModStar}[5]{% 
+\begingroup%
+ \pgfmathsetcounter{tkzb@ta}{#4}
+  \whiledo{\value{tkzb@ta}<#2}{%
+     \pgfmathsetcounter{tkzb@next}{modI(\thetkzb@ta+#3,#2)}
+     \Edge(#1\thetkzb@ta)(#1\thetkzb@next)
+     \pgfmathaddtocounter{tkzb@ta}{#5}%
+    }%
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%             EdgeInGraphModLoop dep #4 add #3 mod #2 until #4
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+
+\newcommand*{\EdgeInGraphModLoop}[4]{% #2 order
+\begingroup%
+    \setcounter{tkzb@ta}{#4}
+    \setcounter{tkzb@next}{#2}
+    \whiledo{\not\equal{\value{tkzb@next}}{#4}}{%
+        \pgfmathsetcounter{tkzb@next}{modI(\thetkzb@ta+#3,#2)}
+        \Edge(#1\thetkzb@ta)(#1\thetkzb@next)%
+        \setcounter{tkzb@ta}{\thetkzb@next}
+        }%
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                               EdgeIdentity
+%  la version étoilée permet d'utliser une sélection
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\EdgeIdentity}{\@ifstar%
+                              \EdgeIdentityStar%
+                              \EdgeIdentityNoStar}
+\newcommand*{\EdgeIdentityNoStar}[3]{%
+\begingroup%
+ \pgfmathsetcounter{tkzb@v}{#3-1}
+    \foreach \x in  {0,...,\thetkzb@v}{%
+       \Edge(#1\x)(#2\x)%
+       }%
+\endgroup%
+}
+\newcommand*{\EdgeIdentityStar}[3]{%
+\begingroup%
+    \foreach \x in  {#3}{%
+       \Edge(#1\x)(#2\x)%
+       }%
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%  EdgeFromOneToAll  vertex #1#3 through #2 0...#2 n-1 #5 order of the graph
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\EdgeFromOneToAll}[4]{% #4  = order of the graph
+\begingroup%
+     \pgfmathsetcounter{tkzb@v}{#4-1}
+     \foreach \x in  {0,...,\thetkzb@v}{%
+        \Edge(#1#3)(#2\x)%
+        }%
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%  EdgeFromOneToSeq  vertex #1#3 through #2#4...#2#5
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\EdgeFromOneToSeq}[5]{% #4 
+\begingroup%
+    \foreach \x in  {#4,...,#5}{%
+        \Edge(#1#3)(#2\x)%
+        }%
+\endgroup%
+} %<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%  EdgeFromOneToSel vertex #1#3 through #2#4...#2#5
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\EdgeFromOneToSel}[4]{% #4 
+\begingroup%
+    \foreach \x in  {#4}{%
+        \Edge(#1#3)(#2\x)%
+        }%
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%  EdgeFromOneToComplement  vertex #1#3 through #2#4...#2#5
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\EdgeFromOneToComp}[4]{%
+\begingroup%
+   \pgfmathsetcounter{tkzb@v}{#4-1}
+   \foreach \cx in  {0,...,\thetkzb@v}{%
+        \ifthenelse{\equal{\cx}{#3}}{}{\Edge(#1#3)(#2\cx)}%
+        }%
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+% new tool EdgeMod replace nextmod
+% identity with step like nextmod ???
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\EdgeMod}{\@ifstar%
+                                 \EdgeModStar%
+                                 \EdgeModNoStar}
+\newcommand*{\EdgeModNoStar}[4]{%#3 order #4 step
+\begingroup%
+    \pgfmathsetcounter{tkzb@v}{#3-1}
+    \foreach \x in  {0,...,\thetkzb@v}{%
+        \pgfmathsetcounter{tkzb@tb}{modI(\x+#4,#3)}
+        \Edge(#1\x)(#2\thetkzb@tb)%
+        }%
+\endgroup%
+}
+%#1 prefix #2 prefix #3 order #4 order inf #5 step
+\newcommand*{\EdgeModStar}[5]{%
+\begingroup%
+     \setcounter{tkzb@ta}{0}
+     \whiledo{\value{tkzb@ta}<#3}{%
+        \pgfmathsetcounter{tkzb@tb}{modI(\thetkzb@ta+#4,#3)}
+        \Edge(#1\thetkzb@ta)(#2\thetkzb@tb)%
+        \pgfmathaddtocounter{tkzb@ta}{#5}}%
+\endgroup%
+}%
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                     EdgeDoubleMod by RV
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\EdgeDoubleMod}[9]{
+ \begingroup%
+   \foreach \x in {0,...,#9}{%
+      \pgfmathsetcounter{tkzb@cc}{modI(#3+(#4*\x),#2)}
+      \pgfmathsetcounter{tkzb@next}{modI(#7+(#8*\x),#6)}
+      \Edge(#1\thetkzb@cc)(#5\thetkzb@next)
+    }%
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                     grPath
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grPath}[2][]{%
+\begingroup%
+    \setkeys[GR]{cl}{#1}%
+     \grEmptyPath[#1]{#2}
+     \ifthenelse{\equal{\cmdGR@cl@num}{}}{%
+      \ifthenelse{\equal{#2}{1}}{}{\EdgeInGraphLoop*{\cmdGR@cl@prefix}{#2}}}{%
+        \ifthenelse{\equal{#2}{1}}{}{%
+        \ifcase\cmdGR@cl@form
+        \or
+          \pgfmathsetcounter{tkzb@ta}{#2-2}
+          \setcounter{tkzb@next}{0}
+          \foreach \x in  {0,...,\thetkzb@ta}{%
+              \stepcounter{tkzb@next}
+              \Edge(\cmdGR@cl@prefix\x;\cmdGR@cl@num)%
+                   (\cmdGR@cl@prefix\thetkzb@next;\cmdGR@cl@num)%
+              }%
+           \or
+          \EdgeInGraphLoop*{\cmdGR@cl@prefix\cmdGR@cl@num;}{#2}
+          \fi%
+}}
+\endgroup%
+}
+
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                     grGrid
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grGrid}[3][]{%
+\begingroup%
+  \setkeys[GR]{cl}{#1}%
+   \grEmptyGrid[#1]{#2}{#3}
+   \pgfmathsetcounter{tkzb@ca}{#2-2}
+   \pgfmathsetcounter{tkzb@cb}{#3-2}
+   \foreach \x in {0,...,\thetkzb@ca}{%
+       \foreach \y in {0,...,\thetkzb@cb}{%
+          \pgfmathsetcounter{tkzb@cc}{\x+1}
+          \pgfmathsetcounter{tkzb@cd}{\y+1}
+          \Edge(\cmdGR@cl@prefix\x;\y)%
+               (\cmdGR@cl@prefix\x;\thetkzb@cd)
+          \Edge(\cmdGR@cl@prefix\x;\y)%
+               (\cmdGR@cl@prefix\thetkzb@cc;\y)%
+          }%
+      }%
+   \pgfmathsetcounter{tkzb@ca}{#2-2}
+   \pgfmathsetcounter{tkzb@cb}{#3-1}
+
+  \foreach \x in {0,...,\thetkzb@ca}{%
+      \pgfmathsetcounter{tkzb@cc}{\x+1}
+      \Edge(\cmdGR@cl@prefix\x;\thetkzb@cb)%
+           (\cmdGR@cl@prefix\thetkzb@cc;\thetkzb@cb)%
+      }%
+   \pgfmathsetcounter{tkzb@ca}{#2-1}
+   \pgfmathsetcounter{tkzb@cb}{#3-2}
+  \foreach \y in {0,...,\thetkzb@cb}{%
+      \pgfmathsetcounter{tkzb@cd}{\y+1}
+      \Edge(\cmdGR@cl@prefix\thetkzb@ca;\y)%
+           (\cmdGR@cl@prefix\thetkzb@ca;\thetkzb@cd)%
+   }%
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                             grComplete  
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grComplete}[2][]{% #1 options #2 ordre du graphe
+\begingroup%
+  \setkeys[GR]{cl}{#1}%
+  \grEmptyCycle[#1]{#2}%
+  \pgfmathsetcounter{tkzb@ca}{#2-1}
+  \foreach \ia in {0,...,\thetkzb@ca}%
+     {\foreach \ib in {\ia,...,\thetkzb@ca}
+     {\Edge(\cmdGR@cl@prefix\ia)(\cmdGR@cl@prefix\ib)}%
+      }%
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                               grCycle
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grCycle}[2][]{%
+\begingroup%
+   \setkeys[GR]{cl}{#1}
+   \grEmptyCycle[#1]{#2}
+   \EdgeInGraphLoop{\cmdGR@cl@prefix}{#2}
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                               grLCF
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand{\grLCF}[3][]{%
+\begingroup%
+   \setkeys[GR]{cl}{#1}%
+   \setcounter{tkzb@ca}{#3}
+   \setcounter{tkzb@cb}{0} 
+   \foreach \x in {#2}{\stepcounter{tkzb@cb}}
+   \pgfmathsetcounter{tkzb@cc}{\thetkzb@ca * \thetkzb@cb}
+   \setcounter{tkzb@cb}{\thetkzb@cc}
+   \grCycle[#1]{\thetkzb@cc}
+%<––––––––––––––––––––––––– End   Vertex ––––––––––––––––––––––––––––––––––––>
+   \pgfmathsetcounter{tkzb@ca}{#3-1}
+   \setcounter{tkzb@v}{0}
+   \foreach \k in  {0,...,\thetkzb@ca}{%
+     \foreach \n in  {#2}{%
+         \ifthenelse{\n < 0}{%
+            \pgfmathsetcounter{tkzb@cb}{\n+\thetkzb@cc}}{%
+            \pgfmathsetcounter{tkzb@cb}{\n}}
+         \pgfmathsetcounter{tkzb@next}%
+                           {modI(\thetkzb@v+\thetkzb@cb,\thetkzb@cc)}
+         \Edge(\cmdGR@cl@prefix\thetkzb@v)(\cmdGR@cl@prefix\thetkzb@next)
+         \stepcounter{tkzb@v}%
+         }%
+      }%
+\endgroup%
+}
+
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                                 grStar
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grStar}[2][]{%
+\begingroup%
+   \setkeys[GR]{cl}{#1}%
+   \grEmptyStar[#1]{#2}
+   \pgfmathsetcounter{tkzb@temp}{#2-1}
+   \EdgeInGraphFromOneToComp{\cmdGR@cl@prefix}{#2}{\thetkzb@temp}
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                                 grWheel
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grWheel}[2][]{
+\begingroup%
+    \setkeys[GR]{cl}{#1}%
+    \grStar[#1]{#2}
+    \pgfmathsetcounter{tkzb@v}{#2-1}
+    \EdgeInGraphLoop{\cmdGR@cl@prefix}{\thetkzb@v}
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                                grSQCircle
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grSQCycle}[2][]{%
+\begingroup%
+    \setkeys[GR]{cl}{#1}%
+    \grCycle[#1]{#2}%
+    \EdgeInGraphMod{\cmdGR@cl@prefix}{#2}{2}
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                             grLadder
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grLadder}[2][]{%
+\begingroup%
+  \setkeys[GR]{cl}{#1}%
+  \grPath[#1,RS=0]{#2}{0}
+  \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+  \edef\tkzb@rtemp{\cmdGR@cl@RS}
+  \grPath[#1,prefix=\tkzb@ptemp,RS=\tkzb@rtemp]{#2}
+  \EdgeIdentity{\cmdGR@cl@prefix}{\cmdGR@cl@prefixx}{#2}
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                                 grPrism
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grPrism}[2][]{%
+\begingroup%
+    \setkeys[GR]{cl}{#1}%
+    \begin{scope}[rotate=45]
+        \grCycle[#1]{#2}
+        \edef\tkzb@rtemp{\cmdGR@cl@RB}
+        \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+        \grCycle[#1,RA=\tkzb@rtemp,prefix=\tkzb@ptemp]{#2}
+        \EdgeIdentity{\cmdGR@cl@prefix}{\cmdGR@cl@prefixx}{#2}
+    \end{scope}
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                                 grCompleteBipartite 
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grCompleteBipartite}[3][]{%
+\begingroup%
+  \setkeys[GR]{cl}{#1}%
+  \pgfmathsetcounter{tkzb@ca}{#2-1} 
+  \pgfmathparse{(\cmdGR@cl@RA * \thetkzb@ca) /2}
+  \let\tkzRAxpos\pgfmathresult%
+  \pgfmathsetcounter{tkzb@ca}{#3-1} 
+  \pgfmathparse{(\cmdGR@cl@RB * \thetkzb@ca) /2}
+ \let\tkzRBxpos\pgfmathresult%
+  \ifdim\tkzRBxpos pt > \tkzRAxpos pt\relax%
+   \pgfmathadd{\tkzRBxpos}{-\tkzRAxpos}
+   \let\tkzaxpos\pgfmathresult%
+   \def\tkzbxpos{0}
+   \else%
+    \pgfmathadd{\tkzRAxpos}{-\tkzRBxpos}
+    \let\tkzbxpos\pgfmathresult%
+    \def\tkzaxpos{0}
+   \fi%
+   \begin{scope}[xshift=\tkzaxpos cm]
+     \grEmptyPath[#1,RS=0]{#2}
+   \end{scope}
+   \begin{scope}[xshift=\tkzbxpos cm]
+     \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+     \edef\tkzb@rtemp{\cmdGR@cl@RS}
+     \edef\tkzb@stemp{\cmdGR@cl@RB}
+     \grEmptyPath[#1,RA=\tkzb@stemp,prefix=\tkzb@ptemp,RS=\tkzb@rtemp]{#3}
+   \end{scope}
+   \pgfmathsetcounter{tkzb@temp}{#2-1}
+   \pgfmathsetcounter{tkzb@v}{#3-1}
+   \foreach \cpx in {0,...,\thetkzb@v}{%
+     \EdgeFromOneToAll{\cmdGR@cl@prefixx}{\cmdGR@cl@prefix}{\cpx}{#2}
+     }%
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                                 grTriangularGrid 
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grTriangularGrid}[2][]{%
+\begingroup%
+    \setkeys[GR]{cl}{#1}
+    \ifcase\cmdGR@cl@form
+      \or
+%<––––––––––––––––––––– form 1 equilateral triangle ––––––––––––––––––––––––>
+     \pgfmathsetcounter{tkzb@ca}{#2-1}
+     \pgfmathsetcounter{tkzb@cb}{#2}
+     \foreach \lg in {0,...,\thetkzb@ca}{%
+        \pgfmathsetcounter{tkzb@cb}{#2-\lg}
+        \setcounter{tkzb@cb}{\thetkzb@cb}
+        \edef\tkzb@rtemp{\cmdGR@cl@RA}
+        \edef\tkzb@ptemp{\cmdGR@cl@prefix}
+        \pgfmathmultiply{\cmdGR@cl@RA}{\lg}
+        \let\myresult\pgfmathresult
+        \pgfmathparse{\cmdGR@cl@RA*\lg/2}
+        \let\tkzaxpos\pgfmathresult
+        \begin{scope}[xshift=\tkzaxpos cm]
+           \grPath[#1,%
+                   RA     = \tkzb@rtemp,%
+                   RS     = \myresult,%
+                   prefix = \tkzb@ptemp,%
+                   num    = \lg]{\thetkzb@cb}%
+        \end{scope}%
+     }
+    \or
+%<––––––––––––––––––––––––––– form 2 right triangle ––––––––––––––––––––––––>
+    \pgfmathsetcounter{tkzb@ca}{#2-1}
+    \pgfmathsetcounter{tkzb@cb}{#2}
+    \foreach \lg in {0,...,\thetkzb@ca}{%
+       \pgfmathsetcounter{tkzb@cb}{#2-\lg}
+       \setcounter{tkzb@cb}{\thetkzb@cb}
+       \edef\tkzb@rtemp{\cmdGR@cl@RA}
+       \edef\tkzb@ptemp{\cmdGR@cl@prefix}
+       \pgfmathmultiply{\cmdGR@cl@RA}{\lg}
+       \let\myresult\pgfmathresult
+       \grPath[#1,%
+               RA     = \tkzb@rtemp,%
+               RS     = \myresult,%
+               prefix = \tkzb@ptemp,%
+               num    = \lg,form=1]{\thetkzb@cb}%
+    }
+    \or
+     \pgfmathsetcounter{tkzb@ca}{#2-1}
+     \pgfmathsetcounter{tkzb@cb}{#2}
+     \foreach \lg in {0,...,\thetkzb@ca}{%
+        \pgfmathsetcounter{tkzb@cb}{#2-\lg}
+        \setcounter{tkzb@cb}{\thetkzb@cb}
+        \edef\tkzb@rtemp{\cmdGR@cl@RA}
+        \edef\tkzb@ptemp{\cmdGR@cl@prefix}
+        \pgfmathmultiply{\cmdGR@cl@RA}{\lg}
+        \let\myresult\pgfmathresult
+        \begin{scope}[xshift=\myresult cm]
+           \grPath[#1,%
+                   RA     = \tkzb@rtemp,%
+                   RS     = \myresult,%
+                   prefix = \tkzb@ptemp,%
+                   num    = \lg,form=1]{\thetkzb@cb}%
+        \end{scope}%
+     }
+  \fi%
+    \pgfmathsetcounter{tkzb@ca}{#2-2}
+    \foreach \x in  {0,...,\thetkzb@ca}{%
+       \pgfmathsetcounter{tkzb@v}{\thetkzb@ca-\x}
+       \foreach \y in  {0,...,\thetkzb@v}{%
+          \pgfmathsetcounter{tkzb@cb}{\y+1}
+          \Edge(\cmdGR@cl@prefix\x;\y)(\cmdGR@cl@prefix\x;\thetkzb@cb)
+          \pgfmathsetcounter{tkzb@temp}{\x+1}
+          \Edge(\cmdGR@cl@prefix\x;\thetkzb@cb)%
+               (\cmdGR@cl@prefix\thetkzb@temp;\y)
+       }%
+    }
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                                 grHeawood
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grHeawood}[1][]{% #1 options #2 ordre du graphe
+\begingroup%
+  \setkeys[GR]{cl}{#1}%
+  \grCycle[#1]{14}
+  \EdgeInGraphMod*{\cmdGR@cl@prefix}{14}{5}{0}{2}
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                               grCirculant #1 option #2 vertex #3 add k
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grCirculant}[3][]{%
+\begingroup%
+    \setkeys[GR]{cl}{#1}
+    \grEmptyCycle[#1]{#2}%
+    \primality{#2}%
+    \ifthenelse{\boolean{tkzaIsAPrim}}{%
+       \foreach \kci in {#3}{%
+          \EdgeInGraphMod{\cmdGR@cl@prefix}{#2}{\kci}
+          }}{%
+       \foreach \kci in {#3}{%
+          \tkzFindFactor{#2}{\kci}%
+          \ifthenelse{\boolean{tkzaIsAFactor}}{%
+             \pgfmathsetcounter{tkzb@ca}{\kci-1}
+             \foreach \start in {0,...,\thetkzb@ca}{%
+                \setcounter{tkzb@int}{\start}%
+                \setcounter{tkzb@next}{#2}%
+                \whiledo{\not\equal{\value{tkzb@next}}{\start}}{%
+                  \pgfmathsetcounter{tkzb@next}{modI(\thetkzb@int+\kci,#2)}
+                  \Edge(\cmdGR@cl@prefix\thetkzb@int)%
+                       (\cmdGR@cl@prefix\thetkzb@next)%
+                  \pgfmathsetcounter{tkzb@int}{\thetkzb@next}%
+                  }%
+               }}{%
+       \EdgeInGraphMod{\cmdGR@cl@prefix}{#2}{\kci}}
+       }}%
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                               grPetersenG
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grGeneralizedPetersen}[3][]{%
+\begingroup%
+   \setkeys[GR]{cl}{#1}%
+   \grCycle[#1]{#2}
+   \edef\tkzb@rtemp{\cmdGR@cl@RB}
+   \edef\tkzb@pptemp{\cmdGR@cl@prefixx}
+   \edef\tkzb@ptemp{\cmdGR@cl@prefix}
+   \grCirculant[#1,RA=\tkzb@rtemp,prefix=\tkzb@pptemp]{#2}{#3}
+   \EdgeIdentity{\tkzb@ptemp}{\cmdGR@cl@prefixx}{#2}
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                               grPetersen
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grStartwo}[2][]{%
+\begingroup%
+   \setkeys[GR]{cl}{#1}%
+   \pgfmathsetcounter{tkzb@v}{3*#2-2}
+   \pgfmathsetcounter{tkzb@ca}{3*#2-1}
+   \grEmptyCycle[#1]{\thetkzb@ca}
+   \EdgeInGraphMod{\cmdGR@cl@prefix}{\thetkzb@ca}{#2}%
+\endgroup%
+}
+
+\newcommand*{\grPetersen}[1][]{%
+\begingroup%
+    \setkeys[GR]{cl}{#1}%
+    \ifcase\cmdGR@cl@form
+      \or
+        \grCycle[#1]{5}%
+        \edef\tkzb@rtemp{\cmdGR@cl@RB}
+        \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+        \grStartwo[#1,RA=\tkzb@rtemp,prefix=\tkzb@ptemp]{2}
+        \EdgeIdentity{\cmdGR@cl@prefix}{\cmdGR@cl@prefixx}{5}
+      \or
+         \grCycle[#1]{6}
+         \begin{scope}[rotate=30]
+            \edef\tkzb@rtemp{\cmdGR@cl@RB}
+            \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+            \grStar[#1,RA=\tkzb@rtemp,prefix=\tkzb@ptemp]{4}
+          \end{scope}
+          \setcounter{tkzb@ca}{2}
+          \foreach \x in  {0,...,5}{%
+             \ifthenelse{\equal{\thetkzb@ca}{-1}}{%
+                \setcounter{tkzb@ca}{2}}{%
+                }%
+                \Edge(\cmdGR@cl@prefix\x)(\cmdGR@cl@prefixx\thetkzb@ca)
+                \addtocounter{tkzb@ca}{-1}%
+             }%
+     \or
+       \grEmptyStar[#1]{10}
+       \EdgeInGraphLoop{\cmdGR@cl@prefix}{9}
+       \EdgeInGraphMod*{\cmdGR@cl@prefix}{9}{4}{0}{3}
+       \foreach \x in  {2,5,8}{%
+         \Edge(\cmdGR@cl@prefix\x)(\cmdGR@cl@prefix 9)}%
+     \fi
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                               grPlatonic
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grTetrahedral}[1][]{% 
+\begingroup%
+  \setkeys[GR]{cl}{#1}%
+  \begin{scope}[rotate=90]
+    \grWheel[#1]{4}%
+  \end{scope}
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                       grOctahedral
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grOctahedral}[1][]{% 
+\begingroup%
+   \setkeys[GR]{cl}{#1}%
+   \grComplete[#1]{3}%
+   \begin{scope}[rotate=-60]
+          \edef\tkzb@rtemp{\cmdGR@cl@RB}
+          \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+          \grComplete[#1,RA=\tkzb@rtemp,prefix=\tkzb@ptemp]{3}%
+   \end{scope}
+   \EdgeIdentity{\cmdGR@cl@prefix}{\cmdGR@cl@prefixx}{3}
+   \EdgeMod{\cmdGR@cl@prefix}{\cmdGR@cl@prefixx}{3}{1}
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                           grCubicalGraph
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grCubicalGraph}[1][]{%
+\begingroup%
+    \setkeys[GR]{cl}{#1}%
+       \grCycle[#1]{4}
+       \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+       \edef\tkzb@rtemp{\cmdGR@cl@RB}
+       \grCycle[#1,RA=\tkzb@rtemp,prefix=\tkzb@ptemp]{4}
+    \ifcase\cmdGR@cl@form
+      \or
+        \EdgeIdentity{\cmdGR@cl@prefix}{\cmdGR@cl@prefixx}{4}
+      \or
+        \EdgeMod*{\cmdGR@cl@prefix}{\cmdGR@cl@prefixx}{4}{1}{2}
+        \EdgeMod*{\cmdGR@cl@prefixx}{\cmdGR@cl@prefix}{4}{1}{2}
+     \fi
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                         grIcosahedral
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grIcosahedral}[1][]{% 
+\begingroup%
+   \setkeys[GR]{cl}{#1}%
+    \ifcase\cmdGR@cl@form
+      \or
+       \grCycle[#1]{6}%
+       \edef\tkzb@rtemp{\cmdGR@cl@RB}
+       \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+       \grCirculant[RA=\tkzb@rtemp,prefix=\tkzb@ptemp]{6}{2}
+       \EdgeIdentity{\cmdGR@cl@prefix}{\cmdGR@cl@prefixx}{6}
+      \EdgeMod{\cmdGR@cl@prefixx}{\cmdGR@cl@prefix}{6}{1}
+       \EdgeMod{\cmdGR@cl@prefixx}{\cmdGR@cl@prefix}{6}{-1}
+      \or
+       \grCycle[#1]{3}
+       \edef\tkzb@rtemp{\cmdGR@cl@RB}
+       \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+       \grCycle[RA=\tkzb@rtemp,prefix=\tkzb@ptemp]{6}%
+       \begin{scope}[rotate=60]
+         \edef\tkzb@rtemp{\cmdGR@cl@RC}
+         \edef\tkzb@ptemp{\cmdGR@cl@prefixxx}
+         \grCycle[RA=\tkzb@rtemp,prefix=\tkzb@ptemp]{3}%
+       \end{scope}
+       \setcounter{tkzb@ca}{2}
+       \foreach \st in  {5,0,1}{%
+         \foreach \v in  {0,1,2}{%
+           \pgfmathsetcounter{tkzb@next}{modI((\thetkzb@ca*\v)+\st,6)}%
+           \Edge(\cmdGR@cl@prefix\v)(\cmdGR@cl@prefixx\thetkzb@next)
+           }%
+         }%
+       \setcounter{tkzb@ca}{2}
+       \foreach \v in  {0,1,2}{%
+         \foreach \st in  {0,1,2}{%
+           \pgfmathsetcounter{tkzb@next}{modI(\thetkzb@ca*\v+\st,6)}%
+           \Edge(\cmdGR@cl@prefixxx\v)(\cmdGR@cl@prefixx\thetkzb@next)
+           }%
+        }%
+    \fi
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                       grDodecahedral
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grDodecahedral}[1][]{% 
+\begingroup%
+\setkeys[GR]{cl}{#1}%
+   \ifcase\cmdGR@cl@form
+     \or
+       \grCycle[#1]{10}
+        \edef\tkzb@rtemp{\cmdGR@cl@RB}
+        \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+        \grCirculant[RA=\tkzb@rtemp,prefix=\tkzb@ptemp]{10}{2}
+        \EdgeIdentity{\cmdGR@cl@prefix}{\cmdGR@cl@prefixx}{10}
+      \or
+       \grCycle[#1]{5}
+       \begin{scope}[rotate=36]
+          \edef\tkzb@rtemp{\cmdGR@cl@RC}
+          \edef\tkzb@ptemp{\cmdGR@cl@prefixxx}
+          \grEmptyCycle[RA=\tkzb@rtemp,prefix=\tkzb@ptemp]{5}
+       \end{scope}
+       \edef\tkzb@rtemp{\cmdGR@cl@RB}
+        \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+        \grEmptyCycle[RA=\tkzb@rtemp,prefix=\tkzb@ptemp]{5}
+        \begin{scope}[rotate=36]
+          \edef\tkzb@rtemp{\cmdGR@cl@RD}
+          \edef\tkzb@ptemp{\cmdGR@cl@prefixxxx}
+          \grCycle[RA=\tkzb@rtemp,prefix=\tkzb@ptemp]{5}%
+        \end{scope}
+        \EdgeIdentity{\cmdGR@cl@prefix}{\cmdGR@cl@prefixx}{5}
+        \EdgeIdentity{\cmdGR@cl@prefixxx}{\cmdGR@cl@prefixxxx}{5}
+        \EdgeIdentity{\cmdGR@cl@prefixx}{\cmdGR@cl@prefixxx}{5}
+        \EdgeMod{\cmdGR@cl@prefixx}{\cmdGR@cl@prefixxx}{5}{-1}
+     \or
+       \grCycle[#1]{5}
+       \begin{scope}[rotate=36]
+         \edef\tkzb@rtemp{\cmdGR@cl@RC}
+         \edef\tkzb@ptemp{\cmdGR@cl@prefixxx}
+         \grEmptyCycle[RA=\tkzb@rtemp,prefix=\tkzb@ptemp]{5}
+       \end{scope}
+       \edef\tkzb@rtemp{\cmdGR@cl@RB}
+       \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+       \grCycle[RA=\tkzb@rtemp,prefix=\tkzb@ptemp]{10}
+       \EdgeInGraphLoop{\cmdGR@cl@prefixxx}{5}
+       \EdgeDoubleMod{\cmdGR@cl@prefix}{5}{0}{1}%
+                     {\cmdGR@cl@prefixx}{10}{0}{2}{5}
+       \EdgeDoubleMod{\cmdGR@cl@prefixxx}{5}{0}{1}%
+                     {\cmdGR@cl@prefixx}{10}{1}{2}{5}
+     \or
+       \grLCF[#1]{10,7,4,-4,-7,10,-4,7,-7,4}{2}
+     \or
+        \grCycle[#1]{10}
+        \edef\tkzb@rtemp{\cmdGR@cl@RB}
+        \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+        \grEmptyCycle[RA=\tkzb@rtemp,prefix=\tkzb@ptemp]{6}
+        \begin{scope}[rotate=45]
+          \edef\tkzb@rtemp{\cmdGR@cl@RC}
+          \edef\tkzb@ptemp{\cmdGR@cl@prefixxx}
+          \grEmptyCycle[RA=\tkzb@rtemp,prefix=\tkzb@ptemp]{4}%
+        \end{scope}
+       \setcounter{tkzb@ca}{0}
+       \foreach \v in  {1,4,6,9}{%
+           \Edge(\cmdGR@cl@prefix\v)(\cmdGR@cl@prefixxx\thetkzb@ca)
+           \stepcounter{tkzb@ca}
+           }%
+       \setcounter{tkzb@ca}{0}
+       \foreach \v in  {2,1,5,4}{%
+           \Edge(\cmdGR@cl@prefixx\v)(\cmdGR@cl@prefixxx\thetkzb@ca)
+           \stepcounter{tkzb@ca}
+           }%
+       \setcounter{tkzb@ca}{0}
+       \foreach \v in  {0,2,3,5,7,8}{%
+           \Edge(\cmdGR@cl@prefix\v)(\cmdGR@cl@prefixx\thetkzb@ca)
+           \stepcounter{tkzb@ca}
+           }%
+       \Edge(\cmdGR@cl@prefixxx0)(\cmdGR@cl@prefixxx3)
+       \Edge(\cmdGR@cl@prefixxx1)(\cmdGR@cl@prefixxx2)
+       \Edge(\cmdGR@cl@prefixx0)(\cmdGR@cl@prefixx1)
+       \Edge(\cmdGR@cl@prefixx0)(\cmdGR@cl@prefixx5)
+       \Edge(\cmdGR@cl@prefixx3)(\cmdGR@cl@prefixx2)
+       \Edge(\cmdGR@cl@prefixx3)(\cmdGR@cl@prefixx4)
+\fi
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                     grMobiusKantor
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grMobiusKantor}[1][]{% #1 options #2 ordre du graphe
+\begingroup%
+  \setkeys[GR]{cl}{#1}
+   \ifcase\cmdGR@cl@form
+     \or
+       \grCycle[#1]{16}
+       \EdgeInGraphMod*{\cmdGR@cl@prefix}{16}{5}{0}{2}
+     \or
+       \grCycle[#1]{8}
+       \edef\tkzb@rtemp{\cmdGR@cl@RB}
+       \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+       \grCirculant[RA=\tkzb@rtemp,prefix=\tkzb@ptemp]{8}{3}
+       \EdgeIdentity{\cmdGR@cl@prefix}{\cmdGR@cl@prefixx}{8}
+     \or
+       \grCirculant[#1]{8}{3} 
+       \edef\tkzb@rtemp{\cmdGR@cl@RB}
+       \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+       \grCycle[#1,RA=\tkzb@rtemp,prefix=\tkzb@ptemp]{8}
+       \EdgeIdentity{\cmdGR@cl@prefix}{\cmdGR@cl@prefixx}{8}
+     \fi
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                     grMoebiusLadder
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grMobiusLadder}[2][]{%
+\begingroup%
+  \setkeys[GR]{cl}{#1}
+  \grEmptyCycle[#1]{#2}
+  \pgfmathsetcounter{tkzb@temp}{#2-1}
+  \edef\tkzb@rtemp{\cmdGR@cl@RB}
+  \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+  \grEmptyCycle[RA=\tkzb@rtemp,prefix=\tkzb@ptemp]{#2}%
+  \EdgeIdentity{\cmdGR@cl@prefix}{\cmdGR@cl@prefixx}{#2}
+  \EdgeInGraphLoop*{\cmdGR@cl@prefix}{#2}
+  \EdgeInGraphLoop*{\cmdGR@cl@prefixx}{#2}
+  \Edge(\cmdGR@cl@prefix0)(\cmdGR@cl@prefixx\thetkzb@temp)
+  \Edge(\cmdGR@cl@prefixx0)(\cmdGR@cl@prefix\thetkzb@temp)
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                     grCocktailParty 
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grCocktailParty}[2][]{%
+\begingroup%
+  \setkeys[GR]{cl}{#1}%
+  \pgfmathsetcounter{tkzb@temp}{#2-1}
+  \grPath[#1,RS=0]{#2}
+  \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+  \edef\tkzb@rtemp{\cmdGR@cl@RS}
+  \grPath[#1,prefix=\tkzb@ptemp,RS=\tkzb@rtemp]{#2}
+  \foreach \cpx in {0,...,\thetkzb@temp}{%
+      \EdgeFromOneToComp{\cmdGR@cl@prefix}{\cmdGR@cl@prefixx}{\cpx}{#2}
+      }
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                     grCrown 
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grCrown}[2][]{%
+\begingroup%
+  \setkeys[GR]{cl}{#1}%
+  \pgfmathsetcounter{tkzb@temp}{#2-1}
+  \grEmptyPath[#1,RS=0]{#2}
+  \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+  \edef\tkzb@rtemp{\cmdGR@cl@RS}
+  \grEmptyPath[#1,prefix=\tkzb@ptemp,RS=\tkzb@rtemp]{#2}
+  \foreach \cpx in {0,...,\thetkzb@temp}{%
+      \EdgeFromOneToComp{\cmdGR@cl@prefix}{\cmdGR@cl@prefixx}{\cpx}{#2}
+      }
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                     grMcGee 
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grMcGee}[1][]{%
+\begingroup%
+  \setkeys[GR]{cl}{#1}%
+  \grLCF[#1]{-12,7,-7}{8}
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                     grRobertson 
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grRobertson}[1][]{%
+\begingroup%
+  \setkeys[GR]{cl}{#1}%
+  \grLCF[#1]{8,4,7,4,8,5,7,4,7,8,4,5,7,8,4,8,4,8,4}{1}
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                     grRobertsonWegner 
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grRobertsonWegner}[1][]{%
+\begingroup%
+  \setkeys[GR]{cl}{#1}%
+    \grLCF[#1]{6,12}{15}
+    \EdgeInGraphMod{\cmdGR@cl@prefix}{30}{9}{1}{6}
+    \EdgeInGraphMod*{\cmdGR@cl@prefix}{30}{15}{2}{6}
+    \EdgeInGraphMod*{\cmdGR@cl@prefix}{30}{9}{3}{6}
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                     grDoyle 
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grDoyle}[1][]{%
+\begingroup%
+    \setkeys[GR]{cl}{#1}%
+    \ifcase\cmdGR@cl@form
+      \or
+        \grCycle[#1]{9}
+        \begin{scope}[rotate=18]
+          \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+          \edef\tkzb@rtemp{\cmdGR@cl@RB}
+          \grCirculant[#1,prefix=\tkzb@ptemp,RA=\tkzb@rtemp]{9}{2}
+        \end{scope}
+        \EdgeMod{\cmdGR@cl@prefixx}{\cmdGR@cl@prefix}{9}{1}
+        \edef\tkzb@ptemp{\cmdGR@cl@prefixxx}
+        \edef\tkzb@rtemp{\cmdGR@cl@RC}
+        \grCirculant[#1,prefix=\tkzb@ptemp,RA=\tkzb@rtemp]{9}{4}
+        \EdgeIdentity{\cmdGR@cl@prefix}{\cmdGR@cl@prefixxx}{9}
+        \EdgeMod{\cmdGR@cl@prefixx}{\cmdGR@cl@prefixxx}{9}{1}
+      \or
+        \grCycle[#1]{27}
+        \EdgeDoubleMod{\cmdGR@cl@prefix}{27}{0}{3}
+                      {\cmdGR@cl@prefix}{27}{13}{3}{9}
+        \EdgeDoubleMod{\cmdGR@cl@prefix}{27}{1}{3}
+                      {\cmdGR@cl@prefix}{27}{5}{3}{9}
+        \EdgeDoubleMod{\cmdGR@cl@prefix}{27}{0}{3}
+                      {\cmdGR@cl@prefix}{27}{20}{3}{9}
+      \or
+        \grCycle[#1]{27}
+        \EdgeDoubleMod{\cmdGR@cl@prefix}{27}{17}{1}
+                      {\cmdGR@cl@prefix}{27}{10}{-2}{4}
+        \EdgeDoubleMod{\cmdGR@cl@prefix}{27}{26}{1}
+                      {\cmdGR@cl@prefix}{27}{19}{-2}{4}
+        \EdgeDoubleMod{\cmdGR@cl@prefix}{27}{8}{1}
+                      {\cmdGR@cl@prefix}{27}{1}{-2}{4}
+        \EdgeDoubleMod{\cmdGR@cl@prefix}{27}{4}{1}
+                      {\cmdGR@cl@prefix}{27}{27}{-2}{3}
+        \EdgeDoubleMod{\cmdGR@cl@prefix}{27}{8}{1}
+                      {\cmdGR@cl@prefix}{27}{1}{-2}{4}
+        \EdgeDoubleMod{\cmdGR@cl@prefix}{27}{14}{1}
+                      {\cmdGR@cl@prefix}{27}{7}{-2}{2}
+        \EdgeDoubleMod{\cmdGR@cl@prefix}{27}{23}{1}
+                      {\cmdGR@cl@prefix}{27}{16}{-2}{2}
+        \Edge(\cmdGR@cl@prefix9)(\cmdGR@cl@prefix13)%
+        \Edge(\cmdGR@cl@prefix18)(\cmdGR@cl@prefix22)%
+    \fi
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                     grDesargues 
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grDesargues}[1][]{%
+\begingroup%
+    \setkeys[GR]{cl}{#1}%
+    \ifcase\cmdGR@cl@form
+      \or
+        \grLCF[#1]{5,-5,9,-9}{5}
+      \or
+         \grGeneralizedPetersen[#1]{10}{3}
+     \fi
+\endgroup%
+}
+
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                     grKonisberg
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+% #1 prefix  #2 indice #2 prefix #3 indice choisie entre #4 et #5 ...
+\newcommand{\grKonisberg}[1][]{%
+\begingroup%
+  \setkeys[GR]{cl}{#1}%
+   \grCycle[#1]{4}
+   \Edge[style={bend left}](\cmdGR@cl@prefix1)(\cmdGR@cl@prefix2)
+   \Edge[style={bend left}](\cmdGR@cl@prefix2)(\cmdGR@cl@prefix3) 
+   \Edge(\cmdGR@cl@prefix0)(\cmdGR@cl@prefix2)
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                     grWong
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+
+\newcommand{\grWong}[1][]{%
+\begingroup%
+   \setkeys[GR]{cl}{#1}%
+    \grLCF[#1]{8,4,12,4,8,4}{5}
+    \EdgeInGraphMod*{\cmdGR@cl@prefix}{30}{15}{0}{3}
+    \EdgeInGraphMod*{\cmdGR@cl@prefix}{30}{16}{1}{6}
+    \EdgeInGraphMod*{\cmdGR@cl@prefix}{30}{18}{4}{6}
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                     grTutte
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+
+\newcommand{\grTutteCoxeter}[1][]{%
+\begingroup%
+   \setkeys[GR]{cl}{#1}%
+    \grLCF[#1]{-13,-9,7,-7,9,13}{5}
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                     grFoster
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+
+\newcommand{\grFoster}[1][]{%
+\begingroup%
+   \setkeys[GR]{cl}{#1}%
+    \grLCF[#1]{17,-9,37,-37,9,-17}{15}
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                     grFolkman
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+
+\newcommand{\grFolkman}[1][]{%
+\begingroup%
+   \setkeys[GR]{cl}{#1}%
+  \grLCF[#1]{5,-7,-7,5}{5}
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                     grFranklin
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+
+\newcommand{\grFranklin}[1][]{%
+\begingroup%
+   \setkeys[GR]{cl}{#1}%
+  \grLCF[#1]{5,-5}{6}
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                     grAndrasfai
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+
+\newcommand{\grAndrasfai}[2][]{%
+\begingroup%
+   \setkeys[GR]{cl}{#1}%
+   \pgfmathsetcounter{tkza@int}{3*#2-1}
+   \grEmptyCycle[#1]{\thetkza@int}
+   \pgfmathsetcounter{tkza@tmp}{\thetkza@int/2}
+   \pgfmathsetcounter{tkza@tmp}{\thetkza@int+1}
+   \pgfmathsetcounter{tkzb@temp}{1}
+   \whiledo{\value{tkzb@temp} < \value{tkza@tmp}}{%
+      \EdgeInGraphMod*{\cmdGR@cl@prefix}{\thetkza@int}{\thetkzb@temp}{0}{1}
+      \pgfmathsetcounter{tkzb@temp}{\thetkzb@temp+3}
+      }
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                                 grGrotzsch
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grGrotzsch}[1][]{%
+\begingroup%
+    \setkeys[GR]{cl}{#1}%
+    \ifcase\cmdGR@cl@form
+      \or
+     \begin{scope}[rotate=18]%
+       \grStar[#1]{6}%
+          \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+          \edef\tkzb@rtemp{\cmdGR@cl@RB}
+       \grCycle[#1,prefix=\tkzb@ptemp,RA=\tkzb@rtemp]{5}%
+       \Edges(\cmdGR@cl@prefix0,\cmdGR@cl@prefixx1,%
+              \cmdGR@cl@prefix2,\cmdGR@cl@prefixx3,%
+              \cmdGR@cl@prefix4,\cmdGR@cl@prefixx0,%
+              \cmdGR@cl@prefix1,\cmdGR@cl@prefixx2,%
+              \cmdGR@cl@prefix3,\cmdGR@cl@prefixx4,\cmdGR@cl@prefix0)
+     \end{scope}
+      \or
+     \begin{scope}[rotate=18]%
+       \grStar[#1]{6}%
+          \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+          \edef\tkzb@rtemp{\cmdGR@cl@RB}
+       \begin{scope}[rotate=-36]%
+          \grCirculant[#1,prefix=\tkzb@ptemp,RA=\tkzb@rtemp]{5}{2}%
+       \end{scope}
+     \EdgeDoubleMod{a}{5}{0}{1}%
+                   {b}{5}{1}{1}{4}
+     \EdgeIdentity{a}{b}{5}
+     \end{scope}
+\fi
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                                 grLevi
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grLevi}[1][]{%
+\begingroup%
+    \setkeys[GR]{cl}{#1}%
+    \ifcase\cmdGR@cl@form
+      \or
+         \grLCF[#1]{-13,-9,7,-7,9,13}{5}
+      \or
+    \grCycle[#1]{10}
+    \EdgeInGraphMod{\cmdGR@cl@prefix}{10}{5}
+    \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+    \edef\tkzb@rtemp{\cmdGR@cl@RB}
+    \grEmptyCycle[#1,prefix=\tkzb@ptemp,RA=\tkzb@rtemp]{10}
+    \edef\tkzb@ptemp{\cmdGR@cl@prefixxx}
+    \edef\tkzb@rtemp{\cmdGR@cl@RC}
+    \grEmptyCycle[#1,prefix=\tkzb@ptemp,RA=\tkzb@rtemp]{10}
+    \EdgeInGraphMod{\cmdGR@cl@prefixxx}{10}{4}
+\fi
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                                 grPappus
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grPappus}[1][]{%
+\begingroup%
+    \setkeys[GR]{cl}{#1}%
+    \ifcase\cmdGR@cl@form
+\or
+    \grLCF[#1]{5,7,-7,7,-7,-5}{3}
+\or
+ \begin{scope}[rotate=30]%
+   \grCycle[#1]{6}
+          \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+          \edef\tkzb@rtemp{\cmdGR@cl@RB}
+   \grCycle[#1,prefix=\tkzb@ptemp,RA=\tkzb@rtemp]{6}
+          \edef\tkzb@ptemp{\cmdGR@cl@prefixxx}
+          \edef\tkzb@rtemp{\cmdGR@cl@RC}
+   \grCycle[#1,prefix=\tkzb@ptemp,RA=\tkzb@rtemp]{6}
+   \EdgeDoubleMod{\cmdGR@cl@prefixxx}{6}{0}{2}%
+                 {\cmdGR@cl@prefixx}{6}{5}{2}{2}
+   \EdgeDoubleMod{\cmdGR@cl@prefixxx}{6}{5}{2}%
+                 {\cmdGR@cl@prefix}{6}{1}{2}{2}
+   \EdgeDoubleMod{\cmdGR@cl@prefixx}{6}{0}{2}%
+                 {\cmdGR@cl@prefix}{6}{0}{2}{2}
+\end{scope}
+\or
+ \begin{scope}[rotate=30]
+   \grCycle[#1]{6}
+          \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+          \edef\tkzb@rtemp{\cmdGR@cl@RB}
+   \grCirculant[#1,prefix=\tkzb@ptemp,RA=\tkzb@rtemp]{6}{2}
+          \edef\tkzb@ptemp{\cmdGR@cl@prefixxx}
+          \edef\tkzb@rtemp{\cmdGR@cl@RC}
+   \grEmptyCycle[#1,prefix=\tkzb@ptemp,RA=\tkzb@rtemp]{6}
+   \EdgeIdentity{\cmdGR@cl@prefixx}{\cmdGR@cl@prefix}{6}
+   \EdgeInGraphMod{\cmdGR@cl@prefixxx}{6}{3}   
+\end{scope} 
+\fi
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                                 grChvatal
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grChvatal}[1][]{%
+\begingroup%
+\setkeys[GR]{cl}{#1}%
+\ifcase\cmdGR@cl@form
+\or
+  \begin{scope}[rotate=45]
+    \grCycle[#1]{4}
+    \end{scope}
+    \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+    \edef\tkzb@rtemp{\cmdGR@cl@RB}
+  \begin{scope}[rotate=22.25]
+    \grEmptyCycle[#1,prefix=\tkzb@ptemp,RA=\tkzb@rtemp]{8}
+  \end{scope}
+  \EdgeInGraphMod{\cmdGR@cl@prefixx}{8}{4}
+  \EdgeInGraphMod*{\cmdGR@cl@prefixx}{8}{1}{1}{2}
+  \EdgeInGraphMod*{\cmdGR@cl@prefixx}{8}{3}{1}{2}
+   \EdgeDoubleMod{\cmdGR@cl@prefix}{4}{0}{1}%
+                 {\cmdGR@cl@prefixx}{8}{1}{2}{3}
+   \EdgeDoubleMod{\cmdGR@cl@prefix}{4}{0}{1}%
+                 {\cmdGR@cl@prefixx}{8}{0}{2}{3} 
+\or
+   \begin{scope}[rotate=18]
+     \grCycle[#1]{5}
+     \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+     \edef\tkzb@rtemp{\cmdGR@cl@RB}
+     \grEmptyCycle[#1,prefix=\tkzb@ptemp,RA=\tkzb@rtemp]{5}
+   \end{scope} 
+   \edef\tkzb@ptemp{\cmdGR@cl@prefixxx}
+   \edef\tkzb@rtemp{\cmdGR@cl@RC} 
+   \grEmptyCycle[#1,prefix=\tkzb@ptemp,RA=\tkzb@rtemp]{2}
+   \EdgeDoubleMod{\cmdGR@cl@prefix}{5}{0}{1}%
+                 {\cmdGR@cl@prefixx}{5}{1}{1}{4}
+   \EdgeDoubleMod{\cmdGR@cl@prefix}{5}{0}{1}%
+                 {\cmdGR@cl@prefixx}{5}{4}{1}{4}
+   \EdgeFromOneToSel{\cmdGR@cl@prefixxx}{\cmdGR@cl@prefixx}{0}{4,0,1}
+   \EdgeFromOneToSel{\cmdGR@cl@prefixxx}{\cmdGR@cl@prefixx}{1}{1,2,3}
+   \Edge(\cmdGR@cl@prefixx3)(\cmdGR@cl@prefixx4)
+   \Edge(\cmdGR@cl@prefixx0)(\cmdGR@cl@prefixxx1)
+   \Edge(\cmdGR@cl@prefixx2)(\cmdGR@cl@prefixxx0)
+\or
+  \grCycle[#1]{12}
+  \Edges(\cmdGR@cl@prefix0,\cmdGR@cl@prefix6,\cmdGR@cl@prefix3,%
+         \cmdGR@cl@prefix8,\cmdGR@cl@prefix11,\cmdGR@cl@prefix5,%
+         \cmdGR@cl@prefix2,\cmdGR@cl@prefix9,\cmdGR@cl@prefix0)
+  \Edges(\cmdGR@cl@prefix1,\cmdGR@cl@prefix7,\cmdGR@cl@prefix10,%
+         \cmdGR@cl@prefix4,\cmdGR@cl@prefix1)  
+\fi  
+\endgroup%
+}
+
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                                 grBalaban
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grBalaban}[1][]{%
+\begingroup%
+\setkeys[GR]{cl}{#1}%
+\ifcase\cmdGR@cl@form
+\or
+     \grCycle[#1]{50}
+     \EdgeInGraphMod*{\cmdGR@cl@prefix}{50}{9}{3}{5}
+     \EdgeInGraphMod*{\cmdGR@cl@prefix}{50}{25}{0}{5}
+     \begin{scope}[rotate=12]
+        \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+        \edef\tkzb@rtemp{\cmdGR@cl@RB}
+        \grCirculant[#1,prefix=\tkzb@ptemp,RA=\tkzb@rtemp]{10}{3}
+     \end{scope}
+     \begin{scope}[rotate=24]
+        \edef\tkzb@ptemp{\cmdGR@cl@prefixxx}
+        \edef\tkzb@rtemp{\cmdGR@cl@RC}
+       \grCirculant[#1,prefix=\tkzb@ptemp,RA=\tkzb@rtemp]{10}{3}
+     \end{scope}
+     \EdgeDoubleMod{\cmdGR@cl@prefix}{50}{1}{5}%
+                   {\cmdGR@cl@prefixx}{10}{0}{1}{10}
+     \EdgeDoubleMod{\cmdGR@cl@prefix}{50}{4}{5}%
+                   {\cmdGR@cl@prefixxx}{10}{0}{1}{10}
+\or
+ \begin{scope}[rotate=9]
+   \grCycle[#1]{10}
+ \end{scope}
+ \begin{scope}[rotate=-9]
+        \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+        \edef\tkzb@rtemp{\cmdGR@cl@RB}
+   \grCycle[#1,prefix=\tkzb@ptemp,RA=\tkzb@rtemp]{10}
+ \end{scope}
+ \begin{scope}[rotate=6]
+        \edef\tkzb@ptemp{\cmdGR@cl@prefixxx}
+        \edef\tkzb@rtemp{\cmdGR@cl@RC}
+   \grEmptyCycle[#1,prefix=\tkzb@ptemp,RA=\tkzb@rtemp]{30}
+   \EdgeInGraphMod*{\cmdGR@cl@prefixxx}{30}{1}{0}{3}
+   \EdgeInGraphMod*{\cmdGR@cl@prefixxx}{30}{1}{1}{3}
+   \EdgeInGraphMod*{\cmdGR@cl@prefixxx}{30}{15}{1}{3}
+ \end{scope}
+ \begin{scope}[rotate=9]
+        \edef\tkzb@ptemp{\cmdGR@cl@prefixxxx}
+        \edef\tkzb@rtemp{\cmdGR@cl@RD}
+   \grEmptyCycle[#1,prefix=\tkzb@ptemp,RA=\tkzb@rtemp]{20}
+   \EdgeInGraphMod*{\cmdGR@cl@prefixxxx}{20}{7}{0}{2}
+   \EdgeInGraphMod*{\cmdGR@cl@prefixxxx}{20}{5}{1}{2}
+ \end{scope}
+ \EdgeDoubleMod{\cmdGR@cl@prefix}{10}{0}{1}
+               {\cmdGR@cl@prefixxx}{30}{0}{3}{9}
+ \EdgeDoubleMod{\cmdGR@cl@prefixx}{10}{0}{1}%
+               {\cmdGR@cl@prefixxx}{30}{29}{3}{9}
+ \EdgeDoubleMod{\cmdGR@cl@prefixxx}{30}{0}{3}%
+               {\cmdGR@cl@prefixxxx}{20}{0}{2}{9}
+ \EdgeDoubleMod{\cmdGR@cl@prefixxx}{30}{2}{3}%
+               {\cmdGR@cl@prefixxxx}{20}{1}{2}{9}
+\or
+\grEmptyCycle[#1]{10}
+\begin{scope}[rotate=9]
+      \edef\tkzb@ptemp{\cmdGR@cl@prefixx}
+      \edef\tkzb@rtemp{\cmdGR@cl@RB}
+  \grEmptyCycle[#1,prefix=\tkzb@ptemp,RA=\tkzb@rtemp]{20}
+\end{scope}
+\begin{scope}[rotate=13]
+        \edef\tkzb@ptemp{\cmdGR@cl@prefixxx}
+      \edef\tkzb@rtemp{\cmdGR@cl@RC}
+  \grEmptyCycle[#1,prefix=\tkzb@ptemp,RA=\tkzb@rtemp]{10}
+\end{scope}
+\begin{scope}[rotate=-13]
+        \edef\tkzb@ptemp{\cmdGR@cl@prefixxxx}
+      \edef\tkzb@rtemp{\cmdGR@cl@RD}
+  \grEmptyCycle[#1,prefix=\tkzb@ptemp,RA=\tkzb@rtemp]{10}
+\end{scope}
+\begin{scope}[rotate=9]
+        \edef\tkzb@ptemp{\cmdGR@cl@prefixxxxx}
+      \edef\tkzb@rtemp{\cmdGR@cl@RE}
+  \grCirculant[#1,prefix=\tkzb@ptemp,RA=\tkzb@rtemp]{20}{6}
+\end{scope}
+   \EdgeIdentity{\cmdGR@cl@prefixx}{\cmdGR@cl@prefixxxxx}{20}
+   \EdgeDoubleMod{\cmdGR@cl@prefix}{10}{0}{1}%
+                 {\cmdGR@cl@prefixx}{20}{0}{2}{10}
+   \EdgeDoubleMod{\cmdGR@cl@prefix}{10}{0}{1}%
+                 {\cmdGR@cl@prefixx}{20}{19}{2}{10}
+   \EdgeInGraphMod{\cmdGR@cl@prefix}{10}{5}
+   \EdgeDoubleMod{\cmdGR@cl@prefixxx}{10}{0}{1}%
+                 {\cmdGR@cl@prefixx}{20}{0}{2}{10}
+   \EdgeDoubleMod{\cmdGR@cl@prefixxxx}{10}{0}{1}%
+                 {\cmdGR@cl@prefixx}{20}{19}{2}{10}
+   \EdgeDoubleMod{\cmdGR@cl@prefixxxx}{10}{0}{1}%
+                 {\cmdGR@cl@prefixxx}{10}{1}{1}{10}
+   \EdgeDoubleMod{\cmdGR@cl@prefixxxx}{10}{1}{1}%
+                 {\cmdGR@cl@prefixxx}{10}{0}{1}{10}
+\fi
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                     Labels
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+
+% #2 label/prefix/num
+\define@cmdkey [GR] {WL} {color}[black]{}
+\define@cmdkey [GR] {WL} {labelstyle}{}
+\define@cmdkey [GR] {WL} {size}{}
+\define@cmdkey [GR] {WL} {style}{}
+\presetkeys    [GR] {WL} {color       = black,%
+                          labelstyle  = {},%
+                          size        = {},%
+                          style       = {}}{}
+\newcommand{\grWriteExplicitLabels}[2][]{%
+\begingroup%
+  \setkeys[GR]{WL}{#1}%
+  \foreach \text/\where in {#2}{%
+      \node at (\where) {\text};
+      }%
+\endgroup%
+}
+\newcommand{\grWriteExplicitLabel}[2][]{%
+\begingroup%
+  \setkeys[GR]{cl}{#1}%
+  \node at (\where) {\text};
+\endgroup%
+}%
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                               AssignVertexLabel
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\tikzset{AssignStyle/.style={}}
+\define@cmdkey [GR] {AVL} {color}{}
+\define@cmdkey [GR] {AVL} {size}{}
+\define@cmdkey [GR] {AVL} {pos}{}
+\define@boolkey[GR] {AVL} {Math}[true]{}
+\presetkeys    [GR] {AVL} {size       = \normalsize,%
+                           color      = black,%
+                           pos        = {},%
+                           Math       = false}{} \newcommand*{\AssignVertexLabel}[4][]{%
+\begingroup%
+  \setkeys[GR]{AVL}{#1}
+  \setcounter{tkzb@ta}{0}
+  \foreach \name in {#4}{%
+  \ifGR@AVL@Math%
+     \node at (#2\thetkzb@ta) {$\textcolor{\cmdGR@AVL@color}{\cmdGR@AVL@size\name}$};
+  \else%
+ \node[AssignStyle] at (#2\thetkzb@ta) {\textcolor{\cmdGR@AVL@color}{\cmdGR@AVL@size\name}};
+  \fi%
+     \stepcounter{tkzb@ta}}
+\endgroup%
+}
+
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                     grEdgeForTree
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+% #1 prefix  #2 indice #2 prefix #3 indice choisie entre #4 et #5 ...
+\newcommand{\grEdgeForTree}[5]{%
+\begingroup%
+  \foreach \x in {#4,...,#5}{%
+      \Edge(#1#2)(#3\x)%
+      }%
+\endgroup%
+}
+
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                                  The End
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\endinput
+    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+    %                                                               %
+    %     tk-graphes.sty    encodage : utf8                         %
+    %                                                               %
+    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+    %                                                               %
+    %           Créé par Alain Matthes le 09-10-2007.               %
+    %        contribution :  Rafael Villarroel 2007   (RV)          %
+    %                                                               %
+    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%% Objet :  Création de graphes
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{tkz-graph}[18/11/2008 v 2.7d base for graphs]
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\RequirePackage{etex}
+\RequirePackage{ifthen}
+\RequirePackage{xkeyval}[2005/11/25]
+\RequirePackage{tikz}[2008/01/15]
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcounter{tkzb@ca}
+\newcounter{tkzb@cb}
+\newcounter{tkzb@cc}
+\newcounter{tkzb@v}
+\newcounter{tkzb@cd}
+\newcounter{tkzb@ce}
+\newcounter{tkzb@cf}
+\newcounter{tkzb@temp}
+\newcounter{tkzb@int}
+\newcounter{tkzb@next}
+\newcounter{tkzb@ta}
+\newcounter{tkzb@tb}
+\newdimen\node@distance
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                           Init vertex  
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\ifdefined\twoptoff
+\else
+\newboolean{@twopt} \setboolean{@twopt}{false} 
+\newcommand*{\twoptoff}{\ifnum \catcode`\:=13 \catcode`\:=12 \setboolean{@twopt}{true} \fi}
+\newcommand*{\twopton}{\if@twopt \catcode`\:=13 \setboolean{@twopt}{false}  \fi}
+\fi
+
+\ifdefined\activoff
+\else
+\newboolean{@activ} \setboolean{@activ}{false}%
+\newcommand*{\activoff}{\ifnum\catcode`\:=13\catcode`\:=12\catcode`\!=12%
+ \setboolean{@activ}{true} \fi}%
+\newcommand*{\activon}{\if@activ\catcode`\:=13\catcode`\!=13%
+ \setboolean{@activ}{false}  \fi}
+\fi
+\newcommand*{\VertexDistance}{3cm}
+\newcommand*{\VertexShape}{circle}
+\newcommand*{\VertexLineWidth}{1pt}
+\newcommand*{\VertexLineColor}{black}
+\newcommand*{\VertexLightFillColor}{white}
+\newcommand*{\VertexDarkFillColor}{black}
+\newcommand*{\VertexTextColor}{black}
+\newcommand*{\VertexFillColor}{black}
+\newcommand*{\VertexBallColor}{orange}
+\newcommand*{\VertexBigMinSize}{24pt}
+\newcommand*{\VertexInterMinSize}{18pt}
+\newcommand*{\VertexSmallMinSize}{12pt}
+\newcommand*{\VertexInnerSep}{4pt}
+\newcommand*{\EdgeFillColor}{orange}
+\newcommand*{\EdgeColor}{black}
+\newcommand*{\EdgeDoubleDistance}{1pt}
+\newcommand*{\EdgeLineWidth}{0.8pt}
+
+\tikzset{pre/.style={<-,shorten <=1pt,>=stealth',semithick}}
+\tikzset{post/.style={->,shorten <=1pt,>=stealth',semithick}}
+
+%<––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%   Simple Vertex
+%<––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\define@cmdkey [GR] {SVS} {Shape}{}
+\define@cmdkey [GR] {SVS} {MinSize}{}
+\define@cmdkey [GR] {SVS} {LineWidth}{}
+\define@cmdkey [GR] {SVS} {LineColor}{}
+\define@cmdkey [GR] {SVS} {FillColor}{}
+\presetkeys    [GR] {SVS} {Shape          = \VertexShape,
+                           MinSize        = \VertexSmallMinSize,
+                           LineWidth      = \VertexLineWidth,
+                           LineColor      = \VertexLineColor,
+                           FillColor      = \VertexFillColor}{}
+\newcommand*{\SetVertexSimple}[1][]{\GR@SetVertexSimple[#1]}%
+\def\GR@SetVertexSimple[#1]{%
+\setkeys[GR]{SVS}{#1}% 
+\presetkeys[GR]{vertex}{NoLabel           = true}{}%
+\tikzset{VertexStyle/.style = {draw,
+                               shape          = \cmdGR@SVS@Shape,
+                               color          = \cmdGR@SVS@LineColor,
+                               fill           = \cmdGR@SVS@FillColor,
+                               inner sep      = 0pt,
+                               outer sep      = 0pt,
+                               minimum size   = \cmdGR@SVS@MinSize,
+                               line width     = \cmdGR@SVS@LineWidth}}}
+%<––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%   Normal Vertex
+%<––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\define@cmdkey [GR] {SVN} {Shape}{}
+\define@cmdkey [GR] {SVN} {MinSize}{}
+\define@cmdkey [GR] {SVN} {LineWidth}{}
+\define@cmdkey [GR] {SVN} {LineColor}{}
+\define@cmdkey [GR] {SVN} {FillColor}{}
+\define@cmdkey [GR] {SVN} {TextColor}{}
+\presetkeys    [GR] {SVN} {Shape              = \VertexShape,
+                           MinSize            = \VertexInterMinSize,
+                           LineWidth          = \VertexLineWidth,
+                           LineColor          = \VertexLineColor,
+                           FillColor          = \VertexLightFillColor,
+                           TextColor          = \VertexTextColor}{}
+\newcommand*{\SetVertexNormal}[1][]{\GR@SetVertexNormal[#1]}%
+\def\GR@SetVertexNormal[#1]{%
+\setkeys[GR]{SVN}{#1}% 
+\tikzset{VertexStyle/.style = {shape          = \cmdGR@SVN@Shape,
+                               minimum size   = \cmdGR@SVN@MinSize,
+                               line width     = \cmdGR@SVN@LineWidth,
+                               color          = \cmdGR@SVN@LineColor,
+                               fill           = \cmdGR@SVN@FillColor,
+                               text           = \cmdGR@SVN@TextColor,
+                               draw}}}
+\SetVertexNormal% default
+%<––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\define@choicekey*[GR]{init}{vstyle}[\val\nr]{Simple,
+                                              Classic,
+                                              Normal,
+                                              Shade,
+                                              Dijkstra,
+                                              Welsh,
+                                              Art}{%
+\edef\GR@init@vstyle{\nr}
+\ifcase\nr\relax
+% Simple
+\presetkeys [GR] {vertex} {NoLabel            = true}{}%
+\tikzset{VertexStyle/.style = {draw,
+                               shape          = \VertexShape,
+                               color          = \VertexLineColor,
+                               fill           = \VertexDarkFillColor,
+                               inner sep      = 0pt,
+                               outer sep      = 0.5\pgflinewidth,
+                               text           = \VertexTextColor,
+                               minimum size   = \VertexSmallMinSize,
+                               line width     = \VertexLineWidth}}
+\tikzset{EdgeStyle/.style   = {line width = \EdgeLineWidth,\EdgeColor}}
+\tikzset{LabelStyle/.style={}}
+% Classic
+\or
+\presetkeys [GR] {vertex} {LabelOut           = true}{}%
+\tikzset{VertexStyle/.style = {draw,
+                               shape          = \VertexShape,
+                               color          = \VertexLineColor,
+                               fill           = \VertexDarkFillColor,
+                               inner sep      = 0pt,
+                               outer sep      = 0.5\pgflinewidth,
+                               text           = \VertexTextColor,
+                               minimum size   = \VertexSmallMinSize,
+                               line width     = \VertexLineWidth}}
+\tikzset{EdgeStyle/.style   = {line width     = \EdgeLineWidth,\EdgeColor}}
+\tikzset{LabelStyle/.style={}}
+% Normal 
+\or
+\presetkeys [GR] {vertex} {LabelOut           = false}{}%
+\tikzset{VertexStyle/.style = {draw,
+                               shape          = \VertexShape,
+                               minimum size   = \VertexInterMinSize,
+                               line width     = \VertexLineWidth,
+                               color          = \VertexLineColor,
+                               outer sep      = 0.5\pgflinewidth,
+                               fill           = \VertexLightFillColor,
+                               text           = \VertexTextColor}}
+\tikzset{EdgeStyle/.style   = {line width     = \EdgeLineWidth,\EdgeColor}}
+\tikzset{LabelStyle/.style={}}
+% Shade
+\or
+\presetkeys [GR] {vertex} {LabelOut           = false}{}%
+\tikzset{VertexStyle/.style = {shape          = \VertexShape,
+                               ball color     = \VertexBallColor,
+                               text           = \VertexTextColor,
+                               inner sep      = 2pt,
+                               outer sep      = 0pt,
+                               minimum size   = \VertexBigMinSize}}
+\tikzset{EdgeStyle/.style   = {line width     = \EdgeLineWidth,\EdgeColor,
+                               double          = \EdgeFillColor,
+                               double distance = \EdgeDoubleDistance}} 
+\tikzset{LabelStyle/.style={}}
+% Dijkstra
+\or
+\presetkeys [GR] {vertex} {LabelOut           = false}{}%
+\tikzset{VertexStyle/.style = {draw,
+                               shape          = \VertexShape,
+                               color          = \VertexLineColor,
+                               fill           = \VertexLightFillColor,
+                               inner sep      = 0pt,
+                               outer sep      = 0.5\pgflinewidth,
+                               text           = \VertexTextColor,
+                               minimum size   = \VertexInterMinSize,
+                               line width     = \VertexLineWidth}}
+\tikzset{EdgeStyle/.style   = {line width     = \EdgeLineWidth,\EdgeColor}}
+\tikzset{LabelStyle/.style={}}
+% Welsh
+\or
+\presetkeys [GR] {vertex} {LabelOut           = true}{}%
+\tikzset{VertexStyle/.style = {draw,
+                               shape          = \VertexShape,
+                               color          = \VertexLineColor,
+                               fill           = \VertexLightFillColor,
+                               inner sep      = 0pt,
+                               outer sep      = 0pt,
+                               text           = \VertexTextColor,
+                               minimum size   = \VertexSmallMinSize,
+                               line width     = \VertexLineWidth}}
+\tikzset{EdgeStyle/.style   = {line width     = \EdgeLineWidth,\EdgeColor}}
+\tikzset{LabelStyle/.style={}}
+% Art
+\or
+\presetkeys [GR] {vertex} {NoLabel            = true}{}%
+\tikzset{VertexStyle/.style = {shape          = \VertexShape,
+                               ball color     = \VertexBallColor,
+                               text           = \VertexTextColor,
+                               inner sep      = \VertexInnerSep,
+                               outer sep      = 0pt}}
+\tikzset{EdgeStyle/.style   = {line width     =\EdgeLineWidth,\EdgeFillColor}} 
+\tikzset{LabelStyle/.style  = {}}
+\fi%
+}
+
+\presetkeys    [GR] {init} {vstyle     = Normal}{} 
+
+\newcommand*{\GraphInit}[1][]{\GR@GraphInit[#1]}%
+\def\GR@GraphInit[#1]{\setkeys[GR]{init}{#1}}
+
+%<––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\SetVertexNoLabel}{%
+    \presetkeys [GR] {vertex} {NoLabel = true}{}%
+}
+% add  RV
+\newcommand*{\SetVertexLabel}{%
+   \presetkeys [GR] {vertex} {NoLabel = false}{}%
+}
+%<––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\SetVertexLabelOut}{%
+    \presetkeys [GR] {vertex} {LabelOut = true}{}%
+}
+\newcommand*{\SetVertexLabelIn}{%
+    \presetkeys [GR] {vertex} {LabelOut = false}{}%
+} 
+\newcommand*{\SetVertexMath}{%
+    \presetkeys [GR] {vertex} {Math = true}{}%
+    \presetkeys [GR] {cl} {Math = true}{}%
+}
+\newcommand*{\SetVertexNoMath}{%
+    \presetkeys [GR] {vertex} {Math = false}{}%
+    \presetkeys [GR] {cl} {Math = false}{}%
+} 
+% %<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+% \tikzstyle{every node}        = [node distance  = 2cm,
+%                                  line width     = 0.8pt]%
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                          Init    SetUpVertex
+% todo math
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\define@cmdkey  [GR] {SUV} {Lpos}{}
+\define@cmdkey  [GR] {SUV} {Ldist}{}
+\define@cmdkey  [GR] {SUV} {style}{}
+\define@boolkey [GR] {SUV} {NoLabel} [true]{}
+\define@boolkey [GR] {SUV} {LabelOut}[true]{}
+\define@boolkey [GR] {SUV} {Math}[true]{}
+\presetkeys     [GR] {SUV} {Ldist     = 0cm,%
+                            Lpos      = 0,%
+                            style     = {},%
+                            LabelOut  = false,%
+                            NoLabel   = false,
+                            Math      = false}{}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                             SetUpVertex
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\SetUpVertex}[1][]{\GR@SetUpVertex[#1]}%
+\def\GR@SetUpVertex[#1]{%
+\setkeys[GR]{SUV}{#1}%
+\presetkeys     [GR] {vertex} {Lpos     = \cmdGR@SUV@Lpos,%
+                               Ldist    = \cmdGR@SUV@Ldist}{}%
+\ifGR@SUV@NoLabel%
+    \presetkeys [GR] {vertex} {NoLabel  = true}{}%
+\fi%
+\ifGR@SUV@LabelOut%
+    \presetkeys [GR] {vertex} {LabelOut = true}{}%
+\fi%
+\ifGR@SUV@Math%
+    \presetkeys [GR] {vertex} {Math = true}{}%
+\fi%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                             Colors
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\SetGraphShadeColor}[3]{%
+  \tikzset{VertexStyle/.append style = {ball color=#1}}
+  \tikzset{EdgeStyle/.append style   = {color=#2,double=#3}}
+}
+\newcommand*{\SetGraphArtColor}[2]{%
+  \tikzset{VertexStyle/.append style = {ball color=#1}}
+  \tikzset{EdgeStyle/.append style   = {color=#2}}
+}
+\newcommand*{\SetGraphColor}[2]{%
+  \tikzset{VertexStyle/.append style = {fill=#1}}
+  \tikzset{EdgeStyle/.append style   = {color=#2}}
+}
+\newcommand*{\AddVertexColor}[2]{%
+\begingroup
+  \tikzset{VertexStyle/.append style  = {fill=#1}}
+  \foreach \v in {#2}
+    {\Vertex[Node,NoLabel]{\v}}
+\endgroup
+}
+
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                           Init Vertex
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\define@boolkey [GR] {vertex} {empty}[true]{}
+\define@cmdkey  [GR] {vertex} {x}{}
+\define@cmdkey  [GR] {vertex} {y}{}
+\define@cmdkey  [GR] {vertex} {a}{}
+\define@cmdkey  [GR] {vertex} {d}{}
+\define@boolkey [GR] {vertex} {Node}[true]{}
+\define@cmdkey  [GR] {vertex} {dir}{}
+\define@cmdkey  [GR] {vertex} {style}{}
+\define@cmdkey  [GR] {vertex} {position}{}
+\define@cmdkey  [GR] {vertex} {L}{}
+\define@cmdkey  [GR] {vertex} {Lpos}{}
+\define@cmdkey  [GR] {vertex} {Ldist}{}
+\define@boolkey [GR] {vertex} {NoLabel}[true]{}
+\define@boolkey [GR] {vertex} {Math}[true]{}
+\define@boolkey [GR] {vertex} {LabelOut}[true]{}
+\presetkeys     [GR] {vertex} {Node     = false,
+                               NoLabel  = false,
+                               LabelOut = false,
+                               empty    = false,
+                               Math     = false,
+                               x        = {},
+                               y        = {},
+                               a        = {},
+                               d        = {},
+                               dir      = \EA,
+                               position = {},
+                               style    = {},
+                               L        = {},
+                               Ldist    = 0cm,
+                               Lpos     = 0}{}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                                  Vertex
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\Vertex}[1][]{\@vertex[#1]}%
+\def\@vertex[#1]#2{%
+    \setkeys[GR]{vertex}{#1}%
+    \@@vertex{#2}%
+}
+% coord rect todo coord polar and pos relative
+\def\@@vertex#1{%
+         \def\nstyle{VertexStyle}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\ifGR@vertex@Node%
+   \pgfextractx{\pgf@x}{\pgfpointanchor{#1}{center}}
+   \pgfextracty{\pgf@y}{\pgfpointanchor{#1}{center}}
+   \edef\cmdGR@vertex@x{\pgf@x}
+   \edef\cmdGR@vertex@y{\pgf@y}
+\fi%
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\ifGR@vertex@empty%
+   \begin{scope}
+      \ifthenelse{\not\equal{\cmdGR@vertex@x}{}}{%
+           \protected@edef\@tempa{%
+               \noexpand\node[inner sep = 0pt](#1)%
+                  at (\cmdGR@vertex@x,\cmdGR@vertex@y){}}%
+           \@tempa;}{%
+       \ifthenelse{\not\equal{\cmdGR@vertex@d}{}}{%
+           \protected@edef\@tempa{%
+               \noexpand\node[inner sep = 0pt](#1)%
+                  at (\cmdGR@vertex@a:\cmdGR@vertex@d){}}%
+           \@tempa;}{%
+           \protected@edef\@tempa{%
+               \noexpand \node[inner sep = 0pt](#1)%
+                  [\cmdGR@vertex@position]{}}%
+           \@tempa;}}%
+    \end{scope}
+\else
+ \begin{scope}[label distance = \cmdGR@vertex@Ldist]
+  \ifGR@vertex@NoLabel
+       \def\vertex@Label{}%
+       \def\cmdGR@vertex@L{}%
+       \def\vertex@Name{}
+  \else%
+     \ifGR@vertex@Math
+     \ifthenelse{\equal{\cmdGR@vertex@L}{}}{%
+       \def\vertex@Name{$#1$}}{\def\vertex@Name{$\cmdGR@vertex@L$}}
+    \else
+       \ifthenelse{\equal{\cmdGR@vertex@L}{}}{%
+       \def\vertex@Name{#1}}{\def\vertex@Name{\cmdGR@vertex@L}}
+    \fi%
+      \ifGR@vertex@LabelOut%
+        \def\nstyle{VertexStyle,%
+                    label=\cmdGR@vertex@Lpos:\vertex@Name}
+        \def\vertex@Label{}
+      \else%
+      \def\vertex@Label{\vertex@Name}
+      \fi
+  \fi
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+  \ifthenelse{\not\equal{\cmdGR@vertex@x}{}}{%
+    \protected@edef\@tempa{%
+      \noexpand\node[outer sep=0pt,\nstyle,\cmdGR@vertex@style](#1)
+                 at (\cmdGR@vertex@x,\cmdGR@vertex@y){%
+      \noexpand\vertex@Label}}%
+      \@tempa;%
+      }{%
+      \ifthenelse{\not\equal{\cmdGR@vertex@d}{}}{%
+        \protected@edef\@tempa{%
+        \noexpand\node[outer sep=0pt,\nstyle,\cmdGR@vertex@style](#1)
+                       at (\cmdGR@vertex@a:\cmdGR@vertex@d){%
+        \noexpand\vertex@Label}}%
+        \@tempa;%
+      }{%
+        \protected@edef\@tempa{%
+        \noexpand\node[outer sep=0pt,\nstyle,\cmdGR@vertex@style](#1)%
+                      [\cmdGR@vertex@position]{%
+        \noexpand\vertex@Label}}%
+       \@tempa;}}%
+  \end{scope}
+\fi%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                          End of  Vertex
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                          EA east of #2
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\EA}[1][]{\@droite[#1]}%
+\def\@droite[#1](#2)#3{% 
+    \setkeys[GR]{vertex}{#1}%
+\let\temp@position\cmdGR@vertex@position
+\def\cmdGR@vertex@position{\temp@position,right of=#2}
+    \@@vertex{#3}}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                         WE west of #2
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\WE}[1][]{\@gauche[#1]}%
+\def\@gauche[#1](#2)#3{% 
+    \setkeys[GR]{vertex}{#1}%
+\def\cmdGR@vertex@position{left of=#2}
+    \@@vertex{#3}%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                       NO north of #2
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\NO}[1][]{\@haut[#1]}%
+\def\@haut[#1](#2)#3{% 
+    \setkeys[GR]{vertex}{#1}%
+\def\cmdGR@vertex@position{above of=#2}
+    \@@vertex{#3}%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                        SO south of #2
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\SO}[1][]{\@bas[#1]}%
+\def\@bas[#1](#2)#3{% 
+    \setkeys[GR]{vertex}{#1}%
+\def\cmdGR@vertex@position{below of=#2}
+    \@@vertex{#3}}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                     NOEA north east of #2
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\NOEA}[1][]{\@hautdroite[#1]}%
+\def\@hautdroite[#1](#2)#3{% 
+    \setkeys[GR]{vertex}{#1}%
+\def\cmdGR@vertex@position{above right of=#2}
+    \@@vertex{#3}}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                      NOWE  north west of #2
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\NOWE}[1][]{\@hautgauche[#1]}%
+\def\@hautgauche[#1](#2)#3{% 
+    \setkeys[GR]{vertex}{#1}%
+\def\cmdGR@vertex@position{above left of=#2}
+    \@@vertex{#3}}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                     SOEA south east of #2
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\SOEA}[1][]{\@basdroite[#1]}%
+\def\@basdroite[#1](#2)#3{% 
+    \setkeys[GR]{vertex}{#1}%
+\def\cmdGR@vertex@position{below right of=#2}
+    \@@vertex{#3}}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                    SOWE south west of #2
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\SOWE}[1][]{\@basgauche[#1]}%
+\def\@basgauche[#1](#2)#3{% 
+    \setkeys[GR]{vertex}{#1}%
+\def\cmdGR@vertex@position{below left of=#2}
+    \@@vertex{#3}}
+    
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                               Vertices
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\Vertices}{\@ifstar%
+                              \VerticesStar%
+                              \VerticesNoStar}
+\newcommand*{\VerticesNoStar}[1][]{\Vertices@NoStar[#1]}%
+\def\Vertices@NoStar[#1]#2{%
+\setkeys[GR]{vertex}{#1}%
+\begingroup%
+   \setcounter{tkzb@temp}{0}
+   \foreach \fin in {#2}{%
+       \ifthenelse{\value{tkzb@temp}=0}{%
+       \global\let\deb\fin
+       \Vertex[#1]{\fin}
+       \stepcounter{tkzb@temp}
+       }{%
+       \cmdGR@vertex@dir[#1,x={},y={},Node=false](\deb){\fin}
+       \global\let\deb\fin
+       }}%
+\endgroup%
+}
+\newcommand*{\VerticesStar}[1][]{\Vertices@Star[#1]}%
+\def\Vertices@Star[#1]#2#3{%
+\setkeys[GR]{vertex}{#1}%
+   \setcounter{tkzb@temp}{0}
+   \@for\liste:=#3\do{%
+     \stepcounter{tkzb@temp}%
+     \global\expandafter\let\csname label@\alph{tkzb@temp}\endcsname\liste}
+\begingroup%
+  \ifthenelse{\equal{#2}{square}}{%
+   \Vertex[#1,Lpos=-135]{\label@a}
+   \EA[#1,Lpos=-45,x={},y={},Node=false](\label@a){\label@b}
+   \NO[#1,Lpos=45, x={},y={},Node=false](\label@b){\label@c}
+   \WE[#1,Lpos=135,x={},y={},Node=false](\label@c){\label@d}}{%
+ \ifthenelse{\equal{#2}{tr1}}{%
+   \Vertex[#1]{\label@a}
+   \EA[#1,x={},y={},Node=false](\label@a){\label@b}
+   \NO[#1,x={},y={},Node=false](\label@b){\label@c}}{%
+ \ifthenelse{\equal{#2}{tr2}}{%
+   \Vertex[#1]{\label@a}
+   \NO[#1,x={},y={},Node=false](\label@a){\label@b}
+   \EA[#1,x={},y={},Node=false](\label@b){\label@c}}{%
+ \ifthenelse{\equal{#2}{tr3}}{%
+   \Vertex[#1]{\label@a}
+   \NO[#1,x={},y={},Node=false](\label@a){\label@b}
+   \WE[#1,x={},y={},Node=false](\label@b){\label@c}}{%
+ \ifthenelse{\equal{#2}{tr4}}{%
+   \Vertex[#1]{\label@a}
+   \WE[#1,x={},y={},Node=false](\label@a){\label@b}
+   \NO[#1,x={},y={},Node=false](\label@b){\label@c}}{%
+ \ifthenelse{\equal{#2}{circle}}{%
+  \pgfmathdivide{360}{\value{tkzb@temp}}%
+  \global\let\gr@angle\pgfmathresult%
+  \setcounter{tkzb@temp}{0}
+  \foreach \lab in {#3}{%
+    \pgfmathmultiply{\gr@angle}{\thetkzb@temp}%
+    \let\gr@newangle\pgfmathresult%
+    \pgfmathadd{\cmdGR@vertex@Lpos}{\gr@newangle}
+    \let\gr@posangle\pgfmathresult%
+    \Vertex[#1,
+            a    = \gr@newangle,
+            d    = \tikz@node@distance,
+            Lpos = \gr@posangle]{\lab}
+        \stepcounter{tkzb@temp}%
+    }%
+   }{}%
+}}}}}%
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                          Edge style
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\tikzstyle{LabelStyle}=[pos=.5]
+\tikzstyle{EdgeStyle} =[]
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                          Init    SetUpEdge
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\define@cmdkey [GR] {SUE} {color}{}
+\define@cmdkey [GR] {SUE} {label}{}
+\define@cmdkey [GR] {SUE} {labelstyle}{}
+\define@cmdkey [GR] {SUE} {labeltext}{}
+\define@cmdkey [GR] {SUE} {labelcolor}{}
+\define@cmdkey [GR] {SUE} {style}{}
+\define@cmdkey [GR] {SUE} {lw}{}
+\presetkeys    [GR] {SUE} {color       = \EdgeColor,
+                           lw          = \EdgeLineWidth,
+                           label       = {},
+                           labeltext   = black,
+                           labelcolor  = white,
+                           labelstyle  = {},
+                           style       = {}}{}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                             SetUpEdge
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\SetUpEdge}[1][]{\@SetUpEdge[#1]}%
+\def\@SetUpEdge[#1]{%
+\setkeys    [GR] {SUE} {#1}%
+\presetkeys [GR] {edge} {color        = \cmdGR@SUE@color,
+                         lw           = \cmdGR@SUE@lw,
+                         label        = \cmdGR@SUE@label,
+                         labeltext    = \cmdGR@SUE@labeltext,
+                         labelcolor   = \cmdGR@SUE@labelcolor,
+                         labelstyle   = \cmdGR@SUE@labelstyle,
+                         style        = \cmdGR@SUE@style}{}
+\tikzset{LabelStyle/.style={}}
+\tikzset{EdgeStyle/.style={}}}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                              Init Edge 
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\define@cmdkey [GR] {edge} {color}{}
+\define@cmdkey [GR] {edge} {lw}{} 
+\define@cmdkey [GR] {edge} {style}{} 
+\define@cmdkey [GR] {edge} {label}{}
+\define@cmdkey [GR] {edge} {labeltext}{}
+\define@cmdkey [GR] {edge} {labelcolor}{}
+\define@cmdkey [GR] {edge} {labelstyle}{}
+\presetkeys    [GR] {edge} {style      = {pos=.5},
+                            lw         = \EdgeLineWidth,  
+                            label      = {},
+                            labeltext  = black,
+                            labelcolor = white,
+                            labelstyle = {},
+                            color      = \EdgeColor}{} 
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                               Edge 
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\Edge}[1][]{\@edge[#1]}%
+\def\@edge[#1](#2)(#3){%
+\setkeys[GR]{edge}{#1}%
+   \ifthenelse{\equal{\cmdGR@edge@label}{}}{%
+     \protected@edef\@tempa{%
+     \noexpand   \draw[color = \cmdGR@edge@color,%
+                       line width =\cmdGR@edge@lw,%
+                       \cmdGR@edge@style,%
+                       EdgeStyle]}\@tempa (#2) to (#3)}{%
+     \protected@edef\@tempa{%
+     \noexpand   \draw[color = \cmdGR@edge@color,%
+                       line width =\cmdGR@edge@lw,%
+                       \cmdGR@edge@style,%
+                       EdgeStyle] (#2) to%
+    node[fill = \cmdGR@edge@labelcolor,
+         text = \cmdGR@edge@labeltext,
+         \cmdGR@edge@labelstyle,LabelStyle]}\@tempa
+   {\cmdGR@edge@label} (#3)}%
+   ;
+}
+
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                               Edges
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\Edges}[1][]{\@edges[#1]}%
+\def\@edges[#1](#2){%
+\setkeys[GR]{edge}{#1}%
+\begingroup%
+   \setcounter{tkzb@temp}{0}
+   \foreach \fin in {#2}{%
+       \ifthenelse{\value{tkzb@temp}=0}{%
+       \global\let\deb\fin
+       \stepcounter{tkzb@temp}}{%
+       \Edge[#1](\deb)(\fin)
+       \global\let\deb\fin
+       }%
+   }
+\endgroup%
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                          Init  loop 
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+
+
+
+\define@choicekey*[GR]{loop}{dir}[\val\nr]{WE,EA,NO,SO}{%
+\ifcase\nr\relax
+\tikzset{LoopStyle/.style = {in=235, out=125, distance=\cmdGR@loop@dist}}%
+\or
+\tikzset{LoopStyle/.style = {in= 55, out=-55, distance=\cmdGR@loop@dist}}%
+\or
+\tikzset{LoopStyle/.style = {in=135, out= 45, distance=\cmdGR@loop@dist}}%
+\or
+\tikzset{LoopStyle/.style = {in=-45, out=225, distance=\cmdGR@loop@dist}}%
+\fi%
+}
+\define@cmdkey [GR] {loop} {color}{}
+\define@cmdkey [GR] {loop} {label}{}
+\define@cmdkey [GR] {loop} {labelstyle}{}
+\define@cmdkey [GR] {loop} {style}{}
+\define@cmdkey [GR] {loop} {dist}{}
+\presetkeys    [GR] {loop} {style      = {pre,thick},%`
+                            label      = {},% 
+                            labelstyle = {},%
+                            color      = black,%
+                            dist       = 4cm,%
+                            dir        = WE}{} 
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                                loop 
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\Loop}[1][]{\@loop[#1]}%
+\def\@loop[#1](#2){%
+\setkeys[GR]{loop}{#1}%
+\protected@edef\@tempa{%
+\noexpand \draw[\cmdGR@loop@color] (#2)%
+  edge [LoopStyle,\cmdGR@loop@style]%
+  node [LabelStyle,\cmdGR@loop@labelstyle]%
+  {\cmdGR@loop@label} (#2)}\@tempa;%
+}%
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                    Init   Graphes probabilistes 
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\define@cmdkey [GR] {grpb} {distance}{}
+\define@cmdkey [GR] {grpb} {LposA}{}
+\define@cmdkey [GR] {grpb} {LposB}{}
+\define@cmdkey [GR] {grpb} {Ldist}{}
+\define@cmdkey [GR] {grpb} {LoopDist}{}
+\presetkeys    [GR] {grpb} {distance = 5cm,%
+                            LposA    = 180,%
+                            LposB    = 0,%
+                            Ldist    = 0cm,%
+                            LoopDist = 4cm}{} 
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                       Graphes probabilistes 
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+\newcommand*{\grProb}[7][]{%
+  \setkeys[GR]{grpb}{#1}%
+  \tikzset{node distance = \cmdGR@grpb@distance}
+  \tikzset{LabelStyle/.append style ={pos=.5}}
+  %\presetkeys [GR] {vertex} {LabelOut = true}{}%
+  \Vertex[Lpos=\cmdGR@grpb@LposA,Ldist=\cmdGR@grpb@Ldist,L=#2]{grA}
+  \EA[Lpos=\cmdGR@grpb@LposB,Ldist=\cmdGR@grpb@Ldist,L=#3](grA){grB}
+  \Edge[style={post,bend left=60},label={$#4$},labelstyle={above}](grA)(grB)
+  \Edge[style={post,bend left=60},label={$#5$},labelstyle={below}](grB)(grA)
+  \Loop[dist=\cmdGR@grpb@LoopDist,dir=WE,label={$#6$},labelstyle={left}](grA)
+  \Loop[dist=\cmdGR@grpb@LoopDist,dir=EA,label={$#7$},labelstyle={right}](grB)
+}
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––>
+%                      End   Graphes probabilistes 
+%<––––––––––––––––––––––––––––––– fin –––––––––––––––––––––––––––––––––––––––>
+\endinput
+
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.