texlive[53832] Master/texmf-dist: dynkin-diagrams (18feb20)

commits+karl at tug.org commits+karl at tug.org
Tue Feb 18 23:30:45 CET 2020


Revision: 53832
          http://tug.org/svn/texlive?view=revision&revision=53832
Author:   karl
Date:     2020-02-18 23:30:45 +0100 (Tue, 18 Feb 2020)
Log Message:
-----------
dynkin-diagrams (18feb20)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/README
    trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.pdf
    trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.tex
    trunk/Master/texmf-dist/tex/latex/dynkin-diagrams/dynkin-diagrams.sty

Modified: trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/README	2020-02-18 22:28:45 UTC (rev 53831)
+++ trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/README	2020-02-18 22:30:45 UTC (rev 53832)
@@ -1,12 +1,7 @@
-___________________________________
+Dynkin diagrams               
+v3.14159265358
+18 February 2020
 
-            Dynkin diagrams
-               
-                v3.1415926535
-
-            2 February 2020
-___________________________________
-
 Authors   : Ben McKay
 Maintainer: Ben McKay
 E-mail    : b.mckay at ucc.ie
@@ -13,8 +8,6 @@
 Licence   : Released under the LaTeX Project Public License v1.3c or
             later, see http://www.latex-project.org/lppl.txt
 
-----------------------------------------------------------------------
-
 Draws Dynkin, Coxeter, and Satake diagrams in LaTeX documents, using 
 the TikZ package. 
 

Modified: trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.tex	2020-02-18 22:28:45 UTC (rev 53831)
+++ trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.tex	2020-02-18 22:30:45 UTC (rev 53832)
@@ -1,6 +1,7 @@
 \documentclass{amsart}
 \title[The Dynkin diagrams package]%
-{The Dynkin diagrams package \\ Version 3.1415926535}
+{The Dynkin diagrams package \\ 
+Version 3.14159265358}
 %% My name:
 \makeatletter
 \DeclareRobustCommand{\scotsMc}{\scotsMcx{c}}
@@ -19,7 +20,7 @@
 \author{Ben \scotsMc{}Kay}
 \address{School of Mathematical Sciences,  University College Cork, Cork, Ireland}
 \email{b.mckay at ucc.ie}
-\date{2 February 2020}
+\date{18 February 2020}
 \usepackage{etex}
 \usepackage[T1]{fontenc}
 \usepackage[utf8]{inputenx}
@@ -572,8 +573,11 @@
 \dynkin[
 	edge/.style={blue!50,thick},
 	*/.style=blue!50!red,
-	arrow color=red]{F}{4}
+	arrow style=red]{F}{4}
 \end{tcblisting}
+\begin{tcblisting}{title={Arrow shapes}}
+\dynkin[arrow shape/.style={-{Stealth[blue,width=3mm]}}] F4
+\end{tcblisting}
 \begin{tcblisting}{title={Edge lengths}}
 The Dynkin diagram of \(A_3\) is \dynkin[edge length=1.2]A3
 \end{tcblisting}
@@ -1730,65 +1734,6 @@
 \multicolumn{2}{c}{continued \dots}\\
 \endfoot
 \endlastfoot
-\optionLabel{ceref}{\typ{true or false}}{false}
-& whether to draw roots in a ``ceref'' style. \\
-\optionLabel{edge length}{\typ{number}cm}{.35cm}
-&      distance between nodes in the Dynkin diagram \\
-\optionLabel{edge/.style}{TikZ style data}{solid,draw=black,fill=white,thin}
-&      style of edges in the Dynkin diagram \\
-\optionLabel{edge label/.style}{TikZ style data}{text height=0,text depth=0,label distance=-2pt}
-&      style of edge labels in the Dynkin diagram, as found, for example, on some Coxeter diagrams \\
-\optionLabel{Kac}{\typ{true or false}}{false}
-& whether to draw in the style of \cite{Kac:1990} \\
-\optionLabel{name}{\typ{string}}{anonymous}
-& A name for the Dynkin diagram, with \texttt{anonymous} treated as a blank; see section~\ref{section:name}. \\
-\optionLabel{parabolic}{\typ{integer}}{0} 
-& A parabolic subgroup with specified integer, where the integer
-is computed as \(n=\sum 2^{i-1} a_i\), \(a_i=0\) or \(1\), to say that root \(i\) is crossed, i.e. a noncompact root. \\
-\optionLabel{root radius}{\typ{number}cm}{.05cm}
-&      size of the dots and of the crosses in the Dynkin diagram \\
-\optionLabel{text style}{\typ{TikZ style data}}{scale=.7}
-& Style for any labels on the roots. \\
-\optionLabel{mark}{\typ{o,O,t,x,X,*}}{*}
-&      default root mark \\
-\optionLabel{affine mark}{o,O,t,x,X,*}{*}
-&      default root mark for root zero in an affine Dynkin diagram \\
-\optionLabel{label}{true or false}{false}
-& whether to label the roots according to the current labelling scheme. \\
-\optionLabel{label macro}{\typ{1-parameter \TeX{} macro}}{\texttt{\#1}}
-& the current labelling scheme for roots. \\
-\optionLabel{label macro*}{\typ{1-parameter \TeX{} macro}}{\texttt{\#1}}
-& the current labelling scheme for alternate roots. \\
-\optionLabel{label height}{\typ{1-parameter \TeX{} macro}}{b}
-& the current maximal height of text labels for the roots, set by giving mathematics text of that height. \\
-\optionLabel{label depth}{\typ{1-parameter \TeX{} macro}}{g}
-& the current maximal depth of text labels for the roots, set by giving mathematics text of that depth. \\
-\optionLabel{make indefinite edge}{\typ{edge pair \(i\)-\(j\) or list of such}}{\{\}}
-& edge pair or list of edge pairs to treat as having indefinitely many roots on them. \\
-\optionLabel{indefinite edge ratio}{\typ{float}}{1.6}
-& ratio of indefinite edge lengths to other edge lengths. \\
-\optionLabel{indefinite edge/.style}{\typ{TikZ style data}}{solid,draw=black,fill=white,thin,densely dotted}
-& style of the dotted or dashed middle third of each indefinite edge. \\
-\optionLabel{backwards}{\typ{true or false}}{false}
-& whether to reverse right to left. \\
-\optionLabel{upside down}{\typ{true or false}}{false}
-& whether to reverse up to down. \\
-\optionLabel{arrows}{\typ{true or false}}{true}
-& whether to draw the arrows that arise along the edges. \\
-\optionLabel{reverse arrows}{\typ{true or false}}{true}
-& whether to reverse the direction of the arrows that arise along the edges. \\
-\optionLabel{fold}{\typ{true or false}}{true}
-& whether, when drawing Dynkin diagrams, to draw them 2-ply. \\
-\optionLabel{ply}{\typ{0,1,2,3,4}}{0}
-& how many roots get folded together, at most. \\
-\optionLabel{fold left}{\typ{true or false}}{true}
-& whether to fold the roots on the left side of a Dynkin diagram. \\
-\optionLabel{fold right}{\typ{true or false}}{true}
-& whether to fold the roots on the right side of a Dynkin diagram. \\
-\optionLabel{fold radius}{\typ{length}}{.3cm}
-& the radius of circular arcs used in curved edges of folded Dynkin diagrams. \\
-\optionLabel{fold style/.style}{\typ{TikZ style data}}{solid,draw=black!40,fill=none,line width=radius}
-& when drawing folded diagrams, style for the fold indicators. \\
 \optionLabel{*/.style}{\typ{TikZ style data}}{solid,draw=black,fill=black}
 & style for roots like \dynkin{A}{*} \\
 \optionLabel{o/.style}{\typ{TikZ style data}}{solid,draw=black,fill=white}
@@ -1801,10 +1746,20 @@
 & style for roots like \dynkin{A}{x}  \\
 \optionLabel{X/.style}{\typ{TikZ style data}}{solid,draw=black,thick,line cap=round}
 & style for roots like \dynkin{A}{X} \\
-\optionLabel{fold left style/.style}{\typ{TikZ style data}}{}
-& style to override the \texttt{fold} style when folding roots together on the left half of a Dynkin diagram \\
-\optionLabel{fold right style/.style}{\typ{TikZ style data}}{}
-& style to override the \texttt{fold} style when folding roots together on the right half of a Dynkin diagram \\
+\optionLabel{affine mark}{o,O,t,x,X,*}{*}
+&      default root mark for root zero in an affine Dynkin diagram \\
+\optionLabel{arrow shape/.style}{TikZ style data}{-\{Computer Modern Rightarrow[black]\}}
+&      shape of arrow heads for most Dynkin diagrams that have arrows.\\
+\optionLabel{arrow style}{TikZ style data}{black}
+& set to override the default style for the arrows in nonsimply laced Dynkin diagrams, including length, width, line width and color  \\
+\optionLabel{arrows}{\typ{true or false}}{true}
+& whether to draw the arrows that arise along the edges. \\
+\optionLabel{backwards}{\typ{true or false}}{false}
+& whether to reverse right to left. \\
+\optionLabel{ceref}{\typ{true or false}}{false}
+&      whether to draw roots in a ``ceref'' style. \\
+\optionLabel{Coxeter}{\typ{true or false}}{false}
+& whether to draw a Coxeter diagram, rather than a Dynkin diagram. \\
 \optionLabel{double edges}{\typ{}}{not set}
 & set to override the \texttt{fold} style when folding roots together in a Dynkin diagram, so that the foldings
 are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows). \\
@@ -1820,12 +1775,63 @@
 \optionLabel{double fold right}{\typ{}}{not set}
 & set to override the \texttt{fold} style when folding roots together  at the right side of a Dynkin diagram, so that the foldings are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows), but filled in solidly.
 \\
-\optionLabel{arrow color}{\typ{}}{black}
-& set to override the default color for the arrows in nonsimply laced Dynkin diagrams. \\
-\optionLabel{Coxeter}{\typ{true or false}}{false}
-& whether to draw a Coxeter diagram, rather than a Dynkin diagram. \\
+\optionLabel{edge label/.style}{TikZ style data}{text height=0,text depth=0,label distance=-2pt}
+&      style of edge labels in the Dynkin diagram, as found, for example, on some Coxeter diagrams \\
+\optionLabel{edge length}{\typ{number}cm}{.35cm}
+&      distance between nodes in the Dynkin diagram \\
+\optionLabel{edge/.style}{TikZ style data}{solid,draw=black,fill=white,thin}
+&      style of edges in the Dynkin diagram \\
+\optionLabel{fold}{\typ{true or false}}{true}
+& whether, when drawing Dynkin diagrams, to draw them 2-ply. \\
+\optionLabel{fold left}{\typ{true or false}}{true}
+& whether to fold the roots on the left side of a Dynkin diagram. \\
+\optionLabel{fold radius}{\typ{length}}{.3cm}
+& the radius of circular arcs used in curved edges of folded Dynkin diagrams. \\
+\optionLabel{fold right}{\typ{true or false}}{true}
+& whether to fold the roots on the right side of a Dynkin diagram. \\
+\optionLabel{fold left style/.style}{\typ{TikZ style data}}{}
+& style to override the \texttt{fold} style when folding roots together on the left half of a Dynkin diagram \\
+\optionLabel{fold right style/.style}{\typ{TikZ style data}}{}
+& style to override the \texttt{fold} style when folding roots together on the right half of a Dynkin diagram \\
+\optionLabel{fold style/.style}{\typ{TikZ style data}}{solid,draw=black!40,fill=none,line width=radius}
+& when drawing folded diagrams, style for the fold indicators. \\
+\optionLabel{indefinite edge ratio}{\typ{float}}{1.6}
+& ratio of indefinite edge lengths to other edge lengths. \\
+\optionLabel{indefinite edge/.style}{\typ{TikZ style data}}{solid,draw=black,fill=white,thin,densely dotted}
+& style of the dotted or dashed middle third of each indefinite edge. \\
+\optionLabel{Kac}{\typ{true or false}}{false}
+& whether to draw in the style of \cite{Kac:1990} \\
+\optionLabel{label}{true or false}{false}
+& whether to label the roots according to the current labelling scheme. \\
+\optionLabel{label macro}{\typ{1-parameter \TeX{} macro}}{\texttt{\#1}}
+& the current labelling scheme for roots. \\
+\optionLabel{label macro*}{\typ{1-parameter \TeX{} macro}}{\texttt{\#1}}
+& the current labelling scheme for alternate roots. \\
+\optionLabel{label height}{\typ{1-parameter \TeX{} macro}}{b}
+& the current maximal height of text labels for the roots, set by giving mathematics text of that height. \\
+\optionLabel{label depth}{\typ{1-parameter \TeX{} macro}}{g}
+& the current maximal depth of text labels for the roots, set by giving mathematics text of that depth. \\
+\optionLabel{make indefinite edge}{\typ{edge pair \(i\)-\(j\) or list of such}}{\{\}}
+& edge pair or list of edge pairs to treat as having indefinitely many roots on them. \\
+\optionLabel{mark}{\typ{o,O,t,x,X,*}}{*}
+&      default root mark \\
+\optionLabel{name}{\typ{string}}{anonymous}
+& A name for the Dynkin diagram, with \texttt{anonymous} treated as a blank; see section~\ref{section:name}. \\
 \optionLabel{ordering}{\typ{Adams, Bourbaki, Carter, Dynkin, Kac}}{Bourbaki}
 & which ordering of the roots to use in exceptional root systems as in section~\ref{section:order}. \\
+\optionLabel{parabolic}{\typ{integer}}{0} 
+& A parabolic subgroup with specified integer, where the integer
+is computed as \(n=\sum 2^{i-1} a_i\), \(a_i=0\) or \(1\), to say that root \(i\) is crossed, i.e. a noncompact root. \\
+\optionLabel{ply}{\typ{0,1,2,3,4}}{0}
+& how many roots get folded together, at most. \\
+\optionLabel{reverse arrows}{\typ{true or false}}{true}
+& whether to reverse the direction of the arrows that arise along the edges. \\
+\optionLabel{root radius}{\typ{number}cm}{.05cm}
+&      size of the dots and of the crosses in the Dynkin diagram \\
+\optionLabel{text style}{\typ{TikZ style data}}{scale=.7}
+& Style for any labels on the roots. \\
+\optionLabel{upside down}{\typ{true or false}}{false}
+& whether to reverse up to down. \\
 \end{longtable}
 \par\noindent{}All other options are passed to TikZ.
 

Modified: trunk/Master/texmf-dist/tex/latex/dynkin-diagrams/dynkin-diagrams.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/dynkin-diagrams/dynkin-diagrams.sty	2020-02-18 22:28:45 UTC (rev 53831)
+++ trunk/Master/texmf-dist/tex/latex/dynkin-diagrams/dynkin-diagrams.sty	2020-02-18 22:30:45 UTC (rev 53832)
@@ -1,23 +1,20 @@
+% The Dynkin Diagrams package.
 %
-%                                  The Dynkin Diagrams package.
+% Version 3.14159265358
 %
-%                                            Version 3.1415926535
+% This package draws Dynkin diagrams in LaTeX 
+% documents, using the TikZ package.
+% Please see the file dynkin-diagrams.tex 
+% for examples of use of this package.
 %
+% Benjamin McKay
+% b.mckay at ucc.ie
 %
-%               This package draws Dynkin diagrams in LaTeX documents, using the TikZ package.
-%               Please see the file dynkin-diagrams.tex for examples of use of this package.
-%
-%                                          Benjamin McKay
-%                                          b.mckay at ucc.ie
-%
-%               Released under the LaTeX Project Public License v1.3c or later, see 
-%               http://www.latex-project.org/lppl.txt
-%
-%
-%
-%
+% Released under the LaTeX Project Public License v1.3c or later, see 
+% http://www.latex-project.org/lppl.txt
 \NeedsTeXFormat{LaTeX2e}[1994/06/01]
-\ProvidesPackage{dynkin-diagrams}[2020/02/02 Dynkin diagrams]
+\ProvidesPackage{dynkin-diagrams}[2020/02/18 Dynkin diagrams]
+\RequirePackage{etex}
 \RequirePackage{tikz}
 \RequirePackage{xstring}
 \RequirePackage{xparse}
@@ -42,22 +39,15 @@
 %%% Application programming interface: 
 %%% See dynkin-diagrams.tex file for examples of use.
 %%%
-
-
 \ifx\draw at lie@hasse at root\undefined
 \pgfdeclarelayer{background}
 \pgfdeclarelayer{Dynkin behind}
-%\pgfdeclarelayer{Dynkin middle}
-%\pgfdeclarelayer{Dynkin above}
-\pgfsetlayers{background,Dynkin behind,%Dynkin middle,Dynkin above,
-main}
+\pgfsetlayers{background,Dynkin behind,main}
 \fi
-
 \newif\ifold at dynkin@is at backwards
 \newif\ifold at dynkin@is at upsidedown
 \newif\ifold at dynkin@is at extended
 \newif\ifold at dynkin@label at the@roots
-
 \NewDocumentCommand\dynkin at save{}%
 {%
 \xdef\dynkin at ply@value{1}%
@@ -67,7 +57,6 @@
 {\global\dynkin at is@twistedfalse}%
 \ifdynkin at label@the at roots\global\old at dynkin@label at the@rootstrue\else\global\old at dynkin@label at the@rootsfalse\fi%
 }%
-
 \NewDocumentCommand\dynkin at restore{}%
 {%
 \ifold at dynkin@is at backwards\global\dynkin at is@backwardstrue\else\global\dynkin at is@backwardsfalse\fi%
@@ -75,7 +64,6 @@
 \ifold at dynkin@is at extended\global\dynkin at is@extendedtrue\else\global\dynkin at is@extendedfalse\fi%
 \ifold at dynkin@label at the@roots\global\dynkin at label@the at rootstrue\else\global\dynkin at label@the at rootsfalse\fi%
 }%
-
 \NewDocumentEnvironment{dynkinDiagram}{O{}mO{0}m}%
 {%
 \dynkin at save{}%
@@ -231,9 +219,7 @@
 		{7}{\xdef\dynkin at label@direction{below right}}%
 	}%
 }%
-
-\newcount\rpo%
-
+\newcount\dynkin at rpo%
 \NewDocumentCommand\drlap{m}%
 {%
 \IfStrEq{\dynkin at label@direction}{left}%
@@ -250,8 +236,6 @@
 	}%
 }%
 }%
-
-
 %% \dynkinLabelRoot{<r>}{<s>} or \dynkinLabelRoot*{<r>}{<s>}
 %% Prints the label string <s> on the Dynkin diagram at root number <r>, in the current ordering convention.
 %% Starred form uses the alternate label location.
@@ -270,14 +254,14 @@
 	{%
 	}%
 	{%
-		\rpo=#2\relax%
-		\advance\rpo by 1\relax%
+		\dynkin at rpo=#2\relax%
+		\advance\dynkin at rpo by 1\relax%
 		\IfBooleanTF{#1}%
 		{%
-			\StrMid{\dynkin at label@directions at star}{\the\rpo}{\the\rpo}[\dynkin at direction@letter]%
+			\StrMid{\dynkin at label@directions at star}{\the\dynkin at rpo}{\the\dynkin at rpo}[\dynkin at direction@letter]%
 		}%
 		{%
-			\StrMid{\dynkin at label@directions}{\the\rpo}{\the\rpo}[\dynkin at direction@letter]%
+			\StrMid{\dynkin at label@directions}{\the\dynkin at rpo}{\the\dynkin at rpo}[\dynkin at direction@letter]%
 		}%
 		\dynkin at translate@direction{\dynkin at direction@letter}%
 		\IfBooleanTF{#1}%
@@ -303,8 +287,6 @@
 		}%
 	}%
 }%
-
-
 \newcounter{dynkinRootNo}
 \NewDocumentCommand\@dynkinLabelThisRoot{m}%
 {%
@@ -316,8 +298,6 @@
 \stepcounter{dynkinRootNo}%
 \dynkinLabelRoot*{\arabic{dynkinRootNo}}{#1}%
 }%
-
-
 \NewDocumentCommand\dynkinLabelRoots{sm}%
 {%
 	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
@@ -350,23 +330,38 @@
 \NewDocumentCommand\dynkinBrace{somm}%[text]{start}{end}
 {%
 	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
+		\IfBooleanTF{#1}%
+		{%
+			\xdef\braceYshift{1mm}%
+		}%
+		{%
+			\xdef\braceYshift{-1mm}%
+		}%
 		\draw[%
 			decoration=%
 				{%
 					brace,
-				\IfBooleanF{#1}{mirror},
-				raise=0.05cm,
-			},%
+					\IfBooleanF{#1}{mirror},
+					raise=0.05cm,
+				},%
 			decorate]%
-			($(root #3)-({\dynkin at root@radius},\IfBooleanTF{#1}{{-\dynkin at root@radius}}{{\dynkin at root@radius}})$) 
+			($(root #3)-({\dynkin at root@radius},
+			\IfBooleanTF{#1}%
+				{{-\dynkin at root@radius}}%
+				{{\dynkin at root@radius}}%
+			)$) 
 		    	-- 
-			($(root #4)+({\dynkin at root@radius},\IfBooleanTF{#1}{{\dynkin at root@radius}}{{-\dynkin at root@radius}})$) 
+			($(root #4)+({\dynkin at root@radius},
+			\IfBooleanTF{#1}%
+				{{\dynkin at root@radius}}%
+				{{-\dynkin at root@radius}}%
+			)$) 
  			node%
 			[%
-			    	pos=0.5,%
+				pos=0.5,%
 			   	anchor=\IfBooleanTF{#1}{south}{north},%
-		  		yshift=\IfBooleanTF{#1}{1mm}{-1mm},%
-			    	/Dynkin diagram/text style%
+		  		yshift=\braceYshift,%
+				/Dynkin diagram/text style%
 			]% 
 			{\IfValueT{#2}{\(#2\)}};%
 }%
@@ -431,7 +426,7 @@
 				\(\pgfkeys{/Dynkin diagram/label macro*=#3}\)%
 				}%
 			]
-			at ($.5*(\dynkin at root@name \the\@fromRoot)+.5*(\dynkin at root@name \the\@toRoot)$) 
+			at ($.5*(\dynkin at root@name \the\@dynkin at from@root)+.5*(\dynkin at root@name \the\@dynkin at to@root)$) 
 			{};
 }%
 
@@ -459,9 +454,9 @@
 		\convertRootNumber{#3}%
 	}%
 	{%
-		\RootNumber=#3\relax%
+		\dynkin at Root@Number=#3\relax%
 	}%
-	\dynkinDrawCrossRootMark[#2]{\dynkin at root@name \the\RootNumber}%
+	\dynkinDrawCrossRootMark[#2]{\dynkin at root@name \the\dynkin at Root@Number}%
 }%
 
 %% \dynkinHeavyCrossRootMark{<n>}
@@ -475,16 +470,16 @@
 		\convertRootNumber{#3}%
 	}%
 	{%
-		\RootNumber=#3\relax%
+		\dynkin at Root@Number=#3\relax%
 	}%
 	\draw[/Dynkin diagram,X,#2]%
-		($(\dynkin at root@name \the\RootNumber)+(\dynkin at root@radius,\dynkin at root@radius)$)%
+		($(\dynkin at root@name \the\dynkin at Root@Number)+(\dynkin at root@radius,\dynkin at root@radius)$)%
 		--%
-		($(\dynkin at root@name \the\RootNumber)-(\dynkin at root@radius,\dynkin at root@radius)$);%
+		($(\dynkin at root@name \the\dynkin at Root@Number)-(\dynkin at root@radius,\dynkin at root@radius)$);%
 	\draw[/Dynkin diagram,X,#2]%
-		($(\dynkin at root@name \the\RootNumber)+(-\dynkin at root@radius,\dynkin at root@radius)$)%
+		($(\dynkin at root@name \the\dynkin at Root@Number)+(-\dynkin at root@radius,\dynkin at root@radius)$)%
 		--%
-		($(\dynkin at root@name \the\RootNumber)+(\dynkin at root@radius,-\dynkin at root@radius)$);%
+		($(\dynkin at root@name \the\dynkin at Root@Number)+(\dynkin at root@radius,-\dynkin at root@radius)$);%
 }%
 
 
@@ -499,9 +494,9 @@
 		\convertRootNumber{#3}%
 	}%
 	{%
-		\RootNumber=#3\relax%
+		\dynkin at Root@Number=#3\relax%
 	}%
-	\fill[/Dynkin diagram,o,#2] (\dynkin at root@name \the\RootNumber) circle (\dynkin at root@radius);%
+	\fill[/Dynkin diagram,o,#2] (\dynkin at root@name \the\dynkin at Root@Number) circle (\dynkin at root@radius);%
 }%
 
 %% \dynkinDoubleHollowRootMark{<n>}
@@ -515,10 +510,10 @@
 		\convertRootNumber{#3}%
 	}%
 	{%
-		\RootNumber=#3\relax%
+		\dynkin at Root@Number=#3\relax%
 	}%
-	\fill[/Dynkin diagram,o,#2] (\dynkin at root@name \the\RootNumber) circle (2*\dynkin at root@radius);%
-	\fill[/Dynkin diagram,o,#2] (\dynkin at root@name \the\RootNumber) circle (\dynkin at root@radius);%
+	\fill[/Dynkin diagram,o,#2] (\dynkin at root@name \the\dynkin at Root@Number) circle (2*\dynkin at root@radius);%
+	\fill[/Dynkin diagram,o,#2] (\dynkin at root@name \the\dynkin at Root@Number) circle (\dynkin at root@radius);%
 }%
 
 \NewDocumentCommand\dynkinDrawSolidRootMark{O{}m}%
@@ -538,10 +533,10 @@
 		\convertRootNumber{#3}%
 	}%
 	{%
-		\RootNumber=#3\relax%
+		\dynkin at Root@Number=#3\relax%
 	}%
-	\dynkinDrawSolidRootMark[#2]{\dynkin at root@name \the\RootNumber}%
-%	\fill[/Dynkin diagram,*,#2] (\dynkin at root@name \the\RootNumber) circle (\dynkin at root@radius);%
+	\dynkinDrawSolidRootMark[#2]{\dynkin at root@name \the\dynkin at Root@Number}%
+%	\fill[/Dynkin diagram,*,#2] (\dynkin at root@name \the\dynkin at Root@Number) circle (\dynkin at root@radius);%
 }%
 
 %% \dynkinTensorRootMark{<n>}
@@ -555,17 +550,17 @@
 		\convertRootNumber{#3}%
 	}%
 	{%
-		\RootNumber=#3\relax%
+		\dynkin at Root@Number=#3\relax%
 	}%
-	\fill[/Dynkin diagram,o,#2] (\dynkin at root@name \the\RootNumber) circle ({\dynkin at root@radius});%
+	\fill[/Dynkin diagram,o,#2] (\dynkin at root@name \the\dynkin at Root@Number) circle ({\dynkin at root@radius});%
 	\draw[/Dynkin diagram,t,#2]%
-		($(\dynkin at root@name \the\RootNumber)+({\dynkin at root@radius/sqrt(2)},{\dynkin at root@radius/sqrt(2)})$)%
+		($(\dynkin at root@name \the\dynkin at Root@Number)+({\dynkin at root@radius/sqrt(2)},{\dynkin at root@radius/sqrt(2)})$)%
 		--%
-		($(\dynkin at root@name \the\RootNumber)-({\dynkin at root@radius/sqrt(2)},{\dynkin at root@radius/sqrt(2)})$);%
+		($(\dynkin at root@name \the\dynkin at Root@Number)-({\dynkin at root@radius/sqrt(2)},{\dynkin at root@radius/sqrt(2)})$);%
 	\draw[/Dynkin diagram,t,#2]%
-		($(\dynkin at root@name \the\RootNumber)+({-\dynkin at root@radius/sqrt(2)},{\dynkin at root@radius/sqrt(2)})$)%
+		($(\dynkin at root@name \the\dynkin at Root@Number)+({-\dynkin at root@radius/sqrt(2)},{\dynkin at root@radius/sqrt(2)})$)%
 		--%
-		($(\dynkin at root@name \the\RootNumber)+({\dynkin at root@radius/sqrt(2)},{-\dynkin at root@radius/sqrt(2)})$);%
+		($(\dynkin at root@name \the\dynkin at Root@Number)+({\dynkin at root@radius/sqrt(2)},{-\dynkin at root@radius/sqrt(2)})$);%
 }%
 
 % \dynkinRootMark{<s>}{<n>}
@@ -619,14 +614,14 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
 	\begin{pgfonlayer}{Dynkin behind}%
 		\draw[/Dynkin diagram,edge,#2] 
-			($(\dynkin at root@name \the\@fromRoot)$) 
+			($(\dynkin at root@name \the\@dynkin at from@root)$) 
 			-- 
-			($(\dynkin at root@name \the\@toRoot)$);%
+			($(\dynkin at root@name \the\@dynkin at to@root)$);%
 	\end{pgfonlayer}%
 }%
 
@@ -642,22 +637,22 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
 	\begin{pgfonlayer}{Dynkin behind}%
 		\draw[/Dynkin diagram,edge,#2] 
-			($(\dynkin at root@name \the\@fromRoot)$) 
+			($(\dynkin at root@name \the\@dynkin at from@root)$) 
 			-- 
-			(${(2/3)}*(\dynkin at root@name \the\@fromRoot)+{(1/3)}*(\dynkin at root@name \the\@toRoot)$);%
+			(${(2/3)}*(\dynkin at root@name \the\@dynkin at from@root)+{(1/3)}*(\dynkin at root@name \the\@dynkin at to@root)$);%
 		\draw[/Dynkin diagram,indefinite edge,#2] 
-			(${(2/3)}*(\dynkin at root@name \the\@fromRoot)+{(1/3)}*(\dynkin at root@name \the\@toRoot)$)
+			(${(2/3)}*(\dynkin at root@name \the\@dynkin at from@root)+{(1/3)}*(\dynkin at root@name \the\@dynkin at to@root)$)
 			-- 
-			(${(1/3)}*(\dynkin at root@name \the\@fromRoot)+{(2/3)}*(\dynkin at root@name \the\@toRoot)$);%
+			(${(1/3)}*(\dynkin at root@name \the\@dynkin at from@root)+{(2/3)}*(\dynkin at root@name \the\@dynkin at to@root)$);%
 		\draw[/Dynkin diagram,edge,#2] 
-			(${(1/3)}*(\dynkin at root@name \the\@fromRoot)+{(2/3)}*(\dynkin at root@name \the\@toRoot)$)
+			(${(1/3)}*(\dynkin at root@name \the\@dynkin at from@root)+{(2/3)}*(\dynkin at root@name \the\@dynkin at to@root)$)
 			-- 
-			($(\dynkin at root@name \the\@toRoot)$);%
+			($(\dynkin at root@name \the\@dynkin at to@root)$);%
 	\end{pgfonlayer}%
 }%	
 
@@ -702,15 +697,15 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
-%	\convertRootPair{\@fromRoot}{\@toRoot}%
+%	\convertRootPair{\@dynkin at from@root}{\@dynkin at to@root}%
 	\begin{pgfonlayer}{Dynkin behind}%
 		\draw[/Dynkin diagram/fold style,#2] 
-			($(\dynkin at root@name \the\@fromRoot)$)
+			($(\dynkin at root@name \the\@dynkin at from@root)$)
 			to 
-			($(\dynkin at root@name \the\@toRoot)$);
+			($(\dynkin at root@name \the\@dynkin at to@root)$);
 	\end{pgfonlayer}%
 }%
 
@@ -726,12 +721,12 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
 	\begin{pgfonlayer}{Dynkin behind}%
 	\draw[/Dynkin diagram,edge,fill=none,#2]%
-		($(\dynkin at root@name \the\@fromRoot)$)%
+		($(\dynkin at root@name \the\@dynkin at from@root)$)%
 		arc (90:0:\dynkin at fold@radius);%
 	\end{pgfonlayer}%
 }%
@@ -747,10 +742,10 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
-	\node (center) at ($(\dynkin at root@name \the\@fromRoot)-(0,\dynkin at fold@radius)$) {};%
+	\node (center) at ($(\dynkin at root@name \the\@dynkin at from@root)-(0,\dynkin at fold@radius)$) {};%
 	\begin{pgfonlayer}{Dynkin behind}%
 	\draw[/Dynkin diagram,edge,fill=none,#2] 
 		(center)
@@ -778,12 +773,12 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
 	\begin{pgfonlayer}{Dynkin behind}%
 	\draw[/Dynkin diagram,edge,fill=none,#2]%
-		($(\dynkin at root@name \the\@fromRoot)$)%
+		($(\dynkin at root@name \the\@dynkin at from@root)$)%
 		arc (-90:0:\dynkin at fold@radius);%
 	\end{pgfonlayer}%
 }%
@@ -799,10 +794,10 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
-	\node (center) at ($(\dynkin at root@name \the\@fromRoot)+(0,\dynkin at fold@radius)$) {};%
+	\node (center) at ($(\dynkin at root@name \the\@dynkin at from@root)+(0,\dynkin at fold@radius)$) {};%
 	\begin{pgfonlayer}{Dynkin behind}%
 	\draw[/Dynkin diagram,edge,fill=none,#2] 
 		(center)
@@ -831,12 +826,12 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
 	\begin{pgfonlayer}{Dynkin behind}%
 	\draw[/Dynkin diagram,edge,fill=none,#2]%
-		($(\dynkin at root@name \the\@fromRoot)$)%
+		($(\dynkin at root@name \the\@dynkin at from@root)$)%
 		arc (90:180:\dynkin at fold@radius);%
 	\end{pgfonlayer}%
 }%
@@ -852,10 +847,10 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
-	\node (center) at ($(\dynkin at root@name \the\@fromRoot)-(0,\dynkin at fold@radius)$) {};%
+	\node (center) at ($(\dynkin at root@name \the\@dynkin at from@root)-(0,\dynkin at fold@radius)$) {};%
 	\begin{pgfonlayer}{Dynkin behind}%
 	\draw[/Dynkin diagram,edge,fill=none,#2] 
 		(center)
@@ -883,12 +878,12 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
 	\begin{pgfonlayer}{Dynkin behind}%
 	\draw[/Dynkin diagram,edge,fill=none,#2] 
-		($(\dynkin at root@name \the\@fromRoot)$) 
+		($(\dynkin at root@name \the\@dynkin at from@root)$) 
 		arc (-90:-180:\dynkin at fold@radius);%
 	\end{pgfonlayer}%
 }%
@@ -904,10 +899,10 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
-	\node (center) at ($(\dynkin at root@name \the\@fromRoot)+(0,\dynkin at fold@radius)$) {};%
+	\node (center) at ($(\dynkin at root@name \the\@dynkin at from@root)+(0,\dynkin at fold@radius)$) {};%
 	\begin{pgfonlayer}{Dynkin behind}%%
 	\draw[/Dynkin diagram,edge,fill=none,#2] 
 		(center)
@@ -936,12 +931,12 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
 	\begin{pgfonlayer}{Dynkin behind}%%
 	\draw[/Dynkin diagram,edge,fill=none,#2] 
-		($(\dynkin at root@name \the\@fromRoot)$) 
+		($(\dynkin at root@name \the\@dynkin at from@root)$) 
 		arc (90:-90:\dynkin at fold@radius);%
 	\end{pgfonlayer}%
 }%
@@ -957,10 +952,10 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
-	\node (center) at ($(\dynkin at root@name \the\@fromRoot)-(0,\dynkin at fold@radius)$) {};%
+	\node (center) at ($(\dynkin at root@name \the\@dynkin at from@root)-(0,\dynkin at fold@radius)$) {};%
 	\begin{pgfonlayer}{Dynkin behind}%%
 	\draw[/Dynkin diagram,edge,fill=none,#2] 
 		(center)
@@ -989,23 +984,25 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
 	\begin{pgfonlayer}{Dynkin behind}%%
 	\draw[/Dynkin diagram,edge,double,fill=none,#2]%
-		($(\dynkin at root@name \the\@fromRoot)$)%
+		($(\dynkin at root@name \the\@dynkin at from@root)$)%
 		arc (90:0:{\dynkin at fold@radius});%
 	\ifdynkin at arrows%
 		\ifdynkin at reverse@arrows%
-			\path[-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+			\path[
+				/Dynkin diagram/arrow shape,
 			,tips] 
-				($(\dynkin at root@name \the\@toRoot)$)%
+				($(\dynkin at root@name \the\@dynkin at to@root)$)%
 				arc (0:45:{\dynkin at fold@radius});%
 		\else%
-			\path[-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+			\path[
+				/Dynkin diagram/arrow shape,
 			,tips] 
-				($(\dynkin at root@name \the\@fromRoot)$)%
+				($(\dynkin at root@name \the\@dynkin at from@root)$)%
 				arc (90:45:{\dynkin at fold@radius});%
 		\fi%
 	\fi%
@@ -1025,21 +1022,25 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
 	\begin{pgfonlayer}{Dynkin behind}%%
 	\draw[/Dynkin diagram,edge,double,fill=none,#2]%
-		($(\dynkin at root@name \the\@fromRoot)$)%
+		($(\dynkin at root@name \the\@dynkin at from@root)$)%
 		arc (180:90:{\dynkin at fold@radius});%
 	\ifdynkin at arrows%
 		\ifdynkin at reverse@arrows%
-			\path[-{Computer Modern Rightarrow[\dynkin at arrow@color]},tips] 
-				($(\dynkin at root@name \the\@toRoot)$)%
+			\path[%
+				/Dynkin diagram/arrow shape,
+			tips] 
+				($(\dynkin at root@name \the\@dynkin at to@root)$)%
 				arc (90:135:{\dynkin at fold@radius});%
 		\else%
-			\path[-{Computer Modern Rightarrow[\dynkin at arrow@color]},tips] 
-				($(\dynkin at root@name \the\@fromRoot)$)%
+			\path[
+				/Dynkin diagram/arrow shape,
+			tips] 
+				($(\dynkin at root@name \the\@dynkin at from@root)$)%
 				arc (180:135:{\dynkin at fold@radius});%
 		\fi%
 	\fi%
@@ -1059,23 +1060,25 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
 	\begin{pgfonlayer}{Dynkin behind}%%
 	\draw[/Dynkin diagram,edge,double,fill=none,#2]%
-		($(\dynkin at root@name \the\@fromRoot)$)%
+		($(\dynkin at root@name \the\@dynkin at from@root)$)%
 		arc (0:90:{\dynkin at fold@radius});%
 	\ifdynkin at arrows%
 		\ifdynkin at reverse@arrows%
-			\path[-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+			\path[%
+				/Dynkin diagram/arrow shape,
 			,tips] 
-				($(\dynkin at root@name \the\@toRoot)$)%
+				($(\dynkin at root@name \the\@dynkin at to@root)$)%
 				arc (90:45:{\dynkin at fold@radius});%
 		\else%
-			\path[-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+			\path[%
+				/Dynkin diagram/arrow shape,
 			,tips] 
-				($(\dynkin at root@name \the\@fromRoot)$)%
+				($(\dynkin at root@name \the\@dynkin at from@root)$)%
 				arc (0:45:{\dynkin at fold@radius});%
 		\fi%
 	\fi%
@@ -1097,25 +1100,27 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
 	\begin{pgfonlayer}{Dynkin behind}%%
 	\draw[/Dynkin diagram,edge,double,fill=none,#2]%
-		($(\dynkin at root@name \the\@fromRoot)$)%
+		($(\dynkin at root@name \the\@dynkin at from@root)$)%
 		-- 
-		($(\dynkin at root@name \the\@toRoot)+(-\dynkin at fold@radius,\dynkin at fold@radius)$)%
+		($(\dynkin at root@name \the\@dynkin at to@root)+(-\dynkin at fold@radius,\dynkin at fold@radius)$)%
 		arc (-180:-90:{\dynkin at fold@radius});%
 	\ifdynkin at arrows%
 		\ifdynkin at reverse@arrows%
-			\path[-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+			\path[%
+				/Dynkin diagram/arrow shape,
 			tips] 
-				($(\dynkin at root@name \the\@toRoot)$)%
+				($(\dynkin at root@name \the\@dynkin at to@root)$)%
 				arc (-90:-135:{\dynkin at fold@radius});%
 		\else%
-			\path[-{Computer Modern Rightarrow	[\dynkin at arrow@color]},
+			\path[%
+				/Dynkin diagram/arrow shape,
 				,tips] 
-				($(\dynkin at root@name \the\@fromRoot)$)%
+				($(\dynkin at root@name \the\@dynkin at from@root)$)%
 				arc (180:225:{\dynkin at fold@radius});%
 		\fi%
 	\fi%
@@ -1135,23 +1140,25 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
 	\begin{pgfonlayer}{Dynkin behind}%%
 	\draw[/Dynkin diagram,edge,double,fill=none,#2]%
-		($(\dynkin at root@name \the\@fromRoot)$)%
+		($(\dynkin at root@name \the\@dynkin at from@root)$)%
 		arc (270:360:{\dynkin at fold@radius});%
 	\ifdynkin at arrows%
 		\ifdynkin at reverse@arrows%
-			\path[-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+			\path[%
+				/Dynkin diagram/arrow shape,
 			,tips] 
-			($(\dynkin at root@name \the\@toRoot)$)%
+			($(\dynkin at root@name \the\@dynkin at to@root)$)%
 			arc (0:-45:\dynkin at fold@radius);%
 		\else%
-			\path[-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+			\path[%
+				/Dynkin diagram/arrow shape,
 			,tips] 
-			($(\dynkin at root@name \the\@fromRoot)$)%
+			($(\dynkin at root@name \the\@dynkin at from@root)$)%
 			arc (270:315:\dynkin at fold@radius);%
 		\fi%
 	\fi%
@@ -1170,24 +1177,25 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
 	\begin{pgfonlayer}{Dynkin behind}%%
 	\draw[/Dynkin diagram,edge,double,fill=none,#2]%
-		($(\dynkin at root@name \the\@fromRoot)$)%
+		($(\dynkin at root@name \the\@dynkin at from@root)$)%
 		arc (90:180:{\dynkin at fold@radius});%
 	\ifdynkin at arrows%
 		\ifdynkin at reverse@arrows%
-			\path[-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+			\path[%
+				/Dynkin diagram/arrow shape,
 			,tips] 
-				($(\dynkin at root@name \the\@toRoot)$)%
+				($(\dynkin at root@name \the\@dynkin at to@root)$)%
 				arc (180:{180-45}:{\dynkin at fold@radius});%
 		\else%
 			\path[
-			-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+				/Dynkin diagram/arrow shape,
 			,tips] 
-				($(\dynkin at root@name \the\@fromRoot)$)%
+				($(\dynkin at root@name \the\@dynkin at from@root)$)%
 				arc (90:135:{\dynkin at fold@radius});%
 		\fi%
 	\fi%
@@ -1207,25 +1215,25 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
 	\begin{pgfonlayer}{Dynkin behind}%%
 	\draw[/Dynkin diagram,edge,double,fill=none,#2]%
-		($(\dynkin at root@name \the\@fromRoot)$)%
+		($(\dynkin at root@name \the\@dynkin at from@root)$)%
 		arc (360:270:{\dynkin at fold@radius});% 
 	\ifdynkin at arrows%
 		\ifdynkin at reverse@arrows%
 			\path[
-				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+				/Dynkin diagram/arrow shape,
 			,tips] 
-				($(\dynkin at root@name \the\@toRoot)$)%
+				($(\dynkin at root@name \the\@dynkin at to@root)$)%
 				arc (-90:-45:{\dynkin at fold@radius});%
 		\else%
 			\path[
-			-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+				/Dynkin diagram/arrow shape,
 			,tips] 
-				($(\dynkin at root@name \the\@fromRoot)$)%
+				($(\dynkin at root@name \the\@dynkin at from@root)$)%
 				arc (360:315:{\dynkin at fold@radius});%
 		\fi%
 	\fi%
@@ -1246,24 +1254,25 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
 	\begin{pgfonlayer}{Dynkin behind}%%
 		\draw[/Dynkin diagram,edge,double,fill=none,#2]%
-			($(\dynkin at root@name \the\@fromRoot)$)%
+			($(\dynkin at root@name \the\@dynkin at from@root)$)%
 			arc (-90:-180:{\dynkin at fold@radius});%
 		\ifdynkin at arrows%
 			\ifdynkin at reverse@arrows%
-				\path[-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+				\path[%
+				/Dynkin diagram/arrow shape,
 				,tips] 
-					($(\dynkin at root@name \the\@toRoot)$)%
+					($(\dynkin at root@name \the\@dynkin at to@root)$)%
 					arc (-180:-135:\dynkin at fold@radius);%
 			\else%
 				\path[,
-				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+				/Dynkin diagram/arrow shape,
 				tips] 
-					($(\dynkin at root@name \the\@fromRoot)$)%
+					($(\dynkin at root@name \the\@dynkin at from@root)$)%
 					arc (-90:-135:\dynkin at fold@radius);%
 			\fi%
 		\fi%
@@ -1283,25 +1292,25 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
 	\begin{pgfonlayer}{Dynkin behind}%%
 		\draw[/Dynkin diagram,edge,double,fill=none,#2]%
-			($(\dynkin at root@name \the\@fromRoot)$)%
+			($(\dynkin at root@name \the\@dynkin at from@root)$)%
 			arc (90:-90:{\dynkin at fold@radius});%
 		\ifdynkin at arrows%
 			\ifdynkin at reverse@arrows%
 				\path[
-				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+				/Dynkin diagram/arrow shape,
 				,tips] 
-					($(\dynkin at root@name \the\@toRoot)$)%
+					($(\dynkin at root@name \the\@dynkin at to@root)$)%
 					arc (-90:0:\dynkin at fold@radius);%
 			\else%
 				\path[
-				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+				/Dynkin diagram/arrow shape,
 				,tips] 
-					($(\dynkin at root@name \the\@fromRoot)$)%
+					($(\dynkin at root@name \the\@dynkin at from@root)$)%
 					arc (90:0:\dynkin at fold@radius);%
 			\fi%
 		\fi%
@@ -1311,10 +1320,10 @@
 
 
 
-%% \dynkinDefiniteTripleDownRightSemiCircle{<p>}{<q>}
-%% Draws a semi circle from root <p> to root <q> on the current Dynkin diagram in the current label ordering
-%% as a triple path.
-%% The starred form accepts <p> and <q> in the Bourbaki ordering.
+%%% \dynkinDefiniteTripleDownRightSemiCircle{<p>}{<q>}
+%%% Draws a semi circle from root <p> to root <q> on the current Dynkin diagram in the current label ordering
+%%% as a triple path.
+%%% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinDefiniteTripleDownRightSemiCircle{sO{}mm}%
 {%
 	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
@@ -1323,8 +1332,8 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
 	\begin{pgfonlayer}{Dynkin behind}%%
 		\draw[/Dynkin diagram,
@@ -1334,23 +1343,23 @@
 			fill=none,
 			{Straight Barb[length=1pt]}-{Straight Barb[length=1pt]},
 			#2]%
-			($(\dynkin at root@name \the\@fromRoot)$)%
+			($(\dynkin at root@name \the\@dynkin at from@root)$)%
 			arc (90:-90:{\dynkin at fold@radius});%
 		\draw[/Dynkin diagram,edge,fill=none,#2]%
-			($(\dynkin at root@name \the\@fromRoot)$)%
+			($(\dynkin at root@name \the\@dynkin at from@root)$)%
 			arc (90:-90:{\dynkin at fold@radius});%
 		\ifdynkin at arrows%
 			\ifdynkin at reverse@arrows%
 				\path[
-				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+				/Dynkin diagram/arrow shape,
 				,tips] 
-					($(\dynkin at root@name \the\@toRoot)$)%
+					($(\dynkin at root@name \the\@dynkin at to@root)$)%
 					arc (-90:0:\dynkin at fold@radius);%
 			\else%
 				\path[
-				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+				/Dynkin diagram/arrow shape,
 				,tips] 
-					($(\dynkin at root@name \the\@fromRoot)$)%
+					($(\dynkin at root@name \the\@dynkin at from@root)$)%
 					arc (90:0:\dynkin at fold@radius);%
 			\fi%
 		\fi%
@@ -1372,25 +1381,25 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
 	\begin{pgfonlayer}{Dynkin behind}%%
 		\draw[/Dynkin diagram,edge,double,fill=none,#2]%
-			($(\dynkin at root@name \the\@fromRoot)$)%
+			($(\dynkin at root@name \the\@dynkin at from@root)$)%
 			arc (-90:90:{\dynkin at fold@radius});%
 		\ifdynkin at arrows%
 			\ifdynkin at reverse@arrows%
 				\path[
-				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+				/Dynkin diagram/arrow shape,
 				,tips] 
-					($(\dynkin at root@name \the\@toRoot)$)%
+					($(\dynkin at root@name \the\@dynkin at to@root)$)%
 					arc (90:0:\dynkin at fold@radius);%
 			\else%
 				\path[
-				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+				/Dynkin diagram/arrow shape,
 				,tips] 
-					($(\dynkin at root@name \the\@fromRoot)$)%
+					($(\dynkin at root@name \the\@dynkin at from@root)$)%
 					arc (-90:0:\dynkin at fold@radius);%
 			\fi%
 		\fi%
@@ -1408,11 +1417,13 @@
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#4}{#5}%
-		\dynkin at is@edge at indefinite{\@fromRoot}{\@toRoot}%
+		\dynkin at is@edge at indefinite{\@dynkin at from@root}{\@dynkin at to@root}%
 		\ifdynkin at is@indefinite at edge%
-			\csname dynkinIndefinite#3\endcsname[#2]{\@fromRoot}{\@toRoot}%
+			\csname dynkinIndefinite#3\endcsname[#2]%
+				{\@dynkin at from@root}{\@dynkin at to@root}%
 		\else%
-			\csname dynkinDefinite#3\endcsname[#2]{\@fromRoot}{\@toRoot}%
+			\csname dynkinDefinite#3\endcsname[#2]%
+				{\@dynkin at from@root}{\@dynkin at to@root}%
 		\fi%
 	}%
 	{%
@@ -1437,68 +1448,106 @@
 			\convertRootPair{#3}{#4}%
 		}%
 		{%
-			\@fromRoot=#3\relax%
-			\@toRoot=#4\relax%
+			\@dynkin at from@root=#3\relax%
+			\@dynkin at to@root=#4\relax%
 		}%
 		\begin{pgfonlayer}{Dynkin behind}%%
 			\ifdynkin at reverse@arrows%
 				\path[
-				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+				/Dynkin diagram/arrow shape,
 				tips] 
-					($(\dynkin at root@name \the\@toRoot)$) 
+					($(\dynkin at root@name \the\@dynkin at to@root)$) 
 					-- 
-					($.3*(\dynkin at root@name \the\@toRoot)+.7*(\dynkin at root@name \the\@fromRoot)$);%
+					($.3*(\dynkin at root@name \the\@dynkin at to@root)%
+					+.7*(\dynkin at root@name \the\@dynkin at from@root)$);%
 			\else%
 				\path[
-				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+				/Dynkin diagram/arrow shape,
 				tips] 
-					($(\dynkin at root@name \the\@fromRoot)$) 
+					($(\dynkin at root@name \the\@dynkin at from@root)$) 
 					-- 
-					($.3*(\dynkin at root@name \the\@fromRoot)+.7*(\dynkin at root@name \the\@toRoot)$);%
+					($.3*(\dynkin at root@name \the\@dynkin at from@root)+%
+					.7*(\dynkin at root@name \the\@dynkin at to@root)$);%
 			\fi%
 		\end{pgfonlayer}%%
 	\fi%
 }%
-
 \NewDocumentCommand\dynkinKacDoubleArrow{O{}mm}%
 {%
-	\draw[arrows = {-{Triangle Cap[length=.8mm,fill=white]}},%
-		/Dynkin diagram,edge,double=white,fill=white,double distance=1.8pt,#1]%
+	\draw[
+		arrows = {-{Triangle Cap[length=.8mm,fill=white]}},%
+		/Dynkin diagram,
+		edge,
+		double=white,
+		fill=white,
+		double distance=1.8pt,
+		#1]%
 		(\dynkin at root@name \the#2)--(\dynkin at root@name \the#3);%
-	\draw[arrows = {-{Classical TikZ Rightarrow[length=1mm]}},%
-		/Dynkin diagram,edge,double distance=1.8pt,#1]%
+	\draw[
+		arrows = {-{Classical TikZ Rightarrow[length=1mm]}},%
+		/Dynkin diagram,
+		edge,
+		double distance=1.8pt,
+		#1]%
 		(\dynkin at root@name \the#2)--(\dynkin at root@name \the#3);%
 }%
-
 \NewDocumentCommand\dynkinKacTripleArrow{O{}mm}%
 {%
-	\draw[arrows = {-{Triangle Cap[length=.8mm,fill=white]}},%
-		/Dynkin diagram,edge,double=white,fill=white,double distance=1.8pt,#1]%
+	\draw[
+		arrows = {-{Triangle Cap[length=.8mm,fill=white]}},%
+		/Dynkin diagram,
+		edge,
+		double=white,
+		fill=white,
+		double distance=1.8pt,
+		#1]%
 		(\dynkin at root@name \the#2)--(\dynkin at root@name \the#3);%
-	\draw[arrows = {-{Classical TikZ Rightarrow[length=1mm]}},%
-		/Dynkin diagram,edge,double distance=1.8pt,#1]%
+	\draw[
+		arrows = {-{Classical TikZ Rightarrow[length=1mm]}},%
+		/Dynkin diagram,
+		edge,
+		double distance=1.8pt,
+		#1]%
 		(\dynkin at root@name \the#2)--(\dynkin at root@name \the#3);%
-	\draw[/Dynkin diagram,edge,shorten >=1.1mm,#1]%
+	\draw[
+		/Dynkin diagram,
+		edge,
+		shorten >=1.1mm,
+		#1]%
 		(\dynkin at root@name \the#2)--(\dynkin at root@name \the#3);%
 }%
-
 \NewDocumentCommand\dynkinKacQuadrupleArrow{O{}mm}%
 {%
-	\draw[arrows = {-{Triangle Cap[length=1.127mm,fill=white]}},%
-		/Dynkin diagram,edge,double=white,fill=white,shorten >=1mm,shorten <=1mm, double distance=3.6pt,#1]%
+	\draw[
+		arrows = {-{Triangle Cap[length=1.127mm,fill=white]}},%
+		/Dynkin diagram,
+		edge,
+		double=white,
+		fill=white,
+		shorten >=1mm,
+		shorten <=1mm, 
+		double distance=3.6pt,
+		#1]%
 		(\dynkin at root@name \the#2)--(\dynkin at root@name \the#3);%
-	\draw[arrows = {-{Classical TikZ Rightarrow[length=1.2mm]}},%
-		/Dynkin diagram,edge,double distance=3.6pt,shorten <=.83mm,#1]%
+	\draw[
+		arrows = {-{Classical TikZ Rightarrow[length=1.2mm]}},%
+		/Dynkin diagram,
+		edge,
+		double distance=3.6pt,
+		shorten <=.83mm,
+		#1]%
 		(\dynkin at root@name \the#2)--(\dynkin at root@name \the#3);%
-	\draw[arrows = {-{Classical TikZ Rightarrow[length=1.2mm]}},%
-		/Dynkin diagram,edge,double distance=1.2pt,shorten <= .83mm,
+	\draw[
+		arrows = {-{Classical TikZ Rightarrow[length=1.2mm]}},%
+		/Dynkin diagram,
+		edge,
+		double distance=1.2pt,
+		shorten <= .83mm,
 		#1]%
 		(\dynkin at root@name \the#2)--(\dynkin at root@name \the#3);%
 }%
-
-\newcount\onesbit%
-\newcount\twosbit%
-
+\newcount\dynkin at onesbit%
+\newcount\dynkin at twosbit%
 %% \dynkinDefiniteDoubleEdge{<p>}{<q>}
 %% Draws an oriented double line from root <p> to root <q> on the current Dynkin diagram.
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
@@ -1510,24 +1559,24 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
-	\StrChar{\dynkin at roots}{\the\@fromRoot}[\my at root@marker]%
+	\StrChar{\dynkin at roots}{\the\@dynkin at from@root}[\my at root@marker]%
 	\IfStrEq{\my at root@marker}{x}%
 	{%
-		\global\onesbit=1\relax%
+		\global\dynkin at onesbit=1\relax%
 	}%
 	{%
-		\global\onesbit=0\relax%
+		\global\dynkin at onesbit=0\relax%
 	}%
-	\StrChar{\dynkin at roots}{\the\@toRoot}[\my at root@marker]%
+	\StrChar{\dynkin at roots}{\the\@dynkin at to@root}[\my at root@marker]%
 	\IfStrEq{\my at root@marker}{x}%
 	{%
-		\global\twosbit=1\relax%
+		\global\dynkin at twosbit=1\relax%
 	}%
 	{%
-		\global\twosbit=0\relax%
+		\global\dynkin at twosbit=0\relax%
 	}%
 	\ifdynkin at Kac@arrows
 		\begin{pgfonlayer}{Dynkin behind}%%
@@ -1534,22 +1583,26 @@
 			\ifdynkin at arrows%
 				\ifdynkin at reverse@arrows
 					\ifdynkin at is@backwards
-						\dynkinKacDoubleArrow[#2]{\@fromRoot}{\@toRoot}
+						\dynkinKacDoubleArrow[#2]%
+							{\@dynkin at from@root}{\@dynkin at to@root}
 					\else%
-						\dynkinKacDoubleArrow[#2]{\@toRoot}{\@fromRoot}
+						\dynkinKacDoubleArrow[#2]%
+							{\@dynkin at to@root}{\@dynkin at from@root}
 					\fi%
 				\else%
 					\ifdynkin at is@backwards
-						\dynkinKacDoubleArrow[#2]{\@toRoot}{\@fromRoot}
+						\dynkinKacDoubleArrow[#2]%
+							{\@dynkin at to@root}{\@dynkin at from@root}
 					\else%
-						\dynkinKacDoubleArrow[#2]{\@fromRoot}{\@toRoot}
+						\dynkinKacDoubleArrow[#2]%
+							{\@dynkin at from@root}{\@dynkin at to@root}
 					\fi%
 				\fi%
 			\else%
 				\draw[/Dynkin diagram,edge,double distance=3pt,#2]%
-					(\dynkin at root@name \the\@fromRoot)%
+					(\dynkin at root@name \the\@dynkin at from@root)%
 					--%
-					(\dynkin at root@name \the\@toRoot);%
+					(\dynkin at root@name \the\@dynkin at to@root);%
 			\fi%
 		\end{pgfonlayer}%%
 	\else
@@ -1556,22 +1609,27 @@
 		\def\LL{.5*\dynkin at root@radius}
 		\begin{pgfonlayer}{Dynkin behind}%%
 			\draw[/Dynkin diagram,edge,#2]%
-				($(\dynkin at root@name \the\@fromRoot)$)%
+				($(\dynkin at root@name \the\@dynkin at from@root)$)%
 				--%
-				+({\the\onesbit*\LL},{\LL})%
+				+({\the\dynkin at onesbit*\LL},{\LL})%
 				--%
-				($(\dynkin at root@name \the\@toRoot)+(-\the\twosbit*\LL,\LL)$)%
+				($(\dynkin at root@name \the\@dynkin at to@root)%
+				+(-\the\dynkin at twosbit*\LL,\LL)$)%
 				--%
-				($(\dynkin at root@name \the\@toRoot)$)%
+				($(\dynkin at root@name \the\@dynkin at to@root)$)%
 				--%
-				($(\dynkin at root@name \the\@toRoot)-(\the\twosbit*\LL,\LL)$)%
+				($(\dynkin at root@name \the\@dynkin at to@root)%
+				-(\the\dynkin at twosbit*\LL,\LL)$)%
 				--%
-				($(\dynkin at root@name \the\@fromRoot)+(\the\onesbit*\LL,-\LL)$)%
+				($(\dynkin at root@name \the\@dynkin at from@root)%
+				+(\the\dynkin at onesbit*\LL,-\LL)$)%
 				--%
 				cycle;%
 		\end{pgfonlayer}%%
 		\ifdynkin at arrows%
-			\dynkinEdgeArrow[#2]{\the\@fromRoot}{\the\@toRoot}%
+			\dynkinEdgeArrow[#2]%
+			{\the\@dynkin at from@root}%
+			{\the\@dynkin at to@root}%
 		\fi%
 	\fi%
 }%
@@ -1587,24 +1645,24 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
-	\StrChar{\dynkin at roots}{\the\@fromRoot}[\my at root@marker]%
+	\StrChar{\dynkin at roots}{\the\@dynkin at from@root}[\my at root@marker]%
 	\IfStrEq{\my at root@marker}{x}%
 	{%
-		\global\onesbit=1\relax%
+		\global\dynkin at onesbit=1\relax%
 	}%
 	{%
-		\global\onesbit=0\relax%
+		\global\dynkin at onesbit=0\relax%
 	}%
-	\StrChar{\dynkin at roots}{\the\@toRoot}[\my at root@marker]%
+	\StrChar{\dynkin at roots}{\the\@dynkin at to@root}[\my at root@marker]%
 	\IfStrEq{\my at root@marker}{x}%
 	{%
-		\global\twosbit=1\relax%
+		\global\dynkin at twosbit=1\relax%
 	}%
 	{%
-		\global\twosbit=0\relax%
+		\global\dynkin at twosbit=0\relax%
 	}%
 	\ifdynkin at Kac@arrows
 		\begin{pgfonlayer}{Dynkin behind}%%
@@ -1611,51 +1669,60 @@
 			\ifdynkin at arrows%
 				\ifdynkin at reverse@arrows
 					\ifdynkin at is@backwards
-						\dynkinKacTripleArrow[#2]{\@fromRoot}{\@toRoot}
+						\dynkinKacTripleArrow[#2]{\@dynkin at from@root}{\@dynkin at to@root}
 					\else%
-						\dynkinKacTripleArrow[#2]{\@toRoot}{\@fromRoot}
+						\dynkinKacTripleArrow[#2]{\@dynkin at to@root}{\@dynkin at from@root}
 					\fi%
 				\else%
 					\ifdynkin at is@backwards
-						\dynkinKacTripleArrow[#2]{\@toRoot}{\@fromRoot}
+						\dynkinKacTripleArrow[#2]{\@dynkin at to@root}{\@dynkin at from@root}
 					\else%
-						\dynkinKacTripleArrow[#2]{\@fromRoot}{\@toRoot}
+						\dynkinKacTripleArrow[#2]{\@dynkin at from@root}{\@dynkin at to@root}
 					\fi%
 				\fi%
 			\else%
 				\draw[/Dynkin diagram,edge,double distance=3pt,#2]%
-					(\dynkin at root@name \the\@fromRoot)%
+					(\dynkin at root@name \the\@dynkin at from@root)%
 					--%
-					(\dynkin at root@name \the\@toRoot);%
+					(\dynkin at root@name \the\@dynkin at to@root);%
 				\draw[/Dynkin diagram,edge,#2]%
-					(\dynkin at root@name \the\@fromRoot)%
+					(\dynkin at root@name \the\@dynkin at from@root)%
 					--%
-					(\dynkin at root@name \the\@toRoot);%
+					(\dynkin at root@name \the\@dynkin at to@root);%
 			\fi%
 		\end{pgfonlayer}%%
 	\else
 		\begin{pgfonlayer}{Dynkin behind}%%
 			\draw[/Dynkin diagram,edge,#2]%
-				($(\dynkin at root@name \the\@fromRoot)$)%
+				($(\dynkin at root@name \the\@dynkin at from@root)$)%
 				--%
-				+({\the\onesbit*\dynkin at root@radius},{\dynkin at root@radius})%
+				+({\the\dynkin at onesbit*\dynkin at root@radius},%
+				{\dynkin at root@radius})%
 				--%
-				($(\dynkin at root@name \the\@toRoot)+(-\twosbit*\dynkin at root@radius,\dynkin at root@radius)$)%
+				($(\dynkin at root@name \the\@dynkin at to@root)%
+				+(-\dynkin at twosbit*\dynkin at root@radius,%
+				\dynkin at root@radius)$)%
 				--%
-				($(\dynkin at root@name \the\@toRoot)$)%
+				($(\dynkin at root@name \the\@dynkin at to@root)$)%
 				--%
-				($(\dynkin at root@name \the\@toRoot)-(\twosbit*\dynkin at root@radius,\dynkin at root@radius)$)%
+				($(\dynkin at root@name \the\@dynkin at to@root)%
+				-(\dynkin at twosbit*\dynkin at root@radius,%
+				\dynkin at root@radius)$)%
 				--%
-				($(\dynkin at root@name \the\@fromRoot)+(\onesbit*\dynkin at root@radius,-\dynkin at root@radius)$)%
+				($(\dynkin at root@name \the\@dynkin at from@root)%
+				+(\dynkin at onesbit*\dynkin at root@radius,%
+				-\dynkin at root@radius)$)%
 				--%
 				cycle;%
 			\draw[/Dynkin diagram,edge,#2] 
-				($(\dynkin at root@name \the\@fromRoot)$) 
+				($(\dynkin at root@name \the\@dynkin at from@root)$) 
 				-- 
-				($(\dynkin at root@name \the\@toRoot)$);%
+				($(\dynkin at root@name \the\@dynkin at to@root)$);%
 		\end{pgfonlayer}%%
 		\ifdynkin at arrows%
-			\dynkinEdgeArrow[#2]{\the\@fromRoot}{\the\@toRoot}%
+			\dynkinEdgeArrow[#2]%
+				{\the\@dynkin at from@root}%
+				{\the\@dynkin at to@root}%
 		\fi%
 	\fi%
 }%
@@ -1673,8 +1740,8 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3\relax%
-		\@toRoot=#4\relax%
+		\@dynkin at from@root=#3\relax%
+		\@dynkin at to@root=#4\relax%
 	}%
 	\ifdynkin at Kac@arrows
 		\begin{pgfonlayer}{Dynkin behind}%%
@@ -1681,45 +1748,59 @@
 			\ifdynkin at arrows%
 				\ifdynkin at reverse@arrows
 					\ifdynkin at is@backwards
-						\dynkinKacQuadrupleArrow[#2]{\@fromRoot}{\@toRoot}
+						\dynkinKacQuadrupleArrow[#2]%
+							{\@dynkin at from@root}{\@dynkin at to@root}
 					\else%
-						\dynkinKacQuadrupleArrow[#2]{\@toRoot}{\@fromRoot}
+						\dynkinKacQuadrupleArrow[#2]%
+							{\@dynkin at to@root}{\@dynkin at from@root}
 					\fi%
 				\else%
 					\ifdynkin at is@backwards
-						\dynkinKacQuadrupleArrow[#2]{\@toRoot}{\@fromRoot}
+						\dynkinKacQuadrupleArrow[#2]%
+							{\@dynkin at to@root}{\@dynkin at from@root}
 					\else%
-						\dynkinKacQuadrupleArrow[#2]{\@fromRoot}{\@toRoot}
+						\dynkinKacQuadrupleArrow[#2]%
+							{\@dynkin at from@root}{\@dynkin at to@root}
 					\fi%
 				\fi%
 			\else%
 				\draw[/Dynkin diagram,edge,double distance=3pt,#2]%
-					(\dynkin at root@name \the\@fromRoot)%
+					(\dynkin at root@name \the\@dynkin at from@root)%
 					--%
-					(\dynkin at root@name \the\@toRoot);%
+					(\dynkin at root@name \the\@dynkin at to@root);%
 				\draw[/Dynkin diagram,edge,#2]%
-					(\dynkin at root@name \the\@fromRoot)%
+					(\dynkin at root@name \the\@dynkin at from@root)%
 					--%
-					(\dynkin at root@name \the\@toRoot);%
+					(\dynkin at root@name \the\@dynkin at to@root);%
 			\fi%
 		\end{pgfonlayer}%%
 	\else
 		\begin{pgfonlayer}{Dynkin behind}%%
 			\draw[/Dynkin diagram,edge,#2]%
-				($(\dynkin at root@name \the\@fromRoot)+(0,\dynkin at root@radius)$)--%
-				($(\dynkin at root@name \the\@toRoot)+(0,\dynkin at root@radius)$)--%
-				($(\dynkin at root@name \the\@toRoot)+(0,-\dynkin at root@radius)$)--%
-				($(\dynkin at root@name \the\@fromRoot)+(0,-\dynkin at root@radius)$)--%
+				($(\dynkin at root@name \the\@dynkin at from@root)%
+				+(0,\dynkin at root@radius)$)--%
+				($(\dynkin at root@name \the\@dynkin at to@root)%
+				+(0,\dynkin at root@radius)$)--%
+				($(\dynkin at root@name \the\@dynkin at to@root)%
+				+(0,-\dynkin at root@radius)$)--%
+				($(\dynkin at root@name \the\@dynkin at from@root)%
+				+(0,-\dynkin at root@radius)$)--%
 				cycle;
 			\draw[/Dynkin diagram,edge,#2]%
-				($(\dynkin at root@name \the\@fromRoot)+(0,\dynkin at root@radius/3)$)--%
-				($(\dynkin at root@name \the\@toRoot)+(0,\dynkin at root@radius/3)$)--%
-				($(\dynkin at root@name \the\@toRoot)+(0,-\dynkin at root@radius/3)$)--%
-				($(\dynkin at root@name \the\@fromRoot)+(0,-\dynkin at root@radius/3)$)--%
+				($(\dynkin at root@name \the\@dynkin at from@root)%
+				+(0,\dynkin at root@radius/3)$)--%
+				($(\dynkin at root@name \the\@dynkin at to@root)%
+				+(0,\dynkin at root@radius/3)$)--%
+				($(\dynkin at root@name \the\@dynkin at to@root)%
+				+(0,-\dynkin at root@radius/3)$)--%
+				($(\dynkin at root@name \the\@dynkin at from@root)%
+				+(0,-\dynkin at root@radius/3)$)--%
 				cycle;
 		\end{pgfonlayer}%%
 		\ifdynkin at arrows%
-			\dynkinEdgeArrow[#2]{\the\@fromRoot}{\the\@toRoot}%
+			\dynkinEdgeArrow[#2]%
+				{\the\@dynkin at from@root}%
+				{\the\@dynkin at to@root}%
 		\fi%
 	\fi%
 }%
@@ -1772,7 +1853,6 @@
 %      \dynkin{A}{3} passes the string A,
 %      \dynkin{A2}{*o*} passes the string A2,
 %      \dynkin{E2}{} passes the string E2.
-
 \def\dynkin at user@string{}
 % Control string passed from user. 
 % For example: 
@@ -1779,86 +1859,61 @@
 %      \dynkin{A}{3} passes the string 3,
 %      \dynkin{A}{*o*} passes the string *o*,
 %      \dynkin{A}{III} passes the string III.
-
 \def\dynkin at string{}
 % \dynkin at user@string{} with some modifications to it to expand it out.
-
 \def\dynkin at series{A}
 % Which series of root system: A,B,C,D,E,F,G
-
 \def\dynkin at label@list{}
 % List of labels for the roots.
-
 \def\dynkin at label@list at star{}
 % List of alternate labels for the roots.
-
-\newcount\dynkin at rank
+\newcount\dynkin at rank%
+\newcount\dynkin at rank@minus at one%
+\newcount\dynkin at rank@minus at two%
+\newcount\dynkin at rank@minus at three%
 % Which rank of root system: 1,2,...
-
 \newcount\dynkin at nodes
 % How many nodes (besides the zero node for affine diagrams) are there?
-
 \newif\ifdynkin at is@backwards
 % Are we drawing this thing in a reverse direction?
-
 \newif\ifdynkin at is@upsidedown
 % Are we drawing this thing in a reverse direction?
-
 \newif\ifdynkin at is@extended
 % Is this an extended extended root system?
-
 \newif\ifdynkin at is@twisted
 % Is this a twisted extended root system?
-
 \def\dynkin at twisted@series{0}
 % Which Kac series? 0=finite, 1,2,3->infinite
-
 \newif\ifdynkin at label@the at roots
 % Should we label the roots by the current root ordering convention?
-
 \newif\ifdynkin at reverse@arrows
 % Should we reverse the directions of all arrows?
-
 \newif\ifdynkin at arrows
 % Should we draw arrows on Dynkin diagrams?
-
 \newif\ifdynkin at left@fold
 % Is the left side of the Dynkin diagram folded?
-
 \newif\ifdynkin at right@fold
 % Is the right side of the Dynkin diagram folded?
-
 \newif\ifdynkin at Coxeter
 % Should we draw Coxeter diagrams?
-
 \newif\ifdynkin at Kac@arrows
 % Should we draw arrows following Kac?
-
 \newif\ifdynkin at odd
 % For twisted A series diagrams, is the rank odd?
-
 \newcount\dynkin at ply
 % Maximum number of nodes arranged vertically in the folding of the Dynkin diagram
-
 \def\dynkin at ply@value{1}
 % Default maximum number of nodes arranged vertically in the folding of the Dynkin diagram
-
 \def\dynkin at label@directions{}
 % List of directions in which to draw the labels attached to the roots.
-
 \def\dynkin at label@directions at star{}
 % List of directions in which to draw the labels attached to the roots, for alternate labels.
-
 \def\dynkin at current@location{(0,0)}
-
-\def\dynkin at arrow@color{}
-
+\def\dynkin at arrow@style{length=1.5*\dynkin at root@radius}
 \def\dynkin at horizontal@shift{0pt}
 \def\dynkin at vertical@shift{.5ex}
 % Shift applied to all Dynkin diagrams
-
 \NewDocumentCommand\regurgitate{m}{#1}
-
 \pgfkeys{
  /Dynkin diagram/.is family,
  /Dynkin diagram,
@@ -1866,9 +1921,13 @@
 	affinemark/.forward to = /Dynkin diagram/affine mark,
 	affine-mark/.forward to = /Dynkin diagram/affine mark,
 	affine-mark = o,
-	arrow color/.estore in = \dynkin at arrow@color,
-	arrow-color/.forward to=/Dynkin diagram/arrow color,
-	arrowcolor/.forward to=/Dynkin diagram/arrow color,
+	arrow color/.estore in = /Dynkin diagram/arrow style,
+	arrow-color/.forward to=/Dynkin diagram/arrow style,
+	arrowcolor/.forward to=/Dynkin diagram/arrow style,
+	arrow shape/.style={-{Computer Modern Rightarrow[\dynkin at arrow@style]}},
+	arrow style/.estore in = \dynkin at arrow@style,
+	arrow-style/.forward to=/Dynkin diagram/arrow style,
+	arrowstyle/.forward to=/Dynkin diagram/arrow style,
 	arrows/.is if = dynkin at arrows,
 	arrows = true,
 	at/.estore in = \dynkin at current@location,
@@ -1987,7 +2046,13 @@
 	indefinite-edge-ratio/.forward to = /Dynkin diagram/indefinite edge ratio,
 	indefiniteedgeratio/.forward to = /Dynkin diagram/indefinite edge ratio,
 	indefinite edge ratio = 1.6,
-	indefinite edge/.style={solid,draw=black,fill=white,thin,densely dotted},
+	indefinite edge/.style={
+		solid,
+		draw=black,
+		fill=white,
+		thin,
+		densely dotted
+	},
 	indefinite-edge/.forward to=/Dynkin diagram/indefinite edge/.style,
 	indefiniteedge/.forward to=/Dynkin diagram/indefinite edge/.style,
 	Kac arrows/.is if = dynkin at Kac@arrows,
@@ -2000,14 +2065,38 @@
 		root radius=.05cm,
 		edge length=.66cm,
 		indefinite edge ratio = 3,
-		edge/.style={solid,draw=black,fill=white,thin,shorten <=1mm,shorten >=1mm},
-		fold style/.style = {solid,draw=black!40,fill=none,line width=\dynkin at root@radius,shorten <=1mm,shorten >=1mm},
+		edge/.style={
+			solid,
+			draw=black,
+			fill=white,
+			thin,
+			shorten <=1mm,
+			shorten >=1mm
+		},
+		fold style/.style = {
+			solid,
+			draw=black!40,
+			fill=none,
+			line width=\dynkin at root@radius,
+			shorten <=1mm,
+			shorten >=1mm
+		},
 		mark=o,
-		indefinite edge/.style={solid,draw=black,fill=none,thin,loosely dotted},
+		indefinite edge/.style={
+			solid,
+			draw=black,
+			fill=none,
+			thin,
+			loosely dotted
+		},
 	},
 	label/.is if = dynkin at label@the at roots,
 	label = false,
-	label depth/.style={/tikz/every label/.append style={text depth={depth("#1"}}},
+	label depth/.style={
+		/tikz/every label/.append style={
+			text depth={depth("#1"}
+		}
+	},
 	label depth/.default=g,
 	label depth,
 	label-depth/.forward to = /Dynkin diagram/label depth,
@@ -2068,12 +2157,14 @@
 	verticalshift/.forward to=/Dynkin diagram/vertical shift,
 	x shift in edge lengths/.code=%
 		{%
-			\pgfmathsetlengthmacro\dynkin at horizontal@shift%
+			\pgfmathsetlengthmacro%
+				\dynkin at horizontal@shift%
 				{(#1*\dynkin at edge@length)+\dynkin at horizontal@shift}%
 		},%
 	y shift in edge lengths/.code=%
 		{%
-			\pgfmathsetlengthmacro\dynkin at vertical@shift%
+			\pgfmathsetlengthmacro%
+				\dynkin at vertical@shift%
 				{(#1*\dynkin at edge@length)+\dynkin at vertical@shift}%
 		},%
 	*/.style = {
@@ -2124,7 +2215,13 @@
 			draw=black,
 			fill=white,
 			thin,
-			double copy shadow={draw=black!90,fill=none,thin,shadow xshift=.1pt, shadow yshift=-.15pt},
+			double copy shadow={
+				draw=black!90,
+				fill=none,
+				thin,
+				shadow xshift=.1pt, 
+				shadow yshift=-.15pt
+			},
 		},
 		*/.style={
 			yscale=1.2,
@@ -2131,7 +2228,11 @@
 			solid,
 			draw=black,
 			fill=gray,
-			double copy shadow={fill=black,shadow xshift=0.1pt, shadow yshift=-0.15pt},
+			double copy shadow={
+				fill=black,
+				shadow xshift=0.1pt,
+				shadow yshift=-0.15pt
+			},
 		},
 		o/.style={
 			yscale=1.2,
@@ -2138,7 +2239,11 @@
 			solid,
 			draw=black,
 			fill=white,
-			double copy shadow={fill=black,shadow xshift=0.1pt, shadow yshift=-0.15pt},
+			double copy shadow={
+				fill=black,
+				shadow xshift=0.1pt, 
+				shadow yshift=-0.15pt
+			},
 		},
 		O/.style={
 			yscale=1.2,
@@ -2145,7 +2250,11 @@
 			solid,
 			draw=black,
 			fill=white,
-			double copy shadow={fill=green,shadow xshift=0.1pt, shadow yshift=-0.15pt},
+			double copy shadow={
+				fill=green,
+				shadow xshift=0.1pt,
+				shadow yshift=-0.15pt
+			},
 		}
 		t/.style={
 			yscale=1.2,
@@ -2156,65 +2265,126 @@
 	},
 	.search also={/tikz},
 }
-
 \ProcessPgfPackageOptions{/Dynkin diagram}\relax
-
-\newcount\drpo%
+\newcount\dynkin at drpo%
 \newcount\dynkin at where%
-
 %% \dynkin at put@direction{<r>}{<d>}{<d*>}
 %% Assigns to \dynkin at label@directions or \dynkin at label@directions at star the direction that the label of root <r> (in default ordering) should sit from the root node location, <d>=0,1,2,3,4,5,6,7 to indicate direction in multiples of 45 degrees
 \NewDocumentCommand\dynkin at put@direction{smm}%
 {%
-	\drpo=\the\dynkin at nodes\relax%
-	\advance\drpo by 1\relax%
+	\dynkin at drpo=\the\dynkin at nodes\relax%
+	\advance\dynkin at drpo by 1\relax%
 	\dynkin at where=#2\relax%
 	\IfBooleanTF{#1}%
 	{%
-		\StrMid{\dynkin at label@directions at star}{1}{\the\dynkin at where}[\dynkin at start]%
+		\StrMid{\dynkin at label@directions at star}%
+			{1}{\the\dynkin at where}[\dynkin at start]%
 		\advance\dynkin at where by 2\relax%
-		\StrMid{\dynkin at label@directions at star}{\the\dynkin at where}{\the\drpo}[\dynkin at end]%
+		\StrMid{\dynkin at label@directions at star}%
+			{\the\dynkin at where}{\the\dynkin at drpo}[\dynkin at end]%
 		\IfStrEqCase{#3}{%
-			{right}{\xdef\dynkin at label@directions at star{\dynkin at start 0\dynkin at end}}%
-			{above right}{\xdef\dynkin at label@directions at star{\dynkin at start 1\dynkin at end}}%
-			{above}{\xdef\dynkin at label@directions at star{\dynkin at start 2\dynkin at end}}%
-			{above left}{\xdef\dynkin at label@directions at star{\dynkin at start 3\dynkin at end}}%
-			{left}{\xdef\dynkin at label@directions at star{\dynkin at start 4\dynkin at end}}%
-			{below left}{\xdef\dynkin at label@directions at star{\dynkin at start 5\dynkin at end}}%
-			{below}{\xdef\dynkin at label@directions at star{\dynkin at start 6\dynkin at end}}%
-			{below right}{\xdef\dynkin at label@directions at star{\dynkin at start 7\dynkin at end}}%
+			{right}%
+			{%
+				\xdef\dynkin at label@directions at star%
+					{\dynkin at start 0\dynkin at end}%
+			}%
+			{above right}%
+			{%
+				\xdef\dynkin at label@directions at star%
+					{\dynkin at start 1\dynkin at end}%
+			}%
+			{above}%
+			{%
+				\xdef\dynkin at label@directions at star%
+					{\dynkin at start 2\dynkin at end}%
+			}%
+			{above left}%
+			{%
+				\xdef\dynkin at label@directions at star%
+					{\dynkin at start 3\dynkin at end}%
+			}%
+			{left}%
+			{%
+				\xdef\dynkin at label@directions at star%
+					{\dynkin at start 4\dynkin at end}%
+			}%
+			{below left}%
+			{%
+				\xdef\dynkin at label@directions at star%
+					{\dynkin at start 5\dynkin at end}%
+			}%
+			{below}%
+			{%
+				\xdef\dynkin at label@directions at star%
+					{\dynkin at start 6\dynkin at end}%
+			}%
+			{below right}%
+			{%
+				\xdef\dynkin at label@directions at star%
+					{\dynkin at start 7\dynkin at end}%
+			}%
 		}%
 		[\ClassError{Dynkin diagrams}%
 			{Unrecognized direction: ``#2'' in Dynkin diagram \dynkin at user@series{\dynkin at user@string}}{}]%
 	}%
 	{%
-		\StrMid{\dynkin at label@directions}{1}{\the\dynkin at where}[\dynkin at start]%
+		\StrMid{\dynkin at label@directions}{1}%
+			{\the\dynkin at where}[\dynkin at start]%
 		\advance\dynkin at where by 2\relax%
-		\StrMid{\dynkin at label@directions}{\the\dynkin at where}{\the\drpo}[\dynkin at end]%
+		\StrMid{\dynkin at label@directions}{\the\dynkin at where}%
+			{\the\dynkin at drpo}[\dynkin at end]%
 		\IfStrEqCase{#3}{%
-			{right}{\xdef\dynkin at label@directions{\dynkin at start 0\dynkin at end}}%
-			{above right}{\xdef\dynkin at label@directions{\dynkin at start 1\dynkin at end}}%
-			{above}{\xdef\dynkin at label@directions{\dynkin at start 2\dynkin at end}}%
-			{above left}{\xdef\dynkin at label@directions{\dynkin at start 3\dynkin at end}}%
-			{left}{\xdef\dynkin at label@directions{\dynkin at start 4\dynkin at end}}%
-			{below left}{\xdef\dynkin at label@directions{\dynkin at start 5\dynkin at end}}%
-			{below}{\xdef\dynkin at label@directions{\dynkin at start 6\dynkin at end}}%
-			{below right}{\xdef\dynkin at label@directions{\dynkin at start 7\dynkin at end}}%
+			{right}%
+			{%
+				\xdef\dynkin at label@directions%
+					{\dynkin at start 0\dynkin at end}%
+			}%
+			{above right}%
+			{%
+				\xdef\dynkin at label@directions%
+					{\dynkin at start 1\dynkin at end}%
+			}%
+			{above}%
+			{%
+				\xdef\dynkin at label@directions%
+					{\dynkin at start 2\dynkin at end}%
+			}%
+			{above left}%
+			{%
+				\xdef\dynkin at label@directions%
+					{\dynkin at start 3\dynkin at end}%
+			}%
+			{left}%
+			{%
+				\xdef\dynkin at label@directions%
+					{\dynkin at start 4\dynkin at end}%
+			}%
+			{below left}%
+			{%
+				\xdef\dynkin at label@directions%
+					{\dynkin at start 5\dynkin at end}%
+			}%
+			{below}%
+			{%
+				\xdef\dynkin at label@directions%
+					{\dynkin at start 6\dynkin at end}%
+			}%
+			{below right}%
+			{%
+				\xdef\dynkin at label@directions%
+					{\dynkin at start 7\dynkin at end}%
+			}%
 		}%
 		[\ClassError{Dynkin diagrams}%
 			{Unrecognized direction: ``#2'' in Dynkin diagram \dynkin at user@series{\dynkin at user@string}}{}]%
 	}%
 }%
-
-
-%\xdef\replace at DR{}
-%
 % \expand at Dynkin@Roots at By@Char{<c>}, 
 % for example if <c> is the letter x, expands out any expression like 
 % x7 in \dynkin at string into 7 copies of the letter x.
 \NewDocumentCommand\expand at Dynkin@Roots at By@Char{m}%
 {%
-	\xdef\replace at DR{}
+	\xdef\replace at DR{}%
 	\foreach \i in {0,...,9}%
 	{%
 		\StrSubstitute[0]{\dynkin at string}{#1\i}{\replace at DR}[\temp at DR]%
@@ -2222,11 +2392,10 @@
 		\xdef\replace at DR{\replace at DR #1}%
 	}%
 }%
-
 % \expand at Dynkin@Roots at Digits{} expands out any expression like x7 in \dynkin at roots into 7 copies of the letter x, and so on for any letter which is not a digit.
 \NewDocumentCommand\expand at Dynkin@Roots at Digits{}%
 {%
-	\edef\current at string{\dynkin at string}
+	\edef\current at string{\dynkin at string}%
 	\StrLen{\current at string}[\string at len]
 	\foreach \j in {1,...,\string at len}%
 	{%
@@ -2238,7 +2407,6 @@
 		}%
 	}%
 }%
-
 % \dynkin at integer@rank{} expands a \dynkin at string 3 into ***, i.e.
 % writes the given number <n> of copies of the default root mark into the string \dynkin at string.
 \NewDocumentCommand\dynkin at integer@rank{}%
@@ -2250,7 +2418,7 @@
 		{%
 			{A}%
 			{%
-				\divide\dynkin at nodes by 2%
+				\divide\dynkin at nodes by 2\relax%
 				\ifodd\dynkin at rank%
 					\global\dynkin at oddtrue%
 					\advance\dynkin at nodes by 1\relax%
@@ -2299,34 +2467,30 @@
 	\fi%
 	\xdef\dynkin at string{\repeatCharacter{\the\dynkin at nodes}{\dynkin at root@mark}}%
 }%
-
 \NewDocumentCommand\dynkin at clear@indefinite at edge@list{}%
 {%
 	\xdef\dynkin at indefinite@edge at list{}%
 }%
 %
-
-\newcount\first%
-\newcount\second%
-
+\newcount\dynkin at first@root at no%
+\newcount\dynkin at second@root at no%
 \NewDocumentCommand\dynkin at set@edge at indefinite{mm}%
 {%
-	\first=#1\relax%
-	\second=#2\relax%
-	\ifnum\the\first<\the\second%
-		\listxadd\dynkin at indefinite@edge at list{\the\first,\the\second}%
+	\dynkin at first@root at no=#1\relax%
+	\dynkin at second@root at no=#2\relax%
+	\ifnum\the\dynkin at first@root at no<\the\dynkin at second@root at no%
+		\listxadd\dynkin at indefinite@edge at list{\the\dynkin at first@root at no,\the\dynkin at second@root at no}%
 	\else%
-		\listxadd\dynkin at indefinite@edge at list{\the\second,\the\first}%
+		\listxadd\dynkin at indefinite@edge at list{\the\dynkin at second@root at no,\the\dynkin at first@root at no}%
 	\fi%
 }%
 
-\NewDocumentCommand\dynkin at set@edge at indefinite@pair{>{\SplitArgument{1}{-}}m}%
+\NewDocumentCommand\dynkin at set@edge at indefinite@pair%
+{>{\SplitArgument{1}{-}}m}%
 {%
 \dynkin at set@edge at indefinite#1%
 }%
-
-\newif\ifdynkin at is@indefinite at edge
-
+\newif\ifdynkin at is@indefinite at edge%
 \NewDocumentCommand\dynkin at typeout@indefinite at edge@list{}%
 {%
 	\renewcommand*{\do}[1]{\typeout{##1}}%
@@ -2344,34 +2508,31 @@
 		\convertRootPair{#2}{#3}%
 	}%
 	{%
-		\@fromRoot=#2\relax%
-		\@toRoot=#3\relax%
+		\@dynkin at from@root=#2\relax%
+		\@dynkin at to@root=#3\relax%
 	}%
 	% Next we sort the order, since edges are stored as undirected edges.
-	\global\first=\@fromRoot\relax%
-	\global\second=\@toRoot\relax%
-	\ifnum\the\second<\the\first%
-		\global\first=\@toRoot\relax%
-		\global\second=\@fromRoot\relax%
+	\global\dynkin at first@root at no=\@dynkin at from@root\relax%
+	\global\dynkin at second@root at no=\@dynkin at to@root\relax%
+	\ifnum\the\dynkin at second@root at no<\the\dynkin at first@root at no%
+		\global\dynkin at first@root at no=\@dynkin at to@root\relax%
+		\global\dynkin at second@root at no=\@dynkin at from@root\relax%
 	\fi%
 	\global\dynkin at is@indefinite at edgefalse\relax%
 	\renewcommand*{\do}[1]{%
-	\IfStrEq{##1}{\the\first,\the\second}%
+	\IfStrEq{##1}{\the\dynkin at first@root at no,\the\dynkin at second@root at no}%
 		{\global\dynkin at is@indefinite at edgetrue\listbreak}%
 		{}}%
 	\dolistloop{\dynkin at indefinite@edge at list}%
 }%
-
-
-\newcount\rootnum
-\newcount\dynkin at string@length
-\newcount\rootnumpo%
-
+\newcount\dynkin at Root@Numbr%
+\newcount\dynkin at string@length%
+\newcount\dynkin at Root@Numbrpo%
 % \dynkin at grok@indefinite at edges{} reads the input string <s> found when you write \dynkin{<c>}{<s>}, and
 % interprets it to say which edges are indefinite edges.
 \NewDocumentCommand\dynkin at grok@indefinite at edges{}%
 {%
-	\rootnum=1\relax
+	\dynkin at Root@Numbr=1\relax
 	\StrLen{\dynkin at string}[\temp]%
 	\dynkin at string@length=\temp\relax%
 	\foreach \i in {2,...,\the\dynkin at string@length}%
@@ -2379,36 +2540,30 @@
 		\StrChar{\dynkin at string}{\i}[\c]%
 		\IfStrEq{\c}{.}%
 		{%
-			\rootnumpo=\rootnum\relax%
-			\advance\rootnumpo by 1\relax%
-			\ifnum\the\rootnum<\the\dynkin at nodes%
-				\dynkin at set@edge at indefinite{\rootnum}{\rootnumpo}%
+			\dynkin at Root@Numbrpo=\dynkin at Root@Numbr\relax%
+			\advance\dynkin at Root@Numbrpo by 1\relax%
+			\ifnum\the\dynkin at Root@Numbr<\the\dynkin at nodes%
+				\dynkin at set@edge at indefinite{\dynkin at Root@Numbr}{\dynkin at Root@Numbrpo}%
 			\fi%
 		}%
 		{%
-			\global\advance\rootnum by 1\relax%
+			\global\advance\dynkin at Root@Numbr by 1\relax%
 		}%
 	}%
 }%
-
-\xdef\spacy{ }
-
+\xdef\dynkin at spacy{ }
 \NewDocumentCommand\dynkin at clear@label at directions{}%
 {%
 	\xdef\dynkin at label@directions{}%
 	\xdef\dynkin at label@directions at star{}%
 }%
-
-
 \NewDocumentCommand\dynkin at set@default at label@directions{}%
 {%
-%	\newcount\drpo%
-	\drpo=\the\dynkin at nodes\relax%
-	\advance\drpo by 1\relax%
-	\xdef\dynkin at label@directions{\repeatCharacter{\the\drpo}{?}}%
-	\xdef\dynkin at label@directions at star{\repeatCharacter{\the\drpo}{?}}%
+	\dynkin at drpo=\the\dynkin at nodes\relax%
+	\advance\dynkin at drpo by 1\relax%
+	\xdef\dynkin at label@directions{\repeatCharacter{\the\dynkin at drpo}{?}}%
+	\xdef\dynkin at label@directions at star{\repeatCharacter{\the\dynkin at drpo}{?}}%
 }%
-
 \newlength{\defaultpgflinewidth}%
 %
 %
@@ -2446,10 +2601,10 @@
 	\xdef\dynkin at series{#2}%
 	\IfStrEq{\dynkin at diagram@name}{anonymous}%
 	{%
-		\xdef\dynkin at root@name{root\spacy}%
+		\xdef\dynkin at root@name{root\dynkin at spacy}%
 	}%
 	{%
-		\xdef\dynkin at root@name{\dynkin at diagram@name\spacy root\spacy}%
+		\xdef\dynkin at root@name{\dynkin at diagram@name\dynkin at spacy root\dynkin at spacy}%
 	}%
 	\dynkin at grok@series%
 	\IfSubStr{ABCDEFGHI}{\dynkin at series}{}{\dynkin at error@series}%
@@ -2510,9 +2665,9 @@
 		{%
 			{A}%
 			{%
-				\multiply\dynkin at rank by 2%
+				\global\multiply\dynkin at rank by 2%
 				\ifdynkin at odd%
-					\advance\dynkin at rank by -1\relax%
+					\global\advance\dynkin at rank by -1\relax%
 				\fi%
 			}%
 			{D}%
@@ -2521,24 +2676,28 @@
 				{%
 					{2}
 					{%
-						\advance\dynkin at rank by 1\relax%
+						\global\advance\dynkin at rank by 1\relax%
 					}%
 					{3}
 					{%
-						\advance\dynkin at rank by 2\relax%
+						\global\advance\dynkin at rank by 2\relax%
 					}%
 				}%
 			}%
 			{E}%
 			{%
-				\advance\dynkin at rank by 2\relax%
+				\global\advance\dynkin at rank by 2\relax%
 			}%
 		}%
 	\fi%
+	\global\dynkin at rank@minus at one\the\dynkin at rank\relax%
+	\global\advance\dynkin at rank@minus at one by -1\relax%
+	\global\dynkin at rank@minus at two\the\dynkin at rank@minus at one\relax%
+	\global\advance\dynkin at rank@minus at two by -1\relax%
+	\global\dynkin at rank@minus at three\the\dynkin at rank@minus at two\relax%
+	\global\advance\dynkin at rank@minus at three by -1\relax%
 }%
-
-\newcount\dynkin at lenny
-
+\newcount\dynkin at lenny%
 %% \dynkin at grok@series
 %% Interprets the dynkin at series, to see if it is extended, twisted, and what twisted series it is.
 \NewDocumentCommand\dynkin at grok@series{}%
@@ -2573,10 +2732,7 @@
 	}%
 	[\dynkin at error@series]%
 }%
-
-
-\newif\ifdynkin at Satake@diagram
-
+\newif\ifdynkin at Satake@diagram%
 \NewDocumentCommand\dynkin at grok@Satake at codes{}%
 {%
 	\ifdynkin at is@extended%
@@ -2592,14 +2748,46 @@
 		{%
 			\IfStrEqCase{\dynkin at string}%
 			{%
-				{even}{\gdef\dynkin at string{ddd.ddd}\global\dynkin at oddfalse\global\dynkin at Satake@diagramfalse}%
-				{odd}{\gdef\dynkin at string{dddd.ddd}\global\dynkin at oddtrue\global\dynkin at Satake@diagramfalse}%
-				{}{\gdef\dynkin at string{dd.dd}\global\dynkin at Satake@diagramfalse}%
-				{I}{	\gdef\dynkin at string{oo.oo}}%
-				{II}{\gdef\dynkin at string{*o*.o*}}%
-				{IIIa}{\global\dynkin at ply=2\relax\gdef\dynkin at string{oo.o**.**o.oo}}%
-				{IIIb}{\global\dynkin at ply=2\relax\gdef\dynkin at string{oo.ooo.oo}}%
-				{IV}	{\global\dynkin at ply=2\relax\gdef\dynkin at string{o*.*o}}%
+				{even}%
+				{%
+					\gdef\dynkin at string{ddd.ddd}%
+					\global\dynkin at oddfalse%
+					\global\dynkin at Satake@diagramfalse%
+				}%
+				{odd}%
+				{%
+					\gdef\dynkin at string{dddd.ddd}%
+					\global\dynkin at oddtrue%
+					\global\dynkin at Satake@diagramfalse%
+				}%
+				{}%
+				{%
+					\gdef\dynkin at string{dd.dd}%
+					\global\dynkin at Satake@diagramfalse%
+				}%
+				{I}
+				{%
+					\gdef\dynkin at string{oo.oo}%
+				}%
+				{II}%
+				{%
+					\gdef\dynkin at string{*o*.o*}%
+				}%
+				{IIIa}%
+				{%
+					\global\dynkin at ply=2\relax%
+					\gdef\dynkin at string{oo.o**.**o.oo}%
+				}%
+				{IIIb}%
+				{%
+					\global\dynkin at ply=2\relax%
+					\gdef\dynkin at string{oo.ooo.oo}%
+				}%
+				{IV}%
+				{%
+					\global\dynkin at ply=2\relax%
+					\gdef\dynkin at string{o*.*o}%
+				}%
 			}%
 			[\global\dynkin at Satake@diagramfalse]%
 		}%
@@ -2747,7 +2935,6 @@
 		\xdef\dynkin at string{\temp}%
 	\fi%
 }%
-
 \NewDocumentCommand\dynkin at error@not at in@tikz{}
 {%
 	\ClassError%
@@ -2755,8 +2942,6 @@
 		{Dynkin diagram macros called outside of tikz environment}%
 		{}%
 }%
-
-
 \NewDocumentCommand\dynkin at error@root at ordering{}
 {%
 	\ClassError%
@@ -2765,16 +2950,14 @@
 		in Dynkin diagram \dynkin at user@series{\dynkin at user@string}}%
 		{}%
 }%
-
 \NewDocumentCommand\dynkin at error@rank{}%
 {%
 	\ClassError%
 		{Dynkin diagrams}%
-		{Unrecognized \dynkin at user@series\spacy series rank: 
+		{Unrecognized \dynkin at user@series\dynkin at spacy series rank: 
 		``\the\dynkin at rank'' in Dynkin diagram \dynkin at user@series{\dynkin at user@string}}%
 		{}%
 }%
-
 \NewDocumentCommand\dynkin at error@series{}%
 {%
 	\ClassError%
@@ -2783,8 +2966,6 @@
 		in Dynkin diagram \dynkin at user@series{\dynkin at user@string}}%
 		{}%
 }%
-
-
 \NewDocumentCommand\dynkin at error@ply{}
 {%
 	\ClassError%
@@ -2793,8 +2974,6 @@
 		in Dynkin diagram \dynkin at user@series{\dynkin at user@string}}%
 		{}%
 }%
-
-
 %% \check at Dynkin@Roots
 %% Raises error messages for erroneous input in the list of Dynkin roots.
 \NewDocumentCommand\check at Dynkin@Roots{}%
@@ -2832,7 +3011,6 @@
 		{Unrecognized label ordering: ``#1'' }%
 		{}]%
 }%
-
 %% \check at Dynkin@diagram
 %% Raises error messages for erroneous inputs.
 \NewDocumentCommand\check at Dynkin@diagram{}%
@@ -2897,35 +3075,29 @@
 %% in Bourbaki ordering. We store the roots in the current ordering.
 %% So when we draw edges, we need to convert from the Bourbaki ordering each time.
 %% We store the conversions here.
-\newcount\RootNumber
-\newcount\@fromRoot
-\newcount\@toRoot
-\newcount\drmo
-
+\newcount\dynkin at Root@Number%
+\newcount\@dynkin at from@root%
+\newcount\@dynkin at to@root%
 %% \swapRootIfInLastTwoRoots{<r>}
-%% If the input root <r> is one of the last two roots, then put the other in \RootNumber, otherwise
-%% let \RootNumber be <r>.
+%% If the input root <r> is one of the last two roots, then put the other in \dynkin at Root@Number, otherwise
+%% let \dynkin at Root@Number be <r>.
 \NewDocumentCommand\swapRootIfInLastTwoRoots{m}%
 {%
 	\ifnum\dynkin at rank>1%
-		\drmo=\dynkin at rank\relax%
-		\advance\drmo by -1\relax%
 		\ifnum\dynkin at rank=#1%
-			\global\RootNumber=\the\drmo\relax%
+			\global\dynkin at Root@Number=\the\dynkin at rank@minus at one\relax%
 		\else%
-			\ifnum\drmo=#1%
-				\global\RootNumber=\the\dynkin at rank\relax%
+			\ifnum\dynkin at rank@minus at one=#1%
+				\global\dynkin at Root@Number=\the\dynkin at rank\relax%
 			\else%
-				\global\RootNumber=#1\relax%
+				\global\dynkin at Root@Number=#1\relax%
 			\fi%
 		\fi%
 	\else%
-		\global\RootNumber=#1\relax%
+		\global\dynkin at Root@Number=#1\relax%
 	\fi%
 }%
-
-
-\newcount\dynkin at r
+\newcount\dynkin at r%
 \NewDocumentCommand\swap at if@in at last@two{mm}%
 {%
 	\global\dynkin at r=#2\relax%
@@ -2940,9 +3112,7 @@
 	\fi%
 	\the\dynkin at r%
 }%
-
-\newcount\dynkin at root@no
-
+\newcount\dynkin at root@no%
 \NewDocumentCommand\dynkinOrderToBourbaki{mmmmm}%
 %% \dynkinOrderToBourbaki{series}{rank}{from order}{root}{counter to store result}
 %% Stores the number of root in Bourbaki order which corresponds to
@@ -2992,18 +3162,33 @@
 					\ifnum#2=6%
 							\IfStrEqCase{#3}%
 							{%
-								{Adams}{\global#5=%
-									\stringCharacterInPosition{135426}{#4}%
-									\relax}%
-								{Carter}{\global#5=%
-									\stringCharacterInPosition{134256}{#4}%
-									\relax}%
-								{Dynkin}{\global#5=%
+								{Adams}%
+								{%
+									\global#5=%
+									\stringCharacterInPosition%
+									{135426}{#4}%
+									\relax%
+								}%
+								{Carter}%
+								{%
+									\global#5=%
+									\stringCharacterInPosition%
+									{134256}{#4}%
+									\relax%
+								}%
+								{Dynkin}%
+								{%
+									\global#5=%
 									\stringCharacterInPosition{134562}{#4}%
-									\relax}%
-								{Kac}{\global#5=%
-									\stringCharacterInPosition{134562}{#4}%
-									\relax}%
+									\relax%
+								}%
+								{Kac}%
+								{%
+									\global#5=%
+									\stringCharacterInPosition%
+									{134562}{#4}%
+									\relax%
+								}%
 							}%
 							[\global#5=#4\relax]%
 					\else%
@@ -3010,18 +3195,34 @@
 						\ifnum#2=7%
 							\IfStrEqCase{#3}%
 							{%
-								{Adams}{\global#5=%
-									\stringCharacterInPosition{6524317}{#4}%
-									\relax}%
-								{Carter}{\global#5=%
-									\stringCharacterInPosition{7654231}{#4}%
-									\relax}%
-								{Dynkin}{\global#5=%
-									\stringCharacterInPosition{1345672}{#4}%
-									\relax}%
-								{Kac}{\global#5=%
-									\stringCharacterInPosition{1245672}{#4}%
-									\relax}%
+								{Adams}%
+								{%
+									\global#5=%
+									\stringCharacterInPosition%
+									{6524317}{#4}%
+									\relax%
+								}%
+								{Carter}%
+								{%
+									\global#5=%
+									\stringCharacterInPosition%
+									{7654231}{#4}%
+									\relax%
+								}%
+								{Dynkin}%
+								{%
+									\global#5=%
+									\stringCharacterInPosition%
+									{1345672}{#4}%
+									\relax%
+								}%
+								{Kac}%
+								{%
+									\global#5=%
+									\stringCharacterInPosition%
+									{1245672}{#4}%
+									\relax%
+								}%
 							}%
 							[\global#5=#4\relax]%
 						\else%
@@ -3028,18 +3229,34 @@
 							\ifnum#2=8%
 								\IfStrEqCase{#3}%
 								{%
-									{Adams}{\global#5=%
-										\stringCharacterInPosition{13245678}{#4}%
-										\relax}%
-									{Carter}{\global#5=%
-										\stringCharacterInPosition{87654231}{#4}%
-										\relax}%
-									{Dynkin}{\global#5=%
-										\stringCharacterInPosition{13456782}{#4}%
-										\relax}%
-									{Kac}{\global#5=%
-										\stringCharacterInPosition{87654312}{#4}%
-										\relax}%
+									{Adams}%
+									{%
+										\global#5=%
+										\stringCharacterInPosition%
+										{13245678}{#4}%
+										\relax%
+									}%
+									{Carter}%
+									{%
+										\global#5=%
+										\stringCharacterInPosition%
+										{87654231}{#4}%
+										\relax%
+									}%
+									{Dynkin}%
+									{%
+										\global#5=%
+										\stringCharacterInPosition%
+										{13456782}{#4}%
+										\relax%
+									}%
+									{Kac}%
+									{%
+										\global#5=%
+										\stringCharacterInPosition%
+										{87654312}{#4}%
+										\relax%
+									}%
 								}%
 								[\global#5=#4\relax]%
 							\else%
@@ -3075,8 +3292,6 @@
 		[\global#5=#4\relax]%
 	}%
 }%
-
-
 \NewDocumentCommand\dynkinOrderFromBourbaki{mmmmm}%
 %% \dynkinOrderFromBourbaki{series}{rank}{root}{to order}{count to store result}
 %% Stores the number of root in <from order> which corresponds to
@@ -3126,10 +3341,34 @@
 				\ifnum#2=6%
 						\IfStrEqCase{#4}%
 						{%
-							{Adams}{\global#5=\stringCharacterInPosition{152436}{#3}\relax}%
-							{Carter}{\global#5=\stringCharacterInPosition{142356}{#3}\relax}%
-							{Dynkin}{\global#5=\stringCharacterInPosition{162345}{#3}\relax}%
-							{Kac}{\global#5=\stringCharacterInPosition{162345}{#3}\relax}%
+							{Adams}%
+							{%
+								\global#5=%
+								\stringCharacterInPosition%
+								{152436}{#3}%
+								\relax%
+							}%
+							{Carter}%
+							{%
+								\global#5=%
+								\stringCharacterInPosition%
+								{142356}{#3}%
+								\relax%
+							}%
+							{Dynkin}%
+							{%
+								\global#5=%
+								\stringCharacterInPosition%
+								{162345}{#3}%
+								\relax%
+							}%
+							{Kac}%
+							{%
+								\global#5=%
+								\stringCharacterInPosition%
+								{162345}{#3}%
+								\relax%
+							}%
 						}%
 						[\global#5=#3\relax]%
 				\else%
@@ -3136,10 +3375,30 @@
 					\ifnum#2=7%
 						\IfStrEqCase{#4}%
 						{%
-							{Adams}{\global#5=\stringCharacterInPosition{6354217}{#3}\relax}%
-							{Carter}{\global#5=\stringCharacterInPosition{7564321}{#3}\relax}%
-							{Dynkin}{\global#5=\stringCharacterInPosition{1723456}{#3}\relax}%
-							{Kac}{\global#5=\stringCharacterInPosition{1723456}{#3}\relax}%
+							{Adams}%
+							{%
+								\global#5=%
+								\stringCharacterInPosition{6354217}{#3}%
+								\relax%
+							}%
+							{Carter}%
+							{%
+								\global#5=%
+								\stringCharacterInPosition{7564321}{#3}%
+								\relax%
+							}%
+							{Dynkin}%
+							{%
+								\global#5=%
+								\stringCharacterInPosition{1723456}{#3}%
+								\relax%
+							}%
+							{Kac}%
+							{%
+								\global#5=%
+								\stringCharacterInPosition{1723456}{#3}%
+								\relax%
+							}%
 						}%
 						[\global#5=#3\relax]%
 					\else%
@@ -3146,10 +3405,34 @@
 						\ifnum#2=8%
 							\IfStrEqCase{#4}%
 							{%
-								{Adams}{\global#5=\stringCharacterInPosition{13245678}{#3}\relax}%
-								{Carter}{\global#5=\stringCharacterInPosition{86754321}{#3}\relax}%
-								{Dynkin}{\global#5=\stringCharacterInPosition{18234567}{#3}\relax}%
-								{Kac}{\global#5=\stringCharacterInPosition{78654321}{#3}\relax}%
+								{Adams}%
+								{%
+									\global#5=%
+									\stringCharacterInPosition%
+										{13245678}{#3}%
+									\relax%
+								}%
+								{Carter}%
+								{%
+									\global#5=%
+									\stringCharacterInPosition%
+									{86754321}{#3}%
+									\relax%
+								}%
+								{Dynkin}%
+								{%
+									\global#5=%
+									\stringCharacterInPosition%
+									{18234567}{#3}%
+									\relax%
+								}%
+								{Kac}%
+								{%
+									\global#5=%
+									\stringCharacterInPosition%
+									{78654321}{#3}%
+									\relax%
+								}%
 							}%
 							[\global#5=#3\relax]%
 						\else%
@@ -3163,7 +3446,13 @@
 		{%
 			\IfStrEqCase{#4}%
 			{%
-				{Adams}{\global#5=\stringCharacterInPosition{4321}{#3}\relax}%
+				{Adams}%
+				{%
+					\global#5=%
+					\stringCharacterInPosition%
+					{4321}{#3}%
+					\relax%
+				}%
 			}%
 			[\global#5=#3\relax]%
 		}%
@@ -3171,8 +3460,18 @@
 		{%
 			\IfStrEqCase{#4}%
 			{%
-				{Carter}{\global#5=\stringCharacterInPosition{21}{#3}\relax}%
-				{Dynkin}{\global#5=\stringCharacterInPosition{21}{#3}\relax}%
+				{Carter}%
+				{%
+					\global#5=%
+					\stringCharacterInPosition{21}{#3}%
+					\relax%
+				}%
+				{Dynkin}%
+				{%
+					\global#5=%
+					\stringCharacterInPosition{21}{#3}%
+					\relax%
+				}%
 			}%
 			[\global#5=#3\relax]%
 		}%
@@ -3180,10 +3479,8 @@
 	[\global#5=#3\relax]%
 	}%
 }%
-
-\newcount\dynkin at order@temp
-\newcount\dynkin at order@temp at b
-
+\newcount\dynkin at order@temp%
+\newcount\dynkin at order@temp at b%
 \NewDocumentCommand\dynkinOrder{mmD.:{Bourbaki}r:-D>.{Bourbaki}m}%
 %% \dynkinOrder <series><rank>.<from order>::<from root number>-><to order>.<storage counter>
 %% Example: \newcount\r\dynkinOrder D7.Carter::7->Bourbaki.{\r}
@@ -3195,20 +3492,18 @@
 
 %% \typeDynkinOrder <series><rank>.<from order>::<from root number>-><to order>.
 %% Example: \typeDynkinOrder D7.Carter::7->Bourbaki.
-\newcount\tempDynkinReorder
+\newcount\tempDynkinReorder%
 \NewDocumentCommand\typeDynkinOrder{mmD.:{Bourbaki}r:-D>.{Bourbaki}}%
 {%
 \dynkinOrder{#1}{#2}.#3::#4->#5.{\tempDynkinReorder}\the\tempDynkinReorder%
 }%
-
-
 %% \convertRootNumber{<n>}
-%% Converts <n> from Bourbaki ordering to the current ordering, storing the result in a count called \RootNumber.
+%% Converts <n> from Bourbaki ordering to the current ordering, storing the result in a count called \dynkin at Root@Number.
 \NewDocumentCommand\convertRootNumber{m}%
 {%
 	\IfStrEq{#1}{0}%
 	{%
-		\global\RootNumber=0\relax%
+		\global\dynkin at Root@Number=0\relax%
 	}%
 	{%
 	\IfStrEqCase{\dynkin at series}%
@@ -3219,14 +3514,14 @@
 			{%
 				{TestOrder}%
 				{%
-					\global\RootNumber=#1\relax%
-					\global\advance\RootNumber by 1\relax%
-					\ifnum\RootNumber>\the\dynkin at rank%
-						\global\RootNumber=1\relax%
+					\global\dynkin at Root@Number=#1\relax%
+					\global\advance\dynkin at Root@Number by 1\relax%
+					\ifnum\dynkin at Root@Number>\the\dynkin at rank%
+						\global\dynkin at Root@Number=1\relax%
 					\fi%
 				}%
 			}%
-			[\global\RootNumber=#1\relax]%
+			[\global\dynkin at Root@Number=#1\relax]%
 		}%
 		{D}%
 		{%
@@ -3236,53 +3531,53 @@
 				{Dynkin}{\swapRootIfInLastTwoRoots{#1}}%
 				{Kac}{%
 					\ifdynkin at is@twisted
-						\global\RootNumber=#1\relax%
+						\global\dynkin at Root@Number=#1\relax%
 					\else
 						\ifdynkin at is@extended
-							\global\RootNumber=#1\relax%
+							\global\dynkin at Root@Number=#1\relax%
 						\else
 							\swapRootIfInLastTwoRoots{#1}
 						\fi
 					\fi}%
 			}%
-			[\global\RootNumber=#1\relax]%
+			[\global\dynkin at Root@Number=#1\relax]%
 		}%
 		{E}%
 		{%
 			\ifdynkin at is@twisted%
-				\global\RootNumber=#1\relax%
+				\global\dynkin at Root@Number=#1\relax%
 			\else%
 				\ifnum\dynkin at rank=6%
 						\IfStrEqCase{\dynkin at ordering}%
 						{%
-							{Adams}{\global\RootNumber=\stringCharacterInPosition{152436}{#1}\relax}%
-							{Carter}{\global\RootNumber=\stringCharacterInPosition{142356}{#1}\relax}%
-							{Dynkin}{\global\RootNumber=\stringCharacterInPosition{162345}{#1}\relax}%
-							{Kac}{\global\RootNumber=\stringCharacterInPosition{162345}{#1}\relax}%
+							{Adams}{\global\dynkin at Root@Number=\stringCharacterInPosition{152436}{#1}\relax}%
+							{Carter}{\global\dynkin at Root@Number=\stringCharacterInPosition{142356}{#1}\relax}%
+							{Dynkin}{\global\dynkin at Root@Number=\stringCharacterInPosition{162345}{#1}\relax}%
+							{Kac}{\global\dynkin at Root@Number=\stringCharacterInPosition{162345}{#1}\relax}%
 						}%
-						[\global\RootNumber=#1\relax]%
+						[\global\dynkin at Root@Number=#1\relax]%
 				\else%
 					\ifnum\dynkin at rank=7%
 						\IfStrEqCase{\dynkin at ordering}%
 						{%
-							{Adams}{\global\RootNumber=\stringCharacterInPosition{6354217}{#1}\relax}%
-							{Carter}{\global\RootNumber=\stringCharacterInPosition{7564321}{#1}\relax}%
-							{Dynkin}{\global\RootNumber=\stringCharacterInPosition{1723456}{#1}\relax}%
-							{Kac}{\global\RootNumber=\stringCharacterInPosition{1723456}{#1}\relax}%
+							{Adams}{\global\dynkin at Root@Number=\stringCharacterInPosition{6354217}{#1}\relax}%
+							{Carter}{\global\dynkin at Root@Number=\stringCharacterInPosition{7564321}{#1}\relax}%
+							{Dynkin}{\global\dynkin at Root@Number=\stringCharacterInPosition{1723456}{#1}\relax}%
+							{Kac}{\global\dynkin at Root@Number=\stringCharacterInPosition{1723456}{#1}\relax}%
 						}%
-						[\global\RootNumber=#1\relax]%			
+						[\global\dynkin at Root@Number=#1\relax]%			
 					\else%
 						\ifnum\dynkin at rank=8%
 							\IfStrEqCase{\dynkin at ordering}%
 							{%
-								{Adams}{\global\RootNumber=\stringCharacterInPosition{13245678}{#1}\relax}%
-								{Carter}{\global\RootNumber=\stringCharacterInPosition{86754321}{#1}\relax}%
-								{Dynkin}{\global\RootNumber=\stringCharacterInPosition{18234567}{#1}\relax}%
-								{Kac}{\global\RootNumber=\stringCharacterInPosition{78654321}{#1}\relax}%
+								{Adams}{\global\dynkin at Root@Number=\stringCharacterInPosition{13245678}{#1}\relax}%
+								{Carter}{\global\dynkin at Root@Number=\stringCharacterInPosition{86754321}{#1}\relax}%
+								{Dynkin}{\global\dynkin at Root@Number=\stringCharacterInPosition{18234567}{#1}\relax}%
+								{Kac}{\global\dynkin at Root@Number=\stringCharacterInPosition{78654321}{#1}\relax}%
 							}%
-							[\global\RootNumber=#1\relax]%
+							[\global\dynkin at Root@Number=#1\relax]%
 						\else%
-							\global\RootNumber=#1\relax%
+							\global\dynkin at Root@Number=#1\relax%
 						\fi%
 					\fi%
 				\fi%
@@ -3292,36 +3587,36 @@
 		{%
 			\IfStrEqCase{\dynkin at ordering}%
 			{%
-				{Adams}{\global\RootNumber=\stringCharacterInPosition{4321}{#1}\relax}%
+				{Adams}{\global\dynkin at Root@Number=\stringCharacterInPosition{4321}{#1}\relax}%
 			}%
-			[\global\RootNumber=#1\relax]%
+			[\global\dynkin at Root@Number=#1\relax]%
 		}%
 		{G}%
 		{%
 			\IfStrEqCase{\dynkin at ordering}%
 			{%
-				{Carter}{\global\RootNumber=\stringCharacterInPosition{21}{#1}\relax}%
-				{Dynkin}{\global\RootNumber=\stringCharacterInPosition{21}{#1}\relax}%
+				{Carter}{\global\dynkin at Root@Number=\stringCharacterInPosition{21}{#1}\relax}%
+				{Dynkin}{\global\dynkin at Root@Number=\stringCharacterInPosition{21}{#1}\relax}%
 			}%
-			[\global\RootNumber=#1\relax]%
+			[\global\dynkin at Root@Number=#1\relax]%
 		}%
 	}%
-	[\global\RootNumber=#1\relax]%
+	[\global\dynkin at Root@Number=#1\relax]%
 	}%
 }%
 
 %% \convertRootPair{<p>}{<q>}
-%% Stores conversions in \@fromRoot and \@toRoot.
+%% Stores conversions in \@dynkin at from@root and \@dynkin at to@root.
 \NewDocumentCommand\convertRootPair{mm}
 {%
 	\convertRootNumber{#1}%
-	\global\@fromRoot=\RootNumber\relax%
+	\global\@dynkin at from@root=\dynkin at Root@Number\relax%
 	\convertRootNumber{#2}%
-	\global\@toRoot=\RootNumber\relax%
+	\global\@dynkin at to@root=\dynkin at Root@Number\relax%
 }%
 %% \testbit{<n>}{<b>}
 %% If bit number <b> of <n> is 1 then set bittrue else set bitfalse
-\newif\ifbit
+\newif\ifdynkin at bit
 \newcount\test at bit@a
 \newcount\test at bit@b
 \newif\iftest at bit@more
@@ -3337,9 +3632,9 @@
 			\ifnum\test at bit@b=0\relax%
 				\global\test at bit@morefalse%
 				\ifodd\test at bit@a\empty%
-					\global\bittrue%
+					\global\dynkin at bittrue%
 				\else%
-					\global\bitfalse%
+					\global\dynkin at bitfalse%
 				\fi%
 			\else%
 				\divide\test at bit@a by 2\relax%
@@ -3379,6 +3674,7 @@
 	\advance\dynkin at where by 1\relax%
 	\replaceNthChar{\dynkin at roots}{\the\dynkin at where}{x}%
 }%
+\newcount\dynkin at nodes@minus at one%
 \NewDocumentCommand\dynkin at cross@out at parabolics{}%
 {%
 	\IfInteger{\dynkin at parabolic}%
@@ -3387,12 +3683,12 @@
 		{%
 		}%
 		{%
-			\drmo=\the\dynkin at nodes\relax%
-			\advance\drmo by -1\relax%
-			\foreach \b in {0,...,\the\drmo}%
+			\dynkin at nodes@minus at one=\the\dynkin at nodes\relax%
+			\advance\dynkin at nodes@minus at one by -1\relax%
+			\foreach \b in {0,...,\the\dynkin at nodes@minus at one}%
 			{%
 				\testbit{\dynkin at parabolic}{\b}%
-				\ifbit\dynkin at put@cross{\b}\fi%
+				\ifdynkin at bit\dynkin at put@cross{\b}\fi%
 			}%
 		}%
 	}%
@@ -3406,11 +3702,10 @@
 		\convertRootNumber{#2}%
 	}%
 	{%
-		\global\RootNumber=#2\relax%
+		\global\dynkin at Root@Number=#2\relax%
 	}%
-	\node (Dynkin current) at (\dynkin at root@name \the\RootNumber){};%
+	\node (Dynkin current) at (\dynkin at root@name \the\dynkin at Root@Number){};%
 }%
-
 %% \dynkinPlaceRootHere{<n>}{<L>}{<L*>}
 %% \dynkinPlaceRootHere*{<n>}{<L>}{<L*>}
 %% Tell TikZ to place node <n> for a root of a Dynkin diagram at the current
@@ -3426,17 +3721,14 @@
 		\convertRootNumber{#2}%
 	}%
 	{%
-		\global\RootNumber=#2\relax%
+		\global\dynkin at Root@Number=#2\relax%
 	}%
-	\node (\dynkin at root@name \the\RootNumber) at (Dynkin current) {};%
-	\dynkin at put@direction{\the\RootNumber}{#3}%
-	\dynkin at put@direction*{\the\RootNumber}{#4}%
+	\node (\dynkin at root@name \the\dynkin at Root@Number) at (Dynkin current) {};%
+	\dynkin at put@direction{\the\dynkin at Root@Number}{#3}%
+	\dynkin at put@direction*{\the\dynkin at Root@Number}{#4}%
 }%
-
-
 \newif\ifdynkin at hex@grid
 \dynkin at hex@gridtrue
-
 %% \dynkinPlaceRootRelativeTo{<p>}{<q>}{<d>}{<L>}{<L*>}
 %% \dynkinPlaceRootRelativeTo*{<p>}{<q>}{<d>}{<L>}{<L*>}
 %% Tell TikZ to place node <p> for a root of a Dynkin diagram at a location
@@ -3451,16 +3743,15 @@
 %% Starred form is in Bourbaki root ordering; otherwise default ordering.
 \NewDocumentCommand\dynkinPlaceRootRelativeTo{smmmmm}%
 {%
-\xdef\ssss{#2}
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#2}%
 	}%
 	{%
-		\global\@fromRoot=#3\relax%
-		\global\@toRoot=#2\relax%
+		\global\@dynkin at from@root=#3\relax%
+		\global\@dynkin at to@root=#2\relax%
 	}%
-	\dynkin at is@edge at indefinite{\@fromRoot}{\@toRoot}%
+	\dynkin at is@edge at indefinite{\@dynkin at from@root}{\@dynkin at to@root}%
 	\ifdynkin at is@indefinite at edge%
 		\xdef\dynkin at distance{\dynkin at indefinite@edge at length}
 	\else
@@ -3473,16 +3764,56 @@
 			{east}{\xdef\xd{\dynkin at distance}\xdef\yd{0}}%
 			{south}{\xdef\xd{0}\xdef\yd{-\dynkin at distance}}%
 			{north}{\xdef\xd{0}\xdef\yd{\dynkin at distance}}%
-			{southeast}{\xdef\xd{cos(-60)*\dynkin at distance}\xdef\yd{sin(-60)*\dynkin at distance}}%
-			{southwest}{\xdef\xd{cos(240)*\dynkin at distance}\xdef\yd{sin(240)*\dynkin at distance}}%
-			{northeast}{\xdef\xd{cos(60)*\dynkin at distance}\xdef\yd{sin(60)*\dynkin at distance}}%
-			{northwest}{\xdef\xd{cos(120)*\dynkin at distance}\xdef\yd{sin(120)*\dynkin at distance}}%
-			{southeastfold}{\xdef\xd{\dynkin at fold@radius}\xdef\yd{-\dynkin at fold@radius}}%
-			{southwestfold}{\xdef\xd{-\dynkin at fold@radius}\xdef\yd{-\dynkin at fold@radius}}%
-			{northeastfold}{\xdef\xd{\dynkin at fold@radius}\xdef\yd{\dynkin at fold@radius}}%
-			{northwestfold}{\xdef\xd{-\dynkin at fold@radius}\xdef\yd{\dynkin at fold@radius}}%
-			{northfold}{\xdef\xd{0}\xdef\yd{2*\dynkin at fold@radius}}%
-			{southfold}{\xdef\xd{0}\xdef\yd{-2*\dynkin at fold@radius}}%
+			{southeast}%
+			{%
+				\xdef\xd{cos(-60)*\dynkin at distance}%
+				\xdef\yd{sin(-60)*\dynkin at distance}%
+			}%
+			{southwest}%
+			{%
+				\xdef\xd{cos(240)*\dynkin at distance}%
+				\xdef\yd{sin(240)*\dynkin at distance}%
+			}%
+			{northeast}%
+			{%
+				\xdef\xd{cos(60)*\dynkin at distance}%
+				\xdef\yd{sin(60)*\dynkin at distance}%
+			}%
+			{northwest}%
+			{%
+				\xdef\xd{cos(120)*\dynkin at distance}%
+				\xdef\yd{sin(120)*\dynkin at distance}%
+			}%
+			{southeastfold}%
+			{%
+				\xdef\xd{\dynkin at fold@radius}%
+				\xdef\yd{-\dynkin at fold@radius}%
+			}%
+			{southwestfold}%
+			{%
+				\xdef\xd{-\dynkin at fold@radius}%
+				\xdef\yd{-\dynkin at fold@radius}%
+			}%
+			{northeastfold}%
+			{%
+				\xdef\xd{\dynkin at fold@radius}%
+				\xdef\yd{\dynkin at fold@radius}%
+			}%
+			{northwestfold}%
+			{%
+				\xdef\xd{-\dynkin at fold@radius}%
+				\xdef\yd{\dynkin at fold@radius}%
+			}%
+			{northfold}%
+			{%
+				\xdef\xd{0}%
+				\xdef\yd{2*\dynkin at fold@radius}%
+			}%
+			{southfold}%
+			{%
+				\xdef\xd{0}%
+				\xdef\yd{-2*\dynkin at fold@radius}%
+			}%
 		}%
 	\else%
 		\IfStrEqCase{#4}%
@@ -3491,20 +3822,63 @@
 			{east}{\xdef\xd{\dynkin at distance}\xdef\yd{0}}%
 			{south}{\xdef\xd{0}\xdef\yd{-\dynkin at distance}}%
 			{north}{\xdef\xd{0}\xdef\yd{\dynkin at distance}}%
-			{southeast}{\xdef\xd{cos(-45)*\dynkin at distance}\xdef\yd{sin(-45)*\dynkin at distance}}%
-			{southwest}{\xdef\xd{cos(225)*\dynkin at distance}\xdef\yd{sin(225)*\dynkin at distance}}%
-			{northeast}{\xdef\xd{cos(45)*\dynkin at distance}\xdef\yd{sin(45)*\dynkin at distance}}%
-			{northwest}{\xdef\xd{cos(135)*\dynkin at distance}\xdef\yd{sin(135)*\dynkin at distance}}%
-			{southeastfold}{\xdef\xd{\dynkin at fold@radius}\xdef\yd{-\dynkin at fold@radius}}%
-			{southwestfold}{\xdef\xd{-\dynkin at fold@radius}\xdef\yd{-\dynkin at fold@radius}}%
-			{northeastfold}{\xdef\xd{\dynkin at fold@radius}\xdef\yd{\dynkin at fold@radius}}%
-			{northwestfold}{\xdef\xd{-\dynkin at fold@radius}\xdef\yd{\dynkin at fold@radius}}%
-			{northfold}{\xdef\xd{0}\xdef\yd{2*\dynkin at fold@radius}}%
-			{southfold}{\xdef\xd{0}\xdef\yd{-2*\dynkin at fold@radius}}%
+			{southeast}%
+			{%
+				\xdef\xd{cos(-45)*\dynkin at distance}%
+				\xdef\yd{sin(-45)*\dynkin at distance}%
+			}%
+			{southwest}%
+			{%
+				\xdef\xd{cos(225)*\dynkin at distance}%
+				\xdef\yd{sin(225)*\dynkin at distance}%
+			}%
+			{northeast}%
+			{%
+				\xdef\xd{cos(45)*\dynkin at distance}%
+				\xdef\yd{sin(45)*\dynkin at distance}%
+			}%
+			{northwest}%
+			{%
+				\xdef\xd{cos(135)*\dynkin at distance}%
+				\xdef\yd{sin(135)*\dynkin at distance}%
+			}%
+			{southeastfold}%
+			{%
+				\xdef\xd{\dynkin at fold@radius}%
+				\xdef\yd{-\dynkin at fold@radius}%
+			}%
+			{southwestfold}%
+			{%
+				\xdef\xd{-\dynkin at fold@radius}%
+				\xdef\yd{-\dynkin at fold@radius}%
+			}%
+			{northeastfold}%
+			{%
+				\xdef\xd{\dynkin at fold@radius}%
+				\xdef\yd{\dynkin at fold@radius}%
+			}%
+			{northwestfold}%
+			{%
+				\xdef\xd{-\dynkin at fold@radius}%
+				\xdef\yd{\dynkin at fold@radius}%
+			}%
+			{northfold}%
+			{%
+				\xdef\xd{0}%
+				\xdef\yd{2*\dynkin at fold@radius}%
+			}%
+			{southfold}%
+			{%
+				\xdef\xd{0}%
+				\xdef\yd{-2*\dynkin at fold@radius}%
+			}%
 		}%
 	\fi
-	\node (Dynkin current) at ($(\dynkin at root@name \the\@fromRoot)+({\xd},{\yd})$){};
-	\dynkinPlaceRootHere{\the\@toRoot}{#5}{#6}%
+	\node (Dynkin current) 
+		at 
+		($(\dynkin at root@name \the\@dynkin at from@root)%
+		+({\xd},{\yd})$){};
+	\dynkinPlaceRootHere{\the\@dynkin at to@root}{#5}{#6}%
 }%
 
 % Jump the current location by a certain multiple of the fold radius.
@@ -3639,18 +4013,24 @@
 {%
 	\convertRootPair{#1}{#2}%
 	\ifdynkin at Satake@diagram%
-		\StrChar{\dynkin at roots}{\the\@fromRoot}[\my at root@marker]%
+		\StrChar{\dynkin at roots}%
+			{\the\@dynkin at from@root}%
+			[\my at root@marker]%
 		\IfStrEq{\my at root@marker}{o}%
 		{%
-				\StrChar{\dynkin at roots}{\the\@toRoot}[\my at other@root at marker]%
+				\StrChar{\dynkin at roots}%
+					{\the\@dynkin at to@root}%
+					[\my at other@root at marker]%
 				\IfStrEq{\my at other@root at marker}{o}%
 				{%				
-					\dynkinFold{\the\@fromRoot}{\the\@toRoot}%
+					\dynkinFold%
+						{\the\@dynkin at from@root}%
+						{\the\@dynkin at to@root}%
 				}%
 				{}%
 		}{}%
 	\else%
-		\dynkinFold{\the\@fromRoot}{\the\@toRoot}%
+		\dynkinFold{\the\@dynkin at from@root}{\the\@dynkin at to@root}%
 	\fi%
 }%
 \newcount\pipebmo
@@ -3665,7 +4045,7 @@
 {%
 	\start at pipe=#1\relax%
 	\pipe at end=#2\relax%
-	\ifnum\start at pipe<\the\pipe at end%
+	\ifnum\start at pipe<\the\pipe at end\relax%
 		\global\pipebmo=\the\start at pipe\relax%
 		\global\pipefpo=\the\start at pipe\relax%
 		\global\advance\pipefpo by 1\relax%
@@ -3701,15 +4081,32 @@
 	\advance\dynkin at nrts by -#1\relax%
 	\ifodd\dynkin at nrts%
 		\global\advance\dynkin at afterfold by 1\relax%
-		\dynkinPlaceRootRelativeTo*{\the\dynkin at hpo}{\the\dynkin at h}{southeastfold}{right}{left}%
-		\dynkinEdge*{RightDownArc}{\the\dynkin at h}{\the\dynkin at hpo}%
-		\dynkinPlaceRootRelativeTo*{\the\dynkin at afterfold}{\the\dynkin at hpo}{southwestfold}{below}{above right}%
-		\dynkinEdge*{RightUpArc}{\the\dynkin at afterfold}{\the\dynkin at hpo}%
+		\dynkinPlaceRootRelativeTo*%
+			{\the\dynkin at hpo}%
+			{\the\dynkin at h}%
+			{southeastfold}{right}{left}%
+		\dynkinEdge*{RightDownArc}%
+			{\the\dynkin at h}%
+			{\the\dynkin at hpo}%
+		\dynkinPlaceRootRelativeTo*%
+			{\the\dynkin at afterfold}%
+			{\the\dynkin at hpo}%
+			{southwestfold}%
+			{below}{above right}%
+		\dynkinEdge*{RightUpArc}%
+			{\the\dynkin at afterfold}%
+			{\the\dynkin at hpo}%
 	\else
-		\dynkinPlaceRootRelativeTo*{\the\dynkin at afterfold}{\the\dynkin at h}{southfold}{below}{above right}%
-		\dynkinEdge*{SemiCircle}{\the\dynkin at h}{\the\dynkin at afterfold}%
+		\dynkinPlaceRootRelativeTo*%
+			{\the\dynkin at afterfold}%
+			{\the\dynkin at h}%
+			{southfold}{below}{above right}%
+		\dynkinEdge*{SemiCircle}%
+			{\the\dynkin at h}%
+			{\the\dynkin at afterfold}%
 	\fi
-	\dynkin at pipe{\the\dynkin at afterfold}{#2}{west}{below}{above right}
+	\dynkin at pipe{\the\dynkin at afterfold}%
+		{#2}{west}{below}{above right}
 	\ifdynkin at arrows%
 		\dynkin at countdown=#2\relax%
 		\foreach \dynkin at b in {#1,...,\the\dynkin at h}%
@@ -3736,7 +4133,9 @@
 	\else%
 		\dynkinPlaceRootHere*{1}{below}{above}%
 		\ifnum\dynkin at rank>1%
-			\dynkin at pipe{1}{\the\dynkin at rank}{east}{below}{above}%
+			\dynkin at pipe{1}%
+				{\the\dynkin at rank}%
+				{east}{below}{above}%
 		\fi%
 	\fi%
 }%
@@ -3747,12 +4146,11 @@
 	\ifnum\dynkin at rank<2
 		\Adynkin
 	\else
-		\newcount\drmo%
-		\drmo=\the\dynkin at rank\relax%
-		\advance\drmo by -1\relax%
 		\ifdynkin at Coxeter%
 			\Adynkin%
-			\dynkinEdgeLabel{\the\drmo}{\the\dynkin at rank}{4}%
+			\dynkinEdgeLabel%
+				{\the\dynkin at rank@minus at one}%
+				{\the\dynkin at rank}{4}%
 		\else
 			% Create the roots.
 			\ifnum\dynkin at ply>1%
@@ -3759,22 +4157,30 @@
 				\ifnum\dynkin at rank>3%
 					\dynkin at jump{1}%
 					\dynkinPlaceRootHere*{1}{above}{below right}%
-					\dynkinPlaceRootRelativeTo*{2}{1}{east}{above}{below right}%
-					\dynkin at fold{2}{\the\drmo}%
-					\dynkinPlaceRootRelativeTo*{\the\dynkin at rank}{\the\drmo}{west}{below}{above right}%
-					\dynkinEdge*{DoubleEdge}{\the\drmo}{\the\dynkin at rank}%
+					\dynkinPlaceRootRelativeTo*%
+						{2}{1}%
+						{east}{above}{below right}%
+					\dynkin at fold{2}{\the\dynkin at rank@minus at one}%
+					\dynkinPlaceRootRelativeTo*%
+						{\the\dynkin at rank}{\the\dynkin at rank@minus at one}%
+						{west}{below}{above right}%
+					\dynkinEdge*{DoubleEdge}%
+						{\the\dynkin at rank@minus at one}{\the\dynkin at rank}%
 					\dynkinEdge*{SingleEdge}{1}{2}%
 				\else%
 					\ifnum\dynkin at rank=2%
 						\dynkin at jump{1}%
 						\dynkinPlaceRootHere*{1}{above}{below right}%
-						\dynkinPlaceRootRelativeTo*{2}{1}{southfold}{below}{above right}%
+						\dynkinPlaceRootRelativeTo*{2}{1}%
+							{southfold}{below}{above right}%
 						\dynkinEdge*{DoubleDownRightSemiCircle}{1}{2}%
 					\else%
 						\dynkin at jump{1}%
 						\dynkinPlaceRootHere*{1}{above}{below right}%
-						\dynkinPlaceRootRelativeTo*{2}{1}{southeastfold}{right}{left}%
-						\dynkinPlaceRootRelativeTo*{3}{2}{southwestfold}{below}{above right}%
+						\dynkinPlaceRootRelativeTo*{2}{1}%
+							{southeastfold}{right}{left}%
+						\dynkinPlaceRootRelativeTo*{3}{2}%
+							{southwestfold}{below}{above right}%
 						\dynkinEdge*{RightDownArc}{1}{2}%
 						\dynkinEdge*{DoubleDownLeftArc}{2}{3}%
 					\fi%
@@ -3781,9 +4187,14 @@
 				\fi%
 			\else%
 				\dynkinPlaceRootHere*{1}{below}{above}
-				\dynkin at pipe{1}{\the\drmo}{east}{below}{above}
-				\dynkinPlaceRootRelativeTo*{\the\dynkin at rank}{\the\drmo}{east}{below}{above}
-				\dynkinEdge*{DoubleEdge}{\the\drmo}{\the\dynkin at rank}%
+				\dynkin at pipe{1}{\the\dynkin at rank@minus at one}{east}{below}{above}
+				\dynkinPlaceRootRelativeTo*%
+					{\the\dynkin at rank}%
+					{\the\dynkin at rank@minus at one}%
+					{east}{below}{above}
+				\dynkinEdge*{DoubleEdge}%
+					{\the\dynkin at rank@minus at one}%
+					{\the\dynkin at rank}%
 			\fi%
 			\ifdynkin at arrows%
 				\ifnum\dynkin at ply>1%
@@ -3817,30 +4228,60 @@
 	\ifdynkin at is@extended%
 		\ifnum\dynkin at ply>1%
 			\ifnum\dynkin at rank=4%
-				\dynkinPlaceRootRelativeTo*{2}{0}{southeastfold}{left}{right}%
+				\dynkinPlaceRootRelativeTo*%
+					{2}{0}%
+					{southeastfold}%
+					{left}{right}%
 			\else%
-				\dynkinPlaceRootRelativeTo*{2}{0}{southeastfold}{below right}{above right}%
+				\dynkinPlaceRootRelativeTo*%
+					{2}{0}%
+					{southeastfold}%
+					{below right}{above right}%
 			\fi%
-			\dynkinPlaceRootRelativeTo*{1}{2}{southwestfold}{left}{above left}%
+			\dynkinPlaceRootRelativeTo*%
+				{1}{2}%
+				{southwestfold}%
+				{left}{above left}%
 		\else%	
 			\ifdynkin at left@fold%	
 				\ifnum\dynkin at rank=4%
-					\dynkinPlaceRootRelativeTo*{2}{0}{southeastfold}{left}{right}%
+					\dynkinPlaceRootRelativeTo*%
+						{2}{0}%
+						{southeastfold}%
+						{left}{right}%
 				\else%
-					\dynkinPlaceRootRelativeTo*{2}{0}{southeastfold}{below right}{above right}%
+					\dynkinPlaceRootRelativeTo*%
+						{2}{0}%
+						{southeastfold}%
+						{below right}{above right}%
 				\fi%
-				\dynkinPlaceRootRelativeTo*{1}{2}{southwestfold}{left}{above left}%
+				\dynkinPlaceRootRelativeTo*%
+					{1}{2}%
+					{southwestfold}%
+					{left}{above left}%
 			\else%
 				\ifnum\dynkin at rank=4%
 					\ifdynkin at right@fold%
-						\dynkinPlaceRootRelativeTo*{2}{0}{southeast}{left}{right}%
+						\dynkinPlaceRootRelativeTo*%
+							{2}{0}%
+							{southeast}%
+							{left}{right}%
 					\else%
-						\dynkinPlaceRootRelativeTo*{2}{0}{southeast}{below}{above}%
+						\dynkinPlaceRootRelativeTo*%
+							{2}{0}%
+							{southeast}%
+							{below}{above}%
 					\fi%
 				\else%
-					\dynkinPlaceRootRelativeTo*{2}{0}{southeast}{below right}{above right}%
+					\dynkinPlaceRootRelativeTo*%
+						{2}{0}%
+						{southeast}%
+						{below right}{above right}%
 				\fi%
-				\dynkinPlaceRootRelativeTo*{1}{2}{southwest}{left}{above left}%
+				\dynkinPlaceRootRelativeTo*%
+					{1}{2}%
+					{southwest}%
+					{left}{above left}%
 			\fi%
 		\fi%
 		\dynkinMoveToRoot*{2}%
@@ -3848,71 +4289,121 @@
 		\dynkinPlaceRootHere*{1}{below}{above}
 		\ifnum\dynkin at rank=4%
 			\ifdynkin at right@fold%
-				\dynkinPlaceRootRelativeTo*{2}{1}{east}{below}{above}%
+				\dynkinPlaceRootRelativeTo*%
+					{2}{1}%
+					{east}{below}{above}%
 			\else%			
 				\ifnum\dynkin at ply>1%
-					\dynkinPlaceRootRelativeTo*{2}{1}{east}{below left}{above left}%
+					\dynkinPlaceRootRelativeTo*%
+						{2}{1}%
+						{east}%
+						{below left}{above left}%
 				\else%
-					\dynkinPlaceRootRelativeTo*{2}{1}{east}{below left}{above left}%
+					\dynkinPlaceRootRelativeTo*%
+						{2}{1}%
+						{east}%
+						{below left}{above left}%
 				\fi%
 			\fi%
 		\else%
-			\dynkinPlaceRootRelativeTo*{2}{1}{east}{below}{above}%
+			\dynkinPlaceRootRelativeTo*%
+				{2}{1}%
+				{east}%
+				{below}{above}%
 		\fi%
 	\fi
-	\newcount\rmo%
-	\rmo=\dynkin at rank\relax%
-	\advance \rmo by -1\relax%
-	\newcount\rmt%
-	\rmt=\rmo\relax%
-	\advance\rmt by -1\relax%
-	\newcount\rmth%
-	\rmth=\rmt\relax%
-	\advance\rmth by -1\relax%
 	\ifnum\dynkin at rank>2%
 		\ifnum\dynkin at rank>5%
 			\dynkinPlaceRootRelativeTo*{3}{2}{east}{below}{above}%
 		\else%
 			\ifnum\dynkin at ply>1%
-				\dynkinPlaceRootRelativeTo*{3}{2}{east}{below left}{above left}%
+				\dynkinPlaceRootRelativeTo*%
+					{3}{2}%
+					{east}%
+					{below left}{above left}%
 			\else%
 					\ifnum\dynkin at rank=5%
 						\ifdynkin at right@fold%	
-							\dynkinPlaceRootRelativeTo*{3}{2}{east}{below left}{above left}%
+							\dynkinPlaceRootRelativeTo*%
+								{3}{2}%
+								{east}%
+								{below left}{above left}%
 						\else%
-							\dynkinPlaceRootRelativeTo*{3}{2}{east}{below left}{above left}%
+							\dynkinPlaceRootRelativeTo*%
+								{3}{2}%
+								{east}%
+								{below left}{above left}%
 						\fi%
 					\else%
-						\dynkinPlaceRootRelativeTo*{3}{2}{east}{below right}{above left}%
+						\dynkinPlaceRootRelativeTo*%
+							{3}{2}%
+							{east}%
+							{below right}{above left}%
 					\fi%
 			\fi%
 		\fi%
-		\ifnum\rmth>3%
-			\dynkin at pipe{3}{\the\rmth}{east}{below}{above}%
+		\ifnum\dynkin at rank@minus at three>3%
+			\dynkin at pipe%
+				{3}{\the\dynkin at rank@minus at three}%
+				{east}%
+				{below}{above}%
 		\fi%
-		\ifnum\rmt>3%
+		\ifnum\dynkin at rank@minus at two>3%
 			\ifnum\dynkin at ply>1%
-				\dynkinPlaceRootRelativeTo*{\rmt}{\rmth}{east}{below left}{above left}%
+				\dynkinPlaceRootRelativeTo*%
+					{\dynkin at rank@minus at two}%
+					{\dynkin at rank@minus at three}%
+					{east}%
+					{below left}{above left}%
 			\else%
 				\ifdynkin at right@fold%
-					\dynkinPlaceRootRelativeTo*{\rmt}{\rmth}{east}{below left}{above left}%
+					\dynkinPlaceRootRelativeTo*%
+						{\dynkin at rank@minus at two}%
+						{\dynkin at rank@minus at three}%
+						{east}%
+						{below left}{above left}%
 				\else%
-					\dynkinPlaceRootRelativeTo*{\rmt}{\rmth}{east}{below left}{above left}%
+					\dynkinPlaceRootRelativeTo*%
+						{\dynkin at rank@minus at two}%
+						{\dynkin at rank@minus at three}%
+						{east}%
+						{below left}{above left}%
 				\fi%
 			\fi%
-			\dynkinEdge*{SingleEdge}{\rmt}{\rmth}%
+			\dynkinEdge*{SingleEdge}%
+				{\dynkin at rank@minus at two}%
+				{\dynkin at rank@minus at three}%
 		\fi%
 		\ifnum\dynkin at ply=1%
 			\ifdynkin at right@fold%
-				\dynkinPlaceRootRelativeTo*{\the\rmo}{\the\rmt}{northeastfold}{right}{above right}%
-				\dynkinPlaceRootRelativeTo*{\the\dynkin at rank}{\the\rmt}{southeastfold}{right}{above right}%
+				\dynkinPlaceRootRelativeTo*%
+					{\the\dynkin at rank@minus at one}%
+					{\the\dynkin at rank@minus at two}%
+					{northeastfold}{right}{above right}%
+				\dynkinPlaceRootRelativeTo*%
+					{\the\dynkin at rank}%
+					{\the\dynkin at rank@minus at two}%
+					{southeastfold}{right}{above right}%
 			\else%
-				\dynkinPlaceRootRelativeTo*{\the\rmo}{\the\rmt}{northeast}{right}{above right}%
-				\dynkinPlaceRootRelativeTo*{\the\dynkin at rank}{\the\rmt}{southeast}{right}{above right}%
+				\dynkinPlaceRootRelativeTo*%
+					{\the\dynkin at rank@minus at one}%
+					{\the\dynkin at rank@minus at two}%
+					{northeast}{right}{above right}%
+				\dynkinPlaceRootRelativeTo*%
+					{\the\dynkin at rank}{\the\dynkin at rank@minus at two}%
+					{southeast}{right}{above right}%
 			\fi%
 		\else%
-			\dynkinPlaceRootRelativeTo*{\the\rmo}{\the\rmt}{northeastfold}{right}{above right}%
-			\dynkinPlaceRootRelativeTo*{\the\dynkin at rank}{\the\rmt}{southeastfold}{right}{above right}%
+			\dynkinPlaceRootRelativeTo*%
+				{\the\dynkin at rank@minus at one}%
+				{\the\dynkin at rank@minus at two}%
+				{northeastfold}%
+				{right}{above right}%
+			\dynkinPlaceRootRelativeTo*%
+				{\the\dynkin at rank}%
+				{\the\dynkin at rank@minus at two}%
+				{southeastfold}%
+				{right}{above right}%
 		\fi%
 	\fi%
 }%
@@ -3921,16 +4412,7 @@
 \NewDocumentCommand\Ddynkin at edges{}%
 {%
 	% Draw the edges.
-	\newcount\rmo%
-	\rmo=\dynkin at rank\relax%
-	\advance \rmo by -1\relax%
-	\newcount\rmt%
-	\rmt=\rmo\relax%
-	\advance\rmt by -1\relax%
-	\newcount\rmtr%
-	\rmtr=\rmt\relax%
-	\advance\rmtr by -1\relax%
-	\ifnum\dynkin at ply>1%	
+	\ifnum\dynkin at ply>1%
 		\ifdynkin at is@extended%
 			\dynkinEdge*{RightUpArc}{1}{2}%
 		\else%
@@ -3939,10 +4421,16 @@
 		\ifnum\dynkin at rank>4%
 			\dynkinEdge*{SingleEdge}{2}{3}%
 		\fi%
-		\dynkinEdge*{LeftDownArc}{\the\rmo}{\the\rmt}%
-		\dynkinEdge*{LeftUpArc}{\the\dynkin at rank}{\the\rmt}%
+		\dynkinEdge*{LeftDownArc}%
+			{\the\dynkin at rank@minus at one}%
+			{\the\dynkin at rank@minus at two}%
+		\dynkinEdge*{LeftUpArc}%
+			{\the\dynkin at rank}%
+			{\the\dynkin at rank@minus at two}%
 		\ifdynkin at arrows%
-			\dynkinRightFold*{\the\rmo}{\the\dynkin at rank}%
+			\dynkinRightFold*%
+				{\the\dynkin at rank@minus at one}%
+				{\the\dynkin at rank}%
 			\ifdynkin at is@extended%
 				\dynkinLeftFold*{0}{1}%
 			\fi%
@@ -3967,12 +4455,22 @@
 			\dynkinEdge*{SingleEdge}{1}{2}%
 		\fi%
 		\ifdynkin at right@fold%	
-				\dynkinEdge*{LeftDownArc}{\the\rmo}{\the\rmt}%
-				\dynkinEdge*{LeftUpArc}{\the\dynkin at rank}{\the\rmt}%
-				\dynkinRightFold*{\the\rmo}{\the\dynkin at rank}%
+				\dynkinEdge*{LeftDownArc}%
+					{\the\dynkin at rank@minus at one}%
+					{\the\dynkin at rank@minus at two}%
+				\dynkinEdge*{LeftUpArc}%
+					{\the\dynkin at rank}%
+					{\the\dynkin at rank@minus at two}%
+				\dynkinRightFold*%
+					{\the\dynkin at rank@minus at one}%
+					{\the\dynkin at rank}%
 		\else%
-			\dynkinEdge*{SingleEdge}{\the\rmt}{\the\rmo}%
-			\dynkinEdge*{SingleEdge}{\the\rmt}{\the\dynkin at rank}%
+			\dynkinEdge*{SingleEdge}%
+				{\the\dynkin at rank@minus at two}%
+				{\the\dynkin at rank@minus at one}%
+			\dynkinEdge*{SingleEdge}%
+				{\the\dynkin at rank@minus at two}%
+				{\the\dynkin at rank}%
 		\fi%
 	\fi%
 }%
@@ -3986,10 +4484,21 @@
 \NewDocumentCommand\DthreePly{}%
 {%
 \ifdynkin at right@fold%
-	\dynkinPlaceRootHere*{1}{below left}{above right}%
-	\dynkinPlaceRootRelativeTo*{3}{1}{east}{below left}{above right}%
-	\dynkinPlaceRootRelativeTo*{2}{3}{north}{below left}{above right}%
-	\dynkinPlaceRootRelativeTo*{4}{3}{south}{below}{above right}%
+	\dynkinPlaceRootHere*%
+		{1}%
+		{below left}{above right}%
+	\dynkinPlaceRootRelativeTo*%
+		{3}{1}%
+		{east}%
+		{below left}{above right}%
+	\dynkinPlaceRootRelativeTo*%
+		{2}{3}%
+		{north}%
+		{below left}{above right}%
+	\dynkinPlaceRootRelativeTo*%
+		{4}{3}%
+		{south}%
+		{below}{above right}%
 	\edef\old at fold@radius{\dynkin at fold@radius}%
 	\xdef\dynkin at fold@radius{\dynkin at edge@length}%
 	\dynkinEdge*{SingleEdge}{1}{3}%
@@ -4002,16 +4511,28 @@
 	\fi%
 \else%
 	\dynkinPlaceRootHere*{1}{left}{above right}%
-	\dynkinPlaceRootRelativeTo*{2}{1}{east}{below left}{above left}%
-	\dynkinPlaceRootRelativeTo*{3}{2}{northeast}{above right}{below}%
-	\dynkinPlaceRootRelativeTo*{4}{2}{southeast}{below right}{left}%
+	\dynkinPlaceRootRelativeTo*%
+		{2}{1}%
+		{east}%
+		{below left}{above left}%
+	\dynkinPlaceRootRelativeTo*%
+		{3}{2}%
+		{northeast}%
+		{above right}{below}%
+	\dynkinPlaceRootRelativeTo*%
+		{4}{2}%
+		{southeast}%
+		{below right}{left}%
 	\dynkinEdge*{SingleEdge}{1}{2}%
 	\dynkinEdge*{SingleEdge}{2}{3}%
 	\dynkinEdge*{SingleEdge}{2}{4}%
 	\begin{pgfonlayer}{Dynkin behind}%%
-		\centerarc[/Dynkin diagram/fold style](\dynkin at root@name 2)(-60:60:\dynkin at edge@length);
-		\centerarc[/Dynkin diagram/fold style](\dynkin at root@name 2)(60:180:\dynkin at edge@length);
-		\centerarc[/Dynkin diagram/fold style](\dynkin at root@name 2)(180:300:\dynkin at edge@length);
+		\centerarc[/Dynkin diagram/fold style]%
+		(\dynkin at root@name 2)(-60:60:\dynkin at edge@length);
+		\centerarc[/Dynkin diagram/fold style]%
+		(\dynkin at root@name 2)(60:180:\dynkin at edge@length);
+		\centerarc[/Dynkin diagram/fold style]%
+		(\dynkin at root@name 2)(180:300:\dynkin at edge@length);
 	\end{pgfonlayer}%%
 \fi%
 }%
@@ -4045,28 +4566,45 @@
 		\gdef\dynkin at series{D}%
 	\fi%
 }%
+\newcount\dynkin at bmo%
 \newcommand*{\Edynkin at unfolded@rank at up@to at eight}%
 {%
 	% Create the @roots.
 	\dynkinPlaceRootHere*{1}{below}{above}%
-	\dynkinPlaceRootRelativeTo*{3}{1}{east}{below}{above}%
-	\dynkinPlaceRootRelativeTo*{4}{3}{east}{below}{above right}%
+	\dynkinPlaceRootRelativeTo*%
+		{3}{1}%
+		{east}%
+		{below}{above}%
+	\dynkinPlaceRootRelativeTo*%
+		{4}{3}%
+		{east}%
+		{below}{above right}%
 	\ifdynkin at is@extended%
 		\ifnum\dynkin at rank=6%
-			\dynkinPlaceRootRelativeTo*{2}{4}{north}{right}{above right}%
+			\dynkinPlaceRootRelativeTo*%
+				{2}{4}%
+				{north}%
+				{right}{above right}%
 		\else
-			\dynkinPlaceRootRelativeTo*{2}{4}{north}{right}{above}%
+			\dynkinPlaceRootRelativeTo*%
+				{2}{4}%
+				{north}%
+				{right}{above}%
 		\fi%
 	\else%
-		\dynkinPlaceRootRelativeTo*{2}{4}{north}{right}{above}%
+		\dynkinPlaceRootRelativeTo*%
+			{2}{4}%
+			{north}%
+			{right}{above}%
 	\fi%
-	\newcount\bmo\relax%
-	\bmo=4\relax%
-	\foreach \b in {5,...,\dynkin at rank}%
+	\dynkin at bmo=4\relax%
+	\foreach \dynkin at b in {5,...,\dynkin at rank}%
 	{%
-		\dynkinPlaceRootRelativeTo*{\b}{\the\bmo}{east}{below}{above}%
-		\dynkinEdge*{SingleEdge}{\the\bmo}{\b}%
-		\global\advance\bmo by 1\relax%
+		\dynkinPlaceRootRelativeTo*%
+			{\dynkin at b}{\the\dynkin at bmo}%
+			{east}{below}{above}%
+		\dynkinEdge*{SingleEdge}{\the\dynkin at bmo}{\dynkin at b}%
+		\global\advance\dynkin at bmo by 1\relax%
 	}%
 %	% Draw the remaining edges.
 	\dynkinEdge*{SingleEdge}{1}{3}
@@ -4078,10 +4616,16 @@
 			\dynkinEdge*{SingleEdge}{0}{2}%
 		\else%
 			\ifnum\dynkin at rank=7%
-				\dynkinPlaceRootRelativeTo*{0}{1}{west}{below}{above}%
+				\dynkinPlaceRootRelativeTo*%
+					{0}{1}%
+					{west}%
+					{below}{above}%
 				\dynkinEdge*{SingleEdge}{0}{1}%
 			\else%
-				\dynkinPlaceRootRelativeTo*{0}{8}{east}{below}{above}%
+				\dynkinPlaceRootRelativeTo*%
+					{0}{8}%
+					{east}%
+					{below}{above}%
 				\dynkinEdge*{SingleEdge}{0}{8}%
 			\fi%
 		\fi%
@@ -4095,13 +4639,15 @@
 		% We have to work in Kac ordering directly.
 		\dynkinPlaceRootHere*{1}{below}{above}%
 		\ifnum\dynkin at rank>1%
-			\newcount\drmo%
-			\drmo=\the\dynkin at rank\relax%
-			\advance\drmo by -1\relax%
-			\dynkin at pipe{1}{\the\drmo}{east}{below}{above}%
-			\advance\drmo by -2\relax%
-			\dynkinPlaceRootRelativeTo*{\the\dynkin at rank}{\drmo}{north}{right}{above}%
-			\dynkinEdge*{SingleEdge}{\the\dynkin at rank}{\drmo}
+			\dynkin at pipe%
+				{1}{\the\dynkin at rank@minus at one}%
+				{east}{below}%
+				{above}%
+			\dynkinPlaceRootRelativeTo*%
+				{\the\dynkin at rank}{\dynkin at rank@minus at three}%
+				{north}{right}{above}%
+			\dynkinEdge*{SingleEdge}%
+				{\the\dynkin at rank}{\dynkin at rank@minus at three}%
 		\fi%
 	\else%
 		\Edynkin at unfolded@rank at up@to at eight%
@@ -4121,10 +4667,22 @@
 {%
 	\dynkin at jump{1}%
 	\dynkinPlaceRootHere*{1}{above}{below right}%
-	\dynkinPlaceRootRelativeTo*{3}{1}{east}{above}{below right}%
-	\dynkinPlaceRootRelativeTo*{4}{3}{southeastfold}{below right}{above right}%
-	\dynkinPlaceRootRelativeTo*{5}{4}{southwestfold}{below}{above right}%
-	\dynkinPlaceRootRelativeTo*{6}{5}{west}{below}{above right}%
+	\dynkinPlaceRootRelativeTo*%
+		{3}{1}%
+		{east}%
+		{above}{below right}%
+	\dynkinPlaceRootRelativeTo*%
+		{4}{3}%
+		{southeastfold}%
+		{below right}{above right}%
+	\dynkinPlaceRootRelativeTo*%
+		{5}{4}%
+		{southwestfold}%
+		{below}{above right}%
+	\dynkinPlaceRootRelativeTo*%
+		{6}{5}%
+		{west}%
+		{below}{above right}%
 	\ifdynkin at is@extended%
 		\dynkinPlaceRootRelativeTo*{2}{4}{east}{below}{above}%
 		\dynkinPlaceRootRelativeTo*{0}{2}{east}{below}{above}%
@@ -4264,12 +4822,10 @@
 	\Adynkin%
 	\dynkinEdgeLabel{1}{2}{5}%
 }%
-%%%\newcount\dynkin at I@n%
 %% \Idynkin 
 %% Draws an I series Coxeter diagram.
 \newcommand*{\Idynkin}%
 {%
-%%%	\dynkin at I@n\dynkin at rank\relax%
 	\dynkin at rank=2\relax%
 	\Adynkin%
 	\dynkinEdgeLabel{1}{2}{\dynkin at gonality}%
@@ -4290,7 +4846,7 @@
 			]%
 			($(\dynkin at root@name 0)+(\dynkin at root@radius,0)$) 
 			-- 
-			($(\dynkin at root@name \the\RootNumber)-(\dynkin at root@radius,0)$);%
+			($(\dynkin at root@name \the\dynkin at Root@Number)-(\dynkin at root@radius,0)$);%
 		\end{pgfonlayer}%%
 	\else%
 		\ifnum\dynkin at ply=4%
@@ -4348,7 +4904,7 @@
 	\dynkinEdge*{DoubleDownRightArc}{2}{3}%
 	\xdef\dynkin at fold@radius{\old at fold@radius}%
 }%
-
+\newcount\dynkin at bmo%
 %% \extendedBdynkin
 %% Draws a B series affine Dynkin/Coxeter diagram.
 \newcommand*{\extendedBdynkin}%
@@ -4369,8 +4925,14 @@
 				\ifnum\dynkin at ply=2\relax%
 					\dynkin at jump{1}%
 					\dynkinPlaceRootHere*{0}{left}{above left}%
-					\dynkinPlaceRootRelativeTo*{2}{0}{southeastfold}{below right}{above right}%
-					\dynkinPlaceRootRelativeTo*{1}{2}{southwestfold}{left}{above left}%
+					\dynkinPlaceRootRelativeTo*%
+						{2}{0}%
+						{southeastfold}%
+						{below right}{above right}%
+					\dynkinPlaceRootRelativeTo*%
+						{1}{2}%
+						{southwestfold}%
+						{left}{above left}%
 					\dynkinLeftFold*{0}{1}%
 					\dynkinEdge*{RightDownArc}{0}{2}%
 					\dynkinEdge*{RightUpArc}{1}{2}%
@@ -4377,36 +4939,52 @@
 				\else%
 					\dynkin at hop{1}%
 					\dynkinPlaceRootHere*{0}{left}{above left}%
-					\dynkinPlaceRootRelativeTo*{2}{0}{southeast}{below right}{above right}%
-					\dynkinPlaceRootRelativeTo*{1}{2}{southwest}{left}{above left}%
+					\dynkinPlaceRootRelativeTo*%
+						{2}{0}%
+						{southeast}%
+						{below right}{above right}%
+					\dynkinPlaceRootRelativeTo*%
+						{1}{2}%
+						{southwest}%
+						{left}{above left}%
 					\dynkinEdge*{SingleEdge}{0}{2}%
 					\dynkinEdge*{SingleEdge}{1}{2}%
 				\fi%
-				\newcount\drmo%
-				\drmo=\the\dynkin at rank\relax%
-				\advance\drmo by -1\relax%
-				\newcount\bmo%
-				\bmo=2\relax%
+				\dynkin at bmo=2\relax%
 				\ifnum\dynkin at rank>3%
-					\foreach \b in {3,...,\the\drmo}%
+					\foreach \dynkin at b in {3,...,\the\dynkin at rank@minus at one}%
 					{%
-						\dynkinPlaceRootRelativeTo*{\b}{\the\bmo}{east}{below}{above}%
-						\dynkinEdge*{SingleEdge}{\b}{\the\bmo}%
-						\global\advance\bmo by 1\relax%
+						\dynkinPlaceRootRelativeTo*%
+							{\dynkin at b}{\the\dynkin at bmo}%
+							{east}{below}{above}%
+						\dynkinEdge*{SingleEdge}%
+							{\dynkin at b}{\the\dynkin at bmo}%
+						\global\advance\dynkin at bmo by 1\relax%
 					}%
 				\fi%
 				\ifnum\dynkin at ply<3%
-					\dynkinPlaceRootRelativeTo*{\the\dynkin at rank}{\the\drmo}{east}{below}{above}%
+					\dynkinPlaceRootRelativeTo*%
+						{\the\dynkin at rank}%
+						{\the\dynkin at rank@minus at one}%
+						{east}{below}{above}%
 				\fi%
 				\ifdynkin at Coxeter%
-					\dynkinEdge*{SingleEdge}{\the\drmo}{\the\dynkin at rank}%
-					\dynkinEdgeLabel{\the\drmo}{\the\dynkin at rank}{4}%
+					\dynkinEdge*{SingleEdge}%
+						{\the\dynkin at rank@minus at one}%
+						{\the\dynkin at rank}%
+					\dynkinEdgeLabel%
+						{\the\dynkin at rank@minus at one}%
+						{\the\dynkin at rank}{4}%
 				\else%
 					\ifnum\dynkin at ply<3%
-						\dynkinEdge*{DoubleEdge}{\the\drmo}{\the\dynkin at rank}%
+						\dynkinEdge*{DoubleEdge}%
+							{\the\dynkin at rank@minus at one}%
+							{\the\dynkin at rank}%
 					\else%
-						\dynkinEdge*{DoubleDownRightArc}{\the\drmo}{\the\dynkin at rank}%
-					\fi%									
+						\dynkinEdge*{DoubleDownRightArc}%
+							{\the\dynkin at rank@minus at one}%
+							{\the\dynkin at rank}%
+					\fi%							
 				\fi%
 			\fi%
 		\fi%
@@ -4441,8 +5019,8 @@
 	\node 
 		(Dynkin current) 
 		at 
-		($.5*(\dynkin at root@name \the\@fromRoot)%
-		+.5*(\dynkin at root@name \the\@toRoot)$)%
+		($.5*(\dynkin at root@name \the\@dynkin at from@root)%
+		+.5*(\dynkin at root@name \the\@dynkin at to@root)$)%
 		{};%
 	\dynkinWest%
 	\dynkinPlaceRootHere*{2}{right}{left}%
@@ -4461,38 +5039,44 @@
 	\xdef\yfp{2*\dynkin at fold@radius+2*cos(60)*\dynkin at edge@length}%
 	\node (Dynkin current) at ($(Dynkin current)+(0,{\yfp})$){};%
 	\dynkinPlaceRootHere*{0}{left}{above left}%
-	\dynkinPlaceRootRelativeTo*{2}{0}{southeastfold}{above right}{below right}%
-	\dynkinPlaceRootRelativeTo*{1}{2}{southwestfold}{left}{above left}%
+	\dynkinPlaceRootRelativeTo*%
+		{2}{0}%
+		{southeastfold}%
+		{above right}{below right}%
+	\dynkinPlaceRootRelativeTo*%
+		{1}{2}%
+		{southwestfold}%
+		{left}{above left}%
 	\dynkinMoveToRoot*{2}%
-	\newcount\drmo%
-	\drmo=\the\dynkin at rank\relax%
-	\advance\drmo by -1\relax%
-	\newcount\drmt%
-	\drmt=\the\drmo\relax%
-	\advance\drmt by -1\relax%
 	\xdef\old at fold{\dynkin at fold@radius}%
 	\pgfmathparse{\dynkin at fold@radius+2*cos(60)*\dynkin at edge@length}%
 	\xdef\dynkin at fold@radius{\pgfmathresult pt}%
-	\dynkin at fold{2}{\the\drmt}%
+	\dynkin at fold{2}{\the\dynkin at rank@minus at two}%
 	% We place the root number rank-2 once again (it is already placed in the \dynkin at fold):
-	\dynkinPlaceRootHere*{\the\drmt}{below right}{above right}%
+	\dynkinPlaceRootHere*%
+		{\the\dynkin at rank@minus at two}%
+		{below right}{above right}%
 	\xdef\dynkin at fold@radius{\old at fold}%
 	\dynkinPlaceRootRelativeTo*%
-		{\the\drmo}%
-		{\the\drmt}%
+		{\the\dynkin at rank@minus at one}%
+		{\the\dynkin at rank@minus at two}%
 		{northwestfold}%
 		{left}%
 		{above left}%
 	\dynkinPlaceRootRelativeTo*%
 		{\the\dynkin at rank}%
-		{\the\drmt}%
+		{\the\dynkin at rank@minus at two}%
 		{southwestfold}%
 		{left}%
 		{above left}%
 	\dynkinEdge*{RightDownArc}{0}{2}%
 	\dynkinEdge*{RightUpArc}{1}{2}%
-	\dynkinEdge*{RightDownArc}{\the\drmo}{\the\drmt}%
-	\dynkinEdge*{RightUpArc}{\the\dynkin at rank}{\the\drmt}%
+	\dynkinEdge*{RightDownArc}%
+		{\the\dynkin at rank@minus at one}%
+		{\the\dynkin at rank@minus at two}%
+	\dynkinEdge*{RightUpArc}%
+		{\the\dynkin at rank}%
+		{\the\dynkin at rank@minus at two}%
 }%
 
 %% \extendedDthreePly
@@ -4516,8 +5100,6 @@
 	\fi%
 	\dynkinEdge*{SingleEdge}{0}{1}%
 }%
-
-
 %% \extendedDdynkin
 %% Draws an D series affine Dynkin/Coxeter diagram.
 \NewDocumentCommand\extendedDdynkin{}%
@@ -4557,7 +5139,6 @@
 		\fi%
 	\fi%
 }%
-
 %% \extendedEdynkin 
 %% Draws an E series affine Dynkin/Coxeter diagram.
 \newcommand*{\extendedEdynkin}%
@@ -4564,7 +5145,6 @@
 {%
 	\Edynkin%
 }%
-
 %% \extendedFdynkin 
 %% Draws an F series affine Dynkin/Coxeter diagram.
 \newcommand*{\extendedFdynkin}%
@@ -4618,12 +5198,10 @@
 	\fi%
 	\node[/Dynkin diagram/text style,above] 
 		at 
-		($.5*(\dynkin at root@name \the\@fromRoot)%
-		+.5*(\dynkin at root@name \the\@toRoot)$)%
+		($.5*(\dynkin at root@name \the\@dynkin at from@root)%
+		+.5*(\dynkin at root@name \the\@dynkin at to@root)$)%
 		{\(5\)};%
 }%
-
-
 %% \extendedIdynkin 
 %% Draws an I series affine Coxeter diagram.
 \newcommand*{\extendedIdynkin}%
@@ -4635,8 +5213,7 @@
 	\dynkinEdge*{SingleEdge}{0}{1}%
 	\dynkinEdgeLabel{0}{1}{\infty}%
 }%
-
-
+\newcount\dynkin at height@minus at one%
 %% \twistedAdynkin 
 %% Draws a twisted A series affine Dynkin diagram.
 \NewDocumentCommand\twistedAdynkin{}%
@@ -4649,14 +5226,19 @@
 		\dynkinPlaceRootRelativeTo*{1}{0}{east}{below}{above}%
 		\dynkinQuadrupleEdge*{1}{0}%
 	\else%
-		\newcount\hmo%
-		\hmo=\the\dynkin at nodes\relax%
-		\advance\hmo by -1\relax%
+		\dynkin at height@minus at one=\the\dynkin at nodes\relax%
+		\advance\dynkin at height@minus at one by -1\relax%
 		\ifodd\dynkin at rank%
 			\ifnum\dynkin at ply>1\relax%
 				\dynkinPlaceRootHere*{2}{below right}{above right}%
-				\dynkinPlaceRootRelativeTo*{0}{2}{northwestfold}{left}{above left}%
-				\dynkinPlaceRootRelativeTo*{1}{2}{southwestfold}{left}{above left}%
+				\dynkinPlaceRootRelativeTo*%
+					{0}{2}%
+					{northwestfold}%
+					{left}{above left}%
+				\dynkinPlaceRootRelativeTo*%
+					{1}{2}%
+					{southwestfold}%
+					{left}{above left}%
 				\dynkinEdge*{RightDownArc}{0}{2}%
 				\dynkinEdge*{RightUpArc}{1}{2}%
 			\else%
@@ -4668,14 +5250,19 @@
 				\dynkinEdge*{SingleEdge}{1}{2}%
 			\fi%
 			\dynkinMoveToRoot*{2}%
-			\dynkin at pipe{2}{\the\hmo}{east}{below}{above}%
+			\dynkin at pipe%
+				{2}{\the\dynkin at height@minus at one}%
+				{east}{below}%
+				{above}%
 			\dynkinPlaceRootRelativeTo*%
 				{\the\dynkin at nodes}%
-				{\the\hmo}%
+				{\the\dynkin at height@minus at one}%
 				{east}%
 				{below}%
 				{above}%
-			\dynkinEdge*{DoubleEdge}{\the\dynkin at nodes}{\the\hmo}%
+			\dynkinEdge*{DoubleEdge}%
+				{\the\dynkin at nodes}%
+				{\the\dynkin at height@minus at one}%
 			\ifnum\dynkin at ply>1%	
 				\dynkinLeftFold*{0}{1}%
 			\fi%			
@@ -4682,45 +5269,56 @@
 		\else%
 			\ifnum\dynkin at nodes>1%
 				\ifnum\dynkin at ply>1%	
-					\ifnum\hmo>1%
+					\ifnum\dynkin at height@minus at one>1%
 						\dynkin at jump{1}%
 					\fi%
 					\dynkinPlaceRootHere*{0}{below}{above}%
-					\dynkinPlaceRootRelativeTo*{1}{0}{east}{below left}{above}%
+					\dynkinPlaceRootRelativeTo*%
+						{1}{0}%
+						{east}%
+						{below left}{above}%
 					\dynkinEdge*{DoubleEdge}{1}{0}%
-					\ifnum\hmo>1%
-						\dynkin at fold{1}{\the\hmo}%
+					\ifnum\dynkin at height@minus at one>1%
+						\dynkin at fold{1}{\the\dynkin at height@minus at one}%
 					\fi%
 					\dynkinPlaceRootRelativeTo*%
 						{\the\dynkin at nodes}%
-						{\the\hmo}%
+						{\the\dynkin at height@minus at one}%
 						{west}%
 						{below}%
 						{above}%
 				\else%
 					\dynkinPlaceRootHere*{0}{below}{above}%
-					\dynkinPlaceRootRelativeTo*{1}{0}{east}{below right}{above}%
+					\dynkinPlaceRootRelativeTo*%
+						{1}{0}%
+						{east}%
+						{below right}{above}%
 					\dynkinEdge*{DoubleEdge}{1}{0}%
-					\ifnum\hmo>1%
-						\dynkin at pipe{1}{\the\hmo}{east}{below}{above}%
+					\ifnum\dynkin at height@minus at one>1%
+						\dynkin at pipe{1}{\the\dynkin at height@minus at one}%
+						{east}{below}{above}%
 					\fi%
 					\dynkinPlaceRootRelativeTo*%
 						{\the\dynkin at nodes}%
-						{\the\hmo}%
+						{\the\dynkin at height@minus at one}%
 						{east}%
 						{below}%
 						{above}%
 				\fi%
-				\dynkinEdge*{DoubleEdge}{\the\dynkin at nodes}{\the\hmo}%
+				\dynkinEdge*{DoubleEdge}%
+					{\the\dynkin at nodes}%
+					{\the\dynkin at height@minus at one}%
 			\else%
 				\dynkinPlaceRootHere*{0}{below}{above}%
-				\dynkinPlaceRootRelativeTo*{1}{0}{east}{below right}{above}%
+				\dynkinPlaceRootRelativeTo*%
+					{1}{0}%
+					{east}%
+					{below right}{above}%
 				\dynkinEdge*{DoubleEdge}{1}{0}%				
 			\fi%
 		\fi%
 	\fi%
 }%
-
 %% \twistedDdynkin 
 %% Draws a twisted D series affine Dynkin diagram.
 \NewDocumentCommand\twistedDdynkin{}%
@@ -4746,16 +5344,14 @@
 		}%
 	}%
 }%
-
-
+\newcount\dynkin at nodes@minus at one%
 \NewDocumentCommand\twistedDTwo{}%
 {%
+	\dynkin at nodes@minus at one\dynkin at nodes\relax%
+	\advance\dynkin at nodes@minus at one by -1\relax%
 	\ifnum\dynkin at rank<3%
 		\ClassError{Dynkin diagrams}{D2 series twisted diagrams cannot have rank \the\dynkin at rank}{}%
 	\fi%
-	\newcount\drmo%
-	\drmo=\the\dynkin at nodes\relax%
-	\advance\drmo by -1\relax%
 	\ifnum\dynkin at ply=1%
 		\dynkinPlaceRootHere*{0}{below}{above}%
 		\dynkinPlaceRootRelativeTo*{1}{0}{east}{below}{above}%
@@ -4777,8 +5373,11 @@
 	\fi%
 	\ifnum\dynkin at ply>1\relax%	
 		\ifnum\dynkin at rank>3\relax%
-			\dynkin at fold{1}{\the\drmo}%
-			\dynkinPlaceRootRelativeTo*{\the\dynkin at nodes}{\the\drmo}{west}{below}{above}%
+			\dynkin at fold{1}{\the\dynkin at nodes@minus at one}%
+			\dynkinPlaceRootRelativeTo*%
+				{\the\dynkin at nodes}%
+				{\the\dynkin at nodes@minus at one}%
+				{west}{below}{above}%
 			\dynkinFold*{0}{\the\dynkin at nodes}%
 		\else%
 			\dynkinFold*{0}{2}%
@@ -4785,14 +5384,21 @@
 		\fi%
 	\else%
 		\ifnum\dynkin at rank>2%
-			\dynkin at pipe{1}{\the\drmo}{east}{below}{above}%
+			\dynkin at pipe{1}{\the\dynkin at nodes@minus at one}{east}{below}{above}%
 		\fi%
-		\dynkinPlaceRootRelativeTo*{\the\dynkin at nodes}{\the\drmo}{east}{below}{above}%
+		\dynkinPlaceRootRelativeTo*%
+			{\the\dynkin at nodes}%
+			{\the\dynkin at nodes@minus at one}%
+			{east}{below}{above}%
 	\fi%
 	\ifnum\dynkin at ply=2\relax%
-		\dynkinEdge*{DoubleDownRightArc}{\the\drmo}{\the\dynkin at nodes}%
+		\dynkinEdge*{DoubleDownRightArc}%
+		{\the\dynkin at nodes@minus at one}%
+		{\the\dynkin at nodes}%
 	\else
-		\dynkinEdge*{DoubleEdge}{\the\drmo}{\the\dynkin at nodes}%
+		\dynkinEdge*{DoubleEdge}%
+			{\the\dynkin at nodes@minus at one}%
+			{\the\dynkin at nodes}%
 	\fi%
 }%
 %% \twistedEdynkin 



More information about the tex-live-commits mailing list.