texlive[53753] Master/texmf-dist: dynkin-diagrams (11feb20)

commits+karl at tug.org commits+karl at tug.org
Tue Feb 11 23:08:42 CET 2020


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

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

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/DoneTwoElBendy.tex
    trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/DoneTwoElStraight.tex
    trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/EulerProducts.tex
    trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/borovoi.tex
    trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/d44.tex
    trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/hermitian-symmetric-spaces.tex
    trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/simple-lie-algebras.tex

Deleted: trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/DoneTwoElBendy.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/DoneTwoElBendy.tex	2020-02-11 00:54:55 UTC (rev 53752)
+++ trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/DoneTwoElBendy.tex	2020-02-11 22:08:41 UTC (rev 53753)
@@ -1,5 +0,0 @@
-\begin{dynkinDiagram}[ply=4]{D}[1]%
-{****.*****.*****}
- \dynkinFold[bend right=90]{1}{13}
- \dynkinFold[bend right=90]{0}{14}
-\end{dynkinDiagram}

Deleted: trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/DoneTwoElStraight.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/DoneTwoElStraight.tex	2020-02-11 00:54:55 UTC (rev 53752)
+++ trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/DoneTwoElStraight.tex	2020-02-11 22:08:41 UTC (rev 53753)
@@ -1,6 +0,0 @@
-\begin{dynkinDiagram}[ply=4]{D}[1]%
-{****.*****.*****}
- \dynkinFold{0}{1}
- \dynkinFold{1}{13}
- \dynkinFold{13}{14}
-\end{dynkinDiagram}

Deleted: trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/EulerProducts.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/EulerProducts.tex	2020-02-11 00:54:55 UTC (rev 53752)
+++ trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/EulerProducts.tex	2020-02-11 22:08:41 UTC (rev 53753)
@@ -1,61 +0,0 @@
-\tikzset{/Dynkin diagram,ordering=Dynkin,label macro/.code={\alpha_{#1}}}
-\newcounter{EPNo}
-\setcounter{EPNo}{0}
-\NewDocumentCommand\EP{smmmm}%
-{%
-\stepcounter{EPNo}\roman{EPNo}. &
-\def\eL{.6cm}
-\IfStrEqCase{#2}%
-{%
-{D}{\gdef\eL{1cm}}%
-{E}{\gdef\eL{.75cm}}%
-{F}{\gdef\eL{.35cm}}%
-{G}{\gdef\eL{.35cm}}%
-}%
-\tikzset{/Dynkin diagram,edge length=\eL}
-\IfBooleanTF{#1}%
-{\dynkin[backwards,labels*={#4},labels={#5}]{#2}{#3}}
-{\dynkin[labels*={#4},labels={#5}]{#2}{#3}}
-\\
-}%
-\begin{longtable}{MM}
-\caption{Dynkin diagrams from Euler products \cite{Langlands:1967}}\\
-\endfirsthead
-\caption{\dots continued}\\
-\endhead
-\multicolumn{2}{c}{continued \dots}\\
-\endfoot
-\endlastfoot
-\EP{A}{***.**}{1,1,1,1,1}{,1,2,n-1,n}
-\EP{A}{***.**}{1,1,1,1,1}{1,2,n-1,n}
-\EP{A}{**.***.*}{1,1,1,1,1,1}{1,2,m-1,,m,n}
-\EP{B}{**.***}{2,2,2,2,1}{1,2,n-1,n}
-\EP*{B}{***.**}{2,2,2,2,1}{n,n-1,2,1,}
-\EP{C}{**.***}{1,1,1,1,2}{1,2,n-1,}
-\EP*{C}{***.**}{1,1,1,1,2}{n,n-1,2,1,}
-\EP{D}{**.****}{1,1,1,1,1,1}{1,2,n-2,n-1,n}
-\EP{D}{**.****}{1,1,1,1,1,1}{1,2,n-2,n-1,n}
-\EP{E}{6}{1,1,1,1,1,1}{1,...,5}
-\EP*{E}{7}{1,1,1,1,1,1,1}{6,...,1}
-\EP{E}{7}{1,1,1,1,1,1,1}{1,...,6}
-\EP*{E}{8}{1,1,1,1,1,1,1,1}{7,...,1}
-\EP{E}{8}{1,1,1,1,1,1,1,1}{1,...,7}
-\EP{G}{2}{1,3}{,1}
-\EP{G}{2}{1,3}{1}
-\EP{B}{**.*.**}{2,2,2,2,1}{,1,2,n-1,n}
-\EP{F}{4}{1,1,2,2}{,3,2,1}
-\EP{C}{3}{1,1,2}{,2,1}
-\EP{C}{**.***}{1,1,1,1,2}{,1,n-2,n-1,n}
-\EP*{B}{3}{2,2,1}{1,2}
-\EP{F}{4}{1,1,2,2}{1,2,3}
-\EP{D}{**.****}{1,1,1,1,1,1}{1,2,n-2,n-2,n,n}
-\EP{E}{6}{1,1,1,1,1,1}{1,2,3,4,,5}
-\EP{E}{6}{1,1,1,1,1,1}{1,2,3,5,,4}
-\EP*{E}{7}{1,1,1,1,1,1,1}{,5,...,1,6}
-\EP*{E}{7}{1,1,1,1,1,1,1}{,6,4,3,2,1,5}
-\EP*{E}{8}{1,1,1,1,1,1,1,1}{,6,...,1,7}
-\EP*{E}{8}{1,1,1,1,1,1,1,1}{,7,5,4,3,2,1,6}
-\EP*{E}{7}{1,1,1,1,1,1,1}{5,...,1,,6}
-\EP*{E}{7}{1,1,1,1,1,1,1}{1,...,5,,6}
-\EP*{E}{8}{1,1,1,1,1,1,1,1}{6,...,1,,7}
-\end{longtable}

Modified: trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/README	2020-02-11 00:54:55 UTC (rev 53752)
+++ trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/README	2020-02-11 22:08:41 UTC (rev 53753)
@@ -2,9 +2,9 @@
 
             Dynkin diagrams
                
-                v3.141592653
+                v3.1415926535
 
-            4 December 2019
+            2 February 2020
 ___________________________________
 
 Authors   : Ben McKay
@@ -15,8 +15,6 @@
 
 ----------------------------------------------------------------------
 
-Draws Dynkin Coxeter, and Satake diagrams in LaTeX doc­u­ments, us­ing the TikZ pack­age.
-Version 3.141592653 fixes problems with Coxeter diagram edge labels being too far away, adds a macro to draw general edge labels, and a macro to typeset a name for a Dynkin diagram.
+Draws Dynkin, Coxeter, and Satake diagrams in LaTeX documents, using 
+the TikZ package. 
 
-
-

Deleted: trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/borovoi.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/borovoi.tex	2020-02-11 00:54:55 UTC (rev 53752)
+++ trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/borovoi.tex	2020-02-11 22:08:41 UTC (rev 53753)
@@ -1,15 +0,0 @@
-\tikzset{big arrow/.style={
- -Stealth,line cap=round,line width=1mm,
- shorten <=1mm,shorten >=1mm}}
-\newcommand\catholic[2]{\draw[big arrow,green!25!white]
-(root #1) to (root #2);}
-\newcommand\protestant[2]{
-\begin{scope}[transparency group, opacity=.25]
-\draw[big arrow,orange] (root #1) to (root #2);
-\end{scope}}
-\begin{dynkinDiagram}[edge length=1.2cm,
-indefinite edge/.style={thick,loosely dotted},
-labels*={0,1,2,3,\ell-3,\ell-2,\ell-1,\ell}]{D}[1]{}
-\catholic{0}{6}\catholic{1}{7}
-\protestant{7}{0}\protestant{6}{1}
-\end{dynkinDiagram}

Deleted: trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/d44.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/d44.tex	2020-02-11 00:54:55 UTC (rev 53752)
+++ trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/d44.tex	2020-02-11 22:08:41 UTC (rev 53753)
@@ -1,19 +0,0 @@
-\tikzset{/Dynkin diagram,edge length=1cm,fold radius=1cm}
-\tikzset{/Dynkin diagram,label macro/.code={\alpha_{#1}},label macro*/.code={\beta_{#1}}}
-\({}^1 D_4\) 4-ply tied straight:
-\begin{dynkinDiagram}[ply=4]{D}[1]%
-{****.*****.*****}
- \dynkinFold{0}{1}
- \dynkinFold{1}{13}
- \dynkinFold{13}{14}
-\dynkinLabelRoots{0,...,14}
-\dynkinLabelRoots*{0,...,14}
-\end{dynkinDiagram}
-\({}^1 D_4\) 4-ply tied bending:
-\begin{dynkinDiagram}[ply=4]{D}[1]%
-{****.*****.*****}
- \dynkinFold{1}{13}
- \dynkinFold[bend right=65]{0}{14}
-\dynkinLabelRoots{0,...,14}
-\dynkinLabelRoots*{0,...,14}
-\end{dynkinDiagram}

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-11 00:54:55 UTC (rev 53752)
+++ trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.tex	2020-02-11 22:08:41 UTC (rev 53753)
@@ -1,7 +1,7 @@
 \documentclass{amsart}
-
-\title{The Dynkin diagrams package \\ Version 3.141592653}
-
+\title[The Dynkin diagrams package]%
+{The Dynkin diagrams package \\ Version 3.1415926535}
+%% My name:
 \makeatletter
 \DeclareRobustCommand{\scotsMc}{\scotsMcx{c}}
 \DeclareRobustCommand{\scotsMC}{\scotsMcx{\textsc{c}}}
@@ -16,12 +16,10 @@
   \@uclclist\scotsMc\scotsMC
 }
 \makeatother
-
 \author{Ben \scotsMc{}Kay}
 \address{School of Mathematical Sciences,  University College Cork, Cork, Ireland}
 \email{b.mckay at ucc.ie}
-\date{4 December 2019}
- 
+\date{2 February 2020}
 \usepackage{etex}
 \usepackage[T1]{fontenc}
 \usepackage[utf8]{inputenx}
@@ -55,6 +53,7 @@
 \usepackage{filecontents}
 \usetikzlibrary{decorations.markings}
 \usetikzlibrary{decorations.pathmorphing}
+%% Use white rulings in tables.
 \arrayrulecolor{white}
 \makeatletter
     \def\rulecolor#1#{\CT at arc{#1}}
@@ -80,13 +79,28 @@
 \newcolumntype{P}{>{\columncolor[gray]{.9}}p{10cm}}
 \NewDocumentCommand\textleftcurly{}{\texttt{\char'173}}%
 \NewDocumentCommand\textrightcurly{}{\texttt{\char'175}}%
+\newcount\seriesLength
+\newcount\rankLength
 \NewDocumentCommand\csDynkin{omom}%
 {%
-	\texttt{\detokenize{\dynkin}\!\!\!%
+	\texttt{\detokenize{\dynkin}\!\!%
 	\IfNoValueTF{#1}{}{[#1]}%
-	\textleftcurly#2\textrightcurly%
+	\StrLen{#2}[\thatseriesLength]%
+	\seriesLength\thatseriesLength\relax%
+	\ifnum\seriesLength=1\relax%
+		\IfNoValueT{#1}{\ }%
+		#2%
+	\else%
+		\textleftcurly#2\textrightcurly%
+	\fi%
 	\IfNoValueTF{#3}{}{[#3]}%
-	\textleftcurly#4\textrightcurly%
+	\StrLen{#4}[\thatrankLength]%
+	\rankLength\thatrankLength\relax%
+	\ifnum\rankLength=1\relax%
+		#4%
+	\else%
+		\textleftcurly#4\textrightcurly%
+	\fi%
 	}%
 }%
 
@@ -167,20 +181,20 @@
 \documentclass{amsart}
 \usepackage{dynkin-diagrams} 
 \begin{document}
-The Dynkin diagram of \(B_3\) is \dynkin{B}{3}.
+The Dynkin diagram of \(B_3\) is \dynkin B3.
 \end{document}
 \end{verbatim}
 \end{tcolorbox}
 \begin{tcblisting}{title={Invoke it}}
-The Dynkin diagram of \(B_3\) is \dynkin{B}{3}.
+The Dynkin diagram of \(B_3\) is \dynkin B3.
 \end{tcblisting}
 \begin{tcblisting}{title={Inside a \TikZ statement}}
 The Dynkin diagram of \(B_3\) is 
-\tikz \dynkin{B}{3};
+\tikz \dynkin B3;
 \end{tcblisting}
 \begin{tcblisting}{title={Inside a Dynkin diagram environment}}
 The Dynkin diagram of \(B_3\) is 
-\begin{dynkinDiagram}{B}{3}
+\begin{dynkinDiagram}B3
 \draw[very thick,red] (root 1) to [out=-45, in=-135] (root 3);
 \end{dynkinDiagram}
 \end{tcblisting}
@@ -188,23 +202,30 @@
 Baseline controls vertical alignment:
 the Dynkin diagram of \(B_3\) is 
 \begin{tikzpicture}[baseline=(origin.base)]
-\dynkin{B}{3}
+\dynkin B3
 \draw[very thick,red] (root 1) to [out=-45, in=-135] (root 3);
 \end{tikzpicture}
 \end{tcblisting}
+In a TikZ picture, you might need to kill the default vertical shift (needed to allow inline Dynkin diagrams):
+\begin{tcblisting}{title={Inside TikZ pictures}}
+\begin{tikzpicture}
+\draw (0,0) -- (.5,1) -- (1,0);
+\dynkin[vertical shift=0,edge length=1cm]G2
+\end{tikzpicture}
+\end{tcblisting}
 \begin{tcblisting}{title={Indefinite rank Dynkin diagrams}}
-\dynkin{B}{}
+\dynkin B{}
 \end{tcblisting}
 
 \begin{dynkinTable}{The Dynkin diagrams of the reduced simple root systems \cite{Bourbaki:2002} pp. 265--290, plates I--IX}{2.25cm}{2.5cm}
-\dyn{A}{}
-\dyn{C}{}
-\dyn{D}{}
-\dyn{E}{6}
-\dyn{E}{7}
-\dyn{E}{8}
-\dyn{F}{4}
-\dyn{G}{2}
+\dyn A{}
+\dyn C{}
+\dyn D{}
+\dyn E6
+\dyn E7
+\dyn E8
+\dyn F4
+\dyn G2
 \end{dynkinTable}
 
 
@@ -243,61 +264,61 @@
 \end{tcblisting}
 
 \begin{tcblisting}{title={gonality option for \(G_2\) and \(I_n\) Coxeter diagrams}}
-\(G_2=\dynkin[Coxeter,gonality=n]{G}{2}\), \ 
-\(I_n=\dynkin[Coxeter,gonality=n]{I}{}\)
+\(G_2=\dynkin[Coxeter,gonality=n]G2\), \ 
+\(I_n=\dynkin[Coxeter,gonality=n]I{}\)
 \end{tcblisting}
 
 \begin{dynkinTable}{The Coxeter diagrams of the simple reflection groups}{2.25cm}{6cm}
-\dyn[Coxeter]{A}{}
-\dyn[Coxeter]{B}{}
-\dyn[Coxeter]{C}{}
-\dyn[Coxeter]{E}{6}
-\dyn[Coxeter]{E}{7}
-\dyn[Coxeter]{E}{8}
-\dyn[Coxeter]{F}{4}
-\dyn[Coxeter,gonality=n]{G}{2}
-\dyn[Coxeter]{H}{3}
-\dyn[Coxeter]{H}{4}
-\dyn[Coxeter,gonality=n]{I}{}
+\dyn[Coxeter]A{}
+\dyn[Coxeter]B{}
+\dyn[Coxeter]C{}
+\dyn[Coxeter]E6
+\dyn[Coxeter]E7
+\dyn[Coxeter]E8
+\dyn[Coxeter]F4
+\dyn[Coxeter,gonality=n]G2
+\dyn[Coxeter]H3
+\dyn[Coxeter]H4
+\dyn[Coxeter,gonality=n]I{}
 \end{dynkinTable}
 
 \section{Satake diagrams}\label{section:Satake}
 
 \begin{tcblisting}{title={Satake diagrams use the standard name instead of a rank}}
-\(A_{IIIb}=\dynkin{A}{IIIb}\)
+\(A_{IIIb}=\dynkin A{IIIb}\)
 \end{tcblisting}
 
 We use a solid gray bar to denote the folding of a Dynkin diagram, rather than the usual double arrow, since the diagrams turn out simpler and easier to read.
 
 \begin{dynkinTable}{The Satake diagrams of the real simple Lie algebras \cite{Helgason:2001} p. 532--534}{2.75cm}{3cm}
-\dyn{A}{I}
-\dyn{A}{II}
-\dyn{A}{IIIa}
-\dyn{A}{IIIb}
-\dyn{A}{IV}
-\dyn{B}{I}
-\dyn{B}{II}
-\dyn{C}{I}
-\dyn{C}{IIa}
-\dyn{C}{IIb}
-\dyn{D}{Ia}
-\dyn{D}{Ib}
-\dyn{D}{Ic}
-\dyn{D}{II}
-\dyn{D}{IIIa}
-\dyn{D}{IIIb}
-\dyn{E}{I}
-\dyn{E}{II}
-\dyn{E}{III}
-\dyn{E}{IV}
-\dyn{E}{V}
-\dyn{E}{VI}
-\dyn{E}{VII}
-\dyn{E}{VIII}
-\dyn{E}{IX}
-\dyn{F}{I}
-\dyn{F}{II}
-\dyn{G}{I}
+\dyn A{I}
+\dyn A{II}
+\dyn A{IIIa}
+\dyn A{IIIb}
+\dyn A{IV}
+\dyn B{I}
+\dyn B{II}
+\dyn C{I}
+\dyn C{IIa}
+\dyn C{IIb}
+\dyn D{Ia}
+\dyn D{Ib}
+\dyn D{Ic}
+\dyn D{II}
+\dyn D{IIIa}
+\dyn D{IIIb}
+\dyn E{I}
+\dyn E{II}
+\dyn E{III}
+\dyn E{IV}
+\dyn E{V}
+\dyn E{VI}
+\dyn E{VII}
+\dyn E{VIII}
+\dyn E{IX}
+\dyn F{I}
+\dyn F{II}
+\dyn GI
 \end{dynkinTable}
 
 \section{How to fold}
@@ -304,8 +325,8 @@
 \begin{tcblisting}{title={If you don't like the solid gray ``folding bar'', most people use arrows. Here is \(E_{II}\)}}
 \newcommand{\invol}[2]{\draw[latex-latex] (root #1) to 
 [out=-60,in=-120] node[midway,below]{$\sigma$} (root #2);}
-\begin{dynkinDiagram}[edge length=.75cm,labels*={1,...,6}]{E}{6}
-\invol{1}{6}\invol{3}{5}
+\begin{dynkinDiagram}[edge length=.75cm,labels*={1,...,6}]E6
+\invol 16\invol 35
 \end{dynkinDiagram}
 \end{tcblisting}
 \begin{tcblisting}{title={The double arrows for \(A_{IIIa}\) are big}}
@@ -312,7 +333,7 @@
 \newcommand{\invol}[2]{\draw[latex-latex] (root #1) to 
 [out=-60,in=-120] node[midway,below]{$\sigma$} (root #2);}
 \begin{dynkinDiagram}[edge length=.75cm]{A}{oo.o**.**o.oo}
-\invol{1}{10}\invol{2}{9}\invol{3}{8}\invol{4}{7}\invol{5}{6}
+\invol 1{10}\invol 29\invol 38\invol 47\invol 56
 \end{dynkinDiagram}
 \end{tcblisting}
 
@@ -319,11 +340,11 @@
 \begin{tcblisting}{title={If you don't like the solid gray ``folding bar'', most people use arrows \dots}}
 \tikzset{/Dynkin diagram/fold style/.style={stealth-stealth,thick,
 shorten <=1mm,shorten >=1mm,}}
-\dynkin[ply=3,edge length=.75cm]{D}{4}
-\begin{dynkinDiagram}[ply=4]{D}[1]%
+\dynkin[ply=3,edge length=.75cm]D4
+\begin{dynkinDiagram}[ply=4]D[1]%
 {****.*****.*****}
-	\dynkinFold{1}{13}
-	\dynkinFold[bend right=90]{0}{14}
+	\dynkinFold 1{13}
+	\dynkinFold[bend right=90] 0{14}
 \end{dynkinDiagram}
 \end{tcblisting}
 
@@ -331,55 +352,53 @@
 \tikzset{/Dynkin diagram/fold style/.style=
 {decorate,decoration={name=coil,aspect=0.5,
 segment length=1mm,amplitude=.6mm}}}
-\dynkin[ply=3,edge length=.75cm]{D}{4}
-\begin{dynkinDiagram}[ply=4]{D}[1]%
+\dynkin[ply=3,edge length=.75cm]D4
+\begin{dynkinDiagram}[ply=4]D[1]%
 {****.*****.*****}
-	\dynkinFold{1}{13}
-	\dynkinFold[bend right=90]{0}{14}
+	\dynkinFold 1{13}
+	\dynkinFold[bend right=90]0{14}
 \end{dynkinDiagram}
 \end{tcblisting}
 
-
 \section{Labels for the roots}
-
 \begin{tcblisting}{title={Make a macro to assign labels to roots}}
-\dynkin[label,label macro/.code={\alpha_{\drlap{#1}}},edge length=.75cm]{D}{5}
+\dynkin[label,label macro/.code={\alpha_{\drlap{#1}}},edge length=.75cm]D5
 \end{tcblisting}
 \begin{tcblisting}{title={Labelling several roots}}
-\dynkin[labels={,2,...,5,,7},label macro/.code={\alpha_{\drlap#1}}]{A}{7}
+\dynkin[labels={,2,...,5,,7},label macro/.code={\alpha_{\drlap#1}}]A7
 \end{tcblisting}
 \begin{tcblisting}{title={The \texttt{foreach} notation I}}
-\dynkin[labels={1,3,...,7},]{A}{9}
+\dynkin[labels={1,3,...,7},]A9
 \end{tcblisting}
 \begin{tcblisting}{title={The \texttt{foreach} notation II}}
-\dynkin[labels={,\alpha_2,\alpha_...,\alpha_7},]{A}{7}
+\dynkin[labels={,\alpha_2,\alpha_...,\alpha_7},]A7
 \end{tcblisting}
 \begin{tcblisting}{title={The \texttt{foreach} notation III}}
-\dynkin[label macro/.code={\beta_{\drlap{#1}}},labels={,2,...,7},]{A}{7}
+\dynkin[label macro/.code={\beta_{\drlap{#1}}},labels={,2,...,7},]A7
 \end{tcblisting}
 \begin{tcblisting}{title={Label the roots individually by root number}}
-\dynkin[label]{B}{3}
+\dynkin[label]B3
 \end{tcblisting}
 \begin{tcblisting}{title={Label a single root}}
-\begin{dynkinDiagram}{B}{3}
-\dynkinLabelRoot{2}{\alpha_{\drlap{2}}}
+\begin{dynkinDiagram}B3
+\dynkinLabelRoot 2{\alpha_{\drlap{2}}}
 \end{dynkinDiagram}
 \end{tcblisting}
 \begin{tcblisting}{title={Access root labels via TikZ}}
-\begin{dynkinDiagram}{B}{3}
+\begin{dynkinDiagram}B3
 \node[below] at (root 2) {\(\alpha_{\drlap{2}}\)};
 \end{dynkinDiagram}
 \end{tcblisting}
 \begin{tcblisting}{title={Commands to label several roots}}
-\begin{dynkinDiagram}{A}{7} 
+\begin{dynkinDiagram}A7
 \dynkinLabelRoots{,\alpha_2,\alpha_3,\alpha_4,\alpha_5,,\alpha_7}
 \end{dynkinDiagram}
 \end{tcblisting}
 \begin{tcblisting}{title={The labels have default locations, mostly below roots}}
-\dynkin[edge length=.75cm,labels={1,2,3}]{E}{8}
+\dynkin[edge length=.75cm,labels={1,2,3}]E8
 \end{tcblisting}
 \begin{tcblisting}{title={The starred form flips labels to alternate locations, mostly above roots}}
-\dynkin[edge length=.75cm,labels*={1,2,3}]{E}{8}
+\dynkin[edge length=.75cm,labels*={1,2,3}]E8
 \end{tcblisting}
 \begin{tcblisting}{title={Labelling several roots and alternates}}
 \dynkin[%
@@ -386,10 +405,10 @@
 label macro/.code={\alpha_{\drlap{#1}}},
 label macro*/.code={\gamma_{\drlap{#1}}},
 labels={,2,...,5,,7},
-labels*={1,3,4,5,6}]{A}{7}
+labels*={1,3,4,5,6}]A7
 \end{tcblisting}
 \begin{tcblisting}{title={Commands to label several roots}}
-\begin{dynkinDiagram}{A}{7} 
+\begin{dynkinDiagram}A7
 \dynkinLabelRoots{,\alpha_2,\alpha_3,\alpha_4,\alpha_5,,\alpha_7}
 \dynkinLabelRoots*{a,b,c,d,e,f,g}
 \end{dynkinDiagram}
@@ -399,26 +418,26 @@
 Note the slight improvement that \verb!\drlap! makes: the labels are centered on the middle of the letter \(\alpha\), ignoring the space taken up by the subscripts, using the \verb!mathtools! command \verb!\mathrlap!, but only for labels which are \emph{not} placed to the left or right of a root.
 \begin{tcblisting}{title={Label subscript spacing}}
 \dynkin[label,label macro/.code={\alpha_{#1}},
-	edge length=.75cm]{D}{15}
+	edge length=.75cm]D{15}
 \par\noindent{}%
 \dynkin[label,label macro/.code={\alpha_{\drlap{#1}}},
-	edge length=.75cm]{D}{15}
+	edge length=.75cm]D{15}
 \end{tcblisting}
 \begin{tcblisting}{title={Label subscript spacing}}
 \dynkin[label,label macro/.code={\alpha_{#1}},
-	edge length=.75cm]{E}{8}
+	edge length=.75cm]E8
 \dynkin[label,label macro/.code={\alpha_{#1}},backwards,
-	edge length=.75cm]{E}{8}
+	edge length=.75cm]E8
 \par\noindent{}%
 \dynkin[label,label macro/.code={\alpha_{\mathrlap{#1}}},
-	edge length=.75cm]{E}{8}
+	edge length=.75cm]E8
 \dynkin[label,label macro/.code={\alpha_{\mathrlap{#1}}},backwards,
-	edge length=.75cm]{E}{8}
+	edge length=.75cm]E8
 \par\noindent{}%
 \dynkin[label,label macro/.code={\alpha_{\drlap{#1}}},
-	edge length=.75cm]{E}{8}
+	edge length=.75cm]E8
 \dynkin[label,label macro/.code={\alpha_{\drlap{#1}}},backwards,
-	edge length=.75cm]{E}{8}
+	edge length=.75cm]E8
 \end{tcblisting}
 
 \newpage
@@ -425,9 +444,9 @@
 \section{Height and depth of labels}
 Labels are set with default maximum height the height of the character \(b\), and default maximum depth the depth of the character \(g\).
 To change these, set \verb!label height! and \verb!label depth!:
-\begin{tcblisting}{title={Change height and dept of characters}}
-\dynkin[labels={a,b,c,d}]{F}{4}
-\dynkin[labels*={a,b,c,d}]{F}{4}
+\begin{tcblisting}{title={Change height and depth of characters}}
+\dynkin[labels={a,b,c,d},label height=d,label depth=d]F4
+\dynkin[labels*={a,b,c,d},label height=d,label depth=d]F4
 \dynkin[%
 label macro/.code={\alpha_{\drlap{#1}}},
 label macro*/.code={\gamma_{\drlap{#1}}},
@@ -434,9 +453,9 @@
 label height=$\alpha_1$,
 label depth=$\alpha_1$,
 labels={,2,...,5,,7},
-labels*={1,3,4,5,6}]{A}{7}
-\dynkin[labels={A,B,C,D},label height=$A$,label depth=$A$]{F}{4}
-\dynkin[labels={a^1,b^2,c^3,d^4},label height=$X^X$]{F}{4}
+labels*={1,3,4,5,6}]A7
+\dynkin[labels={A,B,C,D},label height=$A$,label depth=$A$]F4
+\dynkin[labels={a^1,b^2,c^3,d^4},label height=$X^X$]F4
 \end{tcblisting}
 
 \section{Text style for the labels}
@@ -445,7 +464,7 @@
 edge length=.75cm,
 labels={1,2,n-1,n},
 label macro/.code={\alpha_{\drlap{#1}}}
-]{A}{}
+]A{}
 \end{dynkinDiagram}
 \end{tcblisting}
 \begin{tcblisting}{title={Use a text style; font selection is in the label macro}}
@@ -452,7 +471,7 @@
 \begin{dynkinDiagram}[text style={scale=1.2,blue},
 edge length=.75cm,
 labels={1,2,n-1,n},
-label macro/.code={\mathbb{A}_{\drlap{#1}}}]{A}{}
+label macro/.code={\mathbb{A}_{\drlap{#1}}}]A{}
 \end{dynkinDiagram}
 \end{tcblisting}
 
@@ -460,23 +479,23 @@
 
 \section{Bracing roots}
 \begin{tcblisting}{title={Bracing roots}}
-\begin{dynkinDiagram}{A}{*.*x*.*} 
-\dynkinBrace[p]{1}{2}
-\dynkinBrace[q]{4}{5}
+\begin{dynkinDiagram}A{*.*x*.*} 
+\dynkinBrace[p]12
+\dynkinBrace[q]45
 \end{dynkinDiagram}
 \end{tcblisting}
 \begin{tcblisting}{title={Bracing roots, and a starred form}}
-\begin{dynkinDiagram}{A}{10}
-\dynkinBrace[\text{Roots 2 to 9}]{2}{9}
-\dynkinBrace*[\text{Roots 3 to 8}]{3}{8}
+\begin{dynkinDiagram}A{10}
+\dynkinBrace[\text{Roots 2 to 9}]29
+\dynkinBrace*[\text{Roots 3 to 8}]38
 \end{dynkinDiagram}
 \end{tcblisting}
 \begin{tcblisting}{title={Bracing roots}}
 \newcommand\circleRoot[1]{\draw (root #1) circle (3pt);}
-\begin{dynkinDiagram}{A}{**.***.***.***.***.**}
-\circleRoot{4}\circleRoot{7}\circleRoot{10}\circleRoot{13}
-\dynkinBrace[y-1]{1}{3}
-\dynkinBrace[z-1]{5}{6}
+\begin{dynkinDiagram}A{**.***.***.***.***.**}
+\circleRoot 4\circleRoot 7\circleRoot 10\circleRoot 13
+\dynkinBrace[y-1]13
+\dynkinBrace[z-1]56
 \dynkinBrace[t-1]{11}{12}
 \dynkinBrace[x-1]{14}{16}
 \end{dynkinDiagram}
@@ -488,21 +507,21 @@
 \setcounter{EPNo}{0}
 \NewDocumentCommand\EP{smmmm}%
 {%
-\stepcounter{EPNo}\roman{EPNo}. &
-\def\eL{.6cm}
+\stepcounter{EPNo}\roman{EPNo}. &%
+\def\eL{.6cm}%
 \IfStrEqCase{#2}%
 {%
-{D}{\gdef\eL{1cm}}%
-{E}{\gdef\eL{.75cm}}%
-{F}{\gdef\eL{.35cm}}%
-{G}{\gdef\eL{.35cm}}%
+D{\gdef\eL{1cm}}%
+E{\gdef\eL{.75cm}}%
+F{\gdef\eL{.35cm}}%
+G{\gdef\eL{.35cm}}%
 }%
-\tikzset{/Dynkin diagram,edge length=\eL}
 \IfBooleanTF{#1}%
-{\dynkin[backwards,labels*={#4},labels={#5}]{#2}{#3}}
-{\dynkin[labels*={#4},labels={#5}]{#2}{#3}}
+{\dynkin[edge length=\eL,backwards,labels*={#4},labels={#5}]{#2}{#3}}
+{\dynkin[edge length=\eL,labels*={#4},labels={#5}]{#2}{#3}}
 \\
 }%
+\renewcommand*\do[1]{\EP#1}%
 \begin{longtable}{MM}
 \caption{Dynkin diagrams from Euler products \cite{Langlands:1967}}\\
 \endfirsthead
@@ -511,38 +530,39 @@
 \multicolumn{2}{c}{continued \dots}\\
 \endfoot
 \endlastfoot
-\EP{A}{***.**}{1,1,1,1,1}{,1,2,n-1,n}
-\EP{A}{***.**}{1,1,1,1,1}{1,2,n-1,n}
-\EP{A}{**.***.*}{1,1,1,1,1,1}{1,2,m-1,,m,n}
-\EP{B}{**.***}{2,2,2,2,1}{1,2,n-1,n}
-\EP*{B}{***.**}{2,2,2,2,1}{n,n-1,2,1,}
-\EP{C}{**.***}{1,1,1,1,2}{1,2,n-1,}
-\EP*{C}{***.**}{1,1,1,1,2}{n,n-1,2,1,}
-\EP{D}{**.****}{1,1,1,1,1,1}{1,2,n-2,n-1,n}
-\EP{D}{**.****}{1,1,1,1,1,1}{1,2,n-2,n-1,n}
-\EP{E}{6}{1,1,1,1,1,1}{1,...,5}
-\EP*{E}{7}{1,1,1,1,1,1,1}{6,...,1}
-\EP{E}{7}{1,1,1,1,1,1,1}{1,...,6}
-\EP*{E}{8}{1,1,1,1,1,1,1,1}{7,...,1}
-\EP{E}{8}{1,1,1,1,1,1,1,1}{1,...,7}
-\EP{G}{2}{1,3}{,1}
-\EP{G}{2}{1,3}{1}
-\EP{B}{**.*.**}{2,2,2,2,1}{,1,2,n-1,n}
-\EP{F}{4}{1,1,2,2}{,3,2,1}
-\EP{C}{3}{1,1,2}{,2,1}
-\EP{C}{**.***}{1,1,1,1,2}{,1,n-2,n-1,n}
-\EP*{B}{3}{2,2,1}{1,2}
-\EP{F}{4}{1,1,2,2}{1,2,3}
-\EP{D}{**.****}{1,1,1,1,1,1}{1,2,n-2,n-2,n,n}
-\EP{E}{6}{1,1,1,1,1,1}{1,2,3,4,,5}
-\EP{E}{6}{1,1,1,1,1,1}{1,2,3,5,,4}
-\EP*{E}{7}{1,1,1,1,1,1,1}{,5,...,1,6}
-\EP*{E}{7}{1,1,1,1,1,1,1}{,6,4,3,2,1,5}
-\EP*{E}{8}{1,1,1,1,1,1,1,1}{,6,...,1,7}
-\EP*{E}{8}{1,1,1,1,1,1,1,1}{,7,5,4,3,2,1,6}
-\EP*{E}{7}{1,1,1,1,1,1,1}{5,...,1,,6}
-\EP*{E}{7}{1,1,1,1,1,1,1}{1,...,5,,6}
-\EP*{E}{8}{1,1,1,1,1,1,1,1}{6,...,1,,7}
+\docsvlist{
+A{***.**}{1,1,1,1,1}{,1,2,n-1,n},
+A{***.**}{1,1,1,1,1}{1,2,n-1,n},
+A{**.***.*}{1,1,1,1,1,1}{1,2,m-1,,m,n},
+B{**.***}{2,2,2,2,1}{1,2,n-1,n},
+*B{***.**}{2,2,2,2,1}{n,n-1,2,1,},
+C{**.***}{1,1,1,1,2}{1,2,n-1,},
+*C{***.**}{1,1,1,1,2}{n,n-1,2,1,},
+D{**.****}{1,1,1,1,1,1}{1,2,n-2,n-1,n},
+D{**.****}{1,1,1,1,1,1}{1,2,n-2,n-1,n},
+E6{1,1,1,1,1,1}{1,...,5},
+*E7{1,1,1,1,1,1,1}{6,...,1},
+E7{1,1,1,1,1,1,1}{1,...,6},
+*E8{1,1,1,1,1,1,1,1}{7,...,1},
+E8{1,1,1,1,1,1,1,1}{1,...,7},
+G2{1,3}{,1},
+G2{1,3}{1},
+B{**.*.**}{2,2,2,2,1}{,1,2,n-1,n},
+F4{1,1,2,2}{,3,2,1},
+C3{1,1,2}{,2,1},
+C{**.***}{1,1,1,1,2}{,1,n-2,n-1,n},
+*B3{2,2,1}{1,2},
+F4{1,1,2,2}{1,2,3},
+D{**.****}{1,1,1,1,1,1}{1,2,n-2,n-2,n,n},
+E6{1,1,1,1,1,1}{1,2,3,4,,5},
+E6{1,1,1,1,1,1}{1,2,3,5,,4},
+*E7{1,1,1,1,1,1,1}{,5,...,1,6},
+*E7{1,1,1,1,1,1,1}{,6,4,3,2,1,5},
+*E8{1,1,1,1,1,1,1,1}{,6,...,1,7},
+*E8{1,1,1,1,1,1,1,1}{,7,5,4,3,2,1,6},
+*E7{1,1,1,1,1,1,1}{5,...,1,,6},
+*E7{1,1,1,1,1,1,1}{1,...,5,,6},
+*E8{1,1,1,1,1,1,1,1}{6,...,1,,7}}
 \end{longtable}
 \end{filecontents*}
 {\input{EulerProducts}}\VerbatimInput{EulerProducts.tex}
@@ -555,81 +575,77 @@
 	arrow color=red]{F}{4}
 \end{tcblisting}
 \begin{tcblisting}{title={Edge lengths}}
-The Dynkin diagram of \(A_3\) is \dynkin[edge length=1.2,parabolic=3]{A}{3}
+The Dynkin diagram of \(A_3\) is \dynkin[edge length=1.2]A3
 \end{tcblisting}
 \newpage
 \begin{tcblisting}{title={Root marks}}
-\dynkin{E}{8}
-\dynkin[mark=*]{E}{8}
-\dynkin[mark=o]{E}{8}
-\dynkin[mark=O]{E}{8}
-\dynkin[mark=t]{E}{8}
-\dynkin[mark=x]{E}{8}
-\dynkin[mark=X]{E}{8}
+\dynkin E8
+\dynkin[mark=*]E8
+\dynkin[mark=o]E8
+\dynkin[mark=O]E8
+\dynkin[mark=t]E8
+\dynkin[mark=x]E8
+\dynkin[mark=X]E8
 \end{tcblisting}
 At the moment, you can only use:
-\par\noindent\begin{tabular}{>{\ttfamily}cl}
-* & solid dot \\
-o & hollow circle \\
-O & double hollow circle \\
-t & tensor root \\
-x & crossed root \\ 
-X & thickly crossed root 
+\par\noindent\begin{tabular}{>{\ttfamily}ccl}
+* &\dynkin[mark=*]A1& solid dot \\
+o &\dynkin[mark=o]A1& hollow circle \\
+O&\dynkin[mark=O]A1 & double hollow circle \\
+t &\dynkin[mark=t]A1& tensor root \\
+x &\dynkin[mark=x]A1& crossed root \\ 
+X &\dynkin[mark=X]A1& thickly crossed root 
 \end{tabular}
 \begin{tcblisting}{title={Mark styles}}
-The parabolic subgroup \(E_{8,124}\) is \dynkin[parabolic=124,x/.style={brown,very thick}]{E}{8}
+The parabolic subgroup \(E_{8,124}\) is \dynkin[parabolic=124,x/.style={brown,very thick}]E8
 \end{tcblisting}
 \begin{tcblisting}{title={Sizes of root marks}}
-\(A_{3,3}\) with big root marks is \dynkin[root radius=.08cm,parabolic=3]{A}{3}
+\(A_{3,3}\) with big root marks is \dynkin[root radius=.08cm,parabolic=3]A3
 \end{tcblisting}
 
-
 \section{Suppress or reverse arrows}
 \begin{tcblisting}{title={Some diagrams have double or triple edges}}
-\dynkin{F}{4}
-\dynkin{G}{2}
+\dynkin F4
+\dynkin G2
 \end{tcblisting}
 \begin{tcblisting}{title={Suppress arrows}}
-\dynkin[arrows=false]{F}{4}
-\dynkin[arrows=false]{G}{2}
+\dynkin[arrows=false]F4
+\dynkin[arrows=false]G2
 \end{tcblisting}
 \begin{tcblisting}{title={Reverse arrows}}
-\dynkin[reverse arrows]{F}{4}
-\dynkin[reverse arrows]{G}{2}
+\dynkin[reverse arrows]F4
+\dynkin[reverse arrows]G2
 \end{tcblisting}
 
-
 \section{Backwards and upside down}
-
 \begin{tcblisting}{title={Default}}
-\dynkin{E}{8}
-\dynkin{F}{4}
-\dynkin{G}{2}
+\dynkin E8
+\dynkin F4
+\dynkin G2
 \end{tcblisting}
 \begin{tcblisting}{title={Backwards}}
-\dynkin[backwards]{E}{8}
-\dynkin[backwards]{F}{4}
-\dynkin[backwards]{G}{2}
+\dynkin[backwards]E8
+\dynkin[backwards]F4
+\dynkin[backwards]G2
 \end{tcblisting}
 \begin{tcblisting}{title={Reverse arrows}}
-\dynkin[reverse arrows]{F}{4}
-\dynkin[reverse arrows]{G}{2}
+\dynkin[reverse arrows]F4
+\dynkin[reverse arrows]G2
 \end{tcblisting}
 \begin{tcblisting}{title={Backwards, reverse arrows}}
-\dynkin[backwards,reverse arrows]{F}{4}
-\dynkin[backwards,reverse arrows]{G}{2}
+\dynkin[backwards,reverse arrows]F4
+\dynkin[backwards,reverse arrows]G2
 \end{tcblisting}
 \begin{tcblisting}{title={Backwards versus upside down}}
-\dynkin[label]{E}{8}
-\dynkin[label,backwards]{E}{8}
-\dynkin[label,upside down]{E}{8}
-\dynkin[label,backwards,upside down]{E}{8}
+\dynkin[label]E8
+\dynkin[label,backwards]E8
+\dynkin[label,upside down]E8
+\dynkin[label,backwards,upside down]E8
 \end{tcblisting}
 
-
 \section{Drawing on top of a Dynkin diagram}
 \begin{tcblisting}{title={TikZ can access the roots themselves}}
-\begin{dynkinDiagram}{A}{4}
+\begin{dynkinDiagram}A4
 	\fill[white,draw=black] (root 2) circle (.15cm);
 	\fill[white,draw=black] (root 2) circle (.1cm);
 	\draw[black] (root 2) circle (.05cm);
@@ -637,25 +653,22 @@
 \end{tcblisting}
 \newpage
 \begin{tcblisting}{title={Draw curves between the roots}}
-\begin{dynkinDiagram}[label]{E}{8}
+\begin{dynkinDiagram}[label]E8
 	\draw[very thick, black!50,-latex]  
 		(root 3.south) to [out=-45, in=-135] (root 6.south); 
 \end{dynkinDiagram}
 \end{tcblisting}
 \begin{tcblisting}{title={Change marks}}
-\begin{dynkinDiagram}[mark=o,label]{E}{8}
-	\dynkinRootMark{*}{5}
-	\dynkinRootMark{*}{8}
+\begin{dynkinDiagram}[mark=o,label]E8
+	\dynkinRootMark{*}5
+	\dynkinRootMark{*}8
 \end{dynkinDiagram}
 \end{tcblisting}
 
-
 \section{Mark lists}
-
 The package allows a list of root marks instead of a rank:
-
 \begin{tcblisting}{title={A mark list}}
-\dynkin{E}{oo**ttxx}
+\dynkin E{oo**ttxx}
 \end{tcblisting}
 The mark list \verb!oo**ttxx! has one mark for each root: \verb!o!, \verb!o!, \dots, \verb!x!.
 Roots are listed in the current default ordering.
@@ -663,7 +676,7 @@
 
 If you need to repeat a mark, you can give a \emph{single digit} positive integer to indicate how many times to repeat it.
 \begin{tcblisting}{title={A mark list with repetitions}}
-\dynkin{A}{x4o3t4}
+\dynkin A{x4o3t4}
 \end{tcblisting}
 
 \NewDocumentCommand\ClassicalLieSuperalgebras{om}%
@@ -674,15 +687,15 @@
 \IfValueT{#1}{
 & & \texttt{\textbackslash{}tikzset\{/Dynkin diagram,root radius=#1\}} \\
 }
-A_{mn} & \dynk{A}{o3.oto.oo}
-B_{mn} & \dynk{B}{o3.oto.oo}
-B_{0n} & \dynk{B}{o3.o3.o*}
-C_{n}  & \dynk{C}{too.oto.oo}
-D_{mn} & \dynk{D}{o3.oto.o4}
-D_{21\alpha} & \dynk{A}{oto}
-F_4 & \dynk{F}{ooot}
+A_{mn} & \dynk A{o3.oto.oo}
+B_{mn} & \dynk B{o3.oto.oo}
+B_{0n} & \dynk B{o3.o3.o*}
+C_{n}  & \dynk C{too.oto.oo}
+D_{mn} & \dynk D{o3.oto.o4}
+D_{21\alpha} & \dynk A{oto}
+F_4 & \dynk F{ooot}
 G_3 & \dynk[extended,affine mark=t,
-reverse arrows]{G}{2} 
+reverse arrows]G2 
 \end{dynkinTable}
 \IfValueT{#1}{\tikzset{/Dynkin diagram,root radius=.05cm}}
 }%
@@ -692,40 +705,38 @@
 \ClassicalLieSuperalgebras{Here we see the problem with using the default root radius parameter, which is too small for tensor product symbols.}
 
 
-
 \section{Indefinite edges}
 
-An \emph{indefinite edge} is a dashed edge between two roots, \dynkin{A}{*.*} indicating that an indefinite number of roots have been omitted from the Dynkin diagram.
+An \emph{indefinite edge} is a dashed edge between two roots, \dynkin A{*.*} indicating that an indefinite number of roots have been omitted from the Dynkin diagram.
 In between any two entries in a mark list, place a period to indicate an indefinite edge:
 \begin{tcblisting}{title={Indefinite edges}}
-\dynkin{D}{o.o*.*.t.to.t}
+\dynkin D{o.o*.*.t.to.t}
 \end{tcblisting}
 
 In certain diagrams, roots may have an edge between them even though they are not subsequent in the ordering.
 For such rare situations, there is an option:
 \begin{tcblisting}{title={Indefinite edge option}}
-\dynkin[make indefinite edge={3-5},label]{D}{5}
+\dynkin[make indefinite edge={3-5},label]D5
 \end{tcblisting}
 \begin{tcblisting}{title={Give a list of edges to become indefinite}}
-\dynkin[make indefinite edge/.list={1-2,3-5},label]{D}{5}
+\dynkin[make indefinite edge/.list={1-2,3-5},label]D5
 \end{tcblisting}
 
 \begin{tcblisting}{title={Indefinite edge style}}
-\dynkin[indefinite edge/.style={draw=black,fill=white,thin,densely dashed},%
-	edge length=1cm,%
-	make indefinite edge={3-5}]
-	{D}{5}
+\dynkin[indefinite edge/.style={
+	draw=black,fill=white,thin,densely dashed},
+	edge length=1cm,
+	make indefinite edge={3-5}]D5
 \end{tcblisting}
 
 \begin{tcblisting}{title={The ratio of the lengths of indefinite edges to those of other edges}}
-\dynkin[edge length = .5cm,%
-	indefinite edge ratio=3,%
-	make indefinite edge={3-5}]
-	{D}{5}
+\dynkin[edge length = .5cm,
+	indefinite edge ratio=3,
+	make indefinite edge={3-5}]D5
 \end{tcblisting}
 
 
-\begingroup
+%\begingroup
 \renewcommand{\wdtA}{.35cm}
 \renewcommand{\wdtE}{6.55cm}
 \begin{dynkinTable}{Springer's table of indices \cite{Springer:2009}, pp. 320-321, with one form of \(E_7\) corrected}{2.5cm}{3.7cm}
@@ -732,9 +743,9 @@
 % 1
 A_n &
 \multicolumn{2}{E}{
-\begin{dynkinDiagram}{A}{o.o*o.o*o.o}
-\dynkinLabelRoot{3}{d}
-\dynkinLabelRoot{6}{n-d}
+\begin{dynkinDiagram}A{o.o*o.o*o.o}
+\dynkinLabelRoot 3d
+\dynkinLabelRoot 6{n-d}
 \end{dynkinDiagram}
 }
 \\
@@ -742,9 +753,9 @@
 A_n &
 \multicolumn{2}{E}{
 \begin{dynkinDiagram}{A}{o.o*o.o*o.o*o.o*o.o}
-\dynkinLabelRoot{3}{d}
-\dynkinLabelRoot{6}{rd}
-\dynkinLabelRoot{9}{n-rd}
+\dynkinLabelRoot 3d
+\dynkinLabelRoot 6{rd}
+\dynkinLabelRoot 9{n-rd}
 \dynkinLabelRoot{12}{n-d}
 \end{dynkinDiagram}
 }
@@ -752,7 +763,7 @@
 % 3
 B_n &
 \multicolumn{2}{E}{
-\begin{dynkinDiagram}{B}{**.*.o.oo}
+\begin{dynkinDiagram}B{**.*.o.oo}
 \dynkinLabelRoot{3}{r}
 \end{dynkinDiagram}
 }
@@ -760,9 +771,9 @@
 % 4
 C_n &
 \multicolumn{2}{E}{
-\begin{dynkinDiagram}{C}{o.o*o.o*o.oo}
-\dynkinLabelRoot{3}{d}
-\dynkinLabelRoot{6}{rd}
+\begin{dynkinDiagram}C{o.o*o.o*o.oo}
+\dynkinLabelRoot 3d
+\dynkinLabelRoot 6{rd}
 \end{dynkinDiagram}
 }
 \\
@@ -769,72 +780,121 @@
 % 5
 D_n &
 \multicolumn{2}{E}{
-\begin{dynkinDiagram}{D}{o.o*o.o*o.ooo}
-\dynkinLabelRoot{3}{d}
-\dynkinLabelRoot{6}{rd}
+\begin{dynkinDiagram}D{o.o*o.o*o.ooo}
+\dynkinLabelRoot 3d
+\dynkinLabelRoot 6{rd}
 \end{dynkinDiagram}
 }
 \\
 % 6
 E_6 &
-\dynk{E}{*oooo*}
+\dynk E{*oooo*}
 % 7
 E_6 &
-\dynk{E}{o*o*oo}
+\dynk E{o*o*oo}
 % 8
 E_6 &
-\dynk{E}{o*oooo}
+\dynk E{o*oooo}
 % 9
 E_6 &
-\dynk{E}{**ooo*}
+\dynk E{**ooo*}
 % 10
 E_7 &
-\dynk{E}{*oooooo}
+\dynk E{*oooooo}
 % 11
 E_7 &
-\dynk{E}{ooooo*o}
+\dynk E{ooooo*o}
 % 12
 E_7 &
-\dynk{E}{oooooo*}
+\dynk E{oooooo*}
 % 13
 E_7 &
-\dynk{E}{*oooo*o}
+\dynk E{*oooo*o}
 % 14 - corrected from Springer.
 E_7 &
-\dynk{E}{*oooo**}
+\dynk E{*oooo**}
 % 15
 E_7 &
-\dynk{E}{*o**o*o}
+\dynk E{*o**o*o}
 % 16
 E_8 &
-\dynk{E}{*ooooooo}
+\dynk E{*ooooooo}
 % 17
 E_8 &
-\dynk{E}{ooooooo*}
+\dynk E{ooooooo*}
 % 18
 E_8 &
-\dynk{E}{*oooooo*}
+\dynk E{*oooooo*}
 % 19
 E_8 &
-\dynk{E}{oooooo**}
+\dynk E{oooooo**}
 % 20
 E_8 &
-\dynk{E}{*oooo***}
+\dynk E{*oooo***}
 % 21
 F_4 &
-\dynk{F}{ooo*}
+\dynk F{ooo*}
 % 22
 D_4 & 
-\dynk{D}{o*oo}
+\dynk D{o*oo}
 \end{longtable}
+
 \endgroup
 
+\section{Root ordering}\label{section:order}
+\begin{tcblisting}{title={Root ordering}}
+\dynkin[label,ordering=Adams]E6
+\dynkin[label,ordering=Bourbaki]E6
+\dynkin[label,ordering=Carter]E6
+\dynkin[label,ordering=Dynkin]E6
+\dynkin[label,ordering=Kac]E6
+\end{tcblisting}
+Default is Bourbaki.
+Sources are Adams \cite{Adams:1996} p. 56--57, Bourbaki \cite{Bourbaki:2002} p. pp. 265--290 plates I-IX, Carter \cite{Carter:2005} p. 540--609, Dynkin \cite{Dynkin:1952}, Kac \cite{Kac:1990} p. 43. 
+\NewDocumentCommand\tablerow{mm}%
+{%
+#1_{#2}&
+\dynkin[label,ordering=Adams]{#1}{#2}&
+\dynkin[label]{#1}{#2}&
+\dynkin[label,ordering=Carter]{#1}{#2}&
+\dynkin[label,ordering=Dynkin]{#1}{#2}&
+\dynkin[label,ordering=Kac]{#1}{#2}\\ 
+}%
+\begin{center}
+\renewcommand{\wdtA}{.7cm}
+\renewcommand{\wdtL}{2.2cm}
+\begin{longtable}{@{}ALLLLL@{}}
+\toprule
+& Adams & Bourbaki & Carter & Dynkin & Kac \\ \midrule
+\endfirsthead
+\toprule
+& Adams & Bourbaki & Carter & Dynkin & Kac \\ \midrule
+\endhead
+\bottomrule
+\endfoot
+\bottomrule
+\endlastfoot
+\tablerow E6\tablerow E7\tablerow E8\tablerow F4\tablerow G2
+\end{longtable}
+\end{center}
+The marks are set down in order according to the current root ordering:
+\begin{tcblisting}{}
+\dynkin[label]E{*otxXOt*}
+\dynkin[label,ordering=Carter]E{*otxXOt*}
+\dynkin[label,ordering=Kac]E{*otxXOt*}
+\end{tcblisting}
+\begin{tcblisting}{title={Convert between orderings}}
+\newcount\r
+\dynkinOrder E8.Carter::6->Bourbaki.{\r}
+In \(E_8\), root 6 in Carter's ordering is root \the\r{} in Bourbaki's ordering.
+\end{tcblisting}
+
 \section{Parabolic subgroups}
 Each set of roots is assigned a number, with each binary digit zero or one to say whether the corresponding root is crossed or not:
 \begin{tcblisting}{}
 The flag variety of pointed lines in 
 projective 3-space is associated to 
-the Dynkin diagram \dynkin[parabolic=3]{A}{3}.
+the Dynkin diagram \dynkin[parabolic=3]A3.
 \end{tcblisting}
 
 \begin{filecontents*}{hermitian-symmetric-spaces.tex}
@@ -847,15 +907,15 @@
 \caption{\dots continued}\\ \endhead
 \caption{continued \dots}\\ \endfoot
 \endlastfoot
-\HSS{A_n}{A}{**.*x*.**}{Grassmannian of $k$-planes in $\C{n+1}$}
-\HSS{B_n}[1]{B}{}{$(2n-1)$-dimensional hyperquadric, i.e. the variety of null lines in $\C{2n+1}$}
-\HSS{C_n}[16]{C}{}{space of Lagrangian $n$-planes in $\C{2n}$}
-\HSS{D_n}[1]{D}{}{$(2n-2)$-dimensional hyperquadric, i.e. the variety of null lines in $\C{2n}$}
-\HSS{D_n}[32]{D}{}{one component of the variety of maximal dimension null subspaces of $\C{2n}$}
-\HSS{D_n}[16]{D}{}{the other component}
-\HSS{E_6}[1]{E}{6}{complexified octave projective plane}
-\HSS{E_6}[32]{E}{6}{its dual plane}
-\HSS{E_7}[64]{E}{7}{the space of null octave 3-planes in octave 6-space}
+\HSS{A_n}A{**.*x*.**}{Grassmannian of $k$-planes in $\C{n+1}$}
+\HSS{B_n}[1]B{}{$(2n-1)$-dimensional hyperquadric, i.e. the variety of null lines in $\C{2n+1}$}
+\HSS{C_n}[16]C{}{space of Lagrangian $n$-planes in $\C{2n}$}
+\HSS{D_n}[1]D{}{$(2n-2)$-dimensional hyperquadric, i.e. the variety of null lines in $\C{2n}$}
+\HSS{D_n}[32]D{}{one component of the variety of maximal dimension null subspaces of $\C{2n}$}
+\HSS{D_n}[16]D{}{the other component}
+\HSS{E_6}[1]E6{complexified octave projective plane}
+\HSS{E_6}[32]E6{its dual plane}
+\HSS{E_7}[64]E7{the space of null octave 3-planes in octave 6-space}
 \end{longtable}
 \end{filecontents*}
 \begingroup
@@ -866,24 +926,24 @@
 
 \section{Extended Dynkin diagrams}
 \begin{tcblisting}{title={Extended Dynkin diagrams}}
-\dynkin[extended]{A}{7}
+\dynkin[extended]A7
 \end{tcblisting}
-The extended Dynkin diagrams are also described in the notation of Kac \cite{Kac:1990} p. 55 as affine untwisted Dynkin diagrams: we extend \verb!\dynkin{A}{7}! to become \verb!\dynkin{A}[1]{7}!:
+The extended Dynkin diagrams are also described in the notation of Kac \cite{Kac:1990} p. 55 as affine untwisted Dynkin diagrams: we extend \verb!\dynkin{A}{7}! to become \verb!\dynkin A[1]7!:
 \begin{tcblisting}{title={Extended Dynkin diagrams}}
-\dynkin{A}[1]{7}
+\dynkin A[1]7
 \end{tcblisting}
 \renewcommand*{\arraystretch}{1.5}
 \begin{dynkinTable}{The Dynkin diagrams of the extended simple root systems}{3cm}{5cm}
-\dyn[extended]{A}{1}
-\dyn[extended]{A}{}
-\dyn[extended]{B}{}
-\dyn[extended]{C}{}
-\dyn[extended]{D}{}
-\dyn[extended]{E}{6}
-\dyn[extended]{E}{7}
-\dyn[extended]{E}{8}
-\dyn[extended]{F}{4}
-\dyn[extended]{G}{2}
+\dyn[extended]A{1}
+\dyn[extended]A{}
+\dyn[extended]B{}
+\dyn[extended]C{}
+\dyn[extended]D{}
+\dyn[extended]E6
+\dyn[extended]E7
+\dyn[extended]E8
+\dyn[extended]F4
+\dyn[extended]G2
 \end{dynkinTable}
 
 \newpage
@@ -891,45 +951,53 @@
 \section{Affine twisted and untwisted Dynkin diagrams}
 The affine Dynkin diagrams are described in the notation of Kac \cite{Kac:1990} p. 55:
 \begin{tcblisting}{title={Affine Dynkin diagrams}}
-\(A^{(1)}_7=\dynkin{A}[1]{7}, \ 
-E^{(2)}_6=\dynkin{E}[2]{6}, \ 
-D^{(3)}_4=\dynkin{D}[3]{4}\)
+\(A^{(1)}_7=\dynkin A[1]7, \ 
+E^{(2)}_6=\dynkin E[2]6, \ 
+D^{(3)}_4=\dynkin D[3]4\)
 \end{tcblisting}
 \begin{dynkinTable}{The affine Dynkin diagrams}{3cm}{3.75cm}
-\dyn{A}[1]{1}
-\dyn{A}[1]{}
-\dyn{B}[1]{}
-\dyn{C}[1]{}
-\dyn{D}[1]{}
-\dyn{E}[1]{6}
-\dyn{E}[1]{7}
-\dyn{E}[1]{8}
-\dyn{F}[1]{4}
-\dyn{G}[1]{2}
-\dyn{A}[2]{2}
-\dyn{A}[2]{even}
-\dyn{A}[2]{odd}
-\dyn{D}[2]{}
-\dyn{E}[2]{6}
-\dyn{D}[3]{4}
+\dyn A[1]1
+\dyn A[1]{}
+\dyn B[1]{}
+\dyn C[1]{}
+\dyn D[1]{}
+\dyn E[1]6
+\dyn E[1]7
+\dyn E[1]8
+\dyn F[1]4
+\dyn G[1]2
+\dyn A[2]2
+\dyn A[2]{even}
+\dyn A[2]{odd}
+\dyn D[2]{}
+\dyn E[2]6
+\dyn D[3]4
 \end{dynkinTable}
 
 \begin{dynkinTable}{Some more affine Dynkin diagrams}{3cm}{3.25cm}
-\dyn{A}[2]{4}
-\dyn{A}[2]{5}
-\dyn{A}[2]{6}
-\dyn{A}[2]{7}
-\dyn{A}[2]{8}
-\dyn{D}[2]{3}
-\dyn{D}[2]{4}
-\dyn{D}[2]{5}
-\dyn{D}[2]{6}
-\dyn{D}[2]{7}
-\dyn{D}[2]{8}
-\dyn{D}[3]{4}
-\dyn{E}[2]{6}
+\dyn A[2]4
+\dyn A[2]5
+\dyn A[2]6
+\dyn A[2]7
+\dyn A[2]8
+\dyn D[2]3
+\dyn D[2]4
+\dyn D[2]5
+\dyn D[2]6
+\dyn D[2]7
+\dyn D[2]8
+\dyn D[3]4
+\dyn E[2]6
 \end{dynkinTable}
 
+\begin{dynkinTable}{Some more Kac--Moody Dynkin diagrams, only allowed in Kac ordering}{3cm}{3.25cm}
+\dyn[ordering=Kac,label]E6
+\dyn[ordering=Kac,label]E7
+\dyn[ordering=Kac,label]E8
+\dyn[ordering=Kac,label]E9
+\dyn[ordering=Kac,label]E{10}
+\dyn[ordering=Kac,label]E{11}
+\end{dynkinTable}
 
 
 
@@ -936,104 +1004,103 @@
 \section{Extended Coxeter diagrams}
 
 \begin{tcblisting}{title={Extended and Coxeter options together}}
-\dynkin[extended,Coxeter]{F}{4}
+\dynkin[extended,Coxeter]F4
 \end{tcblisting}
 
 
 \begin{dynkinTable}{The extended (affine) Coxeter diagrams}{3cm}{6cm}
-\dyn[extended,Coxeter]{A}{}
-\dyn[extended,Coxeter]{B}{}
-\dyn[extended,Coxeter]{C}{}
-\dyn[extended,Coxeter]{D}{}
-\dyn[extended,Coxeter]{E}{6}
-\dyn[extended,Coxeter]{E}{7}
-\dyn[extended,Coxeter]{E}{8}
-\dyn[extended,Coxeter]{F}{4}
-\dyn[extended,Coxeter]{G}{2}
-\dyn[extended,Coxeter]{H}{3}
-\dyn[extended,Coxeter]{H}{4}
-\dyn[extended,Coxeter]{I}{1}
+\dyn[extended,Coxeter]A{}
+\dyn[extended,Coxeter]B{}
+\dyn[extended,Coxeter]C{}
+\dyn[extended,Coxeter]D{}
+\dyn[extended,Coxeter]E6
+\dyn[extended,Coxeter]E7
+\dyn[extended,Coxeter]E8
+\dyn[extended,Coxeter]F4
+\dyn[extended,Coxeter]G2
+\dyn[extended,Coxeter]H3
+\dyn[extended,Coxeter]H4
+\dyn[extended,Coxeter]I1
 \end{dynkinTable}
 
 \section{Kac style}
 We include a style called \verb!Kac! which tries to imitate the style of \cite{Kac:1990}.
 \begin{tcblisting}{title={Kac style}}
-\dynkin[Kac]{F}{4}
+\dynkin[Kac]F4
 \end{tcblisting}
 \begingroup
 \pgfkeys{/Dynkin diagram,Kac}
 \begin{dynkinTable}{The Dynkin diagrams of the simple root systems in Kac style}{5cm}{4.5cm}
-\dyn{A}{}
-\dyn{B}{}
-\dyn{C}{}
-\dyn{D}{}
-\dyn{E}{6}
-\dyn{E}{7}
-\dyn{E}{8}
-\dyn{F}{4}
-\dyn{G}{2}
+\dyn A{}
+\dyn B{}
+\dyn C{}
+\dyn D{}
+\dyn E6
+\dyn E7
+\dyn E8
+\dyn F4
+\dyn G2
 \end{dynkinTable}
-\newpage
 \begin{dynkinTable}{The Dynkin diagrams of the extended simple root systems in Kac style}{5cm}{4.5cm}
-\dyn[extended]{A}{1}
-\dyn[extended]{A}{}
-\dyn[extended]{B}{}
-\dyn[extended]{C}{}
-\dyn[extended]{D}{}
-\dyn[extended]{E}{6}
-\dyn[extended]{E}{7}
-\dyn[extended]{E}{8}
-\dyn[extended]{F}{4}
-\dyn[extended]{G}{2}
+\dyn[extended]A1
+\dyn[extended]A{}
+\dyn[extended]B{}
+\dyn[extended]C{}
+\dyn[extended]D{}
+\dyn[extended]E6
+\dyn[extended]E7
+\dyn[extended]E8
+\dyn[extended]F4
+\dyn[extended]G2
 \end{dynkinTable}
+\newpage
 \begin{dynkinTable}{The Dynkin diagrams of the twisted simple root systems in Kac style}{6cm}{4.5cm}
-\dyn{A}[2]{2}
-\dyn{A}[2]{even}
-\dyn{A}[2]{odd}
-\dyn{D}[2]{}
-\dyn{E}[2]{6}
-\dyn{D}[3]{4}
+\dyn A[2]2
+\dyn A[2]{even}
+\dyn A[2]{odd}
+\dyn D[2]{}
+\dyn E[2]6
+\dyn D[3]4
 \end{dynkinTable}
 \endgroup
-\newpage
 \section{Ceref style}
 We include a style called \verb!ceref! which paints oblong root markers with shadows.
 The word ``ceref'' is an old form of the word ``serif''.
 \begin{tcblisting}{title={Ceref style}}
-\dynkin[ceref]{F}{4}
+\dynkin[ceref]F4
 \end{tcblisting}
 \begingroup
 \pgfkeys{/Dynkin diagram,ceref}
 \begin{dynkinTable}{The Dynkin diagrams of the simple root systems in ceref style}{5cm}{4.5cm}
-\dyn{A}{}
-\dyn{B}{}
-\dyn{C}{}
-\dyn{D}{}
-\dyn{E}{6}
-\dyn{E}{7}
-\dyn{E}{8}
-\dyn{F}{4}
-\dyn{G}{2}
+\dyn A{}
+\dyn B{}
+\dyn C{}
+\dyn D{}
+\dyn E6
+\dyn E7
+\dyn E8
+\dyn F4
+\dyn G2
 \end{dynkinTable}
 \begin{dynkinTable}{The Dynkin diagrams of the extended simple root systems in ceref style}{5cm}{4.5cm}
-\dyn[extended]{A}{1}
-\dyn[extended]{A}{}
-\dyn[extended]{B}{}
-\dyn[extended]{C}{}
-\dyn[extended]{D}{}
-\dyn[extended]{E}{6}
-\dyn[extended]{E}{7}
-\dyn[extended]{E}{8}
-\dyn[extended]{F}{4}
-\dyn[extended]{G}{2}
+\dyn[extended]A1
+\dyn[extended]A{}
+\dyn[extended]B{}
+\dyn[extended]C{}
+\dyn[extended]D{}
+\dyn[extended]E6
+\dyn[extended]E7
+\dyn[extended]E8
+\dyn[extended]F4
+\dyn[extended]G2
 \end{dynkinTable}
 \begin{dynkinTable}{The Dynkin diagrams of the twisted simple root systems in ceref style}{6cm}{4.5cm}
-\dyn{A}[2]{2}
-\dyn{A}[2]{even}
-\dyn{A}[2]{odd}
-\dyn{D}[2]{}
-\dyn{E}[2]{6}
-\dyn{D}[3]{4}
+\dyn A[2]2
+\dyn A[2]{even}
+\dyn A[2]{odd}
+\dyn D[2]{}
+\dyn E[2]6
+\dyn D[3]4
 \end{dynkinTable}
 \endgroup
 
@@ -1041,42 +1108,42 @@
 \section{More on folded Dynkin diagrams}
 The Dynkin diagrams package has limited support for folding Dynkin diagrams.
 \begin{tcblisting}{title={Folding}}
-\dynkin[fold]{A}{13}
+\dynkin[fold]A{13}
 \end{tcblisting}
 \begin{tcblisting}{title={Big fold radius}}
-\dynkin[fold,fold radius=1cm]{A}{13}
+\dynkin[fold,fold radius=1cm]A{13}
 \end{tcblisting}
 \begin{tcblisting}{title={Small fold radius}}
-\dynkin[fold,fold radius=.2cm]{A}{13}
+\dynkin[fold,fold radius=.2cm]A{13}
 \end{tcblisting}
 Some Dynkin diagrams have multiple foldings, which we attempt to distinguish (not entirely successfully) by their \emph{ply}: the maximum number of roots folded together.
 Most diagrams can only allow a 2-ply folding, so \verb!fold! is a synonym for \verb!ply=2!.
 \begin{tcblisting}{title={3-ply}}
-\dynkin[ply=3]{D}{4}
-\dynkin[ply=3,fold right]{D}{4}
-\dynkin[ply=3]{D}[1]{4}
+\dynkin[ply=3]D4
+\dynkin[ply=3,fold right]D4
+\dynkin[ply=3]D[1]4
 \end{tcblisting}
 \begin{tcblisting}{title={4-ply}}
-\dynkin[ply=4]{D}[1]{4}
+\dynkin[ply=4]D[1]4
 \end{tcblisting}
 The \(D^{(1)}_{\ell}\) diagrams can be folded on their left end and separately on their right end:
 \begin{tcblisting}{title={Left, right and both}}
-\dynkin{D}[1]{} \
-\dynkin[fold left]{D}[1]{} \
-\dynkin[fold right]{D}[1]{} \
-\dynkin[fold]{D}[1]{}
+\dynkin D[1]{} \
+\dynkin[fold left]D[1]{} \
+\dynkin[fold right]D[1]{} \
+\dynkin[fold]D[1]{}
 \end{tcblisting}
 We have to be careful about the 4-ply foldings of \(D^{(1)}_{2\ell}\), for which we can have two different patterns, so by default, the package only draws as much as it can without distinguishing the two:
 \begin{tcblisting}{title={Default \(D^{(1)}_{2\ell}\) and the two ways to finish it}}
-	\dynkin[ply=4]{D}[1]{****.*****.*****}%
+	\dynkin[ply=4]D[1]{****.*****.*****}%
  \ 
 \begin{dynkinDiagram}[ply=4]{D}[1]{****.*****.*****}%
-	\dynkinFold[bend right=90]{1}{13}%
-	\dynkinFold[bend right=90]{0}{14}%
+	\dynkinFold[bend right=90]1{13}%
+	\dynkinFold[bend right=90]0{14}%
 \end{dynkinDiagram} \ 
 \begin{dynkinDiagram}[ply=4]{D}[1]{****.*****.*****}%
-	\dynkinFold{0}{1}%
-	\dynkinFold{1}{13}%
+	\dynkinFold01%
+	\dynkinFold1{13}%
 	\dynkinFold{13}{14}%
 \end{dynkinDiagram}
 \end{tcblisting}
@@ -1114,16 +1181,16 @@
 \begin{filecontents*}{DoneTwoElBendy.tex}
 \begin{dynkinDiagram}[ply=4]{D}[1]%
 {****.*****.*****}
-	\dynkinFold[bend right=90]{1}{13}
-	\dynkinFold[bend right=90]{0}{14}
+\dynkinFold[bend right=90]1{13}
+\dynkinFold[bend right=90]0{14}
 \end{dynkinDiagram}
 \end{filecontents*}
 \begin{filecontents*}{DoneTwoElStraight.tex}
-\begin{dynkinDiagram}[ply=4]{D}[1]%
+\begin{dynkinDiagram}[ply=4]D[1]%
 {****.*****.*****}
-	\dynkinFold{0}{1}
-	\dynkinFold{1}{13}
-	\dynkinFold{13}{14}
+\dynkinFold01
+\dynkinFold1{13}
+\dynkinFold{13}{14}
 \end{dynkinDiagram}
 \end{filecontents*}
 \pgfkeys{/Dynkin diagram,fold radius=.35cm}
@@ -1135,145 +1202,102 @@
 \multicolumn{1}{c}{continued \dots}\\
 \endfoot
 \endlastfoot
-\fold{A}{0}{3}{C}{0}{2}
-\foldingTable{A}{0}{2\ell-1}{\dynk[fold]{A}{**.*****.**}}%
-{C}{0}{\ell}{\dynk{C}{}}
-\fold*{B}{0}{3}{G}{0}{2}
-\foldingTable{D}{0}{4}{\dynk[ply=3,fold right]{D}{4}}%
-{G}{0}{2}{\dynk{G}{2}}
-\foldingTable{D}{0}{\ell+1}{\dynk[fold]{D}{}}%
-{B}{0}{\ell}{\dynk{B}{}}
-\fold*{E}{0}{6}{F}{0}{4}
-\foldingTable{A}{1}{3}{\dynk[ply=4]{A}[1]{3}}%
-{A}{1}{1}{\dynk{A}[1]{1}}
-\foldingTable{A}{1}{2\ell-1}{\dynk[fold]{A}[1]{**.*****.**}}%
-{C}{1}{\ell}{\dynk{C}[1]{}}
-\foldingTable{B}{1}{3}{\dynk[ply=3]{B}[1]{3}}%
-{A}{2}{2}{\dynk{A}[2]{2}}
-\foldingTable{B}{1}{3}{\dynk[ply=2]{B}[1]{3}}%
-{G}{1}{2}{\dynk{G}[1]{2}}
-\foldingTable{B}{1}{\ell}{\dynk[fold]{B}[1]{}}{D}{2}{\ell}{\dynk{D}[2]{}}
-\foldingTable{D}{1}{4}{\dynk[ply=3]{D}[1]{4}}%
-{B}{1}{3}{\dynk{B}[1]{3}}
-\foldingTable{D}{1}{4}{\dynk[ply=3]{D}[1]{4}}%
-{G}{1}{2}{\dynk{G}[1]{2}}
-\foldingTable{D}{1}{\ell+1}{\dynk[fold]{D}[1]{}}%
-{D}{2}{\ell}{\dynk{D}[2]{}}
-\foldingTable{D}{1}{\ell+1}{%
-\dynk[fold right]{D}[1]{}}%
-{B}{1}{\ell}{\dynk{B}[1]{}}
-\foldingTable{D}{1}{2\ell}{%
+\fold A03C02
+\foldingTable A0{2\ell-1}{\dynk[fold]A{**.*****.**}}%
+C0{\ell}{\dynk C{}}
+\fold*B03G02
+\foldingTable D04{\dynk[ply=3,fold right]D4}%
+G02{\dynk G2}
+\foldingTable D0{\ell+1}{\dynk[fold]D{}}%
+B0{\ell}{\dynk B{}}
+\fold* E06F04
+\foldingTable A13{\dynk[ply=4]A[1]3}%
+A11{\dynk A[1]1}
+\foldingTable A1{2\ell-1}{\dynk[fold]A[1]{**.*****.**}}%
+C1{\ell}{\dynk C[1]{}}
+\foldingTable B13{\dynk[ply=3]B[1]3}%
+A22{\dynk A[2]2}
+\foldingTable B13{\dynk[ply=2]B[1]3}%
+G12{\dynk G[1]2}
+\foldingTable B1{\ell}{\dynk[fold]B[1]{}}D2{\ell}{\dynk D[2]{}}
+\foldingTable D14{\dynk[ply=3]D[1]4}%
+B13{\dynk B[1]3}
+\foldingTable D14{\dynk[ply=3]D[1]4}%
+G12{\dynk G[1]2}
+\foldingTable D1{\ell+1}{\dynk[fold]D[1]{}}%
+D2{\ell}{\dynk D[2]{}}
+\foldingTable D1{\ell+1}{%
+\dynk[fold right]D[1]{}}%
+B1{\ell}{\dynk B[1]{}}
+\foldingTable D1{2\ell}{%
 \input{DoneTwoElStraight.tex}
 & 
 \VerbatimInput{DoneTwoElStraight.tex} \\
 }%
-{A}{2}{\text{odd}}{\dynk{A}[2]{odd}}
-\foldingTable{D}{1}{2\ell}{%
+A2{\text{odd}}{\dynk A[2]{odd}}
+\foldingTable D1{2\ell}{%
 \input{DoneTwoElBendy.tex}
 & 
 \VerbatimInput{DoneTwoElBendy.tex} \\
 }%
-{A}{2}{\text{even}}{\dynk{A}[2]{even}}
-\fold*{E}{1}{6}{F}{1}{4}
-\foldingTable{E}{1}{6}{\dynk[ply=3]{E}[1]{6}}%
-{D}{3}{4}{\dynk{D}[3]{4}}
-\fold{E}{1}{7}{E}{2}{6}
-\fold{F}{1}{4}{G}{1}{2}
-\foldingTable{A}{2}{\text{odd}}{%
-\dynk[odd,fold]{A}[2]{****.***}
+A2{\text{even}}{\dynk A[2]{even}}
+\fold* E16F14
+\foldingTable E16{\dynk[ply=3]E[1]6}%
+D34{\dynk D[3]4}
+\fold E17E26
+\fold F14G12
+\foldingTable A2{\text{odd}}{%
+\dynk[odd,fold]A[2]{****.***}
 }%
-{A}{2}{\text{even}}{\dynk{A}[2]{even}}
-\foldingTable{D}{2}{3}{\dynk[fold]{D}[2]{3}}%
-{A}{2}{2}{\dynk{A}[2]{2}}
+A2{\text{even}}{\dynk A[2]{even}}
+\foldingTable D23{\dynk[fold]D[2]3}%
+A22{\dynk A[2]2}
 \end{longtable}
 \endgroup
 \begingroup
 \renewcommand{\wdtA}{.8cm}
 \begin{dynkinTable}{Frobenius fixed point subgroups of finite simple groups of Lie type \cite{Carter:1995} p. 15}{3cm}{6cm}
-A_{\ell\ge 1} & \dynk{A}{}
-{}^2\!A_{\ell\ge 2} & \dynk[fold]{A}{}
-B_{\ell\ge 2} & \dynk{B}{}
-{}^2\!B_2 & \dynk[fold]{B}{2}
-C_{\ell\ge3} & \dynk{C}{}
-D_{\ell\ge4} & \dynk{D}{}
-{}^2\!D_{\ell\ge4} & \dynk[fold]{D}{}
-{}^3\!D_4 & \dynk[ply=3]{D}{4}
-E_6 & \dynk{E}{6}
-{}^2\!E_6 & \dynk[fold]{E}{6}
-E_7 & \dynk{E}{7}
-E_8 & \dynk{E}{8}
-F_4 & \dynk{F}{4}
-{}^2\!F_4 & \dynk[fold]{F}{4}
-G_2 & \dynk{G}{2}
-{}^2G_2 & \dynk[fold]{G}{2}
+A_{\ell\ge 1} & \dynk A{}
+{}^2\!A_{\ell\ge 2} & \dynk[fold]A{}
+B_{\ell\ge 2} & \dynk B{}
+{}^2\!B_2 & \dynk[fold]B2
+C_{\ell\ge3} & \dynk C{}
+D_{\ell\ge4} & \dynk D{}
+{}^2\!D_{\ell\ge4} & \dynk[fold]D{}
+{}^3\!D_4 & \dynk[ply=3]D4
+E_6 & \dynk E6
+{}^2\!E_6 & \dynk[fold]E6
+E_7 & \dynk E7
+E_8 & \dynk E8
+F_4 & \dynk F4
+{}^2\!F_4 & \dynk[fold]F4
+G_2 & \dynk G2
+{}^2G_2 & \dynk[fold]G2
 \end{dynkinTable}
 \endgroup
 
-\section{Root ordering}\label{section:order}
-\begin{tcblisting}{title={Root ordering}}
-\dynkin[label,ordering=Adams]{E}{6}
-\dynkin[label,ordering=Bourbaki]{E}{6}
-\dynkin[label,ordering=Carter]{E}{6}
-\dynkin[label,ordering=Dynkin]{E}{6}
-\dynkin[label,ordering=Kac]{E}{6}
-\end{tcblisting}
-Default is Bourbaki.
-Sources are Adams \cite{Adams:1996} p. 56--57, Bourbaki \cite{Bourbaki:2002} p. pp. 265--290 plates I-IX, Carter \cite{Carter:2005} p. 540--609, Dynkin \cite{Dynkin:1952}, Kac \cite{Kac:1990} p. 43. 
-\NewDocumentCommand\tablerow{mm}%
-{%
-#1_{#2}&
-\dynkin[label,ordering=Adams]{#1}{#2}&
-\dynkin[label]{#1}{#2}&
-\dynkin[label,ordering=Carter]{#1}{#2}&
-\dynkin[label,ordering=Dynkin]{#1}{#2}&
-\dynkin[label,ordering=Kac]{#1}{#2}\\ 
-}%
-\begin{center}
-\renewcommand{\wdtA}{.7cm}
-\renewcommand{\wdtL}{2.2cm}
-\begin{longtable}{@{}ALLLLL@{}}
-\toprule
-& Adams & Bourbaki & Carter & Dynkin & Kac \\ \midrule
-\endfirsthead
-\toprule
-& Adams & Bourbaki & Carter & Dynkin & Kac \\ \midrule
-\endhead
-\bottomrule
-\endfoot
-\bottomrule
-\endlastfoot
-\tablerow{E}{6}\tablerow{E}{7}\tablerow{E}{8}\tablerow{F}{4}\tablerow{G}{2}
-\end{longtable}
-\end{center}
-The marks are set down in order according to the current root ordering:
-\begin{tcblisting}{}
-\dynkin[label]{E}{*otxXOt*}
-\dynkin[label,ordering=Carter]{E}{*otxXOt*}
-\dynkin[label,ordering=Kac]{E}{*otxXOt*}
-\end{tcblisting}
-
 \section{Typesetting mathematical names of Dynkin diagrams}
 The \verb!\dynkinName! command, with the same syntax as \verb!\dynkin!, typesets a default name of your diagram in \LaTeX.
 It is perhaps only useful when automatically generating a large collection of Dynkin diagrams in a computer program.
 \begin{tcblisting}{title={Name of a diagram}}
-\dynkinName[label,extended]{B}{7}
-\dynkinName{A}[2]{even}
-\dynkinName[Coxeter]{B}{7}
-\dynkinName[label,extended]{B}{*}
-\dynkinName{D}[3]{4}
+\dynkinName[label,extended]B7
+\dynkinName A[2]{even}
+\dynkinName[Coxeter]B7
+\dynkinName[label,extended]B*
+\dynkinName D[3]4
 \end{tcblisting}
 
 \section{Connecting Dynkin diagrams}\label{section:name}
 We can make some sophisticated folded diagrams by drawing multiple diagrams, each with a name:
 \begin{tcblisting}{title={Name a diagram}}
-\dynkin[name=Bob]{D}{6}
+\dynkin[name=Bob]D6
 \end{tcblisting}
 We can then connect the two with folding edges:
 \begin{tcblisting}{title={Connect diagrams}}
-\begin{dynkinDiagram}[name=upper]{A}{3}
+\begin{dynkinDiagram}[name=upper]A3
 	\node (current) at ($(upper root 1)+(0,-.3cm)$) {};
-	\dynkin[at=(current),name=lower]{A}{3}
-	\begin{scope}[on background layer]
+	\dynkin[at=(current),name=lower]A3
+	\begin{pgfonlayer}{Dynkin behind}
 		\foreach \i in {1,...,3}%
 		{%
 			\draw[/Dynkin diagram/fold style] 
@@ -1280,7 +1304,7 @@
 				($(upper root \i)$) 
 				-- ($(lower root \i)$);%
 		}%
-	\end{scope}
+	\end{pgfonlayer}
 \end{dynkinDiagram}
 \end{tcblisting}
 The following diagrams arise in the Satake diagrams of the pseudo-Riemannian symmetric spaces \cite{Baba:2009}.
@@ -1287,10 +1311,10 @@
 \begin{tcblisting}{}
 \pgfkeys{/Dynkin diagram,edge length=.5cm,fold radius=.5cm}
 \begin{tikzpicture}
-	\dynkin[name=1]{A}{IIIb}
+	\dynkin[name=1]A{IIIb}
 	\node (a) at (-.3,-.4){};
-	\dynkin[name=2,at=(a)]{A}{IIIb}
-	\begin{scope}[on background layer]
+	\dynkin[name=2,at=(a)]A{IIIb}
+	\begin{pgfonlayer}{Dynkin behind}
 		\foreach \i in {1,...,7}%
 		{%
 			\draw[/Dynkin diagram/fold style] 
@@ -1298,7 +1322,7 @@
 				-- 
 				($(2 root \i)$);%
 		}%
-	\end{scope}
+	\end{pgfonlayer}
 \end{tikzpicture}
 \end{tcblisting}
 \begin{tcblisting}{}
@@ -1309,9 +1333,9 @@
 	\foreach \d in {1,...,4}
 	{
 		\node (current) at ($(\d*.05,\d*.3)$){};
-		\dynkin[name=\d,at=(current)]{D}{oo.oooo}
+		\dynkin[name=\d,at=(current)]D{oo.oooo}
 	}
-	\begin{scope}[on background layer]
+	\begin{pgfonlayer}{Dynkin behind}
 		\foreach \i in {1,...,6}%
 		{%
 			\draw[/Dynkin diagram/fold style] ($(1 root \i)$) -- ($(2 root \i)$);%
@@ -1318,7 +1342,7 @@
 			\draw[/Dynkin diagram/fold style] ($(2 root \i)$) -- ($(3 root \i)$);%
 			\draw[/Dynkin diagram/fold style] ($(3 root \i)$) -- ($(4 root \i)$);%
 		}%
-	\end{scope}
+	\end{pgfonlayer}
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -1327,19 +1351,19 @@
 \tikzset{/Dynkin diagram,edge length=1cm,fold radius=1cm}
 \tikzset{/Dynkin diagram,label macro/.code={\alpha_{#1}},label macro*/.code={\beta_{#1}}}
 \({}^1 D_4\) 4-ply tied straight:
-\begin{dynkinDiagram}[ply=4]{D}[1]%
+\begin{dynkinDiagram}[ply=4]D[1]%
 {****.*****.*****}
- \dynkinFold{0}{1}
- \dynkinFold{1}{13}
+ \dynkinFold 01
+ \dynkinFold 1{13}
  \dynkinFold{13}{14}
 \dynkinLabelRoots{0,...,14}
 \dynkinLabelRoots*{0,...,14}
 \end{dynkinDiagram}
 \({}^1 D_4\) 4-ply tied bending:
-\begin{dynkinDiagram}[ply=4]{D}[1]%
+\begin{dynkinDiagram}[ply=4]D[1]%
 {****.*****.*****}
-	\dynkinFold{1}{13}
-	\dynkinFold[bend right=65]{0}{14}
+\dynkinFold1{13}
+\dynkinFold[bend right=65]0{14}
 \dynkinLabelRoots{0,...,14}
 \dynkinLabelRoots*{0,...,14}
 \end{dynkinDiagram}
@@ -1349,6 +1373,8 @@
 Below we draw the Vogan diagrams of some affine Lie superalgebras \cite{Ransingh:2013,Ransingh:unpub}.
 \begingroup
 \tikzset{/Dynkin diagram,edge length=.35cm,fold radius=.3cm}
+\tikzset{/Dynkin diagram,label macro/.code=\labls{#1},label,root radius=.06cm}
+\tcbset{text width=10cm}
 \NewDocumentCommand\labls{m}%
 {%
 	\ifcase#1%
@@ -1361,7 +1387,11 @@
 		{2}\or%
 		{1}\or%
 		{1}\or%
-		\else\typeout{What?}%
+		{1}\or%
+		{1}\or%
+		{1}\or%
+		{1}\or%
+		\else\typeout{What? `#1'}%
 		\fi%
 }%
 \NewDocumentCommand\lablIt{m}%
@@ -1372,9 +1402,6 @@
 		2%
 	\fi%
 }%
-\begingroup
-\tikzset{/Dynkin diagram,label macro/.code=\labls{#1},label,root radius=.06cm}
-\tcbset{text width=10cm}
 \renewcommand{\wdtA}{2cm}
 \NewDocumentEnvironment{Category}{m}%
 {%
@@ -1383,84 +1410,83 @@
 {%
 \end{tcolorbox}
 }%
-
 \begin{Category}{\mathfrak{sl}\left(2m|2n\right)^{(2)}}
 \begin{tcblisting}{}
 \begin{dynkinDiagram}[ply=2,label]{B}[1]{oo.oto.oo}
-	\dynkinLabelRoot*{7}{1}
+	\dynkinLabelRoot*71
 \end{dynkinDiagram}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[label]{B}[1]{oo.oto.oo}
+\dynkin[label]B[1]{oo.oto.oo}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[ply=2,label]{B}[1]{oo.Oto.Oo}
+\dynkin[ply=2,label]B[1]{oo.Oto.Oo}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[label]{B}[1]{oo.Oto.Oo}
+\dynkin[label]B[1]{oo.Oto.Oo}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[label]{D}[1]{oo.oto.ooo}
+\dynkin[label]D[1]{oo.oto.ooo}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[label]{D}[1]{oO.otO.ooo}
+\dynkin[label]D[1]{oO.otO.ooo}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[label,fold]{D}[1]{oo.oto.ooo}
+\dynkin[label,fold]D[1]{oo.oto.ooo}
 \end{tcblisting}
 \end{Category}
 
 \begin{Category}{\mathfrak{sl}\left(2m+1|2n\right)^2}
 \begin{tcblisting}{}
-\dynkin[label]{B}[1]{oo.oto.oo}
+\dynkin[label]B[1]{oo.oto.oo}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[label]{B}[1]{oO.oto.oO}
+\dynkin[label]B[1]{oO.oto.oO}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[label,fold]{B}[1]{oo.oto.oo}
+\dynkin[label,fold]B[1]{oo.oto.oo}
 \end{tcblisting}
 \end{Category}
 
 \begin{Category}{\mathfrak{sl}\left(2m+1|2n+1\right)^2}
 \begin{tcblisting}{}
-\dynkin[label]{D}[2]{o.oto.oo}
+\dynkin[label]D[2]{o.oto.oo}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[label]{D}[2]{o.OtO.oo}
+\dynkin[label]D[2]{o.OtO.oo}
 \end{tcblisting}
 \end{Category}
 
 \begin{Category}{\mathfrak{sl}\left(2|2n+1\right)^{(2)}}
 \begin{tcblisting}{}
-\dynkin[ply=2,label,double edges]{B}[1]{oo.Oto.Oo}
+\dynkin[ply=2,label,double edges]B[1]{oo.Oto.Oo}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[ply=2,label,double fold]{B}[1]{oo.Oto.Oo}
+\dynkin[ply=2,label,double fold]B[1]{oo.Oto.Oo}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[ply=2,label,double edges]{B}[1]{oo.OtO.oo}
+\dynkin[ply=2,label,double edges]B[1]{oo.OtO.oo}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[ply=2,label,double fold]{B}[1]{oo.OtO.oo}
+\dynkin[ply=2,label,double fold]B[1]{oo.OtO.oo}
 \end{tcblisting}
 \end{Category}
 
 \begin{Category}{\mathfrak{sl}\left(2|2n\right)^{(2)}}
 \begin{tcblisting}{}
-\dynkin[ply=2,label,double edges]{D}[1]{oo.oto.ooo}
+\dynkin[ply=2,label,double edges]D[1]{oo.oto.ooo}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[ply=2,label,double fold left]{D}[1]{oo.oto.ooo}
+\dynkin[ply=2,label,double fold left]D[1]{oo.oto.ooo}
 \end{tcblisting}
 \end{Category}
 
 \begin{Category}{\mathfrak{osp}\left(2m|2n\right)^{(2)}}
 \begin{tcblisting}{}
-\dynkin[label,label macro/.code={1}]{D}[2]{o.oto.oo}
+\dynkin[label,label macro/.code={1}]D[2]{o.oto.oo}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[label,label macro/.code={1}]{D}[2]{o.Oto.Oo}
+\dynkin[label,label macro/.code={1}]D[2]{o.Oto.Oo}
 \end{tcblisting}
 \end{Category}
 
@@ -1468,21 +1494,21 @@
 \begin{tcblisting}{}
 \dynkin[label,label macro/.code=\lablIt{#1},
 	affine mark=*]
-	{D}[2]{o.o.o.o*}
+	D[2]{o.o.o.o*}
 \end{tcblisting}
 \begin{tcblisting}{}
 \dynkin[label,label macro/.code=\lablIt{#1},
 	affine mark=*]
-	{D}[2]{o.O.o.o*}
+	D[2]{o.O.o.o*}
 \end{tcblisting}
 \end{Category}
 
 \begin{Category}{\mathfrak{sl}\left(1|2n+1\right)^{4}}
 \begin{tcblisting}{}
-\dynkin[label,label macro/.code={1}]{D}[2]{o.o.o.o*}
+\dynkin[label,label macro/.code={1}]D[2]{o.o.o.o*}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[label,label macro/.code={1}]{D}[2]{o.o.O.o*}
+\dynkin[label,label macro/.code={1}]D[2]{o.o.O.o*}
 \end{tcblisting}
 \end{Category}
 
@@ -1490,82 +1516,82 @@
 \begin{Category}{A^1}
 \begin{tcblisting}{}
 \begin{tikzpicture}
-	\dynkin[name=upper]{A}{oo.t.oo}
+	\dynkin[name=upper]A{oo.t.oo}
 	\node (Dynkin current) at (upper root 1){};
 	\dynkinSouth
-	\dynkin[at=(Dynkin current),name=lower]{A}{oo.t.oo}
-	\begin{scope}[on background layer]
+	\dynkin[at=(Dynkin current),name=lower]A{oo.t.oo}
+	\begin{pgfonlayer}{Dynkin behind}
 	\foreach \i in {1,...,5}{
 		\draw[/Dynkin diagram/fold style] 
 			($(upper root \i)$) -- ($(lower root \i)$);
 	}
-	\end{scope}
+	\end{pgfonlayer}
 \end{tikzpicture}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[fold]{A}[1]{oo.t.ooooo.t.oo}
+\dynkin[fold]A[1]{oo.t.ooooo.t.oo}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[fold,affine mark=t]{A}[1]{oo.o.ootoo.o.oo}
+\dynkin[fold,affine mark=t]A[1]{oo.o.ootoo.o.oo}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[affine mark=t]{A}[1]{o*.t.*o}
+\dynkin[affine mark=t]A[1]{o*.t.*o}
 \end{tcblisting}
 \end{Category}
 
 \begin{Category}{B^1}
 \begin{tcblisting}{}
-\dynkin[affine mark=*]{A}[2]{o.oto.o*}
+\dynkin[affine mark=*]A[2]{o.oto.o*}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[affine mark=*]{A}[2]{o.oto.o*}
+\dynkin[affine mark=*]A[2]{o.oto.o*}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[affine mark=*]{A}[2]{o.ooo.oo}
+\dynkin[affine mark=*]A[2]{o.ooo.oo}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[odd]{A}[2]{oo.*to.*o}
+\dynkin[odd]A[2]{oo.*to.*o}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[odd,fold]{A}[2]{oo.oto.oo}
+\dynkin[odd,fold]A[2]{oo.oto.oo}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[odd,fold]{A}[2]{o*.oto.o*}
+\dynkin[odd,fold]A[2]{o*.oto.o*}
 \end{tcblisting}
 \end{Category}
 
 \begin{Category}{D^1}
 \begin{tcblisting}{}
-\dynkin{D}{otoo}
+\dynkin D{otoo}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin{D}{ot*o}
+\dynkin D{ot*o}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[fold]{D}{otoo}
+\dynkin[fold]D{otoo}
 \end{tcblisting}
 \end{Category}
 
 \begin{Category}{C^1}
 \begin{tcblisting}{}
-\dynkin[double edges,fold,affine mark=t,odd]{A}[2]{to.o*}
+\dynkin[double edges,fold,affine mark=t,odd]A[2]{to.o*}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[double edges,fold,affine mark=t,odd]{A}[2]{t*.oo}
+\dynkin[double edges,fold,affine mark=t,odd]A[2]{t*.oo}
 \end{tcblisting}
 \end{Category}
 
 \begin{Category}{F^1}
 \begin{tcblisting}{}
-\begin{dynkinDiagram}{A}{oto*}%
-	\dynkinQuadrupleEdge{1}{2}%
-	\dynkinTripleEdge{4}{3}%
+\begin{dynkinDiagram}A{oto*}%
+	\dynkinQuadrupleEdge 12%
+	\dynkinTripleEdge 43%
 \end{dynkinDiagram}%
 \end{tcblisting}
 \begin{tcblisting}{}
-\begin{dynkinDiagram}{A}{*too}%
-	\dynkinQuadrupleEdge{1}{2}%
-	\dynkinTripleEdge{4}{3}%
+\begin{dynkinDiagram}A{*too}%
+	\dynkinQuadrupleEdge 12%
+	\dynkinTripleEdge 43%
 \end{dynkinDiagram}%
 \end{tcblisting}
 \end{Category}
@@ -1572,31 +1598,32 @@
 
 \begin{Category}{G^1}
 \begin{tcblisting}{}
-\begin{dynkinDiagram}{A}{ot*oo}%
-	\dynkinQuadrupleEdge{1}{2}%
-	\dynkinDefiniteDoubleEdge{4}{3}%
+\begin{dynkinDiagram}A{ot*oo}%
+	\dynkinQuadrupleEdge 12%
+	\dynkinDefiniteDoubleEdge 43%
 \end{dynkinDiagram}%
 \end{tcblisting}
 \begin{tcblisting}{}
-\begin{dynkinDiagram}{A}{oto*o}%
-	\dynkinQuadrupleEdge{1}{2}%
-	\dynkinDefiniteDoubleEdge{4}{3}%
+\begin{dynkinDiagram}A{oto*o}%
+	\dynkinQuadrupleEdge 12%
+	\dynkinDefiniteDoubleEdge 43%
 \end{dynkinDiagram}%
 \end{tcblisting}
 \begin{tcblisting}{}
-\begin{dynkinDiagram}{A}{*too*}%
-	\dynkinQuadrupleEdge{1}{2}%
-	\dynkinDefiniteDoubleEdge{4}{3}%
+\begin{dynkinDiagram}A{*too*}%
+	\dynkinQuadrupleEdge 12%
+	\dynkinDefiniteDoubleEdge 43%
 \end{dynkinDiagram}%
 \end{tcblisting}
 \begin{tcblisting}{}
-\begin{dynkinDiagram}{A}{*tooo}%
-	\dynkinQuadrupleEdge{1}{2}%
-	\dynkinDefiniteDoubleEdge{4}{3}%
+\begin{dynkinDiagram}A{*tooo}%
+	\dynkinQuadrupleEdge 12%
+	\dynkinDefiniteDoubleEdge 43%
 \end{dynkinDiagram}%
 \end{tcblisting}
 \end{Category}
 \endgroup
+\tikzset{/Dynkin diagram,label macro/.code={},label=false}
 
 \section{Example: the complex simple Lie algebras}
 \begin{filecontents*}{simple-lie-algebras.tex}
@@ -1612,24 +1639,24 @@
 \begin{longtable}{@{}GDWRS@{}}
 \LieG&\text{Diagram}&\text{Weights}&\text{Roots}&\text{Simple roots}\\ \midrule\endfirsthead
 \LieG&\text{Diagram}&\text{Weights}&\text{Roots}&\text{Simple roots}\\ \midrule\endhead
-A_n&\dynkin{A}{}&\frac{1}{r+1}\W[\sum e_j]{n+1}&e_i-e_j&e_i-e_{i+1}\\
-B_n&\dynkin{B}{}&\frac{1}{2}\W{n}& \pm e_i, \pm e_i \pm e_j, i\ne j&e_i-e_{i+1}, e_n\\
-C_n&\dynkin{C}{}&\W{n}& \pm 2 e_i, \pm e_i \pm e_j, i\ne j&e_i-e_{i+1}, 2e_n\\
-D_n&\dynkin{D}{}&\frac{1}{2}\W{n}& \pm e_i \pm e_j, i\ne j &
+A_n&\dynkin A{}&\frac1{n+1}\W[\sum e_j]{n+1}&e_i-e_j&e_i-e_{i+1}\\
+B_n&\dynkin B{}&\frac12\W n& \pm e_i, \pm e_i \pm e_j, i\ne j&e_i-e_{i+1}, e_n\\
+C_n&\dynkin C{}&\W n& \pm 2 e_i, \pm e_i \pm e_j, i\ne j&e_i-e_{i+1}, 2e_n\\
+D_n&\dynkin D{}&\frac12\W n& \pm e_i \pm e_j, i\ne j &
 \begin{bunch}e_i-e_{i+1},&i\le n-1\\e_{n-1}+e_n\end{bunch}\\
-E_8&\dynkin{E}{8}&\frac{1}{2}\W{8}&
+E_8&\dynkin E8&\frac12\W 8&
 \begin{bunch}\pm2e_i\pm2e_j,&i\ne j,\\ \sum_i(-1)^{m_i}e_i,&\sum m_i \text{ even}\end{bunch}&
 \begin{bunch}
 2e_1-2e_2,\\2e_2-2e_3,\\2e_3-2e_4,\\2e_4-2e_5,\\2e_5-2e_6,\\2e_6+2e_7,\\
 -\sum e_j,\\2e_6-2e_7
 \end{bunch}\\
-E_7&\dynkin{E}{7}&\frac{1}{2}\W[e_1-e_2]{8}&\quo&\quo\\
-E_6&\dynkin{E}{6}&\frac{1}{3}\W[e_1-e_2,e_2-e_3]{8}&\quo&\quo\\
-F_4& \dynkin{F}{4}&\W{4}&
+E_7&\dynkin E7&\frac12\W[e_1-e_2]8&\quo&\quo\\
+E_6&\dynkin E6&\frac13\W[e_1-e_2,e_2-e_3]8&\quo&\quo\\
+F_4& \dynkin F4&\W4&
 \begin{bunch}\pm 2e_i,\\ \pm 2e_i \pm 2e_j, \quad i \ne j,\\ \pm e_1 \pm e_2 \pm e_3 \pm e_4
 \end{bunch}&
 \begin{bunch}2e_2-2e_3,\\2e_3-2e_4,\\2e_4,\\e_1-e_2-e_3-e_4\end{bunch}\\
-G_2&\dynkin{G}{2}&\W[\sum e_j]{3}&
+G_2&\dynkin G2&\W[\sum e_j]3&
 \begin{bunch}
 \pm(1,-1,0),\\ \pm(-1,0,1),\\ \pm(0,-1,1),\\ \pm(2,-1,-1),\\ \pm(1,-2,1),\\ \pm(-1,-1,2)
 \end{bunch}&
@@ -1644,8 +1671,8 @@
 \section{An example of Mikhail Borovoi}
 \begin{filecontents*}{borovoi.tex}
 \tikzset{big arrow/.style={
-	-Stealth,line cap=round,line width=1mm,
-	shorten <=1mm,shorten >=1mm}}
+-Stealth,line cap=round,line width=1mm,
+shorten <=1mm,shorten >=1mm}}
 \newcommand\catholic[2]{\draw[big arrow,green!25!white] 
 (root #1) to (root #2);}
 \newcommand\protestant[2]{
@@ -1654,9 +1681,9 @@
 \end{scope}}
 \begin{dynkinDiagram}[edge length=1.2cm,
 indefinite edge/.style={thick,loosely dotted},
-labels*={0,1,2,3,\ell-3,\ell-2,\ell-1,\ell}]{D}[1]{}
-\catholic{0}{6}\catholic{1}{7}
-\protestant{7}{0}\protestant{6}{1}
+labels*={0,1,2,3,\ell-3,\ell-2,\ell-1,\ell}]D[1]{}
+\catholic 06\catholic 17
+\protestant 70\protestant 61
 \end{dynkinDiagram}
 \end{filecontents*}
 \begingroup
@@ -1764,9 +1791,9 @@
 & 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=black}
+\optionLabel{o/.style}{\typ{TikZ style data}}{solid,draw=black,fill=white}
 & style for roots like \dynkin{A}{o}  \\
-\optionLabel{O/.style}{\typ{TikZ style data}}{solid,draw=black,fill=black}
+\optionLabel{O/.style}{\typ{TikZ style data}}{solid,draw=black,fill=white}
 & style for roots like \dynkin{A}{O}  \\
 \optionLabel{t/.style}{\typ{TikZ style data}}{solid,draw=black,fill=black}
 & style for roots like \dynkin{A}{t} \\

Deleted: trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/hermitian-symmetric-spaces.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/hermitian-symmetric-spaces.tex	2020-02-11 00:54:55 UTC (rev 53752)
+++ trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/hermitian-symmetric-spaces.tex	2020-02-11 22:08:41 UTC (rev 53753)
@@ -1,19 +0,0 @@
-\NewDocumentCommand\HSS{mommm}
-{#1&\IfNoValueTF{#2}{\dynkin{#3}{#4}}{\dynkin[parabolic=#2]{#3}{#4}}&#5\\}
-\renewcommand*{\arraystretch}{1.5}
-\begin{longtable}
-{>{\columncolor[gray]{.9}}>$l<$>{\columncolor[gray]{.9}}>$l<$>{\columncolor[gray]{.9}}l}
-\caption{The Hermitian symmetric spaces}\endfirsthead
-\caption{\dots continued}\\ \endhead
-\caption{continued \dots}\\ \endfoot
-\endlastfoot
-\HSS{A_n}{A}{**.*x*.**}{Grassmannian of $k$-planes in $\C{n+1}$}
-\HSS{B_n}[1]{B}{}{$(2n-1)$-dimensional hyperquadric, i.e. the variety of null lines in $\C{2n+1}$}
-\HSS{C_n}[16]{C}{}{space of Lagrangian $n$-planes in $\C{2n}$}
-\HSS{D_n}[1]{D}{}{$(2n-2)$-dimensional hyperquadric, i.e. the variety of null lines in $\C{2n}$}
-\HSS{D_n}[32]{D}{}{one component of the variety of maximal dimension null subspaces of $\C{2n}$}
-\HSS{D_n}[16]{D}{}{the other component}
-\HSS{E_6}[1]{E}{6}{complexified octave projective plane}
-\HSS{E_6}[32]{E}{6}{its dual plane}
-\HSS{E_7}[64]{E}{7}{the space of null octave 3-planes in octave 6-space}
-\end{longtable}

Deleted: trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/simple-lie-algebras.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/simple-lie-algebras.tex	2020-02-11 00:54:55 UTC (rev 53752)
+++ trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/simple-lie-algebras.tex	2020-02-11 22:08:41 UTC (rev 53753)
@@ -1,35 +0,0 @@
-\NewDocumentEnvironment{bunch}{}%
-{\renewcommand*{\arraystretch}{1}\begin{array}{@{}ll@{}}\\ \midrule}{\\ \midrule\end{array}}
-\small
-\NewDocumentCommand\nct{mm}{\newcolumntype{#1}{>{\columncolor[gray]{.9}}>{$}m{#2cm}<{$}}}
-\nct{G}{.3}\nct{D}{2.1}\nct{W}{3}\nct{R}{3.7}\nct{S}{3}
-\NewDocumentCommand\LieG{}{\mathfrak{g}}
-\NewDocumentCommand\W{om}{\ensuremath{\mathbb{Z}^{#2}\IfValueT{#1}{/\left<#1\right>}}}
-\renewcommand*{\arraystretch}{1.5}
-\NewDocumentCommand\quo{}{\text{quotient of } E_8}
-\begin{longtable}{@{}GDWRS@{}}
-\LieG&\text{Diagram}&\text{Weights}&\text{Roots}&\text{Simple roots}\\ \midrule\endfirsthead
-\LieG&\text{Diagram}&\text{Weights}&\text{Roots}&\text{Simple roots}\\ \midrule\endhead
-A_n&\dynkin{A}{}&\frac{1}{r+1}\W[\sum e_j]{n+1}&e_i-e_j&e_i-e_{i+1}\\
-B_n&\dynkin{B}{}&\frac{1}{2}\W{n}& \pm e_i, \pm e_i \pm e_j, i\ne j&e_i-e_{i+1}, e_n\\
-C_n&\dynkin{C}{}&\W{n}& \pm 2 e_i, \pm e_i \pm e_j, i\ne j&e_i-e_{i+1}, 2e_n\\
-D_n&\dynkin{D}{}&\frac{1}{2}\W{n}& \pm e_i \pm e_j, i\ne j &
-\begin{bunch}e_i-e_{i+1},&i\le n-1\\e_{n-1}+e_n\end{bunch}\\
-E_8&\dynkin{E}{8}&\frac{1}{2}\W{8}&
-\begin{bunch}\pm2e_i\pm2e_j,&i\ne j,\\ \sum_i(-1)^{m_i}e_i,&\sum m_i \text{ even}\end{bunch}&
-\begin{bunch}
-2e_1-2e_2,\\2e_2-2e_3,\\2e_3-2e_4,\\2e_4-2e_5,\\2e_5-2e_6,\\2e_6+2e_7,\\
--\sum e_j,\\2e_6-2e_7
-\end{bunch}\\
-E_7&\dynkin{E}{7}&\frac{1}{2}\W[e_1-e_2]{8}&\quo&\quo\\
-E_6&\dynkin{E}{6}&\frac{1}{3}\W[e_1-e_2,e_2-e_3]{8}&\quo&\quo\\
-F_4& \dynkin{F}{4}&\W{4}&
-\begin{bunch}\pm 2e_i,\\ \pm 2e_i \pm 2e_j, \quad i \ne j,\\ \pm e_1 \pm e_2 \pm e_3 \pm e_4
-\end{bunch}&
-\begin{bunch}2e_2-2e_3,\\2e_3-2e_4,\\2e_4,\\e_1-e_2-e_3-e_4\end{bunch}\\
-G_2&\dynkin{G}{2}&\W[\sum e_j]{3}&
-\begin{bunch}
-\pm(1,-1,0),\\ \pm(-1,0,1),\\ \pm(0,-1,1),\\ \pm(2,-1,-1),\\ \pm(1,-2,1),\\ \pm(-1,-1,2)
-\end{bunch}&
-\begin{bunch}(-1,0,1),\\(2,-1,-1)\end{bunch}
-\end{longtable}

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-11 00:54:55 UTC (rev 53752)
+++ trunk/Master/texmf-dist/tex/latex/dynkin-diagrams/dynkin-diagrams.sty	2020-02-11 22:08:41 UTC (rev 53753)
@@ -1,8 +1,7 @@
 %
-%
 %                                  The Dynkin Diagrams package.
 %
-%                                            Version 3.141592653
+%                                            Version 3.1415926535
 %
 %
 %               This package draws Dynkin diagrams in LaTeX documents, using the TikZ package.
@@ -18,7 +17,7 @@
 %
 %
 \NeedsTeXFormat{LaTeX2e}[1994/06/01]
-\ProvidesPackage{dynkin-diagrams}[2019/12/04 Dynkin diagrams]
+\ProvidesPackage{dynkin-diagrams}[2020/02/02 Dynkin diagrams]
 \RequirePackage{tikz}
 \RequirePackage{xstring}
 \RequirePackage{xparse}
@@ -44,6 +43,16 @@
 %%% 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}
+\fi
+
 \newif\ifold at dynkin@is at backwards
 \newif\ifold at dynkin@is at upsidedown
 \newif\ifold at dynkin@is at extended
@@ -70,7 +79,7 @@
 \NewDocumentEnvironment{dynkinDiagram}{O{}mO{0}m}%
 {%
 \dynkin at save{}%
-\begin{tikzpicture}%
+\begin{tikzpicture}[baseline=(origin.base)]%
 \@dynkin[#1]{#2}[#3]{#4}%
 }%
 {%
@@ -98,10 +107,10 @@
 }%
 \NewDocumentCommand\dynkinName{O{}mO{0}m}%
 {%
-\dynkin at save{}%
-\xdef\dynkin at ply@value{1}%
-\xdef\dynkin at label@directions{}%
-\xdef\dynkin at label@directions at star{}%
+	\dynkin at save{}%
+	\xdef\dynkin at ply@value{1}%
+	\xdef\dynkin at label@directions{}%
+	\xdef\dynkin at label@directions at star{}%
 	\setcounter{dynkinRootNo}{0}%
 	\dynkin at clear@indefinite at edge@list%
 	\xdef\dynkin at parabolic{0}%
@@ -109,9 +118,28 @@
 	\xdef\dynkin at user@series{#2}%
 	\xdef\dynkin at twisted@series{#3}%
 	\xdef\dynkin at user@string{#4}%
+	\xdef\dynkin at string{#4}%
 	\xdef\dynkin at series{#2}%
 	\dynkin at grok@series%
 	\IfSubStr{ABCDEFGHI}{\dynkin at series}{}{\dynkin at error@series}%
+	\IfInteger{\dynkin at string}%
+	{%
+		\dynkin at integer@rank%
+	}%
+	{%
+		% Turn Satake codes into Dynkin diagram expressions in \dynkin at string.
+		\dynkin at grok@Satake at codes%
+	}%
+	% Expand out any digits in \dynkin at string into multiples of the various root marks.
+	\expand at Dynkin@Roots at Digits%
+	% Assign to \dynkin at roots the input string \dynkin at string with all . symbols removed,
+	% so we only get the symbols representing the marks for the various roots.
+	\StrDel{\dynkin at string}{.}[\temp]%
+	\xdef\dynkin at roots{\temp}%
+	\StrLen{\dynkin at roots}[\temp]%
+	\global\dynkin at nodes=\temp\relax%
+	\dynkin at grok@indefinite at edges%
+	\dynkin at find@rank{}%
 	\ensuremath{%
 		\dynkin at series^{%
 			\ifdynkin at is@extended{1}%
@@ -126,7 +154,18 @@
 		{%
 			\IfStrEq{\dynkin at user@string}{}%
 				{\dynkin at indefinite@number at symbol}%
-				{\dynkin at user@string}%
+				{\ifdynkin at Satake@diagram%
+					\dynkin at user@string%
+				\else%
+					\IfStrEq{\dynkin at user@string}{even}{ev}%
+					{%
+						\IfStrEq{\dynkin at user@string}{odd}{od}%
+						{%
+							\the\dynkin at rank%
+						}%
+					}%
+				\fi%
+				}%
 			\IfStrEq{\dynkin at parabolic}{0}%
 				{}%
 				{,\dynkin at parabolic}
@@ -135,6 +174,11 @@
 \dynkin at restore{}%
 }%
 
+%% Returns the current Dynkin diagram ordering as a string.
+\NewDocumentCommand\currentDynkinOrdering{}%
+{%
+	\dynkin at ordering%
+}%
 
 \NewDocumentCommand\dynkinRefreshRoots{}%
 {%
@@ -215,14 +259,19 @@
 {%
 	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\ifnum\dynkin at nodes<#2%
-		\ClassError{Dynkin diagrams}{Unrecognized root: ``#2'' found when labelling Dynkin diagram \dynkin at user@series{\dynkin at user@string}. Allowed values are up to \the\dynkin at nodes}{}%
+		\ClassError{Dynkin diagrams}%
+		{Unrecognized root: 
+		``#2'' found when labelling Dynkin diagram
+		 \dynkin at user@series{\dynkin at user@string}. 
+		Allowed values are up to \the\dynkin at nodes}%
+		{}%
 	\fi%
 	\IfStrEq{#3}{}%
 	{%
 	}%
 	{%
-		\rpo=#2%
-		\advance\rpo by 1%
+		\rpo=#2\relax%
+		\advance\rpo by 1\relax%
 		\IfBooleanTF{#1}%
 		{%
 			\StrMid{\dynkin at label@directions at star}{\the\rpo}{\the\rpo}[\dynkin at direction@letter]%
@@ -282,15 +331,18 @@
 			\setcounter{dynkinRootNo}{0}%	
 		\fi%
 	\fi%
-	\edef\XXX{#2}%
-	\foreach \i in \XXX%
+	\edef\dynkin at labelies{#2}%
+	\IfBooleanTF{#1}%
 	{%
-		\IfBooleanTF{#1}%
+		\foreach \i in \dynkin at labelies%
 		{%
-		\@dynkinLabelThisRootStar{\i}%
+			\@dynkinLabelThisRootStar{\i}%
 		}%
+	}%
+	{%
+		\foreach \i in \dynkin at labelies%
 		{%
-		\@dynkinLabelThisRoot{\i}%
+			\@dynkinLabelThisRoot{\i}%
 		}%
 	}%
 }%
@@ -298,26 +350,26 @@
 \NewDocumentCommand\dynkinBrace{somm}%[text]{start}{end}
 {%
 	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
-\draw[
-decoration=
-		{
-			brace,
-			\IfBooleanF{#1}{mirror},
-			raise=0.05cm,
-		},
-	decorate] 
-    ($(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}})$) 
-    node 
-    [
-    	pos=0.5,
-	   	anchor=\IfBooleanTF{#1}{south}{north},
-  		yshift=\IfBooleanTF{#1}{1mm}{-1mm},
-    	/Dynkin diagram/text style
-] 
-{\IfValueT{#2}{\(#2\)}};%
-}
+		\draw[%
+			decoration=%
+				{%
+					brace,
+				\IfBooleanF{#1}{mirror},
+				raise=0.05cm,
+			},%
+			decorate]%
+			($(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}})$) 
+ 			node%
+			[%
+			    	pos=0.5,%
+			   	anchor=\IfBooleanTF{#1}{south}{north},%
+		  		yshift=\IfBooleanTF{#1}{1mm}{-1mm},%
+			    	/Dynkin diagram/text style%
+			]% 
+			{\IfValueT{#2}{\(#2\)}};%
+}%
 
 
 %% \dynkinPrintLabels
@@ -384,8 +436,18 @@
 }%
 
 
+\NewDocumentCommand\dynkinDrawCrossRootMark{O{}m}%
+{%
+	\draw[/Dynkin diagram,x,#1]%
+		($(#2)+(\dynkin at root@radius,\dynkin at root@radius)$)%
+		--%
+		($(#2)-(\dynkin at root@radius,\dynkin at root@radius)$);%
+	\draw[/Dynkin diagram,x,#1]%
+		($(#2)+(-\dynkin at root@radius,\dynkin at root@radius)$)%
+		--%
+		($(#2)+(\dynkin at root@radius,-\dynkin at root@radius)$);%
+}%
 
-
 %% \dynkinCrossRootMark{<n>}
 %% Prints a cross at root <n> on the current Dynkin diagram.
 %% The starred form accepts <n> in the Bourbaki ordering.
@@ -397,16 +459,9 @@
 		\convertRootNumber{#3}%
 	}%
 	{%
-		\RootNumber=#3%
+		\RootNumber=#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\RootNumber)-(\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\RootNumber)+(\dynkin at root@radius,-\dynkin at root@radius)$);%
+	\dynkinDrawCrossRootMark[#2]{\dynkin at root@name \the\RootNumber}%
 }%
 
 %% \dynkinHeavyCrossRootMark{<n>}
@@ -420,7 +475,7 @@
 		\convertRootNumber{#3}%
 	}%
 	{%
-		\RootNumber=#3%
+		\RootNumber=#3\relax%
 	}%
 	\draw[/Dynkin diagram,X,#2]%
 		($(\dynkin at root@name \the\RootNumber)+(\dynkin at root@radius,\dynkin at root@radius)$)%
@@ -444,7 +499,7 @@
 		\convertRootNumber{#3}%
 	}%
 	{%
-		\RootNumber=#3%
+		\RootNumber=#3\relax%
 	}%
 	\fill[/Dynkin diagram,o,#2] (\dynkin at root@name \the\RootNumber) circle (\dynkin at root@radius);%
 }%
@@ -460,12 +515,18 @@
 		\convertRootNumber{#3}%
 	}%
 	{%
-		\RootNumber=#3%
+		\RootNumber=#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);%
 }%
 
+\NewDocumentCommand\dynkinDrawSolidRootMark{O{}m}%
+{%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
+	\fill[/Dynkin diagram,*,#1] (#2) circle (\dynkin at root@radius);%
+}%
+
 %% \dynkinSolidRootMark{<n>}
 %% Prints a solid dot at root <n> on the current Dynkin diagram.
 %% The starred form accepts <n> in the Bourbaki ordering.
@@ -477,9 +538,10 @@
 		\convertRootNumber{#3}%
 	}%
 	{%
-		\RootNumber=#3%
+		\RootNumber=#3\relax%
 	}%
-	\fill[/Dynkin diagram,*,#2] (\dynkin at root@name \the\RootNumber) circle (\dynkin at root@radius);%
+	\dynkinDrawSolidRootMark[#2]{\dynkin at root@name \the\RootNumber}%
+%	\fill[/Dynkin diagram,*,#2] (\dynkin at root@name \the\RootNumber) circle (\dynkin at root@radius);%
 }%
 
 %% \dynkinTensorRootMark{<n>}
@@ -493,7 +555,7 @@
 		\convertRootNumber{#3}%
 	}%
 	{%
-		\RootNumber=#3%
+		\RootNumber=#3\relax%
 	}%
 	\fill[/Dynkin diagram,o,#2] (\dynkin at root@name \the\RootNumber) circle ({\dynkin at root@radius});%
 	\draw[/Dynkin diagram,t,#2]%
@@ -557,15 +619,15 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
-	\begin{scope}[on background layer]%
+	\begin{pgfonlayer}{Dynkin behind}%
 		\draw[/Dynkin diagram,edge,#2] 
 			($(\dynkin at root@name \the\@fromRoot)$) 
 			-- 
 			($(\dynkin at root@name \the\@toRoot)$);%
-	\end{scope}%
+	\end{pgfonlayer}%
 }%
 
 %% \dynkinIndefiniteSingleEdge{<p>}{<q>}
@@ -580,23 +642,23 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
-	\begin{scope}[on background layer]%
+	\begin{pgfonlayer}{Dynkin behind}%
 		\draw[/Dynkin diagram,edge,#2] 
 			($(\dynkin at root@name \the\@fromRoot)$) 
 			-- 
-			(${(2/3)}*(\dynkin at root@name \the\@fromRoot)+{(1/3)}*(\dynkin at root@name \the\@toRoot)$);
+			(${(2/3)}*(\dynkin at root@name \the\@fromRoot)+{(1/3)}*(\dynkin at root@name \the\@toRoot)$);%
 		\draw[/Dynkin diagram,indefinite edge,#2] 
 			(${(2/3)}*(\dynkin at root@name \the\@fromRoot)+{(1/3)}*(\dynkin at root@name \the\@toRoot)$)
 			-- 
-			(${(1/3)}*(\dynkin at root@name \the\@fromRoot)+{(2/3)}*(\dynkin at root@name \the\@toRoot)$);
+			(${(1/3)}*(\dynkin at root@name \the\@fromRoot)+{(2/3)}*(\dynkin at root@name \the\@toRoot)$);%
 		\draw[/Dynkin diagram,edge,#2] 
 			(${(1/3)}*(\dynkin at root@name \the\@fromRoot)+{(2/3)}*(\dynkin at root@name \the\@toRoot)$)
 			-- 
-			($(\dynkin at root@name \the\@toRoot)$);
-	\end{scope}%
+			($(\dynkin at root@name \the\@toRoot)$);%
+	\end{pgfonlayer}%
 }%	
 
 %%% \dynkinRightFold{<p>}{<q>}
@@ -640,16 +702,16 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
 %	\convertRootPair{\@fromRoot}{\@toRoot}%
-	\begin{scope}[on background layer]
+	\begin{pgfonlayer}{Dynkin behind}%
 		\draw[/Dynkin diagram/fold style,#2] 
 			($(\dynkin at root@name \the\@fromRoot)$)
 			to 
 			($(\dynkin at root@name \the\@toRoot)$);
-	\end{scope}%
+	\end{pgfonlayer}%
 }%
 
 
@@ -664,14 +726,14 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
-	\begin{scope}[on background layer]%
+	\begin{pgfonlayer}{Dynkin behind}%
 	\draw[/Dynkin diagram,edge,fill=none,#2]%
 		($(\dynkin at root@name \the\@fromRoot)$)%
 		arc (90:0:\dynkin at fold@radius);%
-	\end{scope}%
+	\end{pgfonlayer}%
 }%
 
 %% \dynkinIndefiniteRightDownArc{<p>}{<q>}
@@ -685,11 +747,11 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
 	\node (center) at ($(\dynkin at root@name \the\@fromRoot)-(0,\dynkin at fold@radius)$) {};%
-	\begin{scope}[on background layer]%
+	\begin{pgfonlayer}{Dynkin behind}%
 	\draw[/Dynkin diagram,edge,fill=none,#2] 
 		(center)
 		++(90:\dynkin at fold@radius)
@@ -702,7 +764,7 @@
 		(center)
 		++(30:\dynkin at fold@radius)
 		arc [start angle=30, end angle=0, radius=\dynkin at fold@radius];%
-	\end{scope}%
+	\end{pgfonlayer}%
 }%
 
 %% \dynkinDefiniteRightUpArc{<p>}{<q>}
@@ -716,14 +778,14 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
-	\begin{scope}[on background layer]%
+	\begin{pgfonlayer}{Dynkin behind}%
 	\draw[/Dynkin diagram,edge,fill=none,#2]%
 		($(\dynkin at root@name \the\@fromRoot)$)%
 		arc (-90:0:\dynkin at fold@radius);%
-	\end{scope}%
+	\end{pgfonlayer}%
 }%
 
 %% \dynkinIndefiniteRightUpArc{<p>}{<q>}
@@ -737,11 +799,11 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
 	\node (center) at ($(\dynkin at root@name \the\@fromRoot)+(0,\dynkin at fold@radius)$) {};%
-	\begin{scope}[on background layer]%
+	\begin{pgfonlayer}{Dynkin behind}%
 	\draw[/Dynkin diagram,edge,fill=none,#2] 
 		(center)
 		++(-90:\dynkin at fold@radius)
@@ -754,7 +816,7 @@
 		(center)
 		++(-30:\dynkin at fold@radius)
 		arc [start angle=-30, end angle=0, radius=\dynkin at fold@radius];%
-	\end{scope}%
+	\end{pgfonlayer}%
 }%
 
 
@@ -769,14 +831,14 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
-	\begin{scope}[on background layer]%
+	\begin{pgfonlayer}{Dynkin behind}%
 	\draw[/Dynkin diagram,edge,fill=none,#2]%
 		($(\dynkin at root@name \the\@fromRoot)$)%
 		arc (90:180:\dynkin at fold@radius);%
-	\end{scope}%
+	\end{pgfonlayer}%
 }%
 
 %% \dynkinIndefiniteLeftDownArc{<p>}{<q>}
@@ -790,11 +852,11 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
 	\node (center) at ($(\dynkin at root@name \the\@fromRoot)-(0,\dynkin at fold@radius)$) {};%
-	\begin{scope}[on background layer]%
+	\begin{pgfonlayer}{Dynkin behind}%
 	\draw[/Dynkin diagram,edge,fill=none,#2] 
 		(center)
 		++(90:\dynkin at fold@radius)
@@ -807,7 +869,7 @@
 		(center)
 		++(150:\dynkin at fold@radius)
 		arc [start angle=150, end angle=180, radius=\dynkin at fold@radius];%
-	\end{scope}%
+	\end{pgfonlayer}%
 }%
 
 %% \dynkinDefiniteLeftUpArc{<p>}{<q>}
@@ -821,14 +883,14 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
-	\begin{scope}[on background layer]%
+	\begin{pgfonlayer}{Dynkin behind}%
 	\draw[/Dynkin diagram,edge,fill=none,#2] 
 		($(\dynkin at root@name \the\@fromRoot)$) 
 		arc (-90:-180:\dynkin at fold@radius);%
-	\end{scope}%
+	\end{pgfonlayer}%
 }%
 
 %% \dynkinIndefiniteLeftUpArc{<p>}{<q>}
@@ -842,11 +904,11 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
 	\node (center) at ($(\dynkin at root@name \the\@fromRoot)+(0,\dynkin at fold@radius)$) {};%
-	\begin{scope}[on background layer]%
+	\begin{pgfonlayer}{Dynkin behind}%%
 	\draw[/Dynkin diagram,edge,fill=none,#2] 
 		(center)
 		++(-90:\dynkin at fold@radius)
@@ -859,7 +921,7 @@
 		(center)
 		++(-150:\dynkin at fold@radius)
 		arc [start angle=-150, end angle=-180, radius=\dynkin at fold@radius];%
-	\end{scope}%
+	\end{pgfonlayer}%
 }%
 
 
@@ -874,14 +936,14 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
-	\begin{scope}[on background layer]%
+	\begin{pgfonlayer}{Dynkin behind}%%
 	\draw[/Dynkin diagram,edge,fill=none,#2] 
 		($(\dynkin at root@name \the\@fromRoot)$) 
 		arc (90:-90:\dynkin at fold@radius);%
-	\end{scope}%
+	\end{pgfonlayer}%
 }%
 
 %% \dynkinIndefiniteSemiCircle{<p>}{<q>}
@@ -895,11 +957,11 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
 	\node (center) at ($(\dynkin at root@name \the\@fromRoot)-(0,\dynkin at fold@radius)$) {};%
-	\begin{scope}[on background layer]%
+	\begin{pgfonlayer}{Dynkin behind}%%
 	\draw[/Dynkin diagram,edge,fill=none,#2] 
 		(center)
 		++(90:\dynkin at fold@radius)
@@ -911,8 +973,8 @@
 	\draw[/Dynkin diagram,edge,fill=none,#2]
 		(center)
 		++(-90:\dynkin at fold@radius)
-		arc [start angle=-90, end angle=-30, radius=\dynkin at fold@radius];
-	\end{scope}%
+		arc [start angle=-90, end angle=-30, radius=\dynkin at fold@radius];%
+	\end{pgfonlayer}%
 }%
 
 %% \dynkinDefiniteDoubleRightDownArc{<p>}{<q>}
@@ -927,10 +989,10 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
-	\begin{scope}[on background layer]%
+	\begin{pgfonlayer}{Dynkin behind}%%
 	\draw[/Dynkin diagram,edge,double,fill=none,#2]%
 		($(\dynkin at root@name \the\@fromRoot)$)%
 		arc (90:0:{\dynkin at fold@radius});%
@@ -947,7 +1009,7 @@
 				arc (90:45:{\dynkin at fold@radius});%
 		\fi%
 	\fi%
-	\end{scope}%
+	\end{pgfonlayer}%
 }%
 
 
@@ -963,10 +1025,10 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
-	\begin{scope}[on background layer]%
+	\begin{pgfonlayer}{Dynkin behind}%%
 	\draw[/Dynkin diagram,edge,double,fill=none,#2]%
 		($(\dynkin at root@name \the\@fromRoot)$)%
 		arc (180:90:{\dynkin at fold@radius});%
@@ -981,7 +1043,7 @@
 				arc (180:135:{\dynkin at fold@radius});%
 		\fi%
 	\fi%
-	\end{scope}%
+	\end{pgfonlayer}%
 }%
 
 
@@ -997,10 +1059,10 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
-	\begin{scope}[on background layer]%
+	\begin{pgfonlayer}{Dynkin behind}%%
 	\draw[/Dynkin diagram,edge,double,fill=none,#2]%
 		($(\dynkin at root@name \the\@fromRoot)$)%
 		arc (0:90:{\dynkin at fold@radius});%
@@ -1017,7 +1079,7 @@
 				arc (0:45:{\dynkin at fold@radius});%
 		\fi%
 	\fi%
-	\end{scope}%
+	\end{pgfonlayer}%
 }%
 
 
@@ -1035,10 +1097,10 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
-	\begin{scope}[on background layer]%
+	\begin{pgfonlayer}{Dynkin behind}%%
 	\draw[/Dynkin diagram,edge,double,fill=none,#2]%
 		($(\dynkin at root@name \the\@fromRoot)$)%
 		-- 
@@ -1057,7 +1119,7 @@
 				arc (180:225:{\dynkin at fold@radius});%
 		\fi%
 	\fi%
-	\end{scope}%
+	\end{pgfonlayer}%
 }%
 
 
@@ -1073,10 +1135,10 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
-	\begin{scope}[on background layer]%
+	\begin{pgfonlayer}{Dynkin behind}%%
 	\draw[/Dynkin diagram,edge,double,fill=none,#2]%
 		($(\dynkin at root@name \the\@fromRoot)$)%
 		arc (270:360:{\dynkin at fold@radius});%
@@ -1093,7 +1155,7 @@
 			arc (270:315:\dynkin at fold@radius);%
 		\fi%
 	\fi%
-	\end{scope}%
+	\end{pgfonlayer}%
 }%
 
 %% \dynkinDefiniteDoubleLeftDownArc{<p>}{<q>}
@@ -1108,10 +1170,10 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
-	\begin{scope}[on background layer]%
+	\begin{pgfonlayer}{Dynkin behind}%%
 	\draw[/Dynkin diagram,edge,double,fill=none,#2]%
 		($(\dynkin at root@name \the\@fromRoot)$)%
 		arc (90:180:{\dynkin at fold@radius});%
@@ -1129,7 +1191,7 @@
 				arc (90:135:{\dynkin at fold@radius});%
 		\fi%
 	\fi%
-	\end{scope}%
+	\end{pgfonlayer}%
 }%
 
 
@@ -1145,10 +1207,10 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
-	\begin{scope}[on background layer]%
+	\begin{pgfonlayer}{Dynkin behind}%%
 	\draw[/Dynkin diagram,edge,double,fill=none,#2]%
 		($(\dynkin at root@name \the\@fromRoot)$)%
 		arc (360:270:{\dynkin at fold@radius});% 
@@ -1167,7 +1229,7 @@
 				arc (360:315:{\dynkin at fold@radius});%
 		\fi%
 	\fi%
-	\end{scope}%
+	\end{pgfonlayer}%
 }%
 
 
@@ -1184,10 +1246,10 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
-	\begin{scope}[on background layer]%
+	\begin{pgfonlayer}{Dynkin behind}%%
 		\draw[/Dynkin diagram,edge,double,fill=none,#2]%
 			($(\dynkin at root@name \the\@fromRoot)$)%
 			arc (-90:-180:{\dynkin at fold@radius});%
@@ -1205,7 +1267,7 @@
 					arc (-90:-135:\dynkin at fold@radius);%
 			\fi%
 		\fi%
-	\end{scope}%
+	\end{pgfonlayer}%
 }%
 
 
@@ -1221,10 +1283,10 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
-	\begin{scope}[on background layer]%
+	\begin{pgfonlayer}{Dynkin behind}%%
 		\draw[/Dynkin diagram,edge,double,fill=none,#2]%
 			($(\dynkin at root@name \the\@fromRoot)$)%
 			arc (90:-90:{\dynkin at fold@radius});%
@@ -1243,7 +1305,7 @@
 					arc (90:0:\dynkin at fold@radius);%
 			\fi%
 		\fi%
-	\end{scope}%
+	\end{pgfonlayer}%
 }%
 
 
@@ -1261,10 +1323,10 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
-	\begin{scope}[on background layer]%
+	\begin{pgfonlayer}{Dynkin behind}%%
 		\draw[/Dynkin diagram,
 			edge,
 			double,
@@ -1292,7 +1354,7 @@
 					arc (90:0:\dynkin at fold@radius);%
 			\fi%
 		\fi%
-	\end{scope}%
+	\end{pgfonlayer}%%
 }%
 
 
@@ -1310,10 +1372,10 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
-	\begin{scope}[on background layer]%
+	\begin{pgfonlayer}{Dynkin behind}%%
 		\draw[/Dynkin diagram,edge,double,fill=none,#2]%
 			($(\dynkin at root@name \the\@fromRoot)$)%
 			arc (-90:90:{\dynkin at fold@radius});%
@@ -1332,7 +1394,7 @@
 					arc (-90:0:\dynkin at fold@radius);%
 			\fi%
 		\fi%
-	\end{scope}%
+	\end{pgfonlayer}%%
 }%
 
 
@@ -1375,10 +1437,10 @@
 			\convertRootPair{#3}{#4}%
 		}%
 		{%
-			\@fromRoot=#3%
-			\@toRoot=#4%
+			\@fromRoot=#3\relax%
+			\@toRoot=#4\relax%
 		}%
-		\begin{scope}[on background layer]%
+		\begin{pgfonlayer}{Dynkin behind}%%
 			\ifdynkin at reverse@arrows%
 				\path[
 				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
@@ -1394,7 +1456,7 @@
 					-- 
 					($.3*(\dynkin at root@name \the\@fromRoot)+.7*(\dynkin at root@name \the\@toRoot)$);%
 			\fi%
-		\end{scope}%
+		\end{pgfonlayer}%%
 	\fi%
 }%
 
@@ -1401,7 +1463,7 @@
 \NewDocumentCommand\dynkinKacDoubleArrow{O{}mm}%
 {%
 	\draw[arrows = {-{Triangle Cap[length=.8mm,fill=white]}},%
-		/Dynkin diagram,edge,	double=white,fill=white,double distance=1.8pt,#1]%
+		/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]%
@@ -1448,27 +1510,27 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
 	\StrChar{\dynkin at roots}{\the\@fromRoot}[\my at root@marker]%
 	\IfStrEq{\my at root@marker}{x}%
 	{%
-		\global\onesbit=1%
+		\global\onesbit=1\relax%
 	}%
 	{%
-		\global\onesbit=0%
+		\global\onesbit=0\relax%
 	}%
 	\StrChar{\dynkin at roots}{\the\@toRoot}[\my at root@marker]%
 	\IfStrEq{\my at root@marker}{x}%
 	{%
-		\global\twosbit=1%
+		\global\twosbit=1\relax%
 	}%
 	{%
-		\global\twosbit=0%
+		\global\twosbit=0\relax%
 	}%
 	\ifdynkin at Kac@arrows
-		\begin{scope}[on background layer]%
+		\begin{pgfonlayer}{Dynkin behind}%%
 			\ifdynkin at arrows%
 				\ifdynkin at reverse@arrows
 					\ifdynkin at is@backwards
@@ -1489,10 +1551,10 @@
 					--%
 					(\dynkin at root@name \the\@toRoot);%
 			\fi%
-		\end{scope}%
+		\end{pgfonlayer}%%
 	\else
 		\def\LL{.5*\dynkin at root@radius}
-		\begin{scope}[on background layer]%
+		\begin{pgfonlayer}{Dynkin behind}%%
 			\draw[/Dynkin diagram,edge,#2]%
 				($(\dynkin at root@name \the\@fromRoot)$)%
 				--%
@@ -1507,7 +1569,7 @@
 				($(\dynkin at root@name \the\@fromRoot)+(\the\onesbit*\LL,-\LL)$)%
 				--%
 				cycle;%
-		\end{scope}%
+		\end{pgfonlayer}%%
 		\ifdynkin at arrows%
 			\dynkinEdgeArrow[#2]{\the\@fromRoot}{\the\@toRoot}%
 		\fi%
@@ -1525,27 +1587,27 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
 	\StrChar{\dynkin at roots}{\the\@fromRoot}[\my at root@marker]%
 	\IfStrEq{\my at root@marker}{x}%
 	{%
-		\global\onesbit=1%
+		\global\onesbit=1\relax%
 	}%
 	{%
-		\global\onesbit=0%
+		\global\onesbit=0\relax%
 	}%
 	\StrChar{\dynkin at roots}{\the\@toRoot}[\my at root@marker]%
 	\IfStrEq{\my at root@marker}{x}%
 	{%
-		\global\twosbit=1%
+		\global\twosbit=1\relax%
 	}%
 	{%
-		\global\twosbit=0%
+		\global\twosbit=0\relax%
 	}%
 	\ifdynkin at Kac@arrows
-		\begin{scope}[on background layer]%
+		\begin{pgfonlayer}{Dynkin behind}%%
 			\ifdynkin at arrows%
 				\ifdynkin at reverse@arrows
 					\ifdynkin at is@backwards
@@ -1570,9 +1632,9 @@
 					--%
 					(\dynkin at root@name \the\@toRoot);%
 			\fi%
-		\end{scope}%
+		\end{pgfonlayer}%%
 	\else
-		\begin{scope}[on background layer]%
+		\begin{pgfonlayer}{Dynkin behind}%%
 			\draw[/Dynkin diagram,edge,#2]%
 				($(\dynkin at root@name \the\@fromRoot)$)%
 				--%
@@ -1591,7 +1653,7 @@
 				($(\dynkin at root@name \the\@fromRoot)$) 
 				-- 
 				($(\dynkin at root@name \the\@toRoot)$);%
-		\end{scope}%
+		\end{pgfonlayer}%%
 		\ifdynkin at arrows%
 			\dynkinEdgeArrow[#2]{\the\@fromRoot}{\the\@toRoot}%
 		\fi%
@@ -1611,11 +1673,11 @@
 		\convertRootPair{#3}{#4}%
 	}%
 	{%
-		\@fromRoot=#3%
-		\@toRoot=#4%
+		\@fromRoot=#3\relax%
+		\@toRoot=#4\relax%
 	}%
 	\ifdynkin at Kac@arrows
-		\begin{scope}[on background layer]%
+		\begin{pgfonlayer}{Dynkin behind}%%
 			\ifdynkin at arrows%
 				\ifdynkin at reverse@arrows
 					\ifdynkin at is@backwards
@@ -1640,9 +1702,9 @@
 					--%
 					(\dynkin at root@name \the\@toRoot);%
 			\fi%
-		\end{scope}%
+		\end{pgfonlayer}%%
 	\else
-		\begin{scope}[on background layer]%
+		\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)$)--%
@@ -1655,7 +1717,7 @@
 				($(\dynkin at root@name \the\@toRoot)+(0,-\dynkin at root@radius/3)$)--%
 				($(\dynkin at root@name \the\@fromRoot)+(0,-\dynkin at root@radius/3)$)--%
 				cycle;
-		\end{scope}%
+		\end{pgfonlayer}%%
 		\ifdynkin at arrows%
 			\dynkinEdgeArrow[#2]{\the\@fromRoot}{\the\@toRoot}%
 		\fi%
@@ -1791,6 +1853,10 @@
 
 \def\dynkin at arrow@color{}
 
+\def\dynkin at horizontal@shift{0pt}
+\def\dynkin at vertical@shift{.5ex}
+% Shift applied to all Dynkin diagrams
+
 \NewDocumentCommand\regurgitate{m}{#1}
 
 \pgfkeys{
@@ -1797,18 +1863,20 @@
  /Dynkin diagram/.is family,
  /Dynkin diagram,
 	affine mark/.estore in = \dynkin at affine@root at mark,
+	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,
 	arrows/.is if = dynkin at arrows,
 	arrows = true,
 	at/.estore in = \dynkin at current@location,
+	at/.default = {(0,0)},
 	backwards/.is if = dynkin at is@backwards,
 	backwards = false,
 	Coxeter/.is if = dynkin at Coxeter,
 	Coxeter=false,
-	edge label/.style={text height=0,text depth=0,label distance=-4pt},
 	double edges/.style = {
 	 	fold style/.style = {
 	 		draw=black,
@@ -1818,6 +1886,7 @@
 	 		line width=\defaultpgflinewidth}
 	},
 	double-edges/.forward to=/Dynkin diagram/double edges/.style,
+	doubleedges/.forward to=/Dynkin diagram/double edges/.style,
 	double fold/.style = {
 	 	fold style/.style = {
 	 		draw=black,
@@ -1827,6 +1896,7 @@
 	 		line width=\defaultpgflinewidth}
 	},
 	double-fold/.forward to=/Dynkin diagram/double fold/.style,
+	doublefold/.forward to=/Dynkin diagram/double fold/.style,
 	double left/.style = {
 	 	fold left style/.style = {
 	 		draw=black,
@@ -1836,6 +1906,7 @@
 	 		line width=\defaultpgflinewidth}
 	 	},
 	double-left/.forward to=/Dynkin diagram/double left/.style,
+	doubleleft/.forward to=/Dynkin diagram/double left/.style,
 	double fold left/.style = {
 	 	fold left style/.style = {
 	 		draw=black,
@@ -1844,7 +1915,8 @@
 	 		double distance=\dynkin at root@radius,
 	 		line width=\defaultpgflinewidth}
 	 	},
-	double-fold/.forward to=/Dynkin diagram/double fold/.style,
+	double-fold-left/.forward to=/Dynkin diagram/double fold left/.style,
+	doublefoldleft/.forward to=/Dynkin diagram/double fold left/.style,
 	double right/.style = {
 	 	fold right style/.style = {
 	 		draw=black,
@@ -1854,6 +1926,7 @@
 	 		line width=\defaultpgflinewidth}
 	 	},
 	double-right/.forward to=/Dynkin diagram/double right/.style,
+	doubleright/.forward to=/Dynkin diagram/double right/.style,
 	double fold right/.style = {
 	 	fold right style/.style = {
 	 		draw=black,
@@ -1863,34 +1936,63 @@
 	 		line width=\defaultpgflinewidth}
 	 	},
 	double-fold-right/.forward to=/Dynkin diagram/double fold right/.style,
+	doublefoldright/.forward to=/Dynkin diagram/double fold right/.style,
+	edge label/.style={text height=0,text depth=0,label distance=-4pt},
+	edgelabel/.forward to=/Dynkin diagram/edge label/.style,
 	edge length/.estore in = \dynkin at edge@length,
 	edge-length/.forward to=/Dynkin diagram/edge length,
+	edgelength/.forward to=/Dynkin diagram/edge length,
 	edge length = .35cm,
 	edge/.style={solid,draw=black,fill=white,thin},
 	extended/.is if = dynkin at is@extended,
 	extended = false,
 	fold left/.is if = dynkin at left@fold,
+	fold-left/.forward to = /Dynkin diagram/fold left,
+	foldleft/.forward to = /Dynkin diagram/fold left,
+	fold left/.default = false,
 	ply/.estore in = \dynkin at ply@value,
 	ply/.default = 1,
 	fold/.style={/Dynkin diagram/ply=2,fold style},
-	fold style/.style = {/Dynkin diagram/ply=2,solid,draw=black!40,fill=none,line width=\dynkin at root@radius,{Triangle Cap[]}-{Triangle Cap[]}},
+	fold style/.style = {
+		/Dynkin diagram/ply=2,
+		solid,
+		draw=black!40,
+		fill=none,
+		line width=\dynkin at root@radius,
+		{Triangle Cap[]}-{Triangle Cap[]}
+		},
 	fold-style/.forward to=/Dynkin diagram/fold style/.style,
+	foldstyle/.forward to=/Dynkin diagram/fold style/.style,
 	fold left style/.style = {},
 	fold-left-style/.forward to=/Dynkin diagram/fold left style/.style,
+	foldleftstyle/.forward to=/Dynkin diagram/fold left style/.style,
 	fold radius/.estore in = \dynkin at fold@radius,
 	fold-radius/.forward to=/Dynkin diagram/fold radius,
+	foldradius/.forward to=/Dynkin diagram/fold radius,
 	fold radius=.3cm,
 	fold right/.is if = dynkin at right@fold,
+	fold-right/.forward to = fold right,
+	foldright/.forward to = fold right,
+	fold right/.default = false,
 	fold right style/.style = {},
 	fold-right-style/.forward to=/Dynkin diagram/fold right style/.style,
+	foldrightstyle/.forward to=/Dynkin diagram/fold right style/.style,
 	gonality/.estore in = \dynkin at gonality,
+	gonality/.default = 0,
+	horizontal shift/.estore in=\dynkin at horizontal@shift,
+	horizontal shift/.default=0pt,
+	horizontal-shift/.forward to=/Dynkin diagram/horizontal shift,
+	horizontalshift/.forward to=/Dynkin diagram/horizontal shift,
 	indefinite edge ratio/.estore in = \dynkin at indefinite@edge at ratio,
 	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/.forward to=/Dynkin diagram/indefinite edge/.style,
+	indefiniteedge/.forward to=/Dynkin diagram/indefinite edge/.style,
 	Kac arrows/.is if = dynkin at Kac@arrows,
 	Kac-arrows/.forward to = /Dynkin diagram/Kac arrows,
+	Kacarrows/.forward to = /Dynkin diagram/Kac arrows,
 	Kac arrows=false,
 	Kac/.style={
 		Kac arrows=true,
@@ -1909,20 +2011,25 @@
 	label depth/.default=g,
 	label depth,
 	label-depth/.forward to = /Dynkin diagram/label depth,
+	labeldepth/.forward to = /Dynkin diagram/label depth, 
 	label height/.style={/tikz/every label/.append style={text height={height("#1"}}},
 	label height/.default=b,
 	label height,
 	label-height/.forward to = /Dynkin diagram/label height,
+	labelheight/.forward to = /Dynkin diagram/label height,
 	labels/.default = {},
 	labels*/.default = {},
 	label macro/.code = {\regurgitate{#1}},
 	label-macro/.forward to=/Dynkin diagram/label macro,
+	labelmacro/.forward to=/Dynkin diagram/label macro,
 	label macro*/.code = {\regurgitate{#1}},
 	label-macro*/.forward to=/Dynkin diagram/label macro*,
+	labelmacro*/.forward to=/Dynkin diagram/label macro*,
  	labels/.store in = \dynkin at label@list,
  	labels*/.store in = \dynkin at label@list at star,
 	make indefinite edge/.code={\dynkin at set@edge at indefinite@pair{#1}},
 	make-indefinite-edge/.forward to=/Dynkin diagram/make indefinite edge,
+	makeindefiniteedge/.forward to=/Dynkin diagram/make indefinite edge,
 	mark/.estore in = \dynkin at root@mark,
 	mark = *,
 	name/.estore in = \dynkin at diagram@name,
@@ -1932,23 +2039,43 @@
 	ordering/.store in = \dynkin at ordering,
 	ordering = Bourbaki,
 	parabolic/.estore in = \dynkin at parabolic,
+	parabolic/.default = 0,
 	reverse arrows/.is if = dynkin at reverse@arrows,
 	reverse arrows = false,
 	reverse-arrows/.forward to = /Dynkin diagram/reverse arrows,
+	reversearrows/.forward to = /Dynkin diagram/reverse arrows,
 	upside down/.is if = dynkin at is@upsidedown,
 	upside down = false,
 	upside-down/.forward to = /Dynkin diagram/upside down,
+	upsidedown/.forward to = /Dynkin diagram/upside down,
 	root radius/.estore in = \dynkin at root@radius,
 	root-radius/.forward to=/Dynkin diagram/root radius,
+	rootradius/.forward to=/Dynkin diagram/root radius,
 	root radius=.05cm,
 	text style/.style={#1},
 	text style/.default={scale=.7},
-	text-style/.forward to=/Dynkin diagram/text style/.style,
+	text-style/.forward to=text style/.style,
+	textstyle/.forward to=text style/.style,
 	twisted/.is if = dynkin at is@twisted,
 	twisted/.default = false,
 	twisted series/.estore in = \dynkin at twisted@series,
 	twisted-series/.forward to = /Dynkin diagram/twisted series,
+	twistedseries/.forward to = /Dynkin diagram/twisted series,
 	twisted series/.default = 0,
+	vertical shift/.estore in=\dynkin at vertical@shift,
+	vertical shift/.default=.5ex,
+	vertical-shift/.forward to=/Dynkin diagram/vertical shift,
+	verticalshift/.forward to=/Dynkin diagram/vertical shift,
+	x shift in edge lengths/.code=%
+		{%
+			\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%
+				{(#1*\dynkin at edge@length)+\dynkin at vertical@shift}%
+		},%
 	*/.style = {
 		solid,
 		draw=black,
@@ -2027,13 +2154,6 @@
 			fill=white,
 		},
 	},
-	at/.default = {(0,0)},
-	parabolic/.default = 0,
-	gonality/.default = 0,
-	fold-left/.forward to = /Dynkin diagram/fold left,
-	fold left/.default = false,
-	fold-right/.forward to = /Dynkin diagram/fold right,
-	fold right/.default = false,
 	.search also={/tikz},
 }
 
@@ -2046,13 +2166,13 @@
 %% 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%
-	\advance\drpo by 1%
-	\dynkin at where=#2%
+	\drpo=\the\dynkin at nodes\relax%
+	\advance\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]%
-		\advance\dynkin at where by 2
+		\advance\dynkin at where by 2\relax%
 		\StrMid{\dynkin at label@directions at star}{\the\dynkin at where}{\the\drpo}[\dynkin at end]%
 		\IfStrEqCase{#3}{%
 			{right}{\xdef\dynkin at label@directions at star{\dynkin at start 0\dynkin at end}}%
@@ -2069,7 +2189,7 @@
 	}%
 	{%
 		\StrMid{\dynkin at label@directions}{1}{\the\dynkin at where}[\dynkin at start]%
-		\advance\dynkin at where by 2
+		\advance\dynkin at where by 2\relax%
 		\StrMid{\dynkin at label@directions}{\the\dynkin at where}{\the\drpo}[\dynkin at end]%
 		\IfStrEqCase{#3}{%
 			{right}{\xdef\dynkin at label@directions{\dynkin at start 0\dynkin at end}}%
@@ -2123,8 +2243,8 @@
 % writes the given number <n> of copies of the default root mark into the string \dynkin at string.
 \NewDocumentCommand\dynkin at integer@rank{}%
 {%
-	\global\dynkin at rank=\dynkin at string%
-	\global\dynkin at nodes=\dynkin at string%
+	\global\dynkin at rank=\dynkin at string\relax%
+	\global\dynkin at nodes=\dynkin at string\relax%
 	\ifdynkin at is@twisted%
 		\IfStrEqCase{\dynkin at series}%
 		{%
@@ -2133,7 +2253,7 @@
 				\divide\dynkin at nodes by 2%
 				\ifodd\dynkin at rank%
 					\global\dynkin at oddtrue%
-					\advance\dynkin at nodes by 1%
+					\advance\dynkin at nodes by 1\relax%
 				\else%
 					\global\dynkin at oddfalse%
 				\fi%
@@ -2144,13 +2264,13 @@
 				{%
 					{2}%
 					{%
-						\global\advance\dynkin at nodes by -1%
+						\global\advance\dynkin at nodes by -1\relax%
 					}%
 					{3}%
 					{%
 						\IfStrEq{\dynkin at string}{4}%
 						{%
-							\global\dynkin at nodes=2%
+							\global\dynkin at nodes=2\relax%
 						}%
 						{%
 							\dynkin at error@series%
@@ -2165,7 +2285,7 @@
 				{%
 					\IfStrEq{\dynkin at string}{6}%
 					{%
-						\global\dynkin at nodes=4%
+						\global\dynkin at nodes=4\relax%
 					}%
 					{%
 						\dynkin at error@series%
@@ -2202,7 +2322,7 @@
 
 \NewDocumentCommand\dynkin at set@edge at indefinite@pair{>{\SplitArgument{1}{-}}m}%
 {%
-\dynkin at set@edge at indefinite#1
+\dynkin at set@edge at indefinite#1%
 }%
 
 \newif\ifdynkin at is@indefinite at edge
@@ -2224,8 +2344,8 @@
 		\convertRootPair{#2}{#3}%
 	}%
 	{%
-		\@fromRoot=#2%
-		\@toRoot=#3%
+		\@fromRoot=#2\relax%
+		\@toRoot=#3\relax%
 	}%
 	% Next we sort the order, since edges are stored as undirected edges.
 	\global\first=\@fromRoot\relax%
@@ -2251,15 +2371,15 @@
 % interprets it to say which edges are indefinite edges.
 \NewDocumentCommand\dynkin at grok@indefinite at edges{}%
 {%
-	\rootnum=1
+	\rootnum=1\relax
 	\StrLen{\dynkin at string}[\temp]%
-	\dynkin at string@length=\temp
+	\dynkin at string@length=\temp\relax%
 	\foreach \i in {2,...,\the\dynkin at string@length}%
 	{%
 		\StrChar{\dynkin at string}{\i}[\c]%
 		\IfStrEq{\c}{.}%
 		{%
-			\rootnumpo=\rootnum%
+			\rootnumpo=\rootnum\relax%
 			\advance\rootnumpo by 1\relax%
 			\ifnum\the\rootnum<\the\dynkin at nodes%
 				\dynkin at set@edge at indefinite{\rootnum}{\rootnumpo}%
@@ -2266,7 +2386,7 @@
 			\fi%
 		}%
 		{%
-			\global\advance\rootnum by 1%
+			\global\advance\rootnum by 1\relax%
 		}%
 	}%
 }%
@@ -2273,8 +2393,6 @@
 
 \xdef\spacy{ }
 
-\xdef\questionMarks{}
-
 \NewDocumentCommand\dynkin at clear@label at directions{}%
 {%
 	\xdef\dynkin at label@directions{}%
@@ -2285,7 +2403,7 @@
 \NewDocumentCommand\dynkin at set@default at label@directions{}%
 {%
 %	\newcount\drpo%
-	\drpo=\the\dynkin at nodes%
+	\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}{?}}%
@@ -2309,10 +2427,10 @@
 	\xdef\dynkin at parabolic{0}%
 	\pgfkeys{/Dynkin diagram, #1}%
 	\ifdynkin at is@backwards%
-	  \tikzset{xscale=-1}%
+		\tikzset{xscale=-1}%
 	\fi%
 	\ifdynkin at is@upsidedown%
-	  \tikzset{yscale=-1}%
+		\tikzset{yscale=-1}%
 	\fi%
 	\IfStrEq{\dynkin at label@list\dynkin at label@list at star}{}%
 	{%
@@ -2324,7 +2442,7 @@
 	\xdef\dynkin at twisted@series{#3}%
 	\xdef\dynkin at user@string{#4}%
 	\global\dynkin at ply=\dynkin at ply@value\relax%
-	\xdef\dynkin at indefinite@edge at length{(\dynkin at edge@length*\dynkin at indefinite@edge at ratio)}\relax%
+\xdef\dynkin at indefinite@edge at length{(\dynkin at edge@length*\dynkin at indefinite@edge at ratio)}\relax%
 	\xdef\dynkin at series{#2}%
 	\IfStrEq{\dynkin at diagram@name}{anonymous}%
 	{%
@@ -2335,7 +2453,7 @@
 	}%
 	\dynkin at grok@series%
 	\IfSubStr{ABCDEFGHI}{\dynkin at series}{}{\dynkin at error@series}%
-	\xdef\dynkin at string{#4}
+	\xdef\dynkin at string{#4}%
 	\IfInteger{\dynkin at string}%
 	{%
 		\dynkin at integer@rank%
@@ -2344,6 +2462,7 @@
 		% Turn Satake codes into Dynkin diagram expressions in \dynkin at string.
 		\dynkin at grok@Satake at codes%
 	}%
+
 	% Expand out any digits in \dynkin at string into multiples of the various root marks.
 	\expand at Dynkin@Roots at Digits%
 	% Assign to \dynkin at roots the input string \dynkin at string with all . symbols removed,
@@ -2357,9 +2476,19 @@
 	\dynkin at cross@out at parabolics{}%
 	\dynkin at set@default at label@directions{}%
 	\check at Dynkin@diagram{}%
-	\node[anchor=base,inner sep=0pt,outer sep=0pt] (origin) at \dynkin at current@location {};
-%	\node (Dynkin current) at (origin) {};%
-	\node (Dynkin current) at ($(origin)+(0,0.5ex)$){};
+	\ifdefined\initialize at roots@as at sums@table%
+		\initialize at roots@as at sums@table%
+	\fi%
+	\node[anchor=base,inner sep=0pt,outer sep=0pt] 
+		(origin) 
+		at 
+		\dynkin at current@location 
+		{};%
+	\node 
+		(Dynkin current) 
+		at 
+		($(origin)+(\dynkin at horizontal@shift,\dynkin at vertical@shift)$)%
+		{};%
 	\ifdynkin at is@twisted%
 		\csname twisted\dynkin at series dynkin\endcsname%
 	\else%
@@ -2375,7 +2504,7 @@
 %% We know the number of nodes; lets find the rank.
 \NewDocumentCommand\dynkin at find@rank{}%
 {%
-	\global\dynkin at rank=\the\dynkin at nodes%
+	\global\dynkin at rank=\the\dynkin at nodes\relax%
 	\ifdynkin at is@twisted%
 		\IfStrEqCase{\dynkin at series}%
 		{%
@@ -2383,7 +2512,7 @@
 			{%
 				\multiply\dynkin at rank by 2%
 				\ifdynkin at odd%
-					\advance\dynkin at rank by -1%
+					\advance\dynkin at rank by -1\relax%
 				\fi%
 			}%
 			{D}%
@@ -2392,33 +2521,33 @@
 				{%
 					{2}
 					{%
-						\advance\dynkin at rank by 1%
+						\advance\dynkin at rank by 1\relax%
 					}%
 					{3}
 					{%
-						\advance\dynkin at rank by 2%
+						\advance\dynkin at rank by 2\relax%
 					}%
 				}%
 			}%
 			{E}%
 			{%
-				\advance\dynkin at rank by 2%
+				\advance\dynkin at rank by 2\relax%
 			}%
 		}%
 	\fi%
 }%
 
-\newcount\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{}%
 {%
-	\StrLen{\dynkin at series}[\lenny]
-	\ifnum\lenny>1%
+	\StrLen{\dynkin at series}[\dynkin at lenny]
+	\ifnum\dynkin at lenny>1%
 		\dynkin at error@series%
-	\fi
-	\edef\series{\dynkin at series}
+	\fi%
+	\edef\series{\dynkin at series}%
 	\IfStrEqCase{\dynkin at twisted@series}%
 	{%
 		{0}{}%
@@ -2464,16 +2593,13 @@
 			\IfStrEqCase{\dynkin at string}%
 			{%
 				{even}{\gdef\dynkin at string{ddd.ddd}\global\dynkin at oddfalse\global\dynkin at Satake@diagramfalse}%
-%				{even}{\gdef\dynkin at string{***.***}\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}%
-%				{odd}{\gdef\dynkin at string{****.***}\global\dynkin at oddtrue\global\dynkin at Satake@diagramfalse}%
 				{}{\gdef\dynkin at string{dd.dd}\global\dynkin at Satake@diagramfalse}%
-%				{}{\gdef\dynkin at string{**.**}\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\gdef\dynkin at string{oo.o**.**o.oo}}%
-				{IIIb}{\global\dynkin at ply=2\gdef\dynkin at string{oo.ooo.oo}}%
-				{IV}	{\global\dynkin at ply=2\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]%
 		}%
@@ -2525,10 +2651,8 @@
 					\ifdynkin at is@extended%
 							\ifnum\dynkin at ply=4%
 								\gdef\dynkin at string{dddd.d.ddddd}
-%								\gdef\dynkin at string{****.*.*****}
 							\else%
 								\gdef\dynkin at string{ddd.dddd}%
-%								\gdef\dynkin at string{***.****}%
 							\fi%
 					\else%
 						\ifdynkin at is@twisted%
@@ -2535,23 +2659,20 @@
 							\IfStrEqCase{\dynkin at twisted@series}%
 							{%
 								{2}{	\gdef\dynkin at string{dd.ddd}}%
-%								{2}{	\gdef\dynkin at string{**.***}}%
 								{3}{\gdef\dynkin at string{ddd}}%
-%								{3}{\gdef\dynkin at string{***}}%
 							}%
 							[\dynkin at error@series]%
 						\else%
 							\gdef\dynkin at string{dd.dddd}%
-%							\gdef\dynkin at string{**.****}%
 						\fi%
 					\fi%
 				}%
 				{Ia}{\gdef\dynkin at string{oo.o*.***}}%
-				{Ib}{\global\dynkin at ply=2\gdef\dynkin at string{o.ooo}}%
+				{Ib}{\global\dynkin at ply=2\relax\gdef\dynkin at string{o.ooo}}%
 				{Ic}{\gdef\dynkin at string{o.ooo}}%
 				{II}	{\gdef\dynkin at string{o*.***}}%
 				{IIIa}{\gdef\dynkin at string{*o*.o*o}}%
-				{IIIb}{\global\dynkin at ply=2\gdef\dynkin at string{*o*.o*oo}}%
+				{IIIb}{\global\dynkin at ply=2\relax\gdef\dynkin at string{*o*.o*oo}}%
 			}%
 			[\global\dynkin at Satake@diagramfalse]%
 		}%
@@ -2565,15 +2686,14 @@
 					\IfStrEq{\dynkin at twisted@series}{2}%
 					{%
 						\gdef\dynkin at string{ddddd}%
-%						\gdef\dynkin at string{*****}%
 					}%
 					{%
 						\dynkin at error@series%
 					}%
 				}%
-				{I}{	\global\dynkin at rank=6\gdef\dynkin at string{oooooo}}%
-				{II}	{\global\dynkin at ply=2\gdef\dynkin at string{oooooo}}%
-				{III}{\global\dynkin at ply=2\gdef\dynkin at string{oo***o}}%
+				{I}{	\global\dynkin at rank=6\relax\gdef\dynkin at string{oooooo}}%
+				{II}	{\global\dynkin at ply=2\relax\gdef\dynkin at string{oooooo}}%
+				{III}{\global\dynkin at ply=2\relax\gdef\dynkin at string{oo***o}}%
 				{IV}	{\gdef\dynkin at string{o****o}}%
 				{V}{	\gdef\dynkin at string{ooooooo}}%
 				{VI}	{\gdef\dynkin at string{o*oo*o*}	}%
@@ -2585,7 +2705,7 @@
 		}%
 		{F}%
 		{%
-			\global\dynkin at rank=4%
+			\global\dynkin at rank=4\relax%
 			\IfStrEqCase{\dynkin at string}%
 			{%
 				{I}{	\gdef\dynkin at string{oooo}}%
@@ -2682,7 +2802,7 @@
 	\foreach \i in {1,...,\the\dynkin at nodes}%
 	{%
 		\StrChar{\dynkin at roots}{\i}[\cccc]%
-	    \IfSubStr{*OXotx}{\cccc}%
+		\IfSubStr{*OXotx}{\cccc}%
 		{%
 		}%
 		{%else
@@ -2695,13 +2815,10 @@
 	}%
 }%
 
-%% \check at Dynkin@diagram
-%% Raises error messages for erroneous inputs.
-\NewDocumentCommand\check at Dynkin@diagram{}%
+%% \check at Dynkin@root at order
+\NewDocumentCommand\check at Dynkin@root at order{m}%
 {%
-	\IfSubStr{1234}{\the\dynkin at ply}{}{\dynkin at error@ply}%
-	\check at Dynkin@Roots%
-	\IfStrEqCase{\dynkin at ordering}%
+	\IfStrEqCase{#1}%
 	{%
 		{Adams}{}%
 		{Bourbaki}{}%
@@ -2712,9 +2829,17 @@
 	}%
 	[\ClassError%
 		{Dynkin diagrams}%
-		{Unrecognized label ordering: ``\dynkin at ordering'' 
-		in Dynkin diagram  \dynkin at user@series{\dynkin at user@string}}%
+		{Unrecognized label ordering: ``#1'' }%
 		{}]%
+}%
+
+%% \check at Dynkin@diagram
+%% Raises error messages for erroneous inputs.
+\NewDocumentCommand\check at Dynkin@diagram{}%
+{%
+	\IfSubStr{1234}{\the\dynkin at ply}{}{\dynkin at error@ply}%
+	\check at Dynkin@Roots%
+	\check at Dynkin@root at order{\dynkin at ordering}%
 	\IfStrEqCase{\dynkin at series}%
 	{%
 		{A}{}%
@@ -2741,7 +2866,7 @@
 					\else%
 						\ifnum\dynkin at rank=8%
 						\else%
-							\dynkin at error@rank%
+							\IfStrEq{\dynkin at ordering}{Kac}{}{\dynkin at error@rank}%
 						\fi%
 					\fi%
 				\fi%
@@ -2775,6 +2900,7 @@
 \newcount\RootNumber
 \newcount\@fromRoot
 \newcount\@toRoot
+\newcount\drmo
 
 %% \swapRootIfInLastTwoRoots{<r>}
 %% If the input root <r> is one of the last two roots, then put the other in \RootNumber, otherwise
@@ -2782,7 +2908,6 @@
 \NewDocumentCommand\swapRootIfInLastTwoRoots{m}%
 {%
 	\ifnum\dynkin at rank>1%
-		\newcount\drmo\relax%
 		\drmo=\dynkin at rank\relax%
 		\advance\drmo by -1\relax%
 		\ifnum\dynkin at rank=#1%
@@ -2799,6 +2924,284 @@
 	\fi%
 }%
 
+
+\newcount\dynkin at r
+\NewDocumentCommand\swap at if@in at last@two{mm}%
+{%
+	\global\dynkin at r=#2\relax%
+	\ifnum\dynkin at r=#1%
+		\global\advance \dynkin at r by -1\relax%
+	\else%
+		\global\advance \dynkin at r by 1\relax%
+		\ifnum\dynkin at r=#1%
+		\else%
+			\global\advance \dynkin at r by -1\relax%
+		\fi%
+	\fi%
+	\the\dynkin at r%
+}%
+
+\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
+%% the root <number> in <from order>, for the series of simple Lie algebra 
+%% <series>, rank <rank>.
+%% Example: \dynkinOrderToBourbaki{E}{8}{Carter}{7}
+%% yields 3, because the 7th root in E8 according  to Carter's ordering is the
+%% 3rd in Bourbaki's.
+{%
+%	\check at Dynkin@root at order{#3}%
+	\IfStrEq{#4}{0}%
+	{%
+		% The affine root is often labelled as root 0, and it is the same in all orderings.
+		\global#5=0%
+	}%
+	{%
+		\IfStrEqCase{#1}%
+		{%
+			{A}%
+			{%
+				\global#5=#4\relax%
+			}%
+			{D}%
+			{%
+				\IfStrEqCase{#3}%
+				{%
+					{Adams}{%
+						\global#5=%
+						\swap at if@in at last@two{#2}{#4}%
+						\relax%
+					}%
+					{Dynkin}{%
+						\global#5=%
+						\swap at if@in at last@two{#2}{#4}%
+						\relax%
+					}%
+					{Kac}{%
+						\global#5=%
+						\swap at if@in at last@two{#2}{#4}%
+						\relax%
+						}%
+				}%
+				[\global#5=#4\relax]%
+			}%
+			{E}%
+			{%
+					\ifnum#2=6%
+							\IfStrEqCase{#3}%
+							{%
+								{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}%
+							}%
+							[\global#5=#4\relax]%
+					\else%
+						\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}%
+							}%
+							[\global#5=#4\relax]%
+						\else%
+							\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}%
+								}%
+								[\global#5=#4\relax]%
+							\else%
+								\global#5=#4\relax%
+							\fi%
+						\fi%
+					\fi%
+			}%
+			{F}%
+			{%
+				\IfStrEqCase{#3}%
+				{%
+					{Adams}{\global#5=%
+							\stringCharacterInPosition{4321}{#4}%
+							\relax}%
+				}%
+				[\global#5=#4\relax]%
+			}%
+			{G}%
+			{%
+				\IfStrEqCase{#3}%
+				{%
+					{Carter}{\global#5=%
+							\stringCharacterInPosition{21}{#4}%
+							\relax}%
+					{Dynkin}{\global#5=%
+							\stringCharacterInPosition{21}{#4}%
+							\relax}%
+				}%
+				[\global#5=#4\relax]%
+			}%
+		}%
+		[\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
+%% the root <number> in Bourbaki ordering, for the series of simple Lie algebra 
+%% <series>, rank <rank>.
+%% Example: \dynkinOrderFromBourbaki{E}{8}{7}{Carter}
+%% yields 2, because the 7th root in E8 according  to Bourbaki's ordering is the
+%% 2nd in Carter's.
+{%
+%	\check at Dynkin@root at order{#4}%
+	\IfStrEq{#3}{0}%
+	{%
+		% The affine root is often labelled as root 0, and it is the same in all orderings.
+		\global#5=0\relax%
+	}%
+	{%
+	\IfStrEqCase{#1}%
+	{%
+		{A}%
+		{%
+			\global#5=#3\relax%
+		}%
+		{D}%
+		{%
+			\IfStrEqCase{#4}%
+			{%
+				{Adams}{%
+					\global#5=%
+					\swap at if@in at last@two{#2}{#3}%
+					\relax%
+				}%
+				{Dynkin}{%
+					\global#5=%
+					\swap at if@in at last@two{#2}{#3}%
+					\relax%
+				}%
+				{Kac}{%
+					\global#5=%
+					\swap at if@in at last@two{#2}{#3}%
+					\relax%
+					}%
+			}%
+			[\global#5=#3\relax]%
+		}%
+		{E}%
+		{%
+				\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}%
+						}%
+						[\global#5=#3\relax]%
+				\else%
+					\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}%
+						}%
+						[\global#5=#3\relax]%
+					\else%
+						\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}%
+							}%
+							[\global#5=#3\relax]%
+						\else%
+							\global#5=#3\relax%
+						\fi%
+					\fi%
+				\fi%
+			%\fi%
+		}%
+		{F}%
+		{%
+			\IfStrEqCase{#4}%
+			{%
+				{Adams}{\global#5=\stringCharacterInPosition{4321}{#3}\relax}%
+			}%
+			[\global#5=#3\relax]%
+		}%
+		{G}%
+		{%
+			\IfStrEqCase{#4}%
+			{%
+				{Carter}{\global#5=\stringCharacterInPosition{21}{#3}\relax}%
+				{Dynkin}{\global#5=\stringCharacterInPosition{21}{#3}\relax}%
+			}%
+			[\global#5=#3\relax]%
+		}%
+	}%
+	[\global#5=#3\relax]%
+	}%
+}%
+
+\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}
+{%
+	\dynkinOrderToBourbaki{#1}{#2}{#3}{#4}{\dynkin at order@temp}%
+	\dynkinOrderFromBourbaki{#1}{#2}{\the\dynkin at order@temp}{#5}{#6}%
+}%
+
+
+%% \typeDynkinOrder <series><rank>.<from order>::<from root number>-><to order>.
+%% Example: \typeDynkinOrder D7.Carter::7->Bourbaki.
+\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.
 \NewDocumentCommand\convertRootNumber{m}%
@@ -2805,7 +3208,7 @@
 {%
 	\IfStrEq{#1}{0}%
 	{%
-		\global\RootNumber=0%
+		\global\RootNumber=0\relax%
 	}%
 	{%
 	\IfStrEqCase{\dynkin at series}%
@@ -2816,14 +3219,14 @@
 			{%
 				{TestOrder}%
 				{%
-					\global\RootNumber=#1
-					\global\advance\RootNumber by 1
+					\global\RootNumber=#1\relax%
+					\global\advance\RootNumber by 1\relax%
 					\ifnum\RootNumber>\the\dynkin at rank%
-						\global\RootNumber=1%
+						\global\RootNumber=1\relax%
 					\fi%
 				}%
 			}%
-			[\global\RootNumber=#1]%
+			[\global\RootNumber=#1\relax]%
 		}%
 		{D}%
 		{%
@@ -2833,52 +3236,53 @@
 				{Dynkin}{\swapRootIfInLastTwoRoots{#1}}%
 				{Kac}{%
 					\ifdynkin at is@twisted
-						\global\RootNumber=#1
+						\global\RootNumber=#1\relax%
 					\else
 						\ifdynkin at is@extended
-							\global\RootNumber=#1
+							\global\RootNumber=#1\relax%
 						\else
 							\swapRootIfInLastTwoRoots{#1}
 						\fi
 					\fi}%
 			}%
-			[\global\RootNumber=#1]%
+			[\global\RootNumber=#1\relax]%
 		}%
 		{E}%
 		{%
 			\ifdynkin at is@twisted%
-				\global\RootNumber=#1%
+				\global\RootNumber=#1\relax%
 			\else%
 				\ifnum\dynkin at rank=6%
 						\IfStrEqCase{\dynkin at ordering}%
 						{%
-							{Adams}{\global\RootNumber=\stringCharacterInPosition{152436}{#1}}%
-							{Carter}{\global\RootNumber=\stringCharacterInPosition{142356}{#1}}%
-							{Dynkin}{\global\RootNumber=\stringCharacterInPosition{162345}{#1}}%
-							{Kac}{\global\RootNumber=\stringCharacterInPosition{162345}{#1}}%
+							{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}%
 						}%
-						[\global\RootNumber=#1]%
+						[\global\RootNumber=#1\relax]%
 				\else%
 					\ifnum\dynkin at rank=7%
 						\IfStrEqCase{\dynkin at ordering}%
 						{%
-							{Adams}{\global\RootNumber=\stringCharacterInPosition{6354217}{#1}}%
-							{Carter}{\global\RootNumber=\stringCharacterInPosition{7564321}{#1}}%
-							{Dynkin}{\global\RootNumber=\stringCharacterInPosition{1723456}{#1}}%
-							{Kac}{\global\RootNumber=\stringCharacterInPosition{1723456}{#1}}%
+							{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}%
 						}%
-						[\global\RootNumber=#1]%			
+						[\global\RootNumber=#1\relax]%			
 					\else%
 						\ifnum\dynkin at rank=8%
 							\IfStrEqCase{\dynkin at ordering}%
 							{%
-								{Adams}{\global\RootNumber=\stringCharacterInPosition{13245678}{#1}}%
-								{Carter}{\global\RootNumber=\stringCharacterInPosition{86754321}{#1}}%
-								{Dynkin}{\global\RootNumber=\stringCharacterInPosition{18234567}{#1}}%
-								{Kac}{\global\RootNumber=\stringCharacterInPosition{78654321}{#1}}%
+								{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}%
 							}%
-							[\global\RootNumber=#1]%			
+							[\global\RootNumber=#1\relax]%
 						\else%
+							\global\RootNumber=#1\relax%
 						\fi%
 					\fi%
 				\fi%
@@ -2888,21 +3292,21 @@
 		{%
 			\IfStrEqCase{\dynkin at ordering}%
 			{%
-				{Adams}{\global\RootNumber=\stringCharacterInPosition{4321}{#1}}%
+				{Adams}{\global\RootNumber=\stringCharacterInPosition{4321}{#1}\relax}%
 			}%
-			[\global\RootNumber=#1]%
+			[\global\RootNumber=#1\relax]%
 		}%
 		{G}%
 		{%
 			\IfStrEqCase{\dynkin at ordering}%
 			{%
-				{Carter}{\global\RootNumber=\stringCharacterInPosition{21}{#1}}%
-				{Dynkin}{\global\RootNumber=\stringCharacterInPosition{21}{#1}}%
+				{Carter}{\global\RootNumber=\stringCharacterInPosition{21}{#1}\relax}%
+				{Dynkin}{\global\RootNumber=\stringCharacterInPosition{21}{#1}\relax}%
 			}%
-			[\global\RootNumber=#1]%
+			[\global\RootNumber=#1\relax]%
 		}%
 	}%
-	[\global\RootNumber=#1]%
+	[\global\RootNumber=#1\relax]%
 	}%
 }%
 
@@ -2911,44 +3315,70 @@
 \NewDocumentCommand\convertRootPair{mm}
 {%
 	\convertRootNumber{#1}%
-	\global\@fromRoot=\RootNumber%
+	\global\@fromRoot=\RootNumber\relax%
 	\convertRootNumber{#2}%
-	\global\@toRoot=\RootNumber%
+	\global\@toRoot=\RootNumber\relax%
 }%
-
-\ExplSyntaxOn
-\NewDocumentCommand\moduloInt{mm}{\int_mod:nn{#1}{#2}}
-\ExplSyntaxOff
-
-%% \testbit{<n>}{<b>}{<f>}{<g>}
-%% If bit number <b> of <n> is 1 then expand <f> else expand <g>.
-\NewDocumentCommand\testbit{mmmm}%
+%% \testbit{<n>}{<b>}
+%% If bit number <b> of <n> is 1 then set bittrue else set bitfalse
+\newif\ifbit
+\newcount\test at bit@a
+\newcount\test at bit@b
+\newif\iftest at bit@more
+\NewDocumentCommand\testbit{mm}%
 {%
-	\newcount\x\relax%
-	\x=#1\relax%
-	\newcount\whichbit\relax%
-	\whichbit=#2\relax%
-	\ifnum\whichbit>0%
-		\foreach \i in {1,...,#2}%
-		{%
-			\global\divide \x by 2%
-		}%
+	\test at bit@a#1\relax%
+	\test at bit@b#2\relax%
+	\ifnum\test at bit@a=0%
+		\global\bitfalse%
+	\else%
+		\global\test at bit@moretrue%
+		\loop%
+			\ifnum\test at bit@b=0\relax%
+				\global\test at bit@morefalse%
+				\ifodd\test at bit@a\empty%
+					\global\bittrue%
+				\else%
+					\global\bitfalse%
+				\fi%
+			\else%
+				\divide\test at bit@a by 2\relax%
+				\advance\test at bit@b by -1\relax%
+			\fi%
+		\iftest at bit@more\repeat%
 	\fi%
-	\xdef\temp{\moduloInt{\the\x}{2}}%
-	\x=\temp\relax%
-	\ifnum\the\x=1 #3\else #4\fi%
 }%
-
+%% \replaceNthChar{<string>}{<N>}{<char>}
+%% redefines the string <string>, a name of a macro returning a character string,
+%% to be the same as its original output, but with character <N> replaced by <char>.
+\newcount\replaceNthCounter
+\newcount\replacementN
+\xdef\replacementLeftString{}
+\xdef\replacementRightString{}
+\NewDocumentCommand\replaceNthChar{mmm}%
+{%
+	\ifnum#2<1
+	\else%
+		\StrLen{#1}[\thatreplaceNthCounter]%
+		\replaceNthCounter\thatreplaceNthCounter\relax%
+		\ifnum\replaceNthCounter<#2
+		\else%
+			\replacementN#2\relax%
+			\advance\replacementN by -1\relax%
+			\StrLeft{#1}{\the\replacementN}[\replacementLeftString]%
+			\advance\replacementN by 1\relax%
+			\StrGobbleLeft{#1}{\the\replacementN}[\replacementRightString]%
+			\xdef#1{\replacementLeftString#3\replacementRightString}%
+		\fi%
+	\fi%
+}%
+\newcount\dynkin at where%
 \NewDocumentCommand\dynkin at put@cross{m}%
 {%
-	\newcount\dynkin at where%
-	\dynkin at where=#1%
-	\StrMid{\dynkin at roots}{1}{#1}[\dynkin at start]%
-	\advance\dynkin at where by 1%
-	\StrMid{\dynkin at roots}{\the\dynkin at where}{\the\dynkin at nodes}[\dynkin at end]%
-	\xdef\dynkin at roots{\dynkin at start x\dynkin at end}%
+	\dynkin at where#1\relax%
+	\advance\dynkin at where by 1\relax%
+	\replaceNthChar{\dynkin at roots}{\the\dynkin at where}{x}%
 }%
-
 \NewDocumentCommand\dynkin at cross@out at parabolics{}%
 {%
 	\IfInteger{\dynkin at parabolic}%
@@ -2957,17 +3387,18 @@
 		{%
 		}%
 		{%
-			\newcount\drmo\relax%
 			\drmo=\the\dynkin at nodes\relax%
 			\advance\drmo by -1\relax%
 			\foreach \b in {0,...,\the\drmo}%
 			{%
-				\testbit{\dynkin at parabolic}{\b}{\dynkin at put@cross{\b}}{}%
+				\testbit{\dynkin at parabolic}{\b}%
+				\ifbit\dynkin at put@cross{\b}\fi%
 			}%
 		}%
 	}%
+	{%
+	}%
 }%
-
 \NewDocumentCommand\dynkinMoveToRoot{sm}%
 {%
 	\IfBooleanTF{#1}%
@@ -2975,7 +3406,7 @@
 		\convertRootNumber{#2}%
 	}%
 	{%
-		\global\RootNumber=#2
+		\global\RootNumber=#2\relax%
 	}%
 	\node (Dynkin current) at (\dynkin at root@name \the\RootNumber){};%
 }%
@@ -2995,7 +3426,7 @@
 		\convertRootNumber{#2}%
 	}%
 	{%
-		\global\RootNumber=#2
+		\global\RootNumber=#2\relax%
 	}%
 	\node (\dynkin at root@name \the\RootNumber) at (Dynkin current) {};%
 	\dynkin at put@direction{\the\RootNumber}{#3}%
@@ -3026,8 +3457,8 @@
 		\convertRootPair{#3}{#2}%
 	}%
 	{%
-		\global\@fromRoot=#3%
-		\global\@toRoot=#2%
+		\global\@fromRoot=#3\relax%
+		\global\@toRoot=#2\relax%
 	}%
 	\dynkin at is@edge at indefinite{\@fromRoot}{\@toRoot}%
 	\ifdynkin at is@indefinite at edge%
@@ -3089,7 +3520,6 @@
 \xdef\yjj{#1*\dynkin at edge@length*sin(60)}%
 \node (Dynkin current) at ($(Dynkin current)+(0,{\yjj})$){};%
 }%
-
 %% \dynkinEast
 %% Moves the TikZ cursor one edge to the right.
 %% Starred form for an indefinite edge.
@@ -3098,79 +3528,70 @@
 	\xdef\distance{\IfBooleanTF{#1}{\dynkin at indefinite@edge at length}{\dynkin at edge@length}}
 	\node (Dynkin current) at ($(Dynkin current)+({\distance},0)$) {};%
 }%
-
 %% \dynkinWest
 %% Moves the TikZ cursor one edge to the left.
 %% Starred form for an indefinite edge.
 \NewDocumentCommand\dynkinWest{s}%
 {%
-	\xdef\distance{\IfBooleanTF{#1}{\dynkin at indefinite@edge at length}{\dynkin at edge@length}}
+	\xdef\distance{\IfBooleanTF{#1}{\dynkin at indefinite@edge at length}{\dynkin at edge@length}}%
 	\node (Dynkin current) at ($(Dynkin current)+({-\distance},0)$) {};%
 }%
-
 %% \dynkinNorth
 %% Moves the TikZ cursor one edge up.
 %% Starred form for an indefinite edge.
 \NewDocumentCommand\dynkinNorth{s}%
 {%
-	\xdef\distance{\IfBooleanTF{#1}{\dynkin at indefinite@edge at length}{\dynkin at edge@length}}
+	\xdef\distance{\IfBooleanTF{#1}{\dynkin at indefinite@edge at length}{\dynkin at edge@length}}%
 	\node (Dynkin current) at ($(Dynkin current)+(0,{\distance})$) {};%
 }%
-
 %% \dynkinSouth
 %% Moves the TikZ cursor one edge to the left.
 %% Starred form for an indefinite edge.
 \NewDocumentCommand\dynkinSouth{s}%
 {%
-	\xdef\distance{\IfBooleanTF{#1}{\dynkin at indefinite@edge at length}{\dynkin at edge@length}}
+	\xdef\distance{\IfBooleanTF{#1}{\dynkin at indefinite@edge at length}{\dynkin at edge@length}}%
 	\node (Dynkin current) at ($(Dynkin current)+(0,{-\distance})$) {};%
 }%
-
 %% \dynkinNorthEast
 %% Moves the TikZ cursor one edge to the north east.
 %% Starred form for an indefinite edge.
 \NewDocumentCommand\dynkinNorthEast{s}%
 {%
-	\xdef\distance{\IfBooleanTF{#1}{\dynkin at indefinite@edge at length}{\dynkin at edge@length}}
+	\xdef\distance{\IfBooleanTF{#1}{\dynkin at indefinite@edge at length}{\dynkin at edge@length}}%
 	\node (Dynkin current) at 
 		($(Dynkin current)+
 			({cos(60)*\distance},{sin(60)*\distance})$) {};%
 }%
-
 %% \dynkinSouthEast
 %% Moves the TikZ cursor one edge to the south east.
 %% Starred form for an indefinite edge.
 \NewDocumentCommand\dynkinSouthEast{s}%
 {%
-	\xdef\distance{\IfBooleanTF{#1}{\dynkin at indefinite@edge at length}{\dynkin at edge@length}}
+	\xdef\distance{\IfBooleanTF{#1}{\dynkin at indefinite@edge at length}{\dynkin at edge@length}}%
 	\node (Dynkin current) at 
 		($(Dynkin current)+
 			({cos(-60)*\distance},{sin(-60)*\distance})$) {};%
 }%
-
 %% \dynkinNorthWest
 %% Moves the TikZ cursor one edge to the north west.
 %% Starred form for an indefinite edge.
 \NewDocumentCommand\dynkinNorthWest{s}%
 {%
-	\xdef\distance{\IfBooleanTF{#1}{\dynkin at indefinite@edge at length}{\dynkin at edge@length}}
+	\xdef\distance{\IfBooleanTF{#1}{\dynkin at indefinite@edge at length}{\dynkin at edge@length}}%
 	\node (Dynkin current) at 
 		($(Dynkin current)+
 			({cos(120)*\distance},{sin(120)*\distance})$) {};%
 }%
-
 %% \dynkinSouthWest
 %% Moves the TikZ cursor one edge to the south west.
 %% Starred form for an indefinite edge.
 \NewDocumentCommand\dynkinSouthWest{s}%
 {%
-	\xdef\distance{\IfBooleanTF{#1}{\dynkin at indefinite@edge at length}{\dynkin at edge@length}}
+	\xdef\distance{\IfBooleanTF{#1}{\dynkin at indefinite@edge at length}{\dynkin at edge@length}}%
 	\node (Dynkin current) at 
 		($(Dynkin current)+
 			({cos(240)*\distance},{sin(240)*\distance})$) {};%
 }%
-
-
 %% \dynkinSouthEastFold
 %% Moves the TikZ cursor one edge to the south east in the middle of a fold.
 \NewDocumentCommand\dynkinSouthEastFold{}%
@@ -3177,7 +3598,6 @@
 {%
 	\node (Dynkin current) at ($(Dynkin current)+({\dynkin at fold@radius},{-\dynkin at fold@radius})$) {};%
 }%
-
 %% \dynkinSouthWestFold
 %% Moves the TikZ cursor one edge to the south west in the middle of a fold.
 \NewDocumentCommand\dynkinSouthWestFold{}%
@@ -3184,7 +3604,6 @@
 {%
 	\node (Dynkin current) at ($(Dynkin current)+({-\dynkin at fold@radius},{-\dynkin at fold@radius})$) {};%
 }%
-
 %% \dynkinSouthFold
 %% Moves the TikZ cursor one edge to the south in the middle of a fold.
 \NewDocumentCommand\dynkinSouthFold{}%
@@ -3197,7 +3616,6 @@
 	\StrChar{\dynkin at roots}{#1}[\my at root@marker]%
 	\my at root@marker
 }%
-
 \NewDocumentCommand\dynkin at draw@all at roots{}%
 {%
 	\foreach \b in {1,...,\the\dynkin at nodes}%
@@ -3213,7 +3631,6 @@
 		\fi%
 	\fi%
 }%
-
 %% \dynkin at fold@arrow at if@oo{<p>}{<q>}
 %% Inputs are roots (in Bourbaki ordering).
 %% If we are working on a Satake diagram, and both roots are 
@@ -3236,13 +3653,10 @@
 		\dynkinFold{\the\@fromRoot}{\the\@toRoot}%
 	\fi%
 }%
-
 \newcount\pipebmo
 \newcount\pipefpo
 \newcount\pipe at end
 \newcount\start at pipe
-
-
 %% \dynkin at pipe{<f>}{<t>}{<D>}{<L>}{<L*>}
 %% Layout the roots (as TikZ nodes) <f>, <f>+1, \dots, <t> in the Bourbaki ordering, in a straight line, 
 %% starting at the current position (Dynkin current), moving in the direction <D>=east, west, north, south, with labels placed according to <L>=left,right,above,below.
@@ -3249,21 +3663,25 @@
 %% Assumes that the root <f> is already created as a node in TikZ, but the others are not.
 \NewDocumentCommand\dynkin at pipe{mmmmm}%
 {%
-	\start at pipe=#1
-	\pipe at end=#2
+	\start at pipe=#1\relax%
+	\pipe at end=#2\relax%
 	\ifnum\start at pipe<\the\pipe at end%
-		\global\pipebmo=\the\start at pipe
-		\global\pipefpo=\the\start at pipe
-		\global\advance\pipefpo by 1
+		\global\pipebmo=\the\start at pipe\relax%
+		\global\pipefpo=\the\start at pipe\relax%
+		\global\advance\pipefpo by 1\relax%
 		\foreach \bpipe in {\the\pipefpo,...,\the\pipe at end}%
 		{%
 			\dynkinPlaceRootRelativeTo*{\bpipe}{\the\pipebmo}{#3}{#4}{#5}%
 			\dynkinEdge*{SingleEdge}{\bpipe}{\the\pipebmo}%
-			\global\advance\pipebmo by 1%
+			\global\advance\pipebmo by 1\relax%
 		}%
 	\fi%
 }%
-
+\newcount\dynkin at h%
+\newcount\dynkin at hpo%
+\newcount\dynkin at afterfold%
+\newcount\dynkin at nrts%
+\newcount\dynkin at countdown%
 %% \dynkin at fold{<f>}{<t>}
 %% Layout the roots (as TikZ nodes) <f>, <f>+1, \dots, <t> in the Bourbaki ordering, in a folded arrangement, 
 %% moving first east, then down, then west, starting at the current position (Dynkin current).
@@ -3270,43 +3688,37 @@
 %% Assumes that the root <f> is already created as a node in TikZ, but the others are not.
 \NewDocumentCommand\dynkin at fold{mm}%
 {%
-	\newcount\h%
-	\h=#1%
-	\advance\h by #2%
-	\advance\h by -1%
-	\divide\h by 2%
-	\dynkin at pipe{#1}{\the\h}{east}{above}{below right}
-	\newcount\hpo
-	\hpo=\the\h
-	\advance\hpo by 1
-	\newcount\afterfold
-	\global\afterfold=\the\hpo
-	\newcount\nrts
-	\nrts=#2
-	\advance\nrts by 1
-	\advance\nrts by -#1
-	\ifodd\nrts%
-		\global\advance\afterfold by 1
-		\dynkinPlaceRootRelativeTo*{\the\hpo}{\the\h}{southeastfold}{right}{left}
-		\dynkinEdge*{RightDownArc}{\the\h}{\the\hpo}%
-		\dynkinPlaceRootRelativeTo*{\the\afterfold}{\the\hpo}{southwestfold}{below}{above right}
-		\dynkinEdge*{RightUpArc}{\the\afterfold}{\the\hpo}%
+	\dynkin at h=#1\relax%
+	\advance\dynkin at h by #2\relax%
+	\advance\dynkin at h by -1\relax%
+	\divide\dynkin at h by 2\relax%
+	\dynkin at pipe{#1}{\the\dynkin at h}{east}{above}{below right}
+	\dynkin at hpo=\the\dynkin at h\relax%
+	\advance\dynkin at hpo by 1\relax%
+	\global\dynkin at afterfold=\the\dynkin at hpo\relax%
+	\dynkin at nrts=#2\relax%
+	\advance\dynkin at nrts by 1\relax%
+	\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}%
 	\else
-		\dynkinPlaceRootRelativeTo*{\the\afterfold}{\the\h}{southfold}{below}{above right}
-		\dynkinEdge*{SemiCircle}{\the\h}{\the\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\afterfold}{#2}{west}{below}{above right}
+	\dynkin at pipe{\the\dynkin at afterfold}{#2}{west}{below}{above right}
 	\ifdynkin at arrows%
-		\newcount\countdown%
-		\countdown=#2%
-		\foreach \b in {#1,...,\the\h}%
+		\dynkin at countdown=#2\relax%
+		\foreach \dynkin at b in {#1,...,\the\dynkin at h}%
 		{%
-			\dynkin at fold@arrow at if@oo{\b}{\the\countdown}%
-			\global\advance\countdown by -1%
+			\dynkin at fold@arrow at if@oo{\dynkin at b}{\the\dynkin at countdown}%
+			\global\advance\dynkin at countdown by -1\relax%
 		}%
 	\fi%
 }%
-
 %% \Adynkin
 %% Draws an A series Dynkin diagram.
 \NewDocumentCommand\Adynkin{}%
@@ -3328,8 +3740,6 @@
 		\fi%
 	\fi%
 }%
-
-
 %% \Bdynkin 
 %% Draw a B series Dynkin diagram.
 \NewDocumentCommand\Bdynkin{}%
@@ -3337,11 +3747,11 @@
 	\ifnum\dynkin at rank<2
 		\Adynkin
 	\else
-		\newcount\drmo
-		\drmo=\the\dynkin at rank
-		\advance\drmo by -1
-		\ifdynkin at Coxeter
-			\Adynkin
+		\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}%
 		\else
 			% Create the roots.
@@ -3383,7 +3793,6 @@
 		\fi%
 	\fi%
 }
-
 %% \Cdynkin 
 %% Draws a C series Dynkin diagram.
 \newcommand*{\Cdynkin}
@@ -3400,7 +3809,6 @@
 		\global\dynkin at reverse@arrowstrue%
 	\fi%
 }
-
 %% \Ddynkin at roots
 %% Tell TikZ where to place the @roots for a D series Dynkin diagram. Draws nothing.
 \newcommand*{\Ddynkin at roots}
@@ -3452,16 +3860,16 @@
 			\dynkinPlaceRootRelativeTo*{2}{1}{east}{below}{above}%
 		\fi%
 	\fi
-	\newcount\rmo
-	\rmo=\dynkin at rank
-	\advance \rmo by -1
-	\newcount\rmt
-	\rmt=\rmo
-	\advance\rmt by -1
-	\newcount\rmth
-	\rmth=\rmt
-	\advance\rmth by -1
-	\ifnum\dynkin at rank>2
+	\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%
@@ -3508,21 +3916,20 @@
 		\fi%
 	\fi%
 }%
-
 %% \Ddynkin at edges
 %% Draws edges on a D series Dynkin diagram.
 \NewDocumentCommand\Ddynkin at edges{}%
 {%
 	% Draw the edges.
-	\newcount\rmo
-	\rmo=\dynkin at rank
-	\advance \rmo by -1
-	\newcount\rmt
-	\rmt=\rmo
-	\advance\rmt by -1
-	\newcount\rmtr
-	\rmtr=\rmt
-	\advance\rmtr by -1
+	\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%	
 		\ifdynkin at is@extended%
 			\dynkinEdge*{RightUpArc}{1}{2}%
@@ -3569,13 +3976,11 @@
 		\fi%
 	\fi%
 }%
-
 \def\centerarc[#1](#2)(#3:#4:#5);%
 %Syntax: [draw options] (center) (initial angle:final angle:radius)
     {
     \draw[#1]([shift=(#3:#5)]#2) arc (#3:#4:#5);
     }
-
 %% \DthreePly
 %% Draws a D series Dynkin diagram of rank 4, folded over a G2.
 \NewDocumentCommand\DthreePly{}%
@@ -3603,14 +4008,13 @@
 	\dynkinEdge*{SingleEdge}{1}{2}%
 	\dynkinEdge*{SingleEdge}{2}{3}%
 	\dynkinEdge*{SingleEdge}{2}{4}%
-	\begin{scope}[on background layer]%
+	\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);
-	\end{scope}%
+	\end{pgfonlayer}%%
 \fi%
 }%
-
 %% \Ddynkin 
 %% Draws a D series Dynkin diagram.
 \NewDocumentCommand\Ddynkin{}%
@@ -3641,24 +4045,21 @@
 		\gdef\dynkin at series{D}%
 	\fi%
 }%
-
-%% \Edynkin at unfolded
-%% Draws an E series Dynkin diagram not folded.
-\newcommand*{\Edynkin at unfolded}%
-{
+\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}%
-	\ifdynkin at is@extended
-		\ifnum\dynkin at rank=6
+	\ifdynkin at is@extended%
+		\ifnum\dynkin at rank=6%
 			\dynkinPlaceRootRelativeTo*{2}{4}{north}{right}{above right}%
 		\else
 			\dynkinPlaceRootRelativeTo*{2}{4}{north}{right}{above}%
-		\fi
-	\else
+		\fi%
+	\else%
 		\dynkinPlaceRootRelativeTo*{2}{4}{north}{right}{above}%
-	\fi
+	\fi%
 	\newcount\bmo\relax%
 	\bmo=4\relax%
 	\foreach \b in {5,...,\dynkin at rank}%
@@ -3665,7 +4066,7 @@
 	{%
 		\dynkinPlaceRootRelativeTo*{\b}{\the\bmo}{east}{below}{above}%
 		\dynkinEdge*{SingleEdge}{\the\bmo}{\b}%
-		\global\advance\bmo by 1%
+		\global\advance\bmo by 1\relax%
 	}%
 %	% Draw the remaining edges.
 	\dynkinEdge*{SingleEdge}{1}{3}
@@ -3686,8 +4087,26 @@
 		\fi%
 	\fi%
 }%
-
-
+%% \Edynkin at unfolded
+%% Draws an E series Dynkin diagram not folded.
+\newcommand*{\Edynkin at unfolded}%
+{
+	\ifnum\dynkin at rank>8%
+		% 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}
+		\fi%
+	\else%
+		\Edynkin at unfolded@rank at up@to at eight%
+	\fi
+}%
 %% \Edynkin at folded
 %% Draws a folded E6, affine E6 or affine E7 Dynkin diagram.
 \NewDocumentCommand\Edynkin at folded{}%
@@ -3698,7 +4117,6 @@
 		\extendedESevenFolded%
 	\fi%
 }%
-
 \NewDocumentCommand\ESixTwoPly{}%
 {%
 	\dynkin at jump{1}%
@@ -3724,8 +4142,6 @@
 		\dynkin at fold@arrow at if@oo{3}{5}%
 	\fi%
 }%
-
-
 \NewDocumentCommand\ESixThreePly{}%
 {%
 	\dynkin at is@extendedtrue
@@ -3754,7 +4170,6 @@
 		\dynkin at fold@arrow at if@oo{2}{5}%
 	\fi%
 }%
-
 \NewDocumentCommand\extendedESevenFolded{}%
 {%
 	\dynkin at jump{1}%
@@ -3779,14 +4194,12 @@
 		\dynkin at fold@arrow at if@oo{3}{5}%
 	\fi%
 }%
-
-
 %% \Edynkin
 %% Draws an E6 Dynkin diagram.
 \NewDocumentCommand\Edynkin{}%
 {%
-	\ifnum\dynkin at ply>1
-		\ifnum\dynkin at rank=6%
+	\ifnum\dynkin at ply>1\relax%
+		\ifnum\dynkin at rank=6\relax%
 			\Edynkin at folded%
 		\else%
 			\ifnum\dynkin at rank=7
@@ -3802,37 +4215,25 @@
 		\Edynkin at unfolded%
 	\fi%
 }%
-
 %% \Fdynkin 
 %% Draws an F series Dynkin diagram.
 \newcommand*{\Fdynkin}%
-{
+{%
 	\dynkinPlaceRootHere*{1}{below}{above}%
 	\dynkinPlaceRootRelativeTo*{2}{1}{east}{below}{above}%
 	\dynkinPlaceRootRelativeTo*{3}{2}{east}{below}{above}%
 	\dynkinPlaceRootRelativeTo*{4}{3}{east}{below}{above}%
-	\ifdynkin at Coxeter
-		\dynkinEdge*{SingleEdge}{1}{2}
-		\dynkinEdge*{SingleEdge}{2}{3}
-		\dynkinEdge*{SingleEdge}{3}{4}
+	\ifdynkin at Coxeter%
+		\dynkinEdge*{SingleEdge}{1}{2}%
+		\dynkinEdge*{SingleEdge}{2}{3}%
+		\dynkinEdge*{SingleEdge}{3}{4}%
 		\dynkinEdgeLabel{2}{3}{4}%
-%		\convertRootPair{2}{3}	
-%		\node[inner sep=\dynkin at root@radius,%
-%			label={%
-%				[/Dynkin diagram/text style,/Dynkin diagram/edge label]%
-%				above:
-%				\(\pgfkeys{/Dynkin diagram/label macro*=4}\)%
-%				}%
-%			] 
-%			at ($.5*(\dynkin at root@name \the\@fromRoot)+.5*(\dynkin at root@name \the\@toRoot)$) 
-%			{};
-	\else
-		\dynkinEdge*{SingleEdge}{1}{2}
-		\dynkinEdge*{SingleEdge}{3}{4}
-		\dynkinEdge*{DoubleEdge}{2}{3}
-	\fi
-}
-
+	\else%
+		\dynkinEdge*{SingleEdge}{1}{2}%
+		\dynkinEdge*{SingleEdge}{3}{4}%
+		\dynkinEdge*{DoubleEdge}{2}{3}%
+	\fi%
+}%
 %% \Gdynkin 
 %% Draws a G series Dynkin diagram.
 \NewDocumentCommand\Gdynkin{}%
@@ -3840,7 +4241,7 @@
 	\ifdynkin at Coxeter%
 		\Idynkin%
 	\else%
-		\ifnum\dynkin at ply>1%	
+		\ifnum\dynkin at ply>1\relax%
 			\dynkin at jump{1}%
 			\dynkinPlaceRootHere*{1}{left}{above}%
 			\dynkinPlaceRootRelativeTo*{2}{1}{southfold}{left}{below}%
@@ -3862,37 +4263,16 @@
 {%
 	\Adynkin%
 	\dynkinEdgeLabel{1}{2}{5}%
-%	\convertRootPair{1}{2}%
-%	\node[inner sep=\dynkin at root@radius,%
-%		label={%
-%			[/Dynkin diagram/text style,/Dynkin diagram/edge label]%
-%			above:
-%			\(\pgfkeys{/Dynkin diagram/label macro*=5}\)%
-%			}%
-%		] 
-%		at ($.5*(\dynkin at root@name \the\@fromRoot)+.5*(\dynkin at root@name \the\@toRoot)$) 
-%		{};
 }%
-
+%%%\newcount\dynkin at I@n%
 %% \Idynkin 
 %% Draws an I series Coxeter diagram.
 \newcommand*{\Idynkin}%
 {%
-	\newcount\In%
-	\In=\dynkin at rank%
-	\dynkin at rank=2%
+%%%	\dynkin at I@n\dynkin at rank\relax%
+	\dynkin at rank=2\relax%
 	\Adynkin%
 	\dynkinEdgeLabel{1}{2}{\dynkin at gonality}%
-%	\convertRootPair{1}{2}%
-%		\node[inner sep=\dynkin at root@radius,%
-%			label={%
-%				[/Dynkin diagram/text style,/Dynkin diagram/edge label]%
-%				above:
-%				\(\pgfkeys{/Dynkin diagram/label macro*=\dynkin at gonality}\)%
-%				}%
-%			] 
-%			at ($.5*(\dynkin at root@name \the\@fromRoot)+.5*(\dynkin at root@name \the\@toRoot)$) 
-%			{};
 }%
 
 %% \extendedAdynkin
@@ -3899,11 +4279,11 @@
 %% Draws an A series affine Dynkin/Coxeter diagram.
 \NewDocumentCommand\extendedAdynkin{}%
 {%
-	\ifnum\dynkin at rank=1%
+	\ifnum\dynkin at rank=1\relax%
 		\dynkinPlaceRootHere{0}{below}{above}%
 		\dynkinPlaceRootRelativeTo*{1}{0}{east}{below}{above}%
 		\convertRootNumber{1}%
-		\begin{scope}{on background layer}%
+		\begin{pgfonlayer}{Dynkin behind}%
 			\draw[/Dynkin diagram/t,double,
 				{Classical TikZ Rightarrow[length={2*\dynkin at root@radius}]}%
 				-{Classical TikZ Rightarrow[length={2*\dynkin at root@radius}]}%
@@ -3911,7 +4291,7 @@
 			($(\dynkin at root@name 0)+(\dynkin at root@radius,0)$) 
 			-- 
 			($(\dynkin at root@name \the\RootNumber)-(\dynkin at root@radius,0)$);%
-		\end{scope}%
+		\end{pgfonlayer}%%
 	\else%
 		\ifnum\dynkin at ply=4%
 			\node (Dynkin current) at ($(Dynkin current)+(0,\dynkin at edge@length)$){};%
@@ -3932,7 +4312,11 @@
 				\dynkinEdge*{LeftDownArc}{1}{0}%
 				\dynkinEdge*{LeftUpArc}{\the\dynkin at rank}{0}%
 			\else%
-				\node (Dynkin current) at ($.5*(\dynkin at root@name 1)+.5*(\dynkin at root@name \the\dynkin at rank)$){};%
+				\node (Dynkin current) 
+					at
+					($.5*(\dynkin at root@name 1)%
+					+.5*(\dynkin at root@name \the\dynkin at rank)$)%
+					{};%
 				\dynkinNorth%
 				\dynkinPlaceRootHere*{0}{below}{above}%
 				\dynkinEdge*{SingleEdge}{0}{1}%
@@ -3945,10 +4329,12 @@
 
 \NewDocumentCommand\extendedBthreePly{}%
 {%
-	\ifnum\dynkin at rank=3
-	\else
-		\ClassError{Dynkin diagrams}{B series extended 3-ply diagrams must have rank 3, so cannot have rank \the\dynkin at rank}{}%
-	\fi
+	\ifnum\dynkin at rank=3%
+	\else%
+		\ClassError%
+			{Dynkin diagrams}%
+			{B series extended 3-ply diagrams must have rank 3, so cannot have rank \the\dynkin at rank}{}%
+	\fi%
 	\dynkinPlaceRootHere*{1}{right}{above left}%
 	\dynkinPlaceRootRelativeTo*{0}{1}{north}{above}{below left}%
 	\dynkinPlaceRootRelativeTo*{3}{1}{south}{below}{above left}%
@@ -3967,10 +4353,10 @@
 %% Draws a B series affine Dynkin/Coxeter diagram.
 \newcommand*{\extendedBdynkin}%
 {%
-	\ifnum\the\dynkin at rank=1
+	\ifnum\the\dynkin at rank=1\relax%
 		\extendedAdynkin%
 	\else%
-		\ifnum\the\dynkin at rank=2
+		\ifnum\the\dynkin at rank=2\relax%
 				\dynkinPlaceRootHere*{0}{below}{above}%
 				\dynkinPlaceRootRelativeTo*{1}{0}{east}{below}{above}%
 				\dynkinPlaceRootRelativeTo*{2}{1}{east}{below}{above}%
@@ -3977,10 +4363,10 @@
 				\dynkinEdge*{SingleEdge}{0}{1}%
 				\dynkinEdge*{DoubleEdge}{1}{2}%
 		\else%
-			\ifnum\dynkin at ply=3%
+			\ifnum\dynkin at ply=3\relax%
 				\extendedBthreePly%
 			\else%
-				\ifnum\dynkin at ply=2%
+				\ifnum\dynkin at ply=2\relax%
 					\dynkin at jump{1}%
 					\dynkinPlaceRootHere*{0}{left}{above left}%
 					\dynkinPlaceRootRelativeTo*{2}{0}{southeastfold}{below right}{above right}%
@@ -4000,7 +4386,7 @@
 				\drmo=\the\dynkin at rank\relax%
 				\advance\drmo by -1\relax%
 				\newcount\bmo%
-				\bmo=2%
+				\bmo=2\relax%
 				\ifnum\dynkin at rank>3%
 					\foreach \b in {3,...,\the\drmo}%
 					{%
@@ -4015,16 +4401,6 @@
 				\ifdynkin at Coxeter%
 					\dynkinEdge*{SingleEdge}{\the\drmo}{\the\dynkin at rank}%
 					\dynkinEdgeLabel{\the\drmo}{\the\dynkin at rank}{4}%
-%					\convertRootPair{\the\drmo}{\the\dynkin at rank}
-%					\node[inner sep=\dynkin at root@radius,%
-%						label={%
-%							[/Dynkin diagram/text style,/Dynkin diagram/edge label]%
-%							above:
-%							\(\pgfkeys{/Dynkin diagram/label macro*=4}\)%
-%							}%
-%						] 
-%						at ($.5*(\dynkin at root@name \the\@fromRoot)+.5*(\dynkin at root@name \the\@toRoot)$) 
-%						{};
 				\else%
 					\ifnum\dynkin at ply<3%
 						\dynkinEdge*{DoubleEdge}{\the\drmo}{\the\dynkin at rank}%
@@ -4047,21 +4423,10 @@
 	\ifdynkin at Coxeter%
 		\dynkinEdge*{SingleEdge}{0}{1}%
 		\dynkinEdgeLabel{0}{1}{4}%
-%		\convertRootPair{0}{1}
-%		\node[inner sep=\dynkin at root@radius,%
-%			label={%
-%				[/Dynkin diagram/text style,/Dynkin diagram/edge label]%
-%				above:
-%				\(\pgfkeys{/Dynkin diagram/label macro*=4}\)%
-%				}%
-%			] 
-%			at ($.5*(\dynkin at root@name \the\@fromRoot)+.5*(\dynkin at root@name \the\@toRoot)$) 
-%			{};
 	\else%
 		\dynkinEdge*{DoubleEdge}{0}{1}%
 	\fi%	
 }%
-
 %% \DOneFourFourPly
 %% Draws a D^1_4 series affine Dynkin diagram folded about an A^2_2.
 \NewDocumentCommand\DOneFourFourPly{}%
@@ -4076,7 +4441,9 @@
 	\node 
 		(Dynkin current) 
 		at 
-		($.5*(\dynkin at root@name \the\@fromRoot)+.5*(\dynkin at root@name \the\@toRoot)$){};%
+		($.5*(\dynkin at root@name \the\@fromRoot)%
+		+.5*(\dynkin at root@name \the\@toRoot)$)%
+		{};%
 	\dynkinWest%
 	\dynkinPlaceRootHere*{2}{right}{left}%
 	\dynkinEdge*{SingleEdge}{0}{2}%
@@ -4087,8 +4454,6 @@
 	\dynkinFold*{1}{3}%
 	\dynkinFold*{3}{4}%
 }%
-
-
 %% \DfourPly
 %% Draws a D series affine Dynkin diagram folded about its middle.
 \NewDocumentCommand\DfourPly{}%
@@ -4100,11 +4465,11 @@
 	\dynkinPlaceRootRelativeTo*{1}{2}{southwestfold}{left}{above left}%
 	\dynkinMoveToRoot*{2}%
 	\newcount\drmo%
-	\drmo=\the\dynkin at rank%
-	\advance\drmo by -1%
+	\drmo=\the\dynkin at rank\relax%
+	\advance\drmo by -1\relax%
 	\newcount\drmt%
-	\drmt=\the\drmo%
-	\advance\drmt by -1%
+	\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}%
@@ -4112,8 +4477,18 @@
 	% 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}%
 	\xdef\dynkin at fold@radius{\old at fold}%
-	\dynkinPlaceRootRelativeTo*{\the\drmo}{\the\drmt}{northwestfold}{left}{above left}%
-	\dynkinPlaceRootRelativeTo*{\the\dynkin at rank}{\the\drmt}{southwestfold}{left}{above left}%
+	\dynkinPlaceRootRelativeTo*%
+		{\the\drmo}%
+		{\the\drmt}%
+		{northwestfold}%
+		{left}%
+		{above left}%
+	\dynkinPlaceRootRelativeTo*%
+		{\the\dynkin at rank}%
+		{\the\drmt}%
+		{southwestfold}%
+		{left}%
+		{above left}%
 	\dynkinEdge*{RightDownArc}{0}{2}%
 	\dynkinEdge*{RightUpArc}{1}{2}%
 	\dynkinEdge*{RightDownArc}{\the\drmo}{\the\drmt}%
@@ -4236,7 +4611,7 @@
 	\dynkinEast%
 	\Adynkin%
 	\dynkinEdge*{SingleEdge}{0}{1}%
-	\ifnum\dynkin at rank=3%
+	\ifnum\dynkin at rank=3\relax%
 		\convertRootPair{1}{2}%
 	\else%
 		\convertRootPair{0}{1}%
@@ -4243,7 +4618,8 @@
 	\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\@fromRoot)%
+		+.5*(\dynkin at root@name \the\@toRoot)$)%
 		{\(5\)};%
 }%
 
@@ -4251,19 +4627,14 @@
 %% \extendedIdynkin 
 %% Draws an I series affine Coxeter diagram.
 \newcommand*{\extendedIdynkin}%
-{
+{%
 	\dynkinPlaceRootHere*{0}{below}{above}%
 	\dynkinEast%
-	\dynkin at rank=1%
+	\dynkin at rank=1\relax%
 	\Adynkin%
 	\dynkinEdge*{SingleEdge}{0}{1}%
 	\dynkinEdgeLabel{0}{1}{\infty}%
-%	\convertRootPair{0}{1}%
-%	\node[/Dynkin diagram/text style,/Dynkin diagram/edge label,above] 
-%		at 
-%		($.5*(\dynkin at root@name \the\@fromRoot)+.5*(\dynkin at root@name \the\@toRoot)$) 
-%		{\(\infty\)};%
-}
+}%
 
 
 %% \twistedAdynkin 
@@ -4270,19 +4641,19 @@
 %% Draws a twisted A series affine Dynkin diagram.
 \NewDocumentCommand\twistedAdynkin{}%
 {%
-	\ifnum\dynkin at rank=3
+	\ifnum\dynkin at rank=3\relax%
 		\ClassError{Dynkin diagrams}{A2 series twisted diagrams cannot have rank \the\dynkin at rank}{}%
-	\fi
-	\ifnum\dynkin at rank=2%
+	\fi%
+	\ifnum\dynkin at rank=2\relax%
 		\dynkinPlaceRootHere*{0}{below}{above}%
 		\dynkinPlaceRootRelativeTo*{1}{0}{east}{below}{above}%
 		\dynkinQuadrupleEdge*{1}{0}%
 	\else%
 		\newcount\hmo%
-		\hmo=\the\dynkin at nodes%
-		\advance\hmo by -1%
+		\hmo=\the\dynkin at nodes\relax%
+		\advance\hmo by -1\relax%
 		\ifodd\dynkin at rank%
-			\ifnum\dynkin at ply>1%	
+			\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}%
@@ -4298,7 +4669,12 @@
 			\fi%
 			\dynkinMoveToRoot*{2}%
 			\dynkin at pipe{2}{\the\hmo}{east}{below}{above}%
-			\dynkinPlaceRootRelativeTo*{\the\dynkin at nodes}{\the\hmo}{east}{below}{above}%
+			\dynkinPlaceRootRelativeTo*%
+				{\the\dynkin at nodes}%
+				{\the\hmo}%
+				{east}%
+				{below}%
+				{above}%
 			\dynkinEdge*{DoubleEdge}{\the\dynkin at nodes}{\the\hmo}%
 			\ifnum\dynkin at ply>1%	
 				\dynkinLeftFold*{0}{1}%
@@ -4315,7 +4691,12 @@
 					\ifnum\hmo>1%
 						\dynkin at fold{1}{\the\hmo}%
 					\fi%
-					\dynkinPlaceRootRelativeTo*{\the\dynkin at nodes}{\the\hmo}{west}{below}{above}%
+					\dynkinPlaceRootRelativeTo*%
+						{\the\dynkin at nodes}%
+						{\the\hmo}%
+						{west}%
+						{below}%
+						{above}%
 				\else%
 					\dynkinPlaceRootHere*{0}{below}{above}%
 					\dynkinPlaceRootRelativeTo*{1}{0}{east}{below right}{above}%
@@ -4323,7 +4704,12 @@
 					\ifnum\hmo>1%
 						\dynkin at pipe{1}{\the\hmo}{east}{below}{above}%
 					\fi%
-					\dynkinPlaceRootRelativeTo*{\the\dynkin at nodes}{\the\hmo}{east}{below}{above}%
+					\dynkinPlaceRootRelativeTo*%
+						{\the\dynkin at nodes}%
+						{\the\hmo}%
+						{east}%
+						{below}%
+						{above}%
 				\fi%
 				\dynkinEdge*{DoubleEdge}{\the\dynkin at nodes}{\the\hmo}%
 			\else%
@@ -4368,8 +4754,8 @@
 		\ClassError{Dynkin diagrams}{D2 series twisted diagrams cannot have rank \the\dynkin at rank}{}%
 	\fi%
 	\newcount\drmo%
-	\drmo=\the\dynkin at nodes%
-	\advance\drmo by -1%
+	\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}%
@@ -4389,8 +4775,8 @@
 	\else
 		\dynkinEdge*{DoubleEdge}{1}{0}%
 	\fi%
-	\ifnum\dynkin at ply>1%	
-		\ifnum\dynkin at rank>3%
+	\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}%
 			\dynkinFold*{0}{\the\dynkin at nodes}%
@@ -4403,14 +4789,12 @@
 		\fi%
 		\dynkinPlaceRootRelativeTo*{\the\dynkin at nodes}{\the\drmo}{east}{below}{above}%
 	\fi%
-	\ifnum\dynkin at ply=2%
+	\ifnum\dynkin at ply=2\relax%
 		\dynkinEdge*{DoubleDownRightArc}{\the\drmo}{\the\dynkin at nodes}%
 	\else
 		\dynkinEdge*{DoubleEdge}{\the\drmo}{\the\dynkin at nodes}%
 	\fi%
 }%
-
-
 %% \twistedEdynkin 
 %% Draws a twisted E series affine Dynkin diagram.
 \NewDocumentCommand\twistedEdynkin{}%



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