texlive[49384] Master/texmf-dist: dynkin-diagrams (11dec18)

commits+karl at tug.org commits+karl at tug.org
Tue Dec 11 23:20:02 CET 2018


Revision: 49384
          http://tug.org/svn/texlive?view=revision&revision=49384
Author:   karl
Date:     2018-12-11 23:20:01 +0100 (Tue, 11 Dec 2018)
Log Message:
-----------
dynkin-diagrams (11dec18)

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

Modified: trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/README	2018-12-11 18:40:36 UTC (rev 49383)
+++ trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/README	2018-12-11 22:20:01 UTC (rev 49384)
@@ -2,9 +2,9 @@
 
             Dynkin diagrams
                
-                v3.14
+                v3.141
 
-            24 July 2018
+            11 December 2018
 ___________________________________
 
 Authors   : Ben McKay
@@ -15,5 +15,6 @@
 
 ----------------------------------------------------------------------
 
-Draws Dynkin, Coxeter and Satake  di­a­grams in LaTeX doc­u­ments, us­ing the TikZ pack­age.
-Version 3.14 simplifies drawing braces under several nodes.
+Draws Dynkin di­a­grams in LaTeX doc­u­ments, us­ing the TikZ pack­age.
+Version 3.141 allows lists of labels and lists of alternate labels (using TikZ for loop notation), improves the vertical alignment when Dynkin diagrams appear in text, provides backwards and upside down options, improves the alignment of text labels around the roots of a Dynkin diagram, and makes the Kac style look more like the style in Kac's book.
+

Modified: trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.bib
===================================================================
--- trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.bib	2018-12-11 18:40:36 UTC (rev 49383)
+++ trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.bib	2018-12-11 22:20:01 UTC (rev 49384)
@@ -1,5 +1,4 @@
-% This file was created with JabRef 2.10.
-% Encoding: ISO8859_1
+% Encoding: ISO-8859-1
 
 
 @Book{Adams:1996,
@@ -272,6 +271,20 @@
   Url                      = {https://doi.org/10.1143/PTP.95.503}
 }
 
+ at book {Langlands:1967,
+    AUTHOR = {Langlands, Robert P.},
+     TITLE = {Euler products},
+      NOTE = {A James K. Whittemore Lecture in Mathematics given at Yale
+              University, 1967,
+              Yale Mathematical Monographs, 1},
+ PUBLISHER = {Yale University Press, New Haven, Conn.-London},
+      YEAR = {1971},
+     PAGES = {v+53},
+   MRCLASS = {10D20 (22E55)},
+  MRNUMBER = {0419366},
+MRREVIEWER = {Stephen Gelbart},
+}
+
 @Book{OnishchikVinberg:1990,
   Title                    = {Lie groups and algebraic groups},
   Author                   = {Onishchik, A. L. and Vinberg, {\`E}. B.},
@@ -432,3 +445,21 @@
   Url                      = {https://doi.org/10.1007/978-3-662-03066-0}
 }
 
+ at Book{Fulton.Harris:1991,
+  title      = {Representation theory},
+  publisher  = {Springer-Verlag, New York},
+  year       = {1991},
+  author     = {Fulton, William and Harris, Joe},
+  volume     = {129},
+  series     = {Graduate Texts in Mathematics},
+  isbn       = {0-387-97527-6; 0-387-97495-4},
+  note       = {A first course, Readings in Mathematics},
+  doi        = {10.1007/978-1-4612-0979-9},
+  mrclass    = {20G05 (17B10 20G20 22E46)},
+  mrnumber   = {1153249},
+  mrreviewer = {James E. Humphreys},
+  pages      = {xvi+551},
+  url        = {https://doi.org/10.1007/978-1-4612-0979-9},
+}
+
+ at Comment{jabref-meta: databaseType:bibtex;}

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	2018-12-11 18:40:36 UTC (rev 49383)
+++ trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.tex	2018-12-11 22:20:01 UTC (rev 49384)
@@ -1,8 +1,26 @@
 \documentclass{amsart}
 
-\title{The Dynkin diagrams package \\ Version 3.14}
-\author{Ben McKay}
-\date{24 July 2018}
+\title{The Dynkin diagrams package \\ Version 3.141}
+
+\makeatletter
+\DeclareRobustCommand{\scotsMc}{\scotsMcx{c}}
+\DeclareRobustCommand{\scotsMC}{\scotsMcx{\textsc{c}}}
+\DeclareRobustCommand{\scotsMcx}[1]{%
+  M%
+  \raisebox{\dimexpr\fontcharht\font`M-\height}{%
+    \check at mathfonts\fontsize{\sf at size}{0}\selectfont
+    \kern.3ex\underline{\kern-.3ex #1\kern-.3ex}\kern.3ex
+  }%
+}
+\expandafter\def\expandafter\@uclclist\expandafter{%
+  \@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{11 December 2018}
  
 \usepackage{etex}
 \usepackage[T1]{fontenc}
@@ -34,6 +52,7 @@
 \newcommand{\TikZ}{Ti\textit{k}Z\xspace}
 \usepackage{filecontents}
 \usetikzlibrary{decorations.markings}
+\usetikzlibrary{decorations.pathmorphing}
 \arrayrulecolor{white}
 \makeatletter
     \def\rulecolor#1#{\CT at arc{#1}}
@@ -51,9 +70,11 @@
 \NewDocumentCommand\wdtE{}{6cm}
 \NewDocumentCommand\wdtL{}{3cm}
 \newcolumntype{A}{@{}>{\columncolor[gray]{.9}$}m{\wdtA}<{$}} 
+\newcolumntype{B}{@{}>{\columncolor[gray]{.9}}m{\wdtA}} 
 \newcolumntype{D}{>{\columncolor[gray]{.9}}m{\wdtD}}
 \newcolumntype{E}{>{\columncolor[gray]{.9}}m{\wdtE}}
 \newcolumntype{L}{>{\columncolor[gray]{.9}}p{\wdtL}}
+\newcolumntype{M}{>{\columncolor[gray]{.9}}l}
 \newcolumntype{P}{>{\columncolor[gray]{.9}}p{10cm}}
 \NewDocumentCommand\textleftcurly{}{\texttt{\char'173}}%
 \NewDocumentCommand\textrightcurly{}{\texttt{\char'175}}%
@@ -87,7 +108,7 @@
 {%
 \RenewDocumentCommand\wdtD{}{#2}
 \RenewDocumentCommand\wdtL{}{#3}
-\begin{longtable}{ADL}
+\begin{longtable}{ADM}
 \caption{#1}\\
 \endfirsthead
 \caption{\dots continued}\\
@@ -140,8 +161,8 @@
 
 \setlength{\arrayrulewidth}{1.5pt}
 
-
 \section{Quick introduction}
+See section~\ref{section:changes} for the latest changes to earlier versions.
 \begin{tcolorbox}[title={Load the Dynkin diagram package (see options below)}]
 \begin{verbatim}
 \documentclass{amsart}
@@ -156,12 +177,20 @@
 \end{tcblisting}
 \begin{tcblisting}{title={Inside a \TikZ statement}}
 The Dynkin diagram of \(B_3\) is 
-\tikz[baseline=-0.5ex] \dynkin{B}{3};
+\tikz \dynkin{B}{3};
 \end{tcblisting}
+\begin{tcblisting}{title={Inside a Dynkin diagram environment}}
+The Dynkin diagram of \(B_3\) is 
+\begin{dynkinDiagram}{B}{3}
+\draw[very thick,red] (root 1) to [out=-45, in=-135] (root 3);
+\end{dynkinDiagram}
+\end{tcblisting}
 \begin{tcblisting}{title={Inside a \TikZ environment}}
-The Dynkin diagram of \(B_3\) is 
-\begin{tikzpicture}[baseline=-0.5ex]
-	\dynkin{B}{3}
+The baseline controls the vertical alignment:
+the Dynkin diagram of \(B_3\) is 
+\begin{tikzpicture}[baseline=(origin.base)]
+\dynkin{B}{3}
+\draw[very thick,red] (root 1) to [out=-45, in=-135] (root 3);
 \end{tikzpicture}
 \end{tcblisting}
 \begin{tcblisting}{title={Indefinite rank Dynkin diagrams}}
@@ -184,16 +213,16 @@
 
 \begin{tcolorbox}[title={Most options set globally \dots}]
 \begin{verbatim}
-\pgfkeys{/Dynkin diagram,edgeLength=.5cm,foldradius=.5cm}
+\pgfkeys{/Dynkin diagram,edge length=.5cm,fold radius=.5cm}
 \end{verbatim}
 \end{tcolorbox}
-\begin{tcolorbox}[title={\dots or pass to the package}]
+\begin{tcolorbox}[title={\dots or pass global options to the package}]
 \begin{verbatim}
 \usepackage[
      ordering=Kac,
      edge/.style=blue,
      mark=o,
-     radius=.06cm]
+     root radius=.06cm]
      {dynkin-diagrams}
 \end{verbatim}
 \end{tcolorbox}
@@ -263,76 +292,205 @@
 \dyn{G}{I}
 \end{dynkinTable}
 
+\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}
+\end{dynkinDiagram}
+\end{tcblisting}
+
+\begin{tcblisting}{title={The double arrows for \(A_{IIIa}\) are big}}
+\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}
+\end{dynkinDiagram}
+\end{tcblisting}
+
+\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]%
+{****.*****.*****}
+	\dynkinFold{1}{13}
+	\dynkinFold[bend right=65]{0}{14}
+\end{dynkinDiagram}
+\end{tcblisting}
+
+\begin{tcblisting}{title={\dots but you could try springs pulling roots together}}
+\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]%
+{****.*****.*****}
+	\dynkinFold{1}{13}
+	\dynkinFold[bend right=65]{0}{14}
+\end{dynkinDiagram}
+\end{tcblisting}
+
+
 \section{Labels for the roots}
 
-\begin{tcblisting}{title={Label the roots by root number}}
+\begin{tcblisting}{title={Make a macro to assign labels to roots}}
+\dynkin[label,label macro/.code={\alpha_{#1}},edge length=.75cm]{D}{5}
+\end{tcblisting}
+\begin{tcblisting}{title={Labelling several roots}}
+\dynkin[labels={,2,...,5,,7},label macro/.code={\alpha_{#1}}]{A}{7}
+\end{tcblisting}
+\begin{tcblisting}{title={The \texttt{foreach} notation I}}
+\dynkin[labels={1,3,...,7},]{A}{9}
+\end{tcblisting}
+\begin{tcblisting}{title={The \texttt{foreach} notation II}}
+\dynkin[labels={,\alpha_2,\alpha_...,\alpha_7},]{A}{7}
+\end{tcblisting}
+\begin{tcblisting}{title={The \texttt{foreach} notation III}}
+\dynkin[label macro/.code={\beta_{#1}},labels={,2,...,7},]{A}{7}
+\end{tcblisting}
+\begin{tcblisting}{title={Label the roots individually by root number}}
 \dynkin[label]{B}{3}
 \end{tcblisting}
-\begin{tcblisting}{title={Make a macro to assign labels to roots}}
-\dynkin[label,labelMacro/.code={\alpha_{#1}}]{D}{5}
-\end{tcblisting}
 \begin{tcblisting}{title={Label a single root}}
-\begin{tikzpicture}
-	\dynkin{B}{3}
-	\dynkinLabelRoot{2}{\alpha_2}
-\end{tikzpicture}
+\begin{dynkinDiagram}{B}{3}
+\dynkinLabelRoot{2}{\alpha_2}
+\end{dynkinDiagram}
 \end{tcblisting}
 \begin{tcblisting}{title={Use a text style}}
-\begin{tikzpicture}
-	\dynkin[text/.style={scale=1.2}]{B}{3};
-	\dynkinLabelRoot{2}{\alpha_2}
-\end{tikzpicture}
+\begin{dynkinDiagram}[text/.style={scale=1.2}]{B}{3};
+\dynkinLabelRoot{2}{\alpha_2}
+\end{dynkinDiagram}
 \end{tcblisting}
 \begin{tcblisting}{title={Access root labels via TikZ}}
-\begin{tikzpicture}
-	\dynkin{B}{3};
-	\node[below] at (root 2) {\(\alpha_2\)};
-\end{tikzpicture}
+\begin{dynkinDiagram}{B}{3}
+\node[below] at (root 2) {\(\alpha_2\)};
+\end{dynkinDiagram}
 \end{tcblisting}
-\begin{tcblisting}{title={The labels have default locations}}
-\begin{tikzpicture}
-	\dynkin{E}{8};
-	\dynkinLabelRoot{1}{\alpha_1}
-	\dynkinLabelRoot{2}{\alpha_2}
-	\dynkinLabelRoot{3}{\alpha_3}
-\end{tikzpicture}
+\begin{tcblisting}{title={Commands to label several roots}}
+\begin{dynkinDiagram}{A}{7} 
+\dynkinLabelRoots{,\alpha_2,\alpha_3,\alpha_4,\alpha_5,,\alpha_7}
+\end{dynkinDiagram}
 \end{tcblisting}
-\begin{tcblisting}{title={The starred form flips labels to alternate locations}}
-\begin{tikzpicture}
-	\dynkin{E}{8};
-	\dynkinLabelRoot*{1}{\alpha_1}
-	\dynkinLabelRoot*{2}{\alpha_2}
-	\dynkinLabelRoot*{3}{\alpha_3}
-\end{tikzpicture}
+\begin{tcblisting}{title={The labels have default locations, mostly below roots}}
+\dynkin[edge length=.75cm,labels={1,2,3}]{E}{8}
 \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}
+\end{tcblisting}
+\begin{tcblisting}{title={Labelling several roots and alternates}}
+\dynkin[%
+label macro/.code={\alpha_{#1}},
+label macro*/.code={\gamma_{#1}},
+labels={,2,...,5,,7},
+labels*={1,3,4,5,6}]{A}{7}
+\end{tcblisting}
+\begin{tcblisting}{title={Commands to label several roots}}
+\begin{dynkinDiagram}{A}{7} 
+\dynkinLabelRoots{,\alpha_2,\alpha_3,\alpha_4,\alpha_5,,\alpha_7}
+\dynkinLabelRoots*{a,b,c,d,e,f,g}
+\end{dynkinDiagram}
+\end{tcblisting}
 
-\begin{tcblisting}{title={Labelling several roots}}
-\begin{tikzpicture}
-\dynkin{A}{*.*x*.*} 
+
+\section{Bracing roots}
+\begin{tcblisting}{title={Bracing roots}}
+\begin{dynkinDiagram}{A}{*.*x*.*} 
 \dynkinBrace[p]{1}{2}
 \dynkinBrace[q]{4}{5}
-\end{tikzpicture}
+\end{dynkinDiagram}
 \end{tcblisting}
-
-\begin{tcblisting}{title={Labelling several roots, and a starred form}}
-\begin{tikzpicture}
-\dynkin{A}{10}
+\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}
-\end{tikzpicture}
+\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}
+\dynkinBrace[t-1]{11}{12}
+\dynkinBrace[x-1]{14}{16}
+\end{dynkinDiagram}
+\end{tcblisting}
 
+\begin{filecontents*}{EulerProducts.tex}
+\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}
+\end{filecontents*}
+{\input{EulerProducts}}\VerbatimInput{EulerProducts.tex}
 
 \section{Style}
-
 \begin{tcblisting}{title={Colours}}
 \dynkin[
 	edge/.style={blue!50,thick},
 	*/.style=blue!50!red,
-	arrowColor=red]{F}{4}
+	arrow color=red]{F}{4}
 \end{tcblisting}
 \begin{tcblisting}{title={Edge lengths}}
-\dynkin[edgeLength=1.2,parabolic=3]{A}{3}
+The Dynkin diagram of \(A_3\) is \dynkin[edge length=1.2,parabolic=3]{A}{3}
 \end{tcblisting}
 \begin{tcblisting}{title={Root marks}}
 \dynkin{E}{8}
@@ -353,15 +511,14 @@
 X & thickly crossed root 
 \end{tabular}
 \begin{tcblisting}{title={Mark styles}}
-\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}]{E}{8}
 \end{tcblisting}
 \begin{tcblisting}{title={Sizes of root marks}}
-\dynkin[radius=.08cm,parabolic=3]{A}{3}
+\(A_{3,3}\) with big root marks is \dynkin[root radius=.08cm,parabolic=3]{A}{3}
 \end{tcblisting}
 
 
 \section{Suppress or reverse arrows}
-
 \begin{tcblisting}{title={Some diagrams have double or triple edges}}
 \dynkin{F}{4}
 \dynkin{G}{2}
@@ -371,34 +528,59 @@
 \dynkin[arrows=false]{G}{2}
 \end{tcblisting}
 \begin{tcblisting}{title={Reverse arrows}}
-\dynkin[reverseArrows]{F}{4}
-\dynkin[reverseArrows]{G}{2}
+\dynkin[reverse arrows]{F}{4}
+\dynkin[reverse arrows]{G}{2}
 \end{tcblisting}
 
 
+\section{Backwards and upside down}
+
+\begin{tcblisting}{title={Default}}
+\dynkin{E}{8}
+\dynkin{F}{4}
+\dynkin{G}{2}
+\end{tcblisting}
+\begin{tcblisting}{title={Backwards}}
+\dynkin[backwards]{E}{8}
+\dynkin[backwards]{F}{4}
+\dynkin[backwards]{G}{2}
+\end{tcblisting}
+\begin{tcblisting}{title={Reverse arrows}}
+\dynkin[reverse arrows]{F}{4}
+\dynkin[reverse arrows]{G}{2}
+\end{tcblisting}
+\begin{tcblisting}{title={Backwards, reverse arrows}}
+\dynkin[backwards,reverse arrows]{F}{4}
+\dynkin[backwards,reverse arrows]{G}{2}
+\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}
+\end{tcblisting}
+
+
 \section{Drawing on top of a Dynkin diagram}
 
 \begin{tcblisting}{title={TikZ can access the roots themselves}}
-\begin{tikzpicture}
-	\dynkin{A}{4};
+\begin{dynkinDiagram}{A}{4}
 	\fill[white,draw=black] (root 2) circle (.15cm);
 	\fill[white,draw=black] (root 2) circle (.1cm);
 	\draw[black] (root 2) circle (.05cm);
-\end{tikzpicture}
+\end{dynkinDiagram}
 \end{tcblisting}
 \begin{tcblisting}{title={Draw curves between the roots}}
-\begin{tikzpicture}
-	\dynkin[label]{E}{8}
+\begin{dynkinDiagram}[label]{E}{8}
 	\draw[very thick, black!50,-latex]  
 		(root 3.south) to [out=-45, in=-135] (root 6.south); 
-\end{tikzpicture}
+\end{dynkinDiagram}
 \end{tcblisting}
 \begin{tcblisting}{title={Change marks}}
-\begin{tikzpicture}
-	\dynkin[mark=o,label]{E}{8};
+\begin{dynkinDiagram}[mark=o,label]{E}{8}
 	\dynkinRootMark{*}{5}
 	\dynkinRootMark{*}{8}
-\end{tikzpicture}
+\end{dynkinDiagram}
 \end{tcblisting}
 
 
@@ -420,28 +602,28 @@
 
 \NewDocumentCommand\ClassicalLieSuperalgebras{om}%
 {%
-\IfValueT{#1}{\tikzset{/Dynkin diagram,radius=#1}}
+\IfValueT{#1}{\tikzset{/Dynkin diagram,root radius=#1}}
 \RenewDocumentCommand\wdtE{}{10cm}
 \begin{dynkinTable}{Classical Lie superalgebras \cite{Frappat/Sciarrino/Sorba:1989}. #2}{3.5cm}{6.5cm}
 \IfValueT{#1}{
-& & \texttt{\textbackslash{}tikzset\{/Dynkin diagram,radius=#1\}} \\
+& & \texttt{\textbackslash{}tikzset\{/Dynkin diagram,root radius=#1\}} \\
 }
-A_{mn} & \dynk{A}{ooo.oto.oo}
-B_{mn} & \dynk{B}{ooo.oto.oo}
-B_{0n} & \dynk{B}{ooo.ooo.o*}
+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}{ooo.oto.oooo}
+D_{mn} & \dynk{D}{o3.oto.o4}
 D_{21\alpha} & \dynk{A}{oto}
 F_4 & \dynk{F}{ooot}
-G_3 & \dynk[extended,affineMark=t,
-reverseArrows]{G}{2} 
+G_3 & \dynk[extended,affine mark=t,
+reverse arrows]{G}{2} 
 \end{dynkinTable}
-\IfValueT{#1}{\tikzset{/Dynkin diagram,radius=.05cm}}
+\IfValueT{#1}{\tikzset{/Dynkin diagram,root radius=.05cm}}
 }%
 
-\ClassicalLieSuperalgebras[.07cm]{We need a slightly larger radius parameter to distinguish the tensor product symbols from the solid dots.}
+\ClassicalLieSuperalgebras[.07cm]{We need a slightly larger root radius parameter to distinguish the tensor product symbols from the solid dots.}
 
-\ClassicalLieSuperalgebras{Here we see the problem with using the default radius parameter, which is too small for tensor product symbols.}
+\ClassicalLieSuperalgebras{Here we see the problem with using the default root radius parameter, which is too small for tensor product symbols.}
 
 
 
@@ -456,23 +638,23 @@
 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[makeIndefiniteEdge={3-5},label]{D}{5}
+\dynkin[make indefinite edge={3-5},label]{D}{5}
 \end{tcblisting}
 \begin{tcblisting}{title={Give a list of edges to become indefinite}}
-\dynkin[makeIndefiniteEdge/.list={1-2,3-5},label]{D}{5}
+\dynkin[make indefinite edge/.list={1-2,3-5},label]{D}{5}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Indefinite edge style}}
-\dynkin[indefiniteEdge/.style={draw=black,fill=white,thin,densely dashed},%
-	edgeLength=1cm,%
-	makeIndefiniteEdge={3-5}]
+\dynkin[indefinite edge/.style={draw=black,fill=white,thin,densely dashed},%
+	edge length=1cm,%
+	make indefinite edge={3-5}]
 	{D}{5}
 \end{tcblisting}
 
 \begin{tcblisting}{title={The ratio of the lengths of indefinite edges to those of other edges}}
-\dynkin[edgeLength = .5cm,%
-	indefiniteEdgeRatio=3,%
-	makeIndefiniteEdge={3-5}]
+\dynkin[edge length = .5cm,%
+	indefinite edge ratio=3,%
+	make indefinite edge={3-5}]
 	{D}{5}
 \end{tcblisting}
 
@@ -484,52 +666,47 @@
 % 1
 A_n &
 \multicolumn{2}{E}{
-\begin{tikzpicture}[baseline=0pt]
-\dynkin{A}{o.o*o.o*o.o}
+\begin{dynkinDiagram}{A}{o.o*o.o*o.o}
 \dynkinLabelRoot{3}{d}
 \dynkinLabelRoot{6}{n-d}
-\end{tikzpicture}
+\end{dynkinDiagram}
 }
 \\
 % 2
 A_n &
 \multicolumn{2}{E}{
-\begin{tikzpicture}[baseline=0pt]
-\dynkin{A}{o.o*o.o*o.o*o.o*o.o}
+\begin{dynkinDiagram}{A}{o.o*o.o*o.o*o.o*o.o}
 \dynkinLabelRoot{3}{d}
 \dynkinLabelRoot{6}{rd}
 \dynkinLabelRoot{9}{n-rd}
 \dynkinLabelRoot{12}{n-d}
-\end{tikzpicture}
+\end{dynkinDiagram}
 }
 \\
 % 3
 B_n &
 \multicolumn{2}{E}{
-\begin{tikzpicture}[baseline=0pt]
-\dynkin{B}{**.*.o.oo}
+\begin{dynkinDiagram}{B}{**.*.o.oo}
 \dynkinLabelRoot{3}{r}
-\end{tikzpicture}
+\end{dynkinDiagram}
 }
 \\
 % 4
 C_n &
 \multicolumn{2}{E}{
-\begin{tikzpicture}[baseline=0pt]
-\dynkin{C}{o.o*o.o*o.oo}
+\begin{dynkinDiagram}{C}{o.o*o.o*o.oo}
 \dynkinLabelRoot{3}{d}
 \dynkinLabelRoot{6}{rd}
-\end{tikzpicture}
+\end{dynkinDiagram}
 }
 \\
 % 5
 D_n &
 \multicolumn{2}{E}{
-\begin{tikzpicture}[baseline=0pt]
-\dynkin{D}{o.o*o.o*o.ooo}
+\begin{dynkinDiagram}{D}{o.o*o.o*o.ooo}
 \dynkinLabelRoot{3}{d}
 \dynkinLabelRoot{6}{rd}
-\end{tikzpicture}
+\end{dynkinDiagram}
 }
 \\
 % 6
@@ -624,6 +801,14 @@
 \endgroup
 \VerbatimInput{hermitian-symmetric-spaces.tex}
 
+\begin{tcblisting}{title={Folded parabolics look bad (zoom in on a root)}}
+\dynkin[fold,parabolic=3]{C}{2}
+\dynkin[fold,parabolic=3]{G}{2}
+\end{tcblisting}
+\begin{tcblisting}{title={Folded parabolics: you can try using thicker crosses}}
+\dynkin[fold,x/.style={very thick,line cap=round},parabolic=3]{C}{2}
+\dynkin[fold,x/.style={ultra thick,line cap=round},parabolic=3]{G}{2}
+\end{tcblisting}
 
 
 \section{Extended Dynkin diagrams}
@@ -728,24 +913,25 @@
 \dyn[extended,Coxeter]{I}{1}
 \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},colback=white}
+\begin{tcblisting}{title={Kac style}}
 \dynkin[Kac]{F}{4}
 \end{tcblisting}
-
-
-
 \begingroup
 \pgfkeys{/Dynkin diagram,Kac}
-\newcolumntype{D}{>{\columncolor[gray]{1}}m{\wdtD}}
-\begin{dynkinTable}{The Dynkin diagrams of the extended simple root systems in Kac style. At the moment, it only works on a white background.}{5cm}{4.5cm}
+\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}
+\end{dynkinTable}
+\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}{}
@@ -757,69 +943,60 @@
 \dyn[extended]{F}{4}
 \dyn[extended]{G}{2}
 \end{dynkinTable}
+\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}
+\end{dynkinTable}
 \endgroup
 
-
-
-
 \section{Folded Dynkin diagrams}
-
 The Dynkin diagrams package has limited support for folding Dynkin diagrams.
-
 \begin{tcblisting}{title={Folding}}
 \dynkin[fold]{A}{13}
 \end{tcblisting}
-
 \begin{tcblisting}{title={Big fold radius}}
-\dynkin[fold,foldradius=1cm]{A}{13}
+\dynkin[fold,fold radius=1cm]{A}{13}
 \end{tcblisting}
-
 \begin{tcblisting}{title={Small fold radius}}
-\dynkin[fold,foldradius=.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,foldright]{D}{4}
+\dynkin[ply=3,fold right]{D}{4}
 \dynkin[ply=3]{D}[1]{4}
 \end{tcblisting}
-
 \begin{tcblisting}{title={4-ply}}
 \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[foldleft]{D}[1]{} \
-\dynkin[foldright]{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}}
-\begin{tikzpicture}
 	\dynkin[ply=4]{D}[1]{****.*****.*****}%
-\end{tikzpicture} \ 
-\begin{tikzpicture}
-	\dynkin[ply=4]{D}[1]{****.*****.*****}%
+ \ 
+\begin{dynkinDiagram}[ply=4]{D}[1]{****.*****.*****}%
 	\dynkinFold[bend right=65]{1}{13}%
 	\dynkinFold[bend right=65]{0}{14}%
-\end{tikzpicture} \ 
-\begin{tikzpicture}
-	\dynkin[ply=4]{D}[1]{****.*****.*****}%
+\end{dynkinDiagram} \ 
+\begin{dynkinDiagram}[ply=4]{D}[1]{****.*****.*****}%
 	\dynkinFold{0}{1}%
 	\dynkinFold{1}{13}%
 	\dynkinFold{13}{14}%
-\end{tikzpicture}
+\end{dynkinDiagram}
 \end{tcblisting}
-
-
-
 \begingroup
+\RenewDocumentCommand\wdtA{}{.7cm}
 \RenewDocumentCommand\wdtD{}{3.5cm}
 \RenewDocumentCommand\wdtL{}{7cm}
 \NewDocumentCommand\seriesName{mmm}%
@@ -835,8 +1012,6 @@
 \end{tabular}%
 \\ \hline
 }%
-
-
 \NewDocumentCommand\fold{smmmmmm}%
 {%
 	\IfBooleanTF{#1}%
@@ -843,7 +1018,7 @@
 	{%
 		\foldingTable%
 		{#2}{#3}{#4}{\dynk[fold]{#2}[#3]{#4}}%
-		{#5}{#6}{#7}{\dynk[reverseArrows]{#5}[#6]{#7}}%
+		{#5}{#6}{#7}{\dynk[reverse arrows]{#5}[#6]{#7}}%
 	}%
 	{%
 		\foldingTable%
@@ -851,28 +1026,24 @@
 		{#5}{#6}{#7}{\dynk{#5}[#6]{#7}}%
 	}%
 }%
-
 \begin{filecontents*}{DoneTwoElBendy.tex}
-\begin{tikzpicture}[baseline=0pt]
-	\dynkin[ply=4]{D}[1]{****.*****.*****}
+\begin{dynkinDiagram}[ply=4]{D}[1]%
+{****.*****.*****}
 	\dynkinFold[bend right=65]{1}{13}
 	\dynkinFold[bend right=65]{0}{14}
-\end{tikzpicture}
+\end{dynkinDiagram}
 \end{filecontents*}
-
-
 \begin{filecontents*}{DoneTwoElStraight.tex}
-\begin{tikzpicture}[baseline=0pt]
-	\dynkin[ply=4]{D}[1]{****.*****.*****}
+\begin{dynkinDiagram}[ply=4]{D}[1]%
+{****.*****.*****}
 	\dynkinFold{0}{1}
 	\dynkinFold{1}{13}
 	\dynkinFold{13}{14}
-\end{tikzpicture}
+\end{dynkinDiagram}
 \end{filecontents*}
-
-\pgfkeys{/Dynkin diagram,foldradius=.35cm}
+\pgfkeys{/Dynkin diagram,fold radius=.35cm}
 \begin{longtable}{@{}p{15cm}@{}}
-\caption{Some foldings of Dynkin diagrams. For these diagrams, we want to compare a folding diagram with the diagram that results when we fold it, so it looks best to set \texttt{foldradius} and \texttt{edgeLength} to equal lengths.}\\
+\caption{Some foldings of Dynkin diagrams. For these diagrams, we want to compare a folding diagram with the diagram that results when we fold it, so it looks best to set \texttt{fold radius} and \texttt{edge length} to equal lengths.}\\
 \endfirsthead
 \caption{\dots continued}\\
 \endhead
@@ -883,7 +1054,7 @@
 \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,foldright]{D}{4}}%
+\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}{}}
@@ -904,7 +1075,7 @@
 \foldingTable{D}{1}{\ell+1}{\dynk[fold]{D}[1]{}}%
 {D}{2}{\ell}{\dynk{D}[2]{}}
 \foldingTable{D}{1}{\ell+1}{%
-\dynk[foldright]{D}[1]{}}%
+\dynk[fold right]{D}[1]{}}%
 {B}{1}{\ell}{\dynk{B}[1]{}}
 \foldingTable{D}{1}{2\ell}{%
 \input{DoneTwoElStraight.tex}
@@ -931,8 +1102,6 @@
 {A}{2}{2}{\dynk{A}[2]{2}}
 \end{longtable}
 \endgroup
-
-
 \begingroup
 \RenewDocumentCommand\wdtA{}{.8cm}
 \begin{dynkinTable}{Frobenius fixed point subgroups of finite simple groups of Lie type \cite{Carter:1995} p. 15}{3cm}{6cm}
@@ -955,13 +1124,7 @@
 \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}
@@ -971,7 +1134,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}&
@@ -981,7 +1143,6 @@
 \dynkin[label,ordering=Dynkin]{#1}{#2}&
 \dynkin[label,ordering=Kac]{#1}{#2}\\ 
 }%
-
 \begin{center}
 \RenewDocumentCommand\wdtA{}{.7cm}
 \RenewDocumentCommand\wdtL{}{2.2cm}
@@ -999,32 +1160,14 @@
 \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}{}
-\begin{tikzpicture}
 \dynkin[label]{E}{*otxXOt*}
-\end{tikzpicture}
-\end{tcblisting}
-
-\begin{tcblisting}{}
-\begin{tikzpicture}
 \dynkin[label,ordering=Carter]{E}{*otxXOt*}
-\end{tikzpicture}
-\end{tcblisting}
-
-\begin{tcblisting}{}
-\begin{tikzpicture}
 \dynkin[label,ordering=Kac]{E}{*otxXOt*}
-\end{tikzpicture}
 \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}
@@ -1031,32 +1174,30 @@
 \end{tcblisting}
 We can then connect the two with folding edges:
 \begin{tcblisting}{title={Connect diagrams}}
-\begin{tikzpicture}
-	\dynkin[name=upper]{A}{3}
+\begin{dynkinDiagram}[name=upper]{A}{3}
 	\node (current) at ($(upper root 1)+(0,-.3cm)$) {};
 	\dynkin[at=(current),name=lower]{A}{3}
 	\begin{scope}[on background layer]
 		\foreach \i in {1,...,3}%
 		{%
-			\draw[/Dynkin diagram/foldStyle] 
-				($(upper root \i)$) -- ($(lower root \i)$);%
+			\draw[/Dynkin diagram/fold style] 
+				($(upper root \i)$) 
+				-- ($(lower root \i)$);%
 		}%
 	\end{scope}
-\end{tikzpicture}
+\end{dynkinDiagram}
 \end{tcblisting}
-
 The following diagrams arise in the Satake diagrams of the pseudo-Riemannian symmetric spaces \cite{Baba:2009}.
-
 \begin{tcblisting}{}
-\pgfkeys{/Dynkin diagram,edgeLength=.5cm,foldradius=.5cm}
+\pgfkeys{/Dynkin diagram,edge length=.5cm,fold radius=.5cm}
 \begin{tikzpicture}
 	\dynkin[name=1]{A}{IIIb}
-	\node (a) at (.3,.4){};
+	\node (a) at (-.3,-.4){};
 	\dynkin[name=2,at=(a)]{A}{IIIb}
 	\begin{scope}[on background layer]
 		\foreach \i in {1,...,7}%
 		{%
-			\draw[/Dynkin diagram/foldStyle] 
+			\draw[/Dynkin diagram/fold style] 
 				($(1 root \i)$) 
 				-- 
 				($(2 root \i)$);%
@@ -1064,10 +1205,10 @@
 	\end{scope}
 \end{tikzpicture}
 \end{tcblisting}
-
 \begin{tcblisting}{}
-\pgfkeys{/Dynkin diagram/edgeLength=.75cm,/Dynkin diagram/edge/.style={draw=example-color,double=black,very thick},
-}
+\pgfkeys{/Dynkin diagram,
+edge length=.75cm,
+edge/.style={draw=example-color,double=black,very thick}}
 \begin{tikzpicture}
 	\foreach \d in {1,...,4}
 	{
@@ -1077,21 +1218,41 @@
 	\begin{scope}[on background layer]
 		\foreach \i in {1,...,6}%
 		{%
-			\draw[/Dynkin diagram/foldStyle] ($(1 root \i)$) -- ($(2 root \i)$);%
-			\draw[/Dynkin diagram/foldStyle] ($(2 root \i)$) -- ($(3 root \i)$);%
-			\draw[/Dynkin diagram/foldStyle] ($(3 root \i)$) -- ($(4 root \i)$);%
+			\draw[/Dynkin diagram/fold style] ($(1 root \i)$) -- ($(2 root \i)$);%
+			\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{tikzpicture}
 \end{tcblisting}
 
-
 \section{Other examples}
-
+\begin{filecontents*}{d44.tex}
+\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[bend right=65]{1}{13}
+	\dynkinFold[bend right=65]{0}{14}
+\dynkinLabelRoots{0,...,14}
+\dynkinLabelRoots*{0,...,14}
+\end{dynkinDiagram}
+\end{filecontents*}
+\begingroup\input{d44}\endgroup
+\VerbatimInput{d44.tex}
 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}
 \NewDocumentCommand\labls{m}%
 {%
 	\ifcase#1%
@@ -1115,13 +1276,10 @@
 		2%
 	\fi%
 }%
-
-
 \begingroup
-\tikzset{/Dynkin diagram,labelMacro/.code=\labls{#1},label,radius=.06cm}
+\tikzset{/Dynkin diagram,label macro/.code=\labls{#1},label,root radius=.06cm}
 \tcbset{text width=10cm}
 \RenewDocumentCommand\wdtA{}{2cm}
-
 \NewDocumentEnvironment{Category}{m}%
 {%
 \begin{tcolorbox}[title={\(#1\)},breakable]{}
@@ -1132,10 +1290,9 @@
 
 \begin{Category}{\mathfrak{sl}\left(2m|2n\right)^{(2)}}
 \begin{tcblisting}{}
-\begin{tikzpicture}
-	\dynkin[ply=2,label]{B}[1]{oo.oto.oo}
+\begin{dynkinDiagram}[ply=2,label]{B}[1]{oo.oto.oo}
 	\dynkinLabelRoot*{7}{1}
-\end{tikzpicture}
+\end{dynkinDiagram}
 \end{tcblisting}
 \begin{tcblisting}{}
 \dynkin[label]{B}[1]{oo.oto.oo}
@@ -1180,46 +1337,46 @@
 
 \begin{Category}{\mathfrak{sl}\left(2|2n+1\right)^{(2)}}
 \begin{tcblisting}{}
-\dynkin[ply=2,label,doubleEdges]{B}[1]{oo.Oto.Oo}
+\dynkin[ply=2,label,double edges]{B}[1]{oo.Oto.Oo}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[ply=2,label,doubleFold]{B}[1]{oo.Oto.Oo}
+\dynkin[ply=2,label,double fold]{B}[1]{oo.Oto.Oo}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[ply=2,label,doubleEdges]{B}[1]{oo.OtO.oo}
+\dynkin[ply=2,label,double edges]{B}[1]{oo.OtO.oo}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[ply=2,label,doubleFold]{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,doubleEdges]{D}[1]{oo.oto.ooo}
+\dynkin[ply=2,label,double edges]{D}[1]{oo.oto.ooo}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[ply=2,label,doubleFoldLeft]{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,labelMacro/.code={1}]{D}[2]{o.oto.oo}
+\dynkin[label,label macro/.code={1}]{D}[2]{o.oto.oo}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[label,labelMacro/.code={1}]{D}[2]{o.Oto.Oo}
+\dynkin[label,label macro/.code={1}]{D}[2]{o.Oto.Oo}
 \end{tcblisting}
 \end{Category}
 
 \begin{Category}{\mathfrak{osp}\left(2|2n\right)^{(2)}}
 \begin{tcblisting}{}
-\dynkin[label,labelMacro/.code=\lablIt{#1},
-	affineMark=*]
+\dynkin[label,label macro/.code=\lablIt{#1},
+	affine mark=*]
 	{D}[2]{o.o.o.o*}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[label,labelMacro/.code=\lablIt{#1},
-	affineMark=*]
+\dynkin[label,label macro/.code=\lablIt{#1},
+	affine mark=*]
 	{D}[2]{o.O.o.o*}
 \end{tcblisting}
 \end{Category}
@@ -1226,10 +1383,10 @@
 
 \begin{Category}{\mathfrak{sl}\left(1|2n+1\right)^{4}}
 \begin{tcblisting}{}
-\dynkin[label,labelMacro/.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,labelMacro/.code={1}]{D}[2]{o.o.O.o*}
+\dynkin[label,label macro/.code={1}]{D}[2]{o.o.O.o*}
 \end{tcblisting}
 \end{Category}
 
@@ -1243,7 +1400,7 @@
 	\dynkin[at=(Dynkin current),name=lower]{A}{oo.t.oo}
 	\begin{scope}[on background layer]
 	\foreach \i in {1,...,5}{
-		\draw[/Dynkin diagram/foldStyle] 
+		\draw[/Dynkin diagram/fold style] 
 			($(upper root \i)$) -- ($(lower root \i)$);
 	}
 	\end{scope}
@@ -1253,22 +1410,22 @@
 \dynkin[fold]{A}[1]{oo.t.ooooo.t.oo}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[fold,affineMark=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[affineMark=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[affineMark=*]{A}[2]{o.oto.o*}
+\dynkin[affine mark=*]{A}[2]{o.oto.o*}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[affineMark=*]{A}[2]{o.oto.o*}
+\dynkin[affine mark=*]{A}[2]{o.oto.o*}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[affineMark=*]{A}[2]{o.ooo.oo}
+\dynkin[affine mark=*]{A}[2]{o.ooo.oo}
 \end{tcblisting}
 \begin{tcblisting}{}
 \dynkin[odd]{A}[2]{oo.*to.*o}
@@ -1295,58 +1452,52 @@
 
 \begin{Category}{C^1}
 \begin{tcblisting}{}
-\dynkin[doubleEdges,fold,affineMark=t,odd]{A}[2]{to.o*}
+\dynkin[double edges,fold,affine mark=t,odd]{A}[2]{to.o*}
 \end{tcblisting}
 \begin{tcblisting}{}
-\dynkin[doubleEdges,fold,affineMark=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{tikzpicture}%
-	\dynkin{A}{oto*}%
+\begin{dynkinDiagram}{A}{oto*}%
 	\dynkinQuadrupleEdge{1}{2}%
 	\dynkinTripleEdge{4}{3}%
-\end{tikzpicture}%
+\end{dynkinDiagram}%
 \end{tcblisting}
 \begin{tcblisting}{}
-\begin{tikzpicture}%
-	\dynkin{A}{*too}%
+\begin{dynkinDiagram}{A}{*too}%
 	\dynkinQuadrupleEdge{1}{2}%
 	\dynkinTripleEdge{4}{3}%
-\end{tikzpicture}%
+\end{dynkinDiagram}%
 \end{tcblisting}
 \end{Category}
 
 \begin{Category}{G^1}
 \begin{tcblisting}{}
-\begin{tikzpicture}%
-	\dynkin{A}{ot*oo}%
+\begin{dynkinDiagram}{A}{ot*oo}%
 	\dynkinQuadrupleEdge{1}{2}%
 	\dynkinDefiniteDoubleEdge{4}{3}%
-\end{tikzpicture}%
+\end{dynkinDiagram}%
 \end{tcblisting}
 \begin{tcblisting}{}
-\begin{tikzpicture}%
-	\dynkin{A}{oto*o}%
+\begin{dynkinDiagram}{A}{oto*o}%
 	\dynkinQuadrupleEdge{1}{2}%
 	\dynkinDefiniteDoubleEdge{4}{3}%
-\end{tikzpicture}%
+\end{dynkinDiagram}%
 \end{tcblisting}
 \begin{tcblisting}{}
-\begin{tikzpicture}%
-	\dynkin{A}{*too*}%
+\begin{dynkinDiagram}{A}{*too*}%
 	\dynkinQuadrupleEdge{1}{2}%
 	\dynkinDefiniteDoubleEdge{4}{3}%
-\end{tikzpicture}%
+\end{dynkinDiagram}%
 \end{tcblisting}
 \begin{tcblisting}{}
-\begin{tikzpicture}%
-	\dynkin{A}{*tooo}%
+\begin{dynkinDiagram}{A}{*tooo}%
 	\dynkinQuadrupleEdge{1}{2}%
 	\dynkinDefiniteDoubleEdge{4}{3}%
-\end{tikzpicture}%
+\end{dynkinDiagram}%
 \end{tcblisting}
 \end{Category}
 \endgroup
@@ -1357,7 +1508,7 @@
 {\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}{2.8}\nct{R}{3.7}\nct{S}{3}
+\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}
@@ -1365,19 +1516,19 @@
 \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}{}&\W[\sum e_j]{n+1}&e_i-e_j&e_i-e_{i+1}\\
-B_n&\dynkin{B}{}&\W{n}& \pm e_i, \pm e_i \pm e_j, i\ne j&e_i-e_{i+1}, e_n\\
+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}{}&\W{n}& \pm e_i \pm e_j, i\ne j &
+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}&\W{8}&
+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}&\W[e_1-e_2]{8}&\quo&\quo\\
-E_6&\dynkin{E}{6}&\W[e_1-e_2,e_2-e_3]{8}&\quo&\quo\\
+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}&
@@ -1389,16 +1540,38 @@
 \begin{bunch}(-1,0,1),\\(2,-1,-1)\end{bunch}
 \end{longtable}
 \end{filecontents*}
-\newpage
 \begingroup
 \input{simple-lie-algebras.tex}
 \endgroup
-\newpage
 \VerbatimInput{simple-lie-algebras.tex}
+
+\begin{filecontents*}{borovoi.tex}
+\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}
+\end{filecontents*}
+\begingroup
+\begin{center}
+\input{borovoi.tex}
+\end{center}
+\endgroup
+\VerbatimInput{borovoi.tex}
 \newpage
 
+
 \section{Syntax}
-
 The syntax is \verb!\dynkin[<options>]{<letter>}[<twisted rank>]{<rank>}! where \verb!<letter>! is \verb!A!, \verb!B!, \verb!C!, \verb!D!, \verb!E!, \verb!F! or \verb!G!, the family of root system for the Dynkin diagram, \verb!<twisted rank>! is \verb!0!, \verb!1!, \verb!2!, \verb!3! (default is \verb!0!) representing:
 \[
 \renewcommand*{\arraystretch}{1}
@@ -1418,17 +1591,14 @@
 \item
 the name of a Satake diagram as in section~\ref{section:Satake}.
 \end{enumerate}
+The environment syntax is \verb!\begin{dynkinDiagram}! followed by the same parameters as \verb!\dynkin!, then various Dynkin diagram and \TikZ{} commands, and then \verb!\end{dynkinDiagram}!.
 
-
-
 \section{Options}
-
 \newcommand*{\typ}[1]{\(\left<\texttt{#1}\right>\)}
 \newcommand*{\optionLabel}[3]{%%
 \multicolumn{2}{l}{\(\texttt{#1}=\texttt{#2}\),} \\
 \multicolumn{2}{l}{\(\textrm{default}: \texttt{#3}\)} \\
 }%%
-
 \renewcommand*{\arraystretch}{1}
 \par\noindent%
 \begin{longtable}{p{1cm}p{10cm}}
@@ -1445,41 +1615,47 @@
 \optionLabel{parabolic}{\typ{integer}}{0} 
 & A parabolic subgroup with specified integer, where the integer
 is computed as \(n=\sum 2^{i-1} a_i\), \(a_i=0\) or \(1\), to say that root \(i\) is crossed, i.e. a noncompact root. \\
-\optionLabel{radius}{\typ{number}cm}{.05cm}
+\optionLabel{root radius}{\typ{number}cm}{.05cm}
 &      size of the dots and of the crosses in the Dynkin diagram \\
-\optionLabel{edgeLength}{\typ{number}cm}{.35cm}
+\optionLabel{edge length}{\typ{number}cm}{.35cm}
 &      distance between nodes in the Dynkin diagram \\
 \optionLabel{edge/.style}{TikZ style data}{thin}
 &      style of edges in the Dynkin diagram \\
 \optionLabel{mark}{\typ{o,O,t,x,X,*}}{*}
 &      default root mark \\
-\optionLabel{affineMark}{o,O,t,x,X,*}{*}
+\optionLabel{affine mark}{o,O,t,x,X,*}{*}
 &      default root mark for root zero in an affine Dynkin diagram \\
 \optionLabel{label}{true or false}{false}
 & whether to label the roots according to the current labelling scheme. \\
-\optionLabel{labelMacro}{\typ{1-parameter \TeX{} macro}}{\texttt{\#1}}
-& the current labelling scheme. \\
-\optionLabel{makeIndefiniteEdge}{\typ{edge pair \(i\)-\(j\) or list of such}}{\{\}}
+\optionLabel{label macro}{\typ{1-parameter \TeX{} macro}}{\texttt{\#1}}
+& the current labelling scheme for roots. \\
+\optionLabel{label macro*}{\typ{1-parameter \TeX{} macro}}{\texttt{\#1}}
+& the current labelling scheme for alternate roots. \\
+\optionLabel{make indefinite edge}{\typ{edge pair \(i\)-\(j\) or list of such}}{\{\}}
 & edge pair or list of edge pairs to treat as having indefinitely many roots on them. \\
-\optionLabel{indefiniteEdgeRatio}{\typ{float}}{1.6}
+\optionLabel{indefinite edge ratio}{\typ{float}}{1.6}
 & ratio of indefinite edge lengths to other edge lengths. \\
-\optionLabel{indefiniteEdge/.style}{\typ{TikZ style data}}{draw=black,fill=white,thin,densely dotted}
+\optionLabel{indefinite edge/.style}{\typ{TikZ style data}}{draw=black,fill=white,thin,densely dotted}
 & style of the dotted or dashed middle third of each indefinite edge. \\
+\optionLabel{backwards}{\typ{true or false}}{false}
+& whether to reverse right to left. \\
+\optionLabel{upside down}{\typ{true or false}}{false}
+& whether to reverse up to down. \\
 \optionLabel{arrows}{\typ{true or false}}{true}
 & whether to draw the arrows that arise along the edges. \\
-\optionLabel{reverseArrows}{\typ{true or false}}{true}
+\optionLabel{reverse arrows}{\typ{true or false}}{true}
 & whether to reverse the direction of the arrows that arise along the edges. \\
 \optionLabel{fold}{\typ{true or false}}{true}
 & whether, when drawing Dynkin diagrams, to draw them 2-ply. \\
 \optionLabel{ply}{\typ{0,1,2,3,4}}{0}
 & how many roots get folded together, at most. \\
-\optionLabel{foldleft}{\typ{true or false}}{true}
+\optionLabel{fold left}{\typ{true or false}}{true}
 & whether to fold the roots on the left side of a Dynkin diagram. \\
-\optionLabel{foldright}{\typ{true or false}}{true}
+\optionLabel{fold right}{\typ{true or false}}{true}
 & whether to fold the roots on the right side of a Dynkin diagram. \\
-\optionLabel{foldradius}{\typ{length}}{.3cm}
+\optionLabel{fold radius}{\typ{length}}{.3cm}
 & the radius of circular arcs used in curved edges of folded Dynkin diagrams. \\
-\optionLabel{foldStyle}{\typ{TikZ style data}}{draw=black!40,fill=none,line width=radius}
+\optionLabel{fold style}{\typ{TikZ style data}}{draw=black!40,fill=none,line width=radius}
 & when drawing folded diagrams, style for the fold indicators. \\
 \optionLabel{*/.style}{\typ{TikZ style data}}{draw=black,fill=black}
 & style for roots like \dynkin{A}{*} \\
@@ -1489,30 +1665,30 @@
 & style for roots like \dynkin{A}{O}  \\
 \optionLabel{t/.style}{\typ{TikZ style data}}{draw=black,fill=black}
 & style for roots like \dynkin{A}{t} \\
-\optionLabel{x/.style}{\typ{TikZ style data}}{draw=black}
+\optionLabel{x/.style}{\typ{TikZ style data}}{draw=black,line cap=round}
 & style for roots like \dynkin{A}{x}  \\
-\optionLabel{X/.style}{\typ{TikZ style data}}{draw=black,thick}
+\optionLabel{X/.style}{\typ{TikZ style data}}{draw=black,thick,line cap=round}
 & style for roots like \dynkin{A}{X} \\
-\optionLabel{leftFold/.style}{\typ{TikZ style data}}{}
+\optionLabel{fold left style/.style}{\typ{TikZ style data}}{}
 & style to override the \texttt{fold} style when folding roots together on the left half of a Dynkin diagram \\
-\optionLabel{rightFold/.style}{\typ{TikZ style data}}{}
+\optionLabel{fold right style/.style}{\typ{TikZ style data}}{}
 & style to override the \texttt{fold} style when folding roots together on the right half of a Dynkin diagram \\
-\optionLabel{doubleEdges}{\typ{}}{not set}
+\optionLabel{double edges}{\typ{}}{not set}
 & set to override the \texttt{fold} style when folding roots together in a Dynkin diagram, so that the foldings
 are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows). \\
-\optionLabel{doubleFold}{\typ{}}{not set}
+\optionLabel{double fold}{\typ{}}{not set}
 & set to override the \texttt{fold} style when folding roots together in a Dynkin diagram, so that the foldings
 are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows), but filled in solidly. \\
-\optionLabel{doubleLeft}{\typ{}}{not set}
+\optionLabel{double left}{\typ{}}{not set}
 & set to override the \texttt{fold} style when folding roots together at the left side of a Dynkin diagram, so that the foldings are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows). \\
-\optionLabel{doubleFoldLeft}{\typ{}}{not set}
+\optionLabel{double fold left}{\typ{}}{not set}
 & set to override the \texttt{fold} style when folding roots together  at the left side of a Dynkin diagram, so that the foldings are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows), but filled in solidly. \\
-\optionLabel{doubleRight}{\typ{}}{not set}
+\optionLabel{double right}{\typ{}}{not set}
 & set to override the \texttt{fold} style when folding roots together at the right side of a Dynkin diagram, so that the foldings are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows). \\
-\optionLabel{doubleFoldRight}{\typ{}}{not set}
+\optionLabel{double fold right}{\typ{}}{not set}
 & set to override the \texttt{fold} style when folding roots together  at the right side of a Dynkin diagram, so that the foldings are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows), but filled in solidly.
 \\
-\optionLabel{arrowColor}{\typ{}}{black}
+\optionLabel{arrow color}{\typ{}}{black}
 & set to override the default color for the arrows in nonsimply laced Dynkin diagrams. \\
 \optionLabel{Coxeter}{\typ{true or false}}{false}
 & whether to draw a Coxeter diagram, rather than a Dynkin diagram. \\
@@ -1521,7 +1697,35 @@
 \end{longtable}
 \par\noindent{}All other options are passed to TikZ.
 
+\section{Changes in the latest version}\label{section:changes}
+\begin{center}
+\begin{tabular}{@{}>{\ttfamily}r>{\ttfamily}l@{}}
+\textrm{was} & \textrm{is} \\ \midrule
+edgeLength&edge length\\
+radius&root radius\\
+affineMark&affine mark\\
+labelMacro&label macro\\
+makeIndefiniteEdge&make indefinite edge\\
+indefiniteEdgeRatio&indefinite edge ratio\\
+indefiniteEdge&indefinite edge\\
+reverseArrows&reverse arrows\\
+foldLeft&fold left\\
+foldRight&fold right\\
+foldradius&fold radius\\
+foldStyle&fold style\\
+leftFoldStyle&fold left style\\
+rightFoldStyle&fold right style\\
+doubleEdges&double edges\\
+doubleFold&double fold\\
+doubleLeft&double left\\
+doubleLeftFold&double fold left\\
+doubleRight&double right\\
+doubleRightFold&double fold right\\
+arrowColor&arrow color\\\
+\end{tabular}
+\end{center}
 
+
 \nocite{*}
 \bibliographystyle{amsplain}
 \bibliography{dynkin-diagrams}

Modified: trunk/Master/texmf-dist/tex/latex/dynkin-diagrams/dynkin-diagrams.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/dynkin-diagrams/dynkin-diagrams.sty	2018-12-11 18:40:36 UTC (rev 49383)
+++ trunk/Master/texmf-dist/tex/latex/dynkin-diagrams/dynkin-diagrams.sty	2018-12-11 22:20:01 UTC (rev 49384)
@@ -2,7 +2,7 @@
 %
 %                                  The Dynkin Diagrams package.
 %
-%                                            Version 3.14
+%                                            Version 3.141
 %
 %
 %               This package draws Dynkin diagrams in LaTeX documents, using the TikZ package.
@@ -18,7 +18,7 @@
 %
 %
 \NeedsTeXFormat{LaTeX2e}[1994/06/01]
-\ProvidesPackage{dynkin-diagrams}[2018/07/24 Dynkin diagrams]
+\ProvidesPackage{dynkin-diagrams}[2018/11/29 Dynkin diagrams]
 \RequirePackage{tikz}
 \RequirePackage{xstring}
 \RequirePackage{xparse}
@@ -26,12 +26,23 @@
 \RequirePackage{expl3}
 \RequirePackage{pgfkeys}
 \RequirePackage{pgfopts}
-\usetikzlibrary{arrows,arrows.meta,backgrounds,calc,decorations.markings,fit,patterns,snakes}
+\RequirePackage{amsmath}
+\RequirePackage{amssymb}
+\usetikzlibrary{
+	arrows,
+	arrows.meta,
+	backgrounds,
+	calc,
+	decorations.markings,
+	decorations.pathreplacing,
+	decorations.pathmorphing,
+	fit,
+	patterns}
 
-%%
-%% Application programming interface: 
-%% See dynkin-diagrams.tex file for examples of use.
-%%
+%%%
+%%% Application programming interface: 
+%%% See dynkin-diagrams.tex file for examples of use.
+%%%
 
 \NewDocumentCommand\dynkin{O{}mO{0}m}%
 {%
@@ -38,154 +49,165 @@
 	\ifdefined\filldraw%
 		\@dynkin[#1]{#2}[#3]{#4}%
 	\else%
-		\tikz[baseline=-0.5ex]{\@dynkin[#1]{#2}[#3]{#4}}%
+		\tikz[baseline=(origin.base)]{\@dynkin[#1]{#2}[#3]{#4}}%
 	\fi%
 }%
 
+\NewDocumentEnvironment{dynkinDiagram}{O{}mO{0}m}%
+{%
+\begin{tikzpicture}[baseline=(origin.base)]%
+\dynkin[#1]{#2}[#3]{#4}%
+}%
+{%
+\end{tikzpicture}%
+}%
+
 \NewDocumentCommand\dynkinRefreshRoots{}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\dynkin at draw@all at roots{}%
 	\ifdynkin at label@the at roots\dynkinPrintLabels{}\fi%
 }%
 
 
+\xdef\dynkin at label@direction{}
+
+\NewDocumentCommand\dynkin at translate@direction{m}%
+{%
+	\xdef\Dir{#1}
+	\ifdynkin at is@backwards
+		\IfStrEqCase{\Dir}{%
+			{0}{\xdef\Dir{4}}%
+			{1}{\xdef\Dir{3}}%
+			{2}{\xdef\Dir{2}}%
+			{3}{\xdef\Dir{1}}%
+			{4}{\xdef\Dir{0}}%
+			{5}{\xdef\Dir{7}}%
+			{6}{\xdef\Dir{6}}%
+			{7}{\xdef\Dir{5}}%
+		}%
+		[\ClassError%
+			{Dynkin diagrams}%
+			{Unrecognized root label direction: 
+			``\temp'' in Dynkin diagram \dynkin at user@series{\dynkin at user@string}}%
+			{}]		
+	\fi
+	\ifdynkin at is@upsidedown
+		\IfStrEqCase{\Dir}{%
+			{1}{\xdef\Dir{7}}%
+			{2}{\xdef\Dir{6}}%
+			{3}{\xdef\Dir{5}}%
+			{5}{\xdef\Dir{3}}%
+			{6}{\xdef\Dir{2}}%
+			{7}{\xdef\Dir{1}}%
+		}%
+	\fi
+	\IfStrEqCase{\Dir}{%
+		{0}{\xdef\dynkin at label@direction{right}}%
+		{1}{\xdef\dynkin at label@direction{above right}}%
+		{2}{\xdef\dynkin at label@direction{above}}%
+		{3}{\xdef\dynkin at label@direction{above left}}%
+		{4}{\xdef\dynkin at label@direction{left}}%
+		{5}{\xdef\dynkin at label@direction{below left}}%
+		{6}{\xdef\dynkin at label@direction{below}}%
+		{7}{\xdef\dynkin at label@direction{below right}}%
+	}%
+}%
+
+\newcount\rpo%
+
 %% \dynkinLabelRoot{<r>}{<s>} or \dynkinLabelRoot*{<r>}{<s>}
 %% Prints the label string <s> on the Dynkin diagram at root number <r>, in the current ordering convention.
-%% Starred form uses the opposite label location.
+%% Starred form uses the alternate label location.
 \NewDocumentCommand\dynkinLabelRoot{smm}%
 {%
+	\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}{}%
 	\fi%
-	\newcount\rpo%
-	\rpo=#2%
-	\advance\rpo by 1%
-	\StrMid{\dynkin at label@directions}{\the\rpo}{\the\rpo}[\temp]%
-	\IfBooleanTF{#1}%
+	\IfStrEq{#3}{}%
 	{%
-		\IfStrEqCase{\temp}{%
-			{l}{%
-			\node[inner sep=\dynkin at root@radius,%
-				label={%
-					[/Dynkin diagram,/Dynkin diagram/text]%
-					right:%
-					\(\pgfkeys{/Dynkin diagram/labelMacro=#3}\)%
-					}%
-				]%
-				at (\dynkin at root@name #2){};%
-			}%
-			{r}{%
-			\node[inner sep=\dynkin at root@radius,%
-				label={%
-					[/Dynkin diagram,/Dynkin diagram/text]%
-					left:%
-					\(\pgfkeys{/Dynkin diagram/labelMacro=#3}\)%
-					}%
-				]%
-				at (\dynkin at root@name #2){};%
-			}%
-			{a}{%
-			\node[inner sep=\dynkin at root@radius,%
-				label={%
-					[/Dynkin diagram,/Dynkin diagram/text]%
-					below:%
-					\(\pgfkeys{/Dynkin diagram/labelMacro=#3}\)%
-					}%
-				]%
-				at (\dynkin at root@name #2){};%
-			}%
-			{b}{%
-			\node[inner sep=\dynkin at root@radius,%
-				label={%
-					[/Dynkin diagram,/Dynkin diagram/text]%
-					above:%
-					\(\pgfkeys{/Dynkin diagram/labelMacro=#3}\)%
-					}%
-				]%
-				at (\dynkin at root@name #2){};%
-			}%
-			{d}{%
-			\node[inner sep=\dynkin at root@radius,%
-				label={%
-					[/Dynkin diagram,/Dynkin diagram/text]%
-					above right:%
-					\(\pgfkeys{/Dynkin diagram/labelMacro=#3}\)%
-					}%
-				]%
-				at (\dynkin at root@name #2){};%
-			}%
+	}%
+	{%
+		\rpo=#2%
+		\advance\rpo by 1%
+		\IfBooleanTF{#1}%
+		{%
+			\StrMid{\dynkin at label@directions at star}{\the\rpo}{\the\rpo}[\dynkin at direction@letter]%
 		}%
-		[\ClassError%
-			{Dynkin diagrams}%
-			{Unrecognized root label direction: 
-			``\temp'' in Dynkin diagram \dynkin at user@series{\dynkin at user@string} for root #2}%
-			{}]
+		{%
+			\StrMid{\dynkin at label@directions}{\the\rpo}{\the\rpo}[\dynkin at direction@letter]%
+		}%
+		\dynkin at translate@direction{\dynkin at direction@letter}%
+		\IfBooleanTF{#1}%
+		{%
+		\node[inner sep=\dynkin at root@radius,%
+			label={%
+				[/Dynkin diagram/text]%
+				\dynkin at label@direction:%
+				\(\pgfkeys{/Dynkin diagram/label macro*=#3}\)%
+				}%
+			]%
+			at (\dynkin at root@name #2){};%
+		}%
+		{%
+		\node[inner sep=\dynkin at root@radius,%
+			label={%
+				[/Dynkin diagram/text]%
+				\dynkin at label@direction:%
+				\(\pgfkeys{/Dynkin diagram/label macro=#3}\)%
+				}%
+			]%
+			at (\dynkin at root@name #2){};%
+		}%
 	}%
+}%
+
+
+\newcounter{dynkinRootNo}
+\NewDocumentCommand\@dynkinLabelThisRoot{m}%
+{%
+\stepcounter{dynkinRootNo}%
+\dynkinLabelRoot{\arabic{dynkinRootNo}}{#1}%
+}%
+\NewDocumentCommand\@dynkinLabelThisRootStar{m}%
+{%
+\stepcounter{dynkinRootNo}%
+\dynkinLabelRoot*{\arabic{dynkinRootNo}}{#1}%
+}%
+
+
+\NewDocumentCommand\dynkinLabelRoots{sm}%
+{%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
+	\setcounter{dynkinRootNo}{0}%
+	\ifdynkin at is@extended%
+		\setcounter{dynkinRootNo}{-1}%	
+	\else%
+		\ifdynkin at is@twisted%
+			\setcounter{dynkinRootNo}{-1}%	
+		\else%
+			\setcounter{dynkinRootNo}{0}%	
+		\fi%
+	\fi%
+	\edef\XXX{#2}%
+	\foreach \i in \XXX%
 	{%
-		\IfStrEqCase{\temp}{%
-			{l}{%
-			\node[inner sep=\dynkin at root@radius,%
-				label={%
-					[/Dynkin diagram,/Dynkin diagram/text]%
-					left:%
-					\(\pgfkeys{/Dynkin diagram/labelMacro=#3}\)%
-					}%
-				]%
-				at (\dynkin at root@name #2){};%
-			}%
-			{r}{%
-			\node[inner sep=\dynkin at root@radius,%
-				label={%
-					[/Dynkin diagram,/Dynkin diagram/text]%
-					right:%
-					\(\pgfkeys{/Dynkin diagram/labelMacro=#3}\)%
-					}%
-				]%
-				at (\dynkin at root@name #2){};%
-			}%
-			{a}{%
-			\node[inner sep=\dynkin at root@radius,%
-				label={%
-					[/Dynkin diagram,/Dynkin diagram/text]%
-					above:%
-					\(\pgfkeys{/Dynkin diagram/labelMacro=#3}\)%
-					}%
-				]%
-				at (\dynkin at root@name #2){};%
-			}%
-			{b}{	%
-			\node[inner sep=\dynkin at root@radius,%
-				label={%
-					[/Dynkin diagram,/Dynkin diagram/text]%
-					below:%
-					\(\pgfkeys{/Dynkin diagram/labelMacro=#3}\)%
-					}%
-				]%
-				at (\dynkin at root@name #2){};%
-			}%
-			{d}{%
-			\node[inner sep=\dynkin at root@radius,%
-				label={%
-					[/Dynkin diagram,/Dynkin diagram/text]%
-					below right:%
-					\(\pgfkeys{/Dynkin diagram/labelMacro=#3}\)%
-					}%
-				]%
-				at (\dynkin at root@name #2){};%
-			}%
+		\IfBooleanTF{#1}%
+		{%
+		\@dynkinLabelThisRootStar{\i}%
 		}%
-		[\ClassError%
-			{Dynkin diagrams}%
-			{Unrecognized root label direction: 
-			``\temp'' in Dynkin diagram \dynkin at user@series{\dynkin at user@string} for root #2}%
-			{}]
+		{%
+		\@dynkinLabelThisRoot{\i}%
+		}%
 	}%
 }%
 
-
 \NewDocumentCommand\dynkinBrace{somm}%[text]{start}{end}
 {%
-\draw[decoration=
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
+\draw[
+decoration=
 		{
 			brace,
 			\IfBooleanF{#1}{mirror},
@@ -200,24 +222,56 @@
     	pos=0.5,
 	   	anchor=\IfBooleanTF{#1}{south}{north},
   		yshift=\IfBooleanTF{#1}{1mm}{-1mm},
-    	/Dynkin diagram/text
-] 
+    	/Dynkin diagram/text] 
 {\IfValueT{#2}{\(#2\)}};%
 }
 
 
 %% \dynkinPrintLabels
-%% Prints the default labels on the Dynkin diagram, in the given ordering.
+%% Prints the labels on the Dynkin diagram,in the given ordering. Uses the default labels if ``label'' is set without a list of ``labels'' being set.
 \newcommand{\dynkinPrintLabels}%
 {%
-	\foreach \i in {1,...,\the\dynkin at nodes}{\dynkinLabelRoot{\i}{\i}}%
-	\ifdynkin at is@extended%
-		\dynkinLabelRoot{0}{0}%
-	\else%
-		\ifdynkin at is@twisted%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
+	\IfStrEq{\dynkin at label@list\dynkin at label@list at star}{}{%
+		\foreach \i in {1,...,\the\dynkin at nodes}{\dynkinLabelRoot{\i}{\i}}%
+		\ifdynkin at is@extended%
 			\dynkinLabelRoot{0}{0}%
+		\else%
+			\ifdynkin at is@twisted%
+				\dynkinLabelRoot{0}{0}%
+			\fi%
 		\fi%
-	\fi%
+	}%
+	{%
+		\ifdynkin at is@extended%
+			\setcounter{dynkinRootNo}{-1}%	
+		\else%
+			\ifdynkin at is@twisted%
+				\setcounter{dynkinRootNo}{-1}%	
+			\else%
+				\setcounter{dynkinRootNo}{0}%	
+			\fi%
+		\fi%
+		\edef\XXX{\dynkin at label@list}%
+		\foreach \i in \XXX%
+		{%
+			\@dynkinLabelThisRoot{\i}%
+		}%
+		\ifdynkin at is@extended%
+			\setcounter{dynkinRootNo}{-1}%	
+		\else%
+			\ifdynkin at is@twisted%
+				\setcounter{dynkinRootNo}{-1}%	
+			\else%
+				\setcounter{dynkinRootNo}{0}%	
+			\fi%
+		\fi%
+		\edef\XXX{\dynkin at label@list at star}%
+		\foreach \i in \XXX%
+		{%
+			\@dynkinLabelThisRootStar{\i}%
+		}%
+	}%
 }%
 
 %% \dynkinCrossRootMark{<n>}
@@ -225,6 +279,7 @@
 %% The starred form accepts <n> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinCrossRootMark{sO{}m}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootNumber{#3}%
@@ -232,11 +287,11 @@
 	{%
 		\RootNumber=#3%
 	}%
-	\draw[/Dynkin diagram,/Dynkin diagram/x,#2]%
+	\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,/Dynkin diagram/x,#2]%
+	\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)$);%
@@ -247,6 +302,7 @@
 %% The starred form accepts <n> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinHeavyCrossRootMark{sO{}m}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootNumber{#3}%
@@ -254,11 +310,11 @@
 	{%
 		\RootNumber=#3%
 	}%
-	\draw[/Dynkin diagram,/Dynkin diagram/X,#2]%
+	\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,/Dynkin diagram/X,#2]%
+	\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)$);%
@@ -270,6 +326,7 @@
 %% The starred form accepts <n> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinHollowRootMark{sO{}m}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootNumber{#3}%
@@ -277,7 +334,7 @@
 	{%
 		\RootNumber=#3%
 	}%
-	\fill[/Dynkin diagram,/Dynkin diagram/o,#2] (\dynkin at root@name \the\RootNumber) circle (\dynkin at root@radius);%
+	\fill[/Dynkin diagram,o,#2] (\dynkin at root@name \the\RootNumber) circle (\dynkin at root@radius);%
 }%
 
 %% \dynkinDoubleHollowRootMark{<n>}
@@ -285,6 +342,7 @@
 %% The starred form accepts <n> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinDoubleHollowRootMark{sO{}m}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootNumber{#3}%
@@ -292,8 +350,8 @@
 	{%
 		\RootNumber=#3%
 	}%
-	\fill[/Dynkin diagram,/Dynkin diagram/o,#2] (\dynkin at root@name \the\RootNumber) circle (2*\dynkin at root@radius);%
-	\fill[/Dynkin diagram,/Dynkin diagram/o,#2] (\dynkin at root@name \the\RootNumber) circle (\dynkin at root@radius);%
+	\fill[/Dynkin diagram,o,#2] (\dynkin at root@name \the\RootNumber) circle (2*\dynkin at root@radius);%
+	\fill[/Dynkin diagram,o,#2] (\dynkin at root@name \the\RootNumber) circle (\dynkin at root@radius);%
 }%
 
 %% \dynkinSolidRootMark{<n>}
@@ -301,6 +359,7 @@
 %% The starred form accepts <n> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinSolidRootMark{sO{}m}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootNumber{#3}%
@@ -308,7 +367,7 @@
 	{%
 		\RootNumber=#3%
 	}%
-	\fill[/Dynkin diagram,/Dynkin diagram/*,#2] (\dynkin at root@name \the\RootNumber) circle (\dynkin at root@radius);%
+	\fill[/Dynkin diagram,*,#2] (\dynkin at root@name \the\RootNumber) circle (\dynkin at root@radius);%
 }%
 
 %% \dynkinTensorRootMark{<n>}
@@ -316,6 +375,7 @@
 %% The starred form accepts <n> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinTensorRootMark{sO{}m}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootNumber{#3}%
@@ -323,23 +383,24 @@
 	{%
 		\RootNumber=#3%
 	}%
-	\fill[/Dynkin diagram,/Dynkin diagram/o,#2] (\dynkin at root@name \the\RootNumber) circle ({\dynkin at root@radius});%
-	\draw[/Dynkin diagram,/Dynkin diagram/x,#2]%
+	\fill[/Dynkin diagram,o,#2] (\dynkin at root@name \the\RootNumber) circle ({\dynkin at root@radius});%
+	\draw[/Dynkin diagram,edge,#2]%
 		($(\dynkin at root@name \the\RootNumber)+({\dynkin at root@radius/sqrt(2)},{\dynkin at root@radius/sqrt(2)})$)%
 		--%
 		($(\dynkin at root@name \the\RootNumber)-({\dynkin at root@radius/sqrt(2)},{\dynkin at root@radius/sqrt(2)})$);%
-	\draw[/Dynkin diagram,/Dynkin diagram/x,#2]%
+	\draw[/Dynkin diagram,edge,#2]%
 		($(\dynkin at root@name \the\RootNumber)+({-\dynkin at root@radius/sqrt(2)},{\dynkin at root@radius/sqrt(2)})$)%
 		--%
 		($(\dynkin at root@name \the\RootNumber)+({\dynkin at root@radius/sqrt(2)},{-\dynkin at root@radius/sqrt(2)})$);%
 }%
 
-%% \dynkinRootMark{<s>}{<n>}
-%% Prints a dot at root <n> on the current Dynkin diagram using mark style <s>.
-%% Use <s> empty to get the default mark style.
-%% The starred form accepts <n> in the Bourbaki ordering.
+% \dynkinRootMark{<s>}{<n>}
+% Prints a dot at root <n> on the current Dynkin diagram using mark style <s>.
+% Use <s> empty to get the default mark style.
+% The starred form accepts <n> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinRootMark{smm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\IfStrEqCase{#2}%
@@ -378,6 +439,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinDefiniteSingleEdge{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -400,6 +462,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinIndefiniteSingleEdge{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -413,11 +476,11 @@
 			($(\dynkin at root@name \the\@fromRoot)$) 
 			-- 
 			(${(2/3)}*(\dynkin at root@name \the\@fromRoot)+{(1/3)}*(\dynkin at root@name \the\@toRoot)$);
-		\draw[/Dynkin diagram,/Dynkin diagram/indefiniteEdge,#2] 
+		\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)$);
-		\draw[/Dynkin diagram,/Dynkin diagram/edge,#2] 
+		\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)$);
@@ -429,12 +492,13 @@
 %%% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinRightFold{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
-		\dynkinFold*[/Dynkin diagram/rightFold,#2]{#3}{#4}%
+		\dynkinFold*[/Dynkin diagram,fold right style,#2]{#3}{#4}%
 	}%
 	{%
-		\dynkinFold[/Dynkin diagram/rightFold,#2]{#3}{#4}%
+		\dynkinFold[/Dynkin diagram,fold right style,#2]{#3}{#4}%
 	}%
 }%
 
@@ -443,12 +507,13 @@
 %%% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinLeftFold{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
-		\dynkinFold*[/Dynkin diagram/leftFold,#2]{#3}{#4}%
+		\dynkinFold*[/Dynkin diagram,fold left style,#2]{#3}{#4}%
 	}%
 	{%
-		\dynkinFold[/Dynkin diagram/leftFold,#2]{#3}{#4}%
+		\dynkinFold[/Dynkin diagram,fold left style,#2]{#3}{#4}%
 	}%
 }%
 
@@ -457,6 +522,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinFold{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -467,8 +533,8 @@
 	}%
 	\convertRootPair{\@fromRoot}{\@toRoot}%
 	\begin{scope}[on background layer]
-		\draw
-			[/Dynkin diagram/foldStyle,#2] 
+		\draw[/Dynkin diagram/fold style,#2,%/Dynkin diagram/fold left style
+		] 
 			($(\dynkin at root@name \the\@fromRoot)$)
 			to 
 			($(\dynkin at root@name \the\@toRoot)$);
@@ -481,6 +547,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinDefiniteRightDownArc{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -490,7 +557,7 @@
 		\@toRoot=#4%
 	}%
 	\begin{scope}[on background layer]%
-	\draw[/Dynkin diagram,/Dynkin diagram/edge,fill=none,#2]%
+	\draw[/Dynkin diagram,edge,fill=none,#2]%
 		($(\dynkin at root@name \the\@fromRoot)$)%
 		arc (90:0:\dynkin at fold@radius)   -- ($(\dynkin at root@name \the\@toRoot)$);%
 	\end{scope}%
@@ -501,6 +568,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinIndefiniteRightDownArc{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -511,15 +579,15 @@
 	}%
 	\node (center) at ($(\dynkin at root@name \the\@fromRoot)-(0,\dynkin at fold@radius)$) {};%
 	\begin{scope}[on background layer]%
-	\draw[/Dynkin diagram,/Dynkin diagram/edge,fill=none,#2] 
+	\draw[/Dynkin diagram,edge,fill=none,#2] 
 		(center)
 		++(90:\dynkin at fold@radius)
 		arc [start angle=90, end angle=60, radius=\dynkin at fold@radius];%
-	\draw[/Dynkin diagram,/Dynkin diagram/indefiniteEdge,fill=none,#2]
+	\draw[/Dynkin diagram,indefinite edge,fill=none,#2]
 		(center)
 		++(60:\dynkin at fold@radius)
 		arc [start angle=60, end angle=30, radius=\dynkin at fold@radius];%
-	\draw[/Dynkin diagram,/Dynkin diagram/edge,fill=none,#2]
+	\draw[/Dynkin diagram,edge,fill=none,#2]
 		(center)
 		++(30:\dynkin at fold@radius)
 		arc [start angle=30, end angle=0, radius=\dynkin at fold@radius];%
@@ -531,6 +599,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinDefiniteRightUpArc{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -540,7 +609,7 @@
 		\@toRoot=#4%
 	}%
 	\begin{scope}[on background layer]%
-	\draw[/Dynkin diagram,/Dynkin diagram/edge,fill=none,#2] 
+	\draw[/Dynkin diagram,edge,fill=none,#2] 
 		($(\dynkin at root@name \the\@fromRoot)$) 
 		arc (-90:0:\dynkin at fold@radius) -- ($(\dynkin at root@name \the\@toRoot)$);%
 	\end{scope}%
@@ -551,6 +620,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinIndefiniteRightUpArc{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -561,15 +631,15 @@
 	}%
 	\node (center) at ($(\dynkin at root@name \the\@fromRoot)+(0,\dynkin at fold@radius)$) {};%
 	\begin{scope}[on background layer]%
-	\draw[/Dynkin diagram,/Dynkin diagram/edge,fill=none,#2] 
+	\draw[/Dynkin diagram,edge,fill=none,#2] 
 		(center)
 		++(-90:\dynkin at fold@radius)
 		arc [start angle=-90, end angle=-60, radius=\dynkin at fold@radius];%
-	\draw[/Dynkin diagram,/Dynkin diagram/indefiniteEdge,fill=none,#2]
+	\draw[/Dynkin diagram,indefinite edge,fill=none,#2]
 		(center)
 		++(-60:\dynkin at fold@radius)
 		arc [start angle=-60, end angle=-30, radius=\dynkin at fold@radius];%
-	\draw[/Dynkin diagram,/Dynkin diagram/edge,fill=none,#2]
+	\draw[/Dynkin diagram,edge,fill=none,#2]
 		(center)
 		++(-30:\dynkin at fold@radius)
 		arc [start angle=-30, end angle=0, radius=\dynkin at fold@radius]  -- ($(\dynkin at root@name \the\@toRoot)$);%
@@ -582,6 +652,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinDefiniteLeftDownArc{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -591,7 +662,7 @@
 		\@toRoot=#4%
 	}%
 	\begin{scope}[on background layer]%
-	\draw[/Dynkin diagram,/Dynkin diagram/edge,fill=none,#2]%
+	\draw[/Dynkin diagram,edge,fill=none,#2]%
 		($(\dynkin at root@name \the\@fromRoot)$)%
 		arc (90:180:\dynkin at fold@radius) -- ($(\dynkin at root@name \the\@toRoot)$);%
 	\end{scope}%
@@ -602,6 +673,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinIndefiniteLeftDownArc{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -612,15 +684,15 @@
 	}%
 	\node (center) at ($(\dynkin at root@name \the\@fromRoot)-(0,\dynkin at fold@radius)$) {};%
 	\begin{scope}[on background layer]%
-	\draw[/Dynkin diagram,/Dynkin diagram/edge,fill=none,#2] 
+	\draw[/Dynkin diagram,edge,fill=none,#2] 
 		(center)
 		++(90:\dynkin at fold@radius)
 		arc [start angle=90, end angle=120, radius=\dynkin at fold@radius];%
-	\draw[/Dynkin diagram,/Dynkin diagram/indefiniteEdge,fill=none,#2]
+	\draw[/Dynkin diagram,indefinite edge,fill=none,#2]
 		(center)
 		++(120:\dynkin at fold@radius)
 		arc [start angle=120, end angle=150, radius=\dynkin at fold@radius];%
-	\draw[/Dynkin diagram,/Dynkin diagram/edge,fill=none,#2]
+	\draw[/Dynkin diagram,edge,fill=none,#2]
 		(center)
 		++(150:\dynkin at fold@radius)
 		arc [start angle=150, end angle=180, radius=\dynkin at fold@radius] -- ($(\dynkin at root@name \the\@toRoot)$);%
@@ -632,6 +704,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinDefiniteLeftUpArc{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -641,7 +714,7 @@
 		\@toRoot=#4%
 	}%
 	\begin{scope}[on background layer]%
-	\draw[/Dynkin diagram,/Dynkin diagram/edge,fill=none,#2] 
+	\draw[/Dynkin diagram,edge,fill=none,#2] 
 		($(\dynkin at root@name \the\@fromRoot)$) 
 		arc (-90:-180:\dynkin at fold@radius) -- ($(\dynkin at root@name \the\@toRoot)$);%
 	\end{scope}%
@@ -652,6 +725,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinIndefiniteLeftUpArc{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -662,15 +736,15 @@
 	}%
 	\node (center) at ($(\dynkin at root@name \the\@fromRoot)+(0,\dynkin at fold@radius)$) {};%
 	\begin{scope}[on background layer]%
-	\draw[/Dynkin diagram,/Dynkin diagram/edge,fill=none,#2] 
+	\draw[/Dynkin diagram,edge,fill=none,#2] 
 		(center)
 		++(-90:\dynkin at fold@radius)
 		arc [start angle=-90, end angle=-120, radius=\dynkin at fold@radius];%
-	\draw[/Dynkin diagram,/Dynkin diagram/indefiniteEdge,fill=none,#2]
+	\draw[/Dynkin diagram,indefinite edge,fill=none,#2]
 		(center)
 		++(-120:\dynkin at fold@radius)
 		arc [start angle=-120, end angle=-150, radius=\dynkin at fold@radius];%
-	\draw[/Dynkin diagram,/Dynkin diagram/edge,fill=none,#2]
+	\draw[/Dynkin diagram,edge,fill=none,#2]
 		(center)
 		++(-150:\dynkin at fold@radius)
 		arc [start angle=-150, end angle=-180, radius=\dynkin at fold@radius] -- ($(\dynkin at root@name \the\@toRoot)$);%
@@ -683,6 +757,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinDefiniteSemiCircle{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -692,7 +767,7 @@
 		\@toRoot=#4%
 	}%
 	\begin{scope}[on background layer]%
-	\draw[/Dynkin diagram,/Dynkin diagram/edge,fill=none,#2] 
+	\draw[/Dynkin diagram,edge,fill=none,#2] 
 		($(\dynkin at root@name \the\@fromRoot)$) 
 		arc (90:-90:\dynkin at fold@radius)
 		-- ($(\dynkin at root@name \the\@toRoot)$);%
@@ -704,6 +779,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinIndefiniteSemiCircle{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -714,15 +790,15 @@
 	}%
 	\node (center) at ($(\dynkin at root@name \the\@fromRoot)-(0,\dynkin at fold@radius)$) {};%
 	\begin{scope}[on background layer]%
-	\draw[/Dynkin diagram,/Dynkin diagram/edge,fill=none,#2] 
+	\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];%
-	\draw[/Dynkin diagram,/Dynkin diagram/indefiniteEdge,fill=none,#2]
+	\draw[/Dynkin diagram,indefinite edge,fill=none,#2]
 		(center)
 		++(30:\dynkin at fold@radius)
 		arc [start angle=30, end angle=-30, radius=\dynkin at fold@radius];%
-	\draw[/Dynkin diagram,/Dynkin diagram/edge,fill=none,#2]
+	\draw[/Dynkin diagram,edge,fill=none,#2]
 		(center)
 		++(-30:\dynkin at fold@radius)
 		arc [start angle=-30, end angle=-90, radius=\dynkin at fold@radius] -- ($(\dynkin at root@name \the\@toRoot)$);%
@@ -735,6 +811,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinDefiniteDoubleRightDownArc{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -744,7 +821,7 @@
 		\@toRoot=#4%
 	}%
 	\begin{scope}[on background layer]%
-	\draw[/Dynkin diagram,/Dynkin diagram/edge,double,fill=none,#2]%
+	\draw[/Dynkin diagram,edge,double,fill=none,#2]%
 		($(\dynkin at root@name \the\@fromRoot)$)%
 		arc (90:0:{\dynkin at fold@radius}) -- ($(\dynkin at root@name \the\@toRoot)$);%
 	\ifdynkin at arrows%
@@ -752,10 +829,7 @@
 			\path[-{Computer Modern Rightarrow[\dynkin at arrow@color]},
 			,tips] 
 				($(\dynkin at root@name \the\@toRoot)$)%
-				arc (45:90:{\dynkin at fold@radius});%
-%			\path[/Dynkin diagram,edge,-<,tips] 
-%				($(\dynkin at root@name \the\@fromRoot)$)%
-%				arc (90:45:{\dynkin at fold@radius});%
+				arc (0:45:{\dynkin at fold@radius});%
 		\else%
 			\path[-{Computer Modern Rightarrow[\dynkin at arrow@color]},
 			,tips] 
@@ -773,6 +847,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinDefiniteDoubleUpRightArc{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -782,7 +857,7 @@
 		\@toRoot=#4%
 	}%
 	\begin{scope}[on background layer]%
-	\draw[/Dynkin diagram,/Dynkin diagram/edge,double,fill=none,#2]%
+	\draw[/Dynkin diagram,edge,double,fill=none,#2]%
 		($(\dynkin at root@name \the\@fromRoot)$)%
 		arc (180:90:{\dynkin at fold@radius}) -- ($(\dynkin at root@name \the\@toRoot)$);%
 	\ifdynkin at arrows%
@@ -793,7 +868,7 @@
 				($(\dynkin at root@name \the\@toRoot)$)%
 				arc (135:180:{\dynkin at fold@radius});%
 		\else%
-			\path[
+			\path[/Dynkin diagram,edge,
 				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
 				,tips] 
 				($(\dynkin at root@name \the\@fromRoot)$)%
@@ -810,6 +885,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinDefiniteDoubleUpLeftArc{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -819,21 +895,20 @@
 		\@toRoot=#4%
 	}%
 	\begin{scope}[on background layer]%
-	\draw[/Dynkin diagram,/Dynkin diagram/edge,double,fill=none,#2]%
+	\draw[/Dynkin diagram,edge,double,fill=none,#2]%
 		($(\dynkin at root@name \the\@fromRoot)$)%
-		arc (-90:0:{\dynkin at fold@radius}) -- ($(\dynkin at root@name \the\@toRoot)$);%
+		arc (0:90:{\dynkin at fold@radius}) -- ($(\dynkin at root@name \the\@toRoot)$);%
 	\ifdynkin at arrows%
 		\ifdynkin at reverse@arrows%
-			\path[/Dynkin diagram,edge,
-				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+			\path[-{Computer Modern Rightarrow[\dynkin at arrow@color]},
 			,tips] 
 				($(\dynkin at root@name \the\@toRoot)$)%
-				arc (-45:-90:{\dynkin at fold@radius});%
+				arc (90:45:{\dynkin at fold@radius});%
 		\else%
 			\path[-{Computer Modern Rightarrow[\dynkin at arrow@color]},
 			,tips] 
 				($(\dynkin at root@name \the\@fromRoot)$)%
-				arc (-90:-45:{\dynkin at fold@radius});%
+				arc (0:45:{\dynkin at fold@radius});%
 		\fi%
 	\fi%
 	\end{scope}%
@@ -848,6 +923,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinDefiniteDoubleDownRightArc{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -857,7 +933,7 @@
 		\@toRoot=#4%
 	}%
 	\begin{scope}[on background layer]%
-	\draw[/Dynkin diagram,/Dynkin diagram/edge,double,fill=none,#2]%
+	\draw[/Dynkin diagram,edge,double,fill=none,#2]%
 		($(\dynkin at root@name \the\@fromRoot)$)%
 		-- 
 		($(\dynkin at root@name \the\@toRoot)+(-\dynkin at fold@radius,\dynkin at fold@radius)$)%
@@ -864,17 +940,15 @@
 		arc (-180:-90:{\dynkin at fold@radius}) -- ($(\dynkin at root@name \the\@toRoot)$);%
 	\ifdynkin at arrows%
 		\ifdynkin at reverse@arrows%
-			\path[
-			-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+			\path[-{Computer Modern Rightarrow[\dynkin at arrow@color]},
 			tips] 
-				($(\dynkin at root@name \the\@fromRoot)+(-\dynkin at fold@radius,\dynkin at fold@radius)$)%
-				arc (-135:-180:{\dynkin at fold@radius});%
+				($(\dynkin at root@name \the\@toRoot)$)%
+				arc (-90:-135:{\dynkin at fold@radius});%
 		\else%
-			\path[
-				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+			\path[-{Computer Modern Rightarrow	[\dynkin at arrow@color]},
 				,tips] 
-				($(\dynkin at root@name \the\@toRoot)+(-\dynkin at fold@radius,\dynkin at fold@radius)$)%
-				arc (-180:-135:{\dynkin at fold@radius});%
+				($(\dynkin at root@name \the\@fromRoot)$)%
+				arc (180:225:{\dynkin at fold@radius});%
 		\fi%
 	\fi%
 	\end{scope}%
@@ -887,6 +961,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinDefiniteDoubleRightUpArc{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -896,15 +971,21 @@
 		\@toRoot=#4%
 	}%
 	\begin{scope}[on background layer]%
-	\draw[/Dynkin diagram,/Dynkin diagram/edge,double,fill=none,#2]%
+	\draw[/Dynkin diagram,edge,double,fill=none,#2]%
 		($(\dynkin at root@name \the\@fromRoot)$)%
 		arc (270:360:{\dynkin at fold@radius}) -- ($(\dynkin at root@name \the\@toRoot)$);%
 	\ifdynkin at arrows%
-		\path[
-				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+		\ifdynkin at reverse@arrows%
+			\path[-{Computer Modern Rightarrow[\dynkin at arrow@color]},
 			,tips] 
+			($(\dynkin at root@name \the\@toRoot)$)%
+			arc (0:-45:\dynkin at fold@radius);%
+		\else%
+			\path[-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+			,tips] 
 			($(\dynkin at root@name \the\@fromRoot)$)%
 			arc (270:315:\dynkin at fold@radius);%
+		\fi%
 	\fi%
 	\end{scope}%
 }%
@@ -915,6 +996,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinDefiniteDoubleLeftDownArc{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -924,16 +1006,15 @@
 		\@toRoot=#4%
 	}%
 	\begin{scope}[on background layer]%
-	\draw[/Dynkin diagram,/Dynkin diagram/edge,double,fill=none,#2]%
+	\draw[/Dynkin diagram,edge,double,fill=none,#2]%
 		($(\dynkin at root@name \the\@fromRoot)$)%
 		arc (90:180:{\dynkin at fold@radius}) -- ($(\dynkin at root@name \the\@toRoot)$);%
 	\ifdynkin at arrows%
 		\ifdynkin at reverse@arrows%
-			\path[/Dynkin diagram,edge,
-				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+			\path[-{Computer Modern Rightarrow[\dynkin at arrow@color]},
 			,tips] 
 				($(\dynkin at root@name \the\@toRoot)$)%
-				arc (135:90:{\dynkin at fold@radius});%
+				arc (180:{180-45}:{\dynkin at fold@radius});%
 		\else%
 			\path[
 			-{Computer Modern Rightarrow[\dynkin at arrow@color]},
@@ -952,6 +1033,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinDefiniteDoubleDownLeftArc{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -961,7 +1043,7 @@
 		\@toRoot=#4%
 	}%
 	\begin{scope}[on background layer]%
-	\draw[/Dynkin diagram,/Dynkin diagram/edge,double,fill=none,#2]%
+	\draw[/Dynkin diagram,edge,double,fill=none,#2]%
 		($(\dynkin at root@name \the\@fromRoot)$)%
 		arc (360:270:{\dynkin at fold@radius}) -- ($(\dynkin at root@name \the\@toRoot)$);%
 	\ifdynkin at arrows%
@@ -970,7 +1052,7 @@
 				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
 			,tips] 
 				($(\dynkin at root@name \the\@toRoot)$)%
-				arc (315:360:{\dynkin at fold@radius});%
+				arc (-90:-45:{\dynkin at fold@radius});%
 		\else%
 			\path[
 			-{Computer Modern Rightarrow[\dynkin at arrow@color]},
@@ -990,6 +1072,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinDefiniteDoubleLeftUpArc{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -999,16 +1082,15 @@
 		\@toRoot=#4%
 	}%
 	\begin{scope}[on background layer]%
-		\draw[/Dynkin diagram,/Dynkin diagram/edge,double,fill=none,#2]%
+		\draw[/Dynkin diagram,edge,double,fill=none,#2]%
 			($(\dynkin at root@name \the\@fromRoot)$)%
 			arc (-90:-180:{\dynkin at fold@radius}) -- ($(\dynkin at root@name \the\@toRoot)$);%
 		\ifdynkin at arrows%
 			\ifdynkin at reverse@arrows%
-				\path[/Dynkin diagram,edge
-				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
+				\path[-{Computer Modern Rightarrow[\dynkin at arrow@color]},
 				,tips] 
 					($(\dynkin at root@name \the\@toRoot)$)%
-					arc (-135:-90:\dynkin at fold@radius);%
+					arc (-180:-135:\dynkin at fold@radius);%
 			\else%
 				\path[,
 				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
@@ -1027,6 +1109,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinDefiniteDoubleDownRightSemiCircle{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -1036,7 +1119,7 @@
 		\@toRoot=#4%
 	}%
 	\begin{scope}[on background layer]%
-		\draw[/Dynkin diagram,/Dynkin diagram/edge,double,fill=none,#2]%
+		\draw[/Dynkin diagram,edge,double,fill=none,#2]%
 			($(\dynkin at root@name \the\@fromRoot)$)%
 			arc (90:-90:{\dynkin at fold@radius}) -- ($(\dynkin at root@name \the\@toRoot)$);%
 		\ifdynkin at arrows%
@@ -1045,7 +1128,7 @@
 				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
 				,tips] 
 					($(\dynkin at root@name \the\@toRoot)$)%
-					arc (0:90:\dynkin at fold@radius);%
+					arc (-90:0:\dynkin at fold@radius);%
 			\else%
 				\path[
 				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
@@ -1066,6 +1149,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinDefiniteTripleDownRightSemiCircle{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -1075,10 +1159,10 @@
 		\@toRoot=#4%
 	}%
 	\begin{scope}[on background layer]%
-		\draw[/Dynkin diagram,/Dynkin diagram/edge,double,double distance=\dynkin at root@radius,fill=none,#2]%
+		\draw[/Dynkin diagram,edge,double,double distance=\dynkin at root@radius,fill=none,#2]%
 			($(\dynkin at root@name \the\@fromRoot)$)%
 			arc (90:-90:{\dynkin at fold@radius}) -- ($(\dynkin at root@name \the\@toRoot)$);%
-		\draw[/Dynkin diagram,/Dynkin diagram/edge,fill=none,#2]%
+		\draw[/Dynkin diagram,edge,fill=none,#2]%
 			($(\dynkin at root@name \the\@fromRoot)$)%
 			arc (90:-90:{\dynkin at fold@radius}) -- ($(\dynkin at root@name \the\@toRoot)$);%
 		\ifdynkin at arrows%
@@ -1087,7 +1171,7 @@
 				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
 				,tips] 
 					($(\dynkin at root@name \the\@toRoot)$)%
-					arc (0:90:\dynkin at fold@radius);%
+					arc (-90:0:\dynkin at fold@radius);%
 			\else%
 				\path[
 				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
@@ -1108,6 +1192,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinDefiniteDoubleUpRightSemiCircle{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -1117,7 +1202,7 @@
 		\@toRoot=#4%
 	}%
 	\begin{scope}[on background layer]%
-		\draw[/Dynkin diagram,/Dynkin diagram/edge,double,fill=none,#2]%
+		\draw[/Dynkin diagram,edge,double,fill=none,#2]%
 			($(\dynkin at root@name \the\@fromRoot)$)%
 			arc (-90:90:{\dynkin at fold@radius}) -- ($(\dynkin at root@name \the\@toRoot)$);%
 		\ifdynkin at arrows%
@@ -1126,7 +1211,7 @@
 				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
 				,tips] 
 					($(\dynkin at root@name \the\@toRoot)$)%
-					arc (0:-90:\dynkin at fold@radius);%
+					arc (90:0:\dynkin at fold@radius);%
 			\else%
 				\path[
 				-{Computer Modern Rightarrow[\dynkin at arrow@color]},
@@ -1145,6 +1230,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinEdge{sO{}mmm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#4}{#5}%
@@ -1170,6 +1256,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinEdgeArrow{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\ifdynkin at arrows%
 		\IfBooleanTF{#1}%
 		{%
@@ -1199,11 +1286,51 @@
 	\fi%
 }%
 
+\NewDocumentCommand\dynkinKacDoubleArrow{O{}mm}%
+{%
+	\draw[arrows = {-{Triangle Cap[length=.8mm,fill=white]}},%
+		/Dynkin diagram,edge,	double=white,fill=white,double distance=1.8pt,#1]%
+		(\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]%
+		(\dynkin at root@name \the#2)--(\dynkin at root@name \the#3);%
+}%
+
+\NewDocumentCommand\dynkinKacTripleArrow{O{}mm}%
+{%
+	\draw[arrows = {-{Triangle Cap[length=.8mm,fill=white]}},%
+		/Dynkin diagram,edge,double=white,fill=white,double distance=1.8pt,#1]%
+		(\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]%
+		(\dynkin at root@name \the#2)--(\dynkin at root@name \the#3);%
+	\draw[/Dynkin diagram,edge,shorten >=1.1mm,#1]%
+		(\dynkin at root@name \the#2)--(\dynkin at root@name \the#3);%
+}%
+
+\NewDocumentCommand\dynkinKacQuadrupleArrow{O{}mm}%
+{%
+	\draw[arrows = {-{Triangle Cap[length=1.127mm,fill=white]}},%
+		/Dynkin diagram,edge,double=white,fill=white,shorten >=1mm,shorten <=1mm, double distance=3.6pt,#1]%
+		(\dynkin at root@name \the#2)--(\dynkin at root@name \the#3);%
+	\draw[arrows = {-{Classical TikZ Rightarrow[length=1.2mm]}},%
+		/Dynkin diagram,edge,double distance=3.6pt,shorten <=.83mm,#1]%
+		(\dynkin at root@name \the#2)--(\dynkin at root@name \the#3);%
+	\draw[arrows = {-{Classical TikZ Rightarrow[length=1.2mm]}},%
+		/Dynkin diagram,edge,double distance=1.2pt,shorten <= .83mm,
+		#1]%
+		(\dynkin at root@name \the#2)--(\dynkin at root@name \the#3);%
+}%
+
+\newcount\onesbit%
+\newcount\twosbit%
+
 %% \dynkinDefiniteDoubleEdge{<p>}{<q>}
 %% Draws an oriented double line from root <p> to root <q> on the current Dynkin diagram.
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinDefiniteDoubleEdge{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -1212,8 +1339,6 @@
 		\@fromRoot=#3%
 		\@toRoot=#4%
 	}%
-	\newcount\onesbit%
-	\newcount\twosbit%
 	\StrChar{\dynkin at roots}{\the\@fromRoot}[\my at root@marker]%
 	\IfStrEq{\my at root@marker}{x}%
 	{%
@@ -1230,25 +1355,50 @@
 	{%
 		\global\twosbit=0%
 	}%
-	\def\LL{.5*\dynkin at root@radius}
-	\begin{scope}[on background layer]%
-		\draw[/Dynkin diagram,/Dynkin diagram/edge,#2]%
-			($(\dynkin at root@name \the\@fromRoot)$)%
-			--%
-			+({\the\onesbit*\LL},{\LL})%
-			--%
-			($(\dynkin at root@name \the\@toRoot)+(-\the\twosbit*\LL,\LL)$)%
-			--%
-			($(\dynkin at root@name \the\@toRoot)$)%
-			--%
-			($(\dynkin at root@name \the\@toRoot)-(\the\twosbit*\LL,\LL)$)%
-			--%
-			($(\dynkin at root@name \the\@fromRoot)+(\the\onesbit*\LL,-\LL)$)%
-			--%
-			cycle;%
-	\end{scope}%
-	\ifdynkin at arrows%
-		\dynkinEdgeArrow[#2]{\the\@fromRoot}{\the\@toRoot}%
+	\ifdynkin at Kac@arrows
+		\begin{scope}[on background layer]%
+			\ifdynkin at arrows%
+				\ifdynkin at reverse@arrows
+					\ifdynkin at is@backwards
+						\dynkinKacDoubleArrow[#2]{\@fromRoot}{\@toRoot}
+					\else%
+						\dynkinKacDoubleArrow[#2]{\@toRoot}{\@fromRoot}
+					\fi%
+				\else%
+					\ifdynkin at is@backwards
+						\dynkinKacDoubleArrow[#2]{\@toRoot}{\@fromRoot}
+					\else%
+						\dynkinKacDoubleArrow[#2]{\@fromRoot}{\@toRoot}
+					\fi%
+				\fi%
+			\else%
+				\draw[/Dynkin diagram,edge,double distance=3pt,#2]%
+					(\dynkin at root@name \the\@fromRoot)%
+					--%
+					(\dynkin at root@name \the\@toRoot);%
+			\fi%
+		\end{scope}%
+	\else
+		\def\LL{.5*\dynkin at root@radius}
+		\begin{scope}[on background layer]%
+			\draw[/Dynkin diagram,edge,#2]%
+				($(\dynkin at root@name \the\@fromRoot)$)%
+				--%
+				+({\the\onesbit*\LL},{\LL})%
+				--%
+				($(\dynkin at root@name \the\@toRoot)+(-\the\twosbit*\LL,\LL)$)%
+				--%
+				($(\dynkin at root@name \the\@toRoot)$)%
+				--%
+				($(\dynkin at root@name \the\@toRoot)-(\the\twosbit*\LL,\LL)$)%
+				--%
+				($(\dynkin at root@name \the\@fromRoot)+(\the\onesbit*\LL,-\LL)$)%
+				--%
+				cycle;%
+		\end{scope}%
+		\ifdynkin at arrows%
+			\dynkinEdgeArrow[#2]{\the\@fromRoot}{\the\@toRoot}%
+		\fi%
 	\fi%
 }%
 
@@ -1257,6 +1407,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinTripleEdge{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -1265,8 +1416,6 @@
 		\@fromRoot=#3%
 		\@toRoot=#4%
 	}%
-	\newcount\onesbit
-	\newcount\twosbit
 	\StrChar{\dynkin at roots}{\the\@fromRoot}[\my at root@marker]%
 	\IfStrEq{\my at root@marker}{x}%
 	{%
@@ -1283,28 +1432,57 @@
 	{%
 		\global\twosbit=0%
 	}%
-	\begin{scope}[on background layer]%
-		\draw[/Dynkin diagram,/Dynkin diagram/edge,#2]%
-			($(\dynkin at root@name \the\@fromRoot)$)%
-			--%
-			+({\the\onesbit*\dynkin at root@radius},{\dynkin at root@radius})%
-			--%
-			($(\dynkin at root@name \the\@toRoot)+(-\twosbit*\dynkin at root@radius,\dynkin at root@radius)$)%
-			--%
-			($(\dynkin at root@name \the\@toRoot)$)%
-			--%
-			($(\dynkin at root@name \the\@toRoot)-(\twosbit*\dynkin at root@radius,\dynkin at root@radius)$)%
-			--%
-			($(\dynkin at root@name \the\@fromRoot)+(\onesbit*\dynkin at root@radius,-\dynkin at root@radius)$)%
-			--%
-			cycle;%
-		\draw[/Dynkin diagram,/Dynkin diagram/edge,#2] 
-			($(\dynkin at root@name \the\@fromRoot)$) 
-			-- 
-			($(\dynkin at root@name \the\@toRoot)$);%
-	\end{scope}%
-	\ifdynkin at arrows%
-		\dynkinEdgeArrow[#2]{\the\@fromRoot}{\the\@toRoot}%
+	\ifdynkin at Kac@arrows
+		\begin{scope}[on background layer]%
+			\ifdynkin at arrows%
+				\ifdynkin at reverse@arrows
+					\ifdynkin at is@backwards
+						\dynkinKacTripleArrow[#2]{\@fromRoot}{\@toRoot}
+					\else%
+						\dynkinKacTripleArrow[#2]{\@toRoot}{\@fromRoot}
+					\fi%
+				\else%
+					\ifdynkin at is@backwards
+						\dynkinKacTripleArrow[#2]{\@toRoot}{\@fromRoot}
+					\else%
+						\dynkinKacTripleArrow[#2]{\@fromRoot}{\@toRoot}
+					\fi%
+				\fi%
+			\else%
+				\draw[/Dynkin diagram,edge,double distance=3pt,#2]%
+					(\dynkin at root@name \the\@fromRoot)%
+					--%
+					(\dynkin at root@name \the\@toRoot);%
+				\draw[/Dynkin diagram,edge,#2]%
+					(\dynkin at root@name \the\@fromRoot)%
+					--%
+					(\dynkin at root@name \the\@toRoot);%
+			\fi%
+		\end{scope}%
+	\else
+		\begin{scope}[on background layer]%
+			\draw[/Dynkin diagram,edge,#2]%
+				($(\dynkin at root@name \the\@fromRoot)$)%
+				--%
+				+({\the\onesbit*\dynkin at root@radius},{\dynkin at root@radius})%
+				--%
+				($(\dynkin at root@name \the\@toRoot)+(-\twosbit*\dynkin at root@radius,\dynkin at root@radius)$)%
+				--%
+				($(\dynkin at root@name \the\@toRoot)$)%
+				--%
+				($(\dynkin at root@name \the\@toRoot)-(\twosbit*\dynkin at root@radius,\dynkin at root@radius)$)%
+				--%
+				($(\dynkin at root@name \the\@fromRoot)+(\onesbit*\dynkin at root@radius,-\dynkin at root@radius)$)%
+				--%
+				cycle;%
+			\draw[/Dynkin diagram,edge,#2] 
+				($(\dynkin at root@name \the\@fromRoot)$) 
+				-- 
+				($(\dynkin at root@name \the\@toRoot)$);%
+		\end{scope}%
+		\ifdynkin at arrows%
+			\dynkinEdgeArrow[#2]{\the\@fromRoot}{\the\@toRoot}%
+		\fi%
 	\fi%
 }%
 
@@ -1315,6 +1493,7 @@
 %% The starred form accepts <p> and <q> in the Bourbaki ordering.
 \NewDocumentCommand\dynkinQuadrupleEdge{sO{}mm}%
 {%
+	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#4}%
@@ -1323,29 +1502,51 @@
 		\@fromRoot=#3%
 		\@toRoot=#4%
 	}%
-	\begin{scope}[on background layer]%
-		\draw[%	
-			/Dynkin diagram,
-			/Dynkin diagram/edge,
-			#2,
-			]%
-			($(\dynkin at root@name \the\@fromRoot)+(0,\dynkin at root@radius)$)--%
-			($(\dynkin at root@name \the\@toRoot)+(0,\dynkin at root@radius)$)--%
-			($(\dynkin at root@name \the\@toRoot)+(0,-\dynkin at root@radius)$)--%
-			($(\dynkin at root@name \the\@fromRoot)+(0,-\dynkin at root@radius)$)--%
-			cycle;
-		\draw[%	
-			/Dynkin diagram,/Dynkin diagram/edge,
-			#2,
-			]%
-			($(\dynkin at root@name \the\@fromRoot)+(0,\dynkin at root@radius/3)$)--%
-			($(\dynkin at root@name \the\@toRoot)+(0,\dynkin at root@radius/3)$)--%
-			($(\dynkin at root@name \the\@toRoot)+(0,-\dynkin at root@radius/3)$)--%
-			($(\dynkin at root@name \the\@fromRoot)+(0,-\dynkin at root@radius/3)$)--%
-			cycle;
-	\end{scope}%
-	\ifdynkin at arrows%
-		\dynkinEdgeArrow[#2]{\the\@fromRoot}{\the\@toRoot}%
+	\ifdynkin at Kac@arrows
+		\begin{scope}[on background layer]%
+			\ifdynkin at arrows%
+				\ifdynkin at reverse@arrows
+					\ifdynkin at is@backwards
+						\dynkinKacQuadrupleArrow[#2]{\@fromRoot}{\@toRoot}
+					\else%
+						\dynkinKacQuadrupleArrow[#2]{\@toRoot}{\@fromRoot}
+					\fi%
+				\else%
+					\ifdynkin at is@backwards
+						\dynkinKacQuadrupleArrow[#2]{\@toRoot}{\@fromRoot}
+					\else%
+						\dynkinKacQuadrupleArrow[#2]{\@fromRoot}{\@toRoot}
+					\fi%
+				\fi%
+			\else%
+				\draw[/Dynkin diagram,edge,double distance=3pt,#2]%
+					(\dynkin at root@name \the\@fromRoot)%
+					--%
+					(\dynkin at root@name \the\@toRoot);%
+				\draw[/Dynkin diagram,edge,#2]%
+					(\dynkin at root@name \the\@fromRoot)%
+					--%
+					(\dynkin at root@name \the\@toRoot);%
+			\fi%
+		\end{scope}%
+	\else
+		\begin{scope}[on background layer]%
+			\draw[/Dynkin diagram,edge,#2]%
+				($(\dynkin at root@name \the\@fromRoot)+(0,\dynkin at root@radius)$)--%
+				($(\dynkin at root@name \the\@toRoot)+(0,\dynkin at root@radius)$)--%
+				($(\dynkin at root@name \the\@toRoot)+(0,-\dynkin at root@radius)$)--%
+				($(\dynkin at root@name \the\@fromRoot)+(0,-\dynkin at root@radius)$)--%
+				cycle;
+			\draw[/Dynkin diagram,edge,#2]%
+				($(\dynkin at root@name \the\@fromRoot)+(0,\dynkin at root@radius/3)$)--%
+				($(\dynkin at root@name \the\@toRoot)+(0,\dynkin at root@radius/3)$)--%
+				($(\dynkin at root@name \the\@toRoot)+(0,-\dynkin at root@radius/3)$)--%
+				($(\dynkin at root@name \the\@fromRoot)+(0,-\dynkin at root@radius/3)$)--%
+				cycle;
+		\end{scope}%
+		\ifdynkin at arrows%
+			\dynkinEdgeArrow[#2]{\the\@fromRoot}{\the\@toRoot}%
+		\fi%
 	\fi%
 }%
 
@@ -1411,6 +1612,12 @@
 \def\dynkin at series{A}
 % Which series of root system: A,B,C,D,E,F,G
 
+\def\dynkin at label@list{}
+% List of labels for the roots.
+
+\def\dynkin at label@list at star{}
+% List of alternate labels for the roots.
+
 \newcount\dynkin at rank
 % Which rank of root system: 1,2,...
 
@@ -1417,6 +1624,12 @@
 \newcount\dynkin at nodes
 % How many nodes (besides the zero node for affine diagrams) are there?
 
+\newif\ifdynkin at is@backwards
+% Are we drawing this thing in a reverse direction?
+
+\newif\ifdynkin at is@upsidedown
+% Are we drawing this thing in a reverse direction?
+
 \newif\ifdynkin at is@extended
 % Is this an extended extended root system?
 
@@ -1444,6 +1657,9 @@
 \newif\ifdynkin at Coxeter
 % Should we draw Coxeter diagrams?
 
+\newif\ifdynkin at Kac@arrows
+% Should we draw arrows following Kac?
+
 \newif\ifdynkin at odd
 % For twisted A series diagrams, is the rank odd?
 
@@ -1454,8 +1670,11 @@
 % Default maximum number of nodes arranged vertically in the folding of the Dynkin diagram
 
 \def\dynkin at label@directions{}
-% List of directions in which to draw the labels attached to the roots: a=above, b=below, l=left, r=right.
+% List of directions in which to draw the labels attached to the roots.
 
+\def\dynkin at label@directions at star{}
+% List of directions in which to draw the labels attached to the roots, for alternate labels.
+
 \def\dynkin at current@location{(0,0)}
 
 \def\dynkin at arrow@color{}
@@ -1469,26 +1688,30 @@
 	name = anonymous,
 	mark/.estore in = \dynkin at root@mark,
 	mark = *,
-	affineMark/.estore in = \dynkin at affine@root at mark,
-	affineMark = o,
-	edgeLength/.estore in = \dynkin at edge@length,
-	edgeLength = .35cm,
+	affine mark/.estore in = \dynkin at affine@root at mark,
+	affine mark = o,
+	edge length/.estore in = \dynkin at edge@length,
+	edge length = .35cm,
 	edge/.style={draw=black,fill=white,thin},
-	makeIndefiniteEdge/.code={\dynkin at set@edge at indefinite@pair{#1}},
-	indefiniteEdgeRatio/.estore in = \dynkin at indefinite@edge at ratio,
-	indefiniteEdgeRatio = 1.6,
-	indefiniteEdge/.style={draw=black,fill=white,thin,densely dotted},
+	make indefinite edge/.code={\dynkin at set@edge at indefinite@pair{#1}},
+	indefinite edge ratio/.estore in = \dynkin at indefinite@edge at ratio,
+	indefinite edge ratio = 1.6,
+	indefinite edge/.style={draw=black,fill=white,thin,densely dotted},
+	backwards/.is if = dynkin at is@backwards,
+	backwards = false,
+	upside down/.is if = dynkin at is@upsidedown,
+	upside down = false,
 	arrows/.is if = dynkin at arrows,
 	arrows = true,
-	reverseArrows/.is if = dynkin at reverse@arrows,
-	reverseArrows = false,
-	foldStyle/.style = {draw=black!40,fill=none,line width=\dynkin at root@radius},
-	leftFold/.style = {},
-	rightFold/.style = {},
-	arrowColor/.estore in = \dynkin at arrow@color,
-	arrowColor=black,
-	doubleEdges/.style = {
-	 	foldStyle/.style = {
+	reverse arrows/.is if = dynkin at reverse@arrows,
+	reverse arrows = false,
+	fold style/.style = {draw=black!40,fill=none,line width=\dynkin at root@radius},
+	fold left style/.style = {},
+	fold right style/.style = {},
+	arrow color/.estore in = \dynkin at arrow@color,
+	arrow color = black,
+	double edges/.style = {
+	 	fold style/.style = {
 	 		draw=black,
 	 		double=white,
 	 		fill=none,
@@ -1495,8 +1718,8 @@
 	 		double distance=\dynkin at root@radius,
 	 		line width=\defaultpgflinewidth}
 	},
-	doubleFold/.style = {
-	 	foldStyle/.style = {
+	double fold/.style = {
+	 	fold style/.style = {
 	 		draw=black,
 	 		double=black!40,
 	 		fill=none,
@@ -1503,8 +1726,8 @@
 	 		double distance=\dynkin at root@radius,
 	 		line width=\defaultpgflinewidth}
 	},
-	doubleLeft/.style = {
-	 	leftFold/.style = {
+	double left/.style = {
+	 	fold left style/.style = {
 	 		draw=black,
 	 		double=white,
 	 		fill=none,
@@ -1511,8 +1734,8 @@
 	 		double distance=\dynkin at root@radius,
 	 		line width=\defaultpgflinewidth}
 	 	},
-	doubleFoldLeft/.style = {
-	 	leftFold/.style = {
+	double fold left/.style = {
+	 	fold left style/.style = {
 	 		draw=black,
 	 		double=black!40,
 	 		fill=none,
@@ -1519,8 +1742,8 @@
 	 		double distance=\dynkin at root@radius,
 	 		line width=\defaultpgflinewidth}
 	 	},
-	doubleRight/.style = {
-	 	rightFold/.style = {
+	double right/.style = {
+	 	fold right style/.style = {
 	 		draw=black,
 	 		double=white,
 	 		fill=none,
@@ -1527,8 +1750,8 @@
 	 		double distance=\dynkin at root@radius,
 	 		line width=\defaultpgflinewidth}
 	 	},
-	doubleFoldRight/.style = {
-	 	rightFold/.style = {
+	double fold right/.style = {
+	 	fold right style/.style = {
 	 		draw=black,
 	 		double=black!40,
 	 		fill=none,
@@ -1535,10 +1758,10 @@
 	 		double distance=\dynkin at root@radius,
 	 		line width=\defaultpgflinewidth}
 	 	},
-	radius/.estore in = \dynkin at root@radius,
-	radius=.05cm,
-	foldradius/.estore in = \dynkin at fold@radius,
-	foldradius=.3cm,
+	root radius/.estore in = \dynkin at root@radius,
+	root radius=.05cm,
+	fold radius/.estore in = \dynkin at fold@radius,
+	fold radius=.3cm,
 	*/.style = {
 		draw=black,
 		fill=black,
@@ -1549,7 +1772,8 @@
 	},
 	X/.style = {
 		draw=black, 
-		thick
+		very thick,
+		line cap=round
 	},
 	o/.style = {
 		draw=black,
@@ -1560,7 +1784,9 @@
 		fill=white,
 	},
 	x/.style = {
+		thick,
 		draw=black,
+		line cap=round		
 	},
 	Coxeter/.is if = dynkin at Coxeter,
 	Coxeter=false,
@@ -1567,29 +1793,30 @@
 	ordering/.store in = \dynkin at ordering,
 	ordering = Bourbaki,
     text/.style={scale=.7},
-	labelMacro/.code = {\regurgitate{#1}},
+	label macro/.code = {\regurgitate{#1}},
+	label macro*/.code = {\regurgitate{#1}},
+ 	labels/.store in = \dynkin at label@list,
+ 	labels*/.store in = \dynkin at label@list at star,
 	odd/.is if = dynkin at odd,
 	odd=false,
+	Kac arrows/.is if = dynkin at Kac@arrows,
+	Kac arrows=false,
 	Kac/.style={
+		Kac arrows=true,
 		ordering=Kac,
-		radius=.05cm,
-		edgeLength=.66cm,
-		indefiniteEdgeRatio = 3,
-		o/.style = 
-			{
-			draw=black,
-			fill=white,
-			preaction={
-						draw=white,
-						line width=.9mm
-					}
-			},
+		root radius=.05cm,
+		edge length=.66cm,
+		indefinite edge ratio = 3,
+		edge/.style={draw=black,fill=white,thin,shorten <=1mm,shorten >=1mm},
+		fold style/.style = {draw=black!40,fill=none,line width=\dynkin at root@radius,shorten <=1mm,shorten >=1mm},
 		mark=o,
-		indefiniteEdge/.style={draw=black,fill=white,thin,loosely dotted},	
+		indefinite edge/.style={draw=black,fill=none,thin,loosely dotted},
 	},
  default/.style = {
  	label/.is if = dynkin at label@the at roots,
  	label = false,
+ 	labels = {},
+ 	labels* = {},
 	at/.estore in = \dynkin at current@location,
  	at = {(0,0)},
 	parabolic/.estore in = \dynkin at parabolic,
@@ -1600,15 +1827,15 @@
 	extended = false,
 	twisted/.is if = dynkin at is@twisted,
 	twisted = false,
-	twistedSeries/.estore in = \dynkin at twisted@series,
-	twistedSeries = 0,
+	twisted series/.estore in = \dynkin at twisted@series,
+	twisted series = 0,
 	ply/.estore in = \dynkin at ply@value,
 	ply = 1,
 	fold/.style = {ply=2},
-	foldleft/.is if = dynkin at left@fold,
-	foldleft = false,
-	foldright/.is if = dynkin at right@fold,
-	foldright = false,
+	fold left/.is if = dynkin at left@fold,
+	fold left = false,
+	fold right/.is if = dynkin at right@fold,
+	fold right = false,
   	},
 	.search also={/tikz},
 }
@@ -1615,31 +1842,56 @@
 
 \ProcessPgfPackageOptions{/Dynkin diagram}\relax
 
-%% \dynkin at put@direction{<r>}{<d>}
-%% Assigns to \dynkin at label@directions the direction that the label of root <r> (in default ordering) should sit from the root node location, <d>=left, right, above, below or diagonal.
-\NewDocumentCommand\dynkin at put@direction{mm}%
+\newcount\drpo%
+\newcount\dynkin at where%
+
+%% \dynkin at put@direction{<r>}{<d>}{<d*>}
+%% Assigns to \dynkin at label@directions or \dynkin at label@directions at star the direction that the label of root <r> (in default ordering) should sit from the root node location, <d>=0,1,2,3,4,5,6,7 to indicate direction in multiples of 45 degrees
+\NewDocumentCommand\dynkin at put@direction{smm}%
 {%
-	\newcount\drpo%
 	\drpo=\the\dynkin at nodes%
 	\advance\drpo by 1%
-	\newcount\dynkin at where%
-	\dynkin at where=#1%
-	\StrMid{\dynkin at label@directions}{1}{\the\dynkin at where}[\dynkin at start]%
-	\advance\dynkin at where by 2
-	\StrMid{\dynkin at label@directions}{\the\dynkin at where}{\the\drpo}[\dynkin at end]%
-	\IfStrEqCase{#2}{%
-		{left}{\xdef\dynkin at label@directions{\dynkin at start l\dynkin at end}}%
-		{right}{\xdef\dynkin at label@directions{\dynkin at start r\dynkin at end}}%
-		{above}{\xdef\dynkin at label@directions{\dynkin at start a\dynkin at end}}%
-		{below}{\xdef\dynkin at label@directions{\dynkin at start b\dynkin at end}}%
-		{diagonal}{\xdef\dynkin at label@directions{\dynkin at start d\dynkin at end}}%
+	\dynkin at where=#2%
+	\IfBooleanTF{#1}%
+	{%
+		\StrMid{\dynkin at label@directions at star}{1}{\the\dynkin at where}[\dynkin at start]%
+		\advance\dynkin at where by 2
+		\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}}%
+			{above right}{\xdef\dynkin at label@directions at star{\dynkin at start 1\dynkin at end}}%
+			{above}{\xdef\dynkin at label@directions at star{\dynkin at start 2\dynkin at end}}%
+			{above left}{\xdef\dynkin at label@directions at star{\dynkin at start 3\dynkin at end}}%
+			{left}{\xdef\dynkin at label@directions at star{\dynkin at start 4\dynkin at end}}%
+			{below left}{\xdef\dynkin at label@directions at star{\dynkin at start 5\dynkin at end}}%
+			{below}{\xdef\dynkin at label@directions at star{\dynkin at start 6\dynkin at end}}%
+			{below right}{\xdef\dynkin at label@directions at star{\dynkin at start 7\dynkin at end}}%
+		}%
+		[\ClassError{Dynkin diagrams}%
+			{Unrecognized direction: ``#2'' in Dynkin diagram \dynkin at user@series{\dynkin at user@string}}{}]%
 	}%
-	[\ClassError{Dynkin diagrams}{Unrecognized direction: ``#2'' in Dynkin diagram \dynkin at user@series{\dynkin at user@string}}{}]%
+	{%
+		\StrMid{\dynkin at label@directions}{1}{\the\dynkin at where}[\dynkin at start]%
+		\advance\dynkin at where by 2
+		\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}}%
+			{above right}{\xdef\dynkin at label@directions{\dynkin at start 1\dynkin at end}}%
+			{above}{\xdef\dynkin at label@directions{\dynkin at start 2\dynkin at end}}%
+			{above left}{\xdef\dynkin at label@directions{\dynkin at start 3\dynkin at end}}%
+			{left}{\xdef\dynkin at label@directions{\dynkin at start 4\dynkin at end}}%
+			{below left}{\xdef\dynkin at label@directions{\dynkin at start 5\dynkin at end}}%
+			{below}{\xdef\dynkin at label@directions{\dynkin at start 6\dynkin at end}}%
+			{below right}{\xdef\dynkin at label@directions{\dynkin at start 7\dynkin at end}}%
+		}%
+		[\ClassError{Dynkin diagrams}%
+			{Unrecognized direction: ``#2'' in Dynkin diagram \dynkin at user@series{\dynkin at user@string}}{}]%
+	}%
 }%
 
 
-\xdef\replace at DR{}
-
+%\xdef\replace at DR{}
+%
 % \expand at Dynkin@Roots at By@Char{<c>}, 
 % for example if <c> is the letter x, expands out any expression like 
 % x7 in \dynkin at string into 7 copies of the letter x.
@@ -1735,12 +1987,14 @@
 {%
 	\xdef\dynkin at indefinite@edge at list{}%
 }%
+%
 
+\newcount\first%
+\newcount\second%
+
 \NewDocumentCommand\dynkin at set@edge at indefinite{mm}%
 {%
-	\newcount\first%
 	\first=#1\relax%
-	\newcount\second%
 	\second=#2\relax%
 	\ifnum\the\first<\the\second%
 		\listxadd\dynkin at indefinite@edge at list{\the\first,\the\second}%
@@ -1777,9 +2031,7 @@
 		\@toRoot=#3%
 	}%
 	% Next we sort the order, since edges are stored as undirected edges.
-	\newcount\first%
 	\global\first=\@fromRoot\relax%
-	\newcount\second%
 	\global\second=\@toRoot\relax%
 	\ifnum\the\second<\the\first%
 		\global\first=\@toRoot\relax%
@@ -1793,13 +2045,16 @@
 	\dolistloop{\dynkin at indefinite@edge at list}%
 }%
 
+
+\newcount\rootnum
+\newcount\dynkin at string@length
+\newcount\rootnumpo%
+
 % \dynkin at grok@indefinite at edges{} reads the input string <s> found when you write \dynkin{<c>}{<s>}, and
 % interprets it to say which edges are indefinite edges.
 \NewDocumentCommand\dynkin at grok@indefinite at edges{}%
 {%
-	\newcount\rootnum
 	\rootnum=1
-	\newcount\dynkin at string@length
 	\StrLen{\dynkin at string}[\temp]%
 	\dynkin at string@length=\temp
 	\foreach \i in {2,...,\the\dynkin at string@length}%
@@ -1807,7 +2062,6 @@
 		\StrChar{\dynkin at string}{\i}[\c]%
 		\IfStrEq{\c}{.}%
 		{%
-			\newcount\rootnumpo%
 			\rootnumpo=\rootnum%
 			\advance\rootnumpo by 1\relax%
 			\ifnum\the\rootnum<\the\dynkin at nodes%
@@ -1827,38 +2081,53 @@
 \NewDocumentCommand\dynkin at clear@label at directions{}%
 {%
 	\xdef\dynkin at label@directions{}%
+	\xdef\dynkin at label@directions at star{}%
 }%
 
 
 \NewDocumentCommand\dynkin at set@default at label@directions{}%
 {%
-	\newcount\drpo%
+%	\newcount\drpo%
 	\drpo=\the\dynkin at nodes%
 	\advance\drpo by 1\relax%
 	\xdef\dynkin at label@directions{\repeatCharacter{\the\drpo}{?}}%
+	\xdef\dynkin at label@directions at star{\repeatCharacter{\the\drpo}{?}}%
 }%
 
 \newlength{\defaultpgflinewidth}%
-
-
-% \@dynkin[<s>]{<X>}[<sb>]{<Y>}
-% Draws a complete Dynkin diagram of 
-% series <X> and 
-% subseries <sb>, 
-% described by the string <Y> 
-% with TikZ options specified by <s>.
+%
+%
+%% \@dynkin[<s>]{<X>}[<sb>]{<Y>}
+%% Draws a complete Dynkin diagram of 
+%% series <X> and 
+%% subseries <sb>, 
+%% described by the string <Y> 
+%% with TikZ options specified by <s>.
 \NewDocumentCommand\@dynkin{O{}mO{0}m}%
 {%
+	\setcounter{dynkinRootNo}{0}%
 	\setlength{\defaultpgflinewidth}{\pgflinewidth}%
 	\global\defaultpgflinewidth=\defaultpgflinewidth\relax%
 	\dynkin at clear@indefinite at edge@list%
 	\xdef\dynkin at parabolic{0}%
 	\pgfkeys{/Dynkin diagram, default, #1}%
+	\ifdynkin at is@backwards%
+	  \tikzset{xscale=-1}%
+	\fi%
+	\ifdynkin at is@upsidedown%
+	  \tikzset{yscale=-1}%
+	\fi%
+	\IfStrEq{\dynkin at label@list\dynkin at label@list at star}{}%
+	{%
+	}%
+	{%
+		\global\dynkin at label@the at rootstrue%
+	}%
 	\xdef\dynkin at user@series{#2}%
 	\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}%
 	{%
@@ -1891,7 +2160,9 @@
 	\dynkin at cross@out at parabolics{}%
 	\dynkin at set@default at label@directions{}%
 	\check at Dynkin@diagram{}%
-	\node (Dynkin current) at \dynkin at current@location{};%
+	\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)$){};
 	\ifdynkin at is@twisted%
 		\csname twisted\dynkin at series dynkin\endcsname%
 	\else%
@@ -1903,7 +2174,7 @@
 	\fi%
 	\dynkinRefreshRoots%
 }%
-
+%
 %% We know the number of nodes; lets find the rank.
 \NewDocumentCommand\dynkin at find@rank{}%
 {%
@@ -1940,11 +2211,12 @@
 	\fi%
 }%
 
+\newcount\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{}%
 {%
-	\newcount\lenny
 	\StrLen{\dynkin at series}[\lenny]
 	\ifnum\lenny>1%
 		\dynkin at error@series%
@@ -1953,7 +2225,7 @@
 	\IfStrEqCase{\dynkin at twisted@series}%
 	{%
 		{0}{}%
-		{1}{	\global\dynkin at is@extendedtrue}%
+		{1}{ \global\dynkin at is@extendedtrue}%
 		{2}{%
 			\IfSubStr{ADE}{\dynkin at series}%
 			{%
@@ -2150,6 +2422,15 @@
 	\fi%
 }%
 
+\NewDocumentCommand\dynkin at error@not at in@tikz{}
+{%
+	\ClassError%
+		{Dynkin diagrams}%
+		{Dynkin diagram macros called outside of tikz environment}%
+		{}%
+}%
+
+
 \NewDocumentCommand\dynkin at error@root at ordering{}
 {%
 	\ClassError%
@@ -2281,10 +2562,10 @@
 }%
 
 
-% A slight headache: all of the routines that draw Dynkin diagrams are written 
-% in Bourbaki ordering. We store the roots in the current ordering.
-% So when we draw edges, we need to convert from the Bourbaki ordering each time.
-% We store the conversions here.
+%% A slight headache: all of the routines that draw Dynkin diagrams are written 
+%% in Bourbaki ordering. We store the roots in the current ordering.
+%% So when we draw edges, we need to convert from the Bourbaki ordering each time.
+%% We store the conversions here.
 \newcount\RootNumber
 \newcount\@fromRoot
 \newcount\@toRoot
@@ -2329,10 +2610,10 @@
 			{%
 				{TestOrder}%
 				{%
-					\RootNumber=#1
-					\advance\RootNumber by 1
+					\global\RootNumber=#1
+					\global\advance\RootNumber by 1
 					\ifnum\RootNumber>\the\dynkin at rank%
-						\RootNumber=1%
+						\global\RootNumber=1%
 					\fi%
 				}%
 			}%
@@ -2344,7 +2625,16 @@
 			{%
 				{Adams}{\swapRootIfInLastTwoRoots{#1}}%
 				{Dynkin}{\swapRootIfInLastTwoRoots{#1}}%
-				{Kac}{\swapRootIfInLastTwoRoots{#1}}%
+				{Kac}{%
+					\ifdynkin at is@twisted
+						\global\RootNumber=#1
+					\else
+						\ifdynkin at is@extended
+							\global\RootNumber=#1
+						\else
+							\swapRootIfInLastTwoRoots{#1}
+						\fi
+					\fi}%
 			}%
 			[\global\RootNumber=#1]%
 		}%
@@ -2415,9 +2705,9 @@
 \NewDocumentCommand\convertRootPair{mm}
 {%
 	\convertRootNumber{#1}%
-	\@fromRoot=\RootNumber%
+	\global\@fromRoot=\RootNumber%
 	\convertRootNumber{#2}%
-	\@toRoot=\RootNumber%
+	\global\@toRoot=\RootNumber%
 }%
 
 \ExplSyntaxOn
@@ -2484,14 +2774,16 @@
 	\node (Dynkin current) at (\dynkin at root@name \the\RootNumber){};%
 }%
 
-%% \dynkinPlaceRootHere{<n>}{<L>}
-%% \dynkinPlaceRootHere*{<n>}{<L>}
+%% \dynkinPlaceRootHere{<n>}{<L>}{<L*>}
+%% \dynkinPlaceRootHere*{<n>}{<L>}{<L*>}
 %% Tell TikZ to place node <n> for a root of a Dynkin diagram at the current
 %% cursor location. Draws nothing.
-%% <L>=label positioning: above, below, left, right
+%% <L>=label positioning: above, below, left, right, above left, above right, below left, below right.
+%% <L*> similarly, the alternate label position.
 %% Starred form converts <n> from Bourbaki ordering to default ordering.
-\NewDocumentCommand\dynkinPlaceRootHere{smm}%
+\NewDocumentCommand\dynkinPlaceRootHere{smmm}%
 {%
+\xdef\yyyy{#2}
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootNumber{#2}%
@@ -2501,13 +2793,19 @@
 	}%
 	\node (\dynkin at root@name \the\RootNumber) at (Dynkin current) {};%
 	\dynkin at put@direction{\the\RootNumber}{#3}%
+	\dynkin at put@direction*{\the\RootNumber}{#4}%
 }%
 
-%% \dynkinPlaceRootRelativeTo{<p>}{<q>}{<d>}{<L>}
-%% \dynkinPlaceRootRelativeTo*{<p>}{<q>}{<d>}{<L>}
+
+\newif\ifdynkin at hex@grid
+\dynkin at hex@gridtrue
+
+%% \dynkinPlaceRootRelativeTo{<p>}{<q>}{<d>}{<L>}{<L*>}
+%% \dynkinPlaceRootRelativeTo*{<p>}{<q>}{<d>}{<L>}{<L*>}
 %% Tell TikZ to place node <p> for a root of a Dynkin diagram at a location
 %% in direction <d> from root <q>. Draws nothing.
-%% <L> is the label position: above, below, left, right.
+%% <L> is the label position: above, below, left, right, above left, above right, below left, below right.
+%% <L*> is the position of the alternate label similarly.
 %% <d> is the direction from <q>: 
 %% west,east,south,north,
 %% northeast,northwest,southeast,southwest,
@@ -2514,8 +2812,9 @@
 %% southfold,northfold,
 %% southeastfold,southwestfold,northeastfold,northwestfold.
 %% Starred form is in Bourbaki root ordering; otherwise default ordering.
-\NewDocumentCommand\dynkinPlaceRootRelativeTo{smmmm}%
+\NewDocumentCommand\dynkinPlaceRootRelativeTo{smmmmm}%
 {%
+\xdef\ssss{#2}
 	\IfBooleanTF{#1}%
 	{%
 		\convertRootPair{#3}{#2}%
@@ -2530,27 +2829,61 @@
 	\else
 		\xdef\dynkin at distance{\dynkin at edge@length}
 	\fi
-	\IfStrEqCase{#4}%
-	{%
-		{west}{\xdef\x{-\dynkin at distance}\xdef\y{0}}%
-		{east}{\xdef\x{\dynkin at distance}\xdef\y{0}}%
-		{south}{\xdef\x{0}\xdef\y{-\dynkin at distance}}%
-		{north}{\xdef\x{0}\xdef\y{\dynkin at distance}}%
-		{southeast}{\xdef\x{cos(-60)*\dynkin at distance}\xdef\y{sin(-60)*\dynkin at distance}}%
-		{southwest}{\xdef\x{cos(240)*\dynkin at distance}\xdef\y{sin(240)*\dynkin at distance}}%
-		{northeast}{\xdef\x{cos(60)*\dynkin at distance}\xdef\y{sin(60)*\dynkin at distance}}%
-		{northwest}{\xdef\x{cos(120)*\dynkin at distance}\xdef\y{sin(120)*\dynkin at distance}}%
-		{southeastfold}{\xdef\x{\dynkin at fold@radius}\xdef\y{-\dynkin at fold@radius}}%
-		{southwestfold}{\xdef\x{-\dynkin at fold@radius}\xdef\y{-\dynkin at fold@radius}}%
-		{northeastfold}{\xdef\x{\dynkin at fold@radius}\xdef\y{\dynkin at fold@radius}}%
-		{northwestfold}{\xdef\x{-\dynkin at fold@radius}\xdef\y{\dynkin at fold@radius}}%
-		{northfold}{\xdef\x{0}\xdef\y{2*\dynkin at fold@radius}}%
-		{southfold}{\xdef\x{0}\xdef\y{-2*\dynkin at fold@radius}}%
-	}%
-	\node (Dynkin current) at ($(\dynkin at root@name \the\@fromRoot)+({\x},{\y})$){};
-	\dynkinPlaceRootHere{\@toRoot}{#5}%
+	\ifdynkin at hex@grid
+		\IfStrEqCase{#4}%
+		{%
+			{west}{\xdef\xd{-\dynkin at distance}\xdef\yd{0}}%
+			{east}{\xdef\xd{\dynkin at distance}\xdef\yd{0}}%
+			{south}{\xdef\xd{0}\xdef\yd{-\dynkin at distance}}%
+			{north}{\xdef\xd{0}\xdef\yd{\dynkin at distance}}%
+			{southeast}{\xdef\xd{cos(-60)*\dynkin at distance}\xdef\yd{sin(-60)*\dynkin at distance}}%
+			{southwest}{\xdef\xd{cos(240)*\dynkin at distance}\xdef\yd{sin(240)*\dynkin at distance}}%
+			{northeast}{\xdef\xd{cos(60)*\dynkin at distance}\xdef\yd{sin(60)*\dynkin at distance}}%
+			{northwest}{\xdef\xd{cos(120)*\dynkin at distance}\xdef\yd{sin(120)*\dynkin at distance}}%
+			{southeastfold}{\xdef\xd{\dynkin at fold@radius}\xdef\yd{-\dynkin at fold@radius}}%
+			{southwestfold}{\xdef\xd{-\dynkin at fold@radius}\xdef\yd{-\dynkin at fold@radius}}%
+			{northeastfold}{\xdef\xd{\dynkin at fold@radius}\xdef\yd{\dynkin at fold@radius}}%
+			{northwestfold}{\xdef\xd{-\dynkin at fold@radius}\xdef\yd{\dynkin at fold@radius}}%
+			{northfold}{\xdef\xd{0}\xdef\yd{2*\dynkin at fold@radius}}%
+			{southfold}{\xdef\xd{0}\xdef\yd{-2*\dynkin at fold@radius}}%
+		}%
+	\else%
+		\IfStrEqCase{#4}%
+		{%
+			{west}{\xdef\xd{-\dynkin at distance}\xdef\yd{0}}%
+			{east}{\xdef\xd{\dynkin at distance}\xdef\yd{0}}%
+			{south}{\xdef\xd{0}\xdef\yd{-\dynkin at distance}}%
+			{north}{\xdef\xd{0}\xdef\yd{\dynkin at distance}}%
+			{southeast}{\xdef\xd{cos(-45)*\dynkin at distance}\xdef\yd{sin(-45)*\dynkin at distance}}%
+			{southwest}{\xdef\xd{cos(225)*\dynkin at distance}\xdef\yd{sin(225)*\dynkin at distance}}%
+			{northeast}{\xdef\xd{cos(45)*\dynkin at distance}\xdef\yd{sin(45)*\dynkin at distance}}%
+			{northwest}{\xdef\xd{cos(135)*\dynkin at distance}\xdef\yd{sin(135)*\dynkin at distance}}%
+			{southeastfold}{\xdef\xd{\dynkin at fold@radius}\xdef\yd{-\dynkin at fold@radius}}%
+			{southwestfold}{\xdef\xd{-\dynkin at fold@radius}\xdef\yd{-\dynkin at fold@radius}}%
+			{northeastfold}{\xdef\xd{\dynkin at fold@radius}\xdef\yd{\dynkin at fold@radius}}%
+			{northwestfold}{\xdef\xd{-\dynkin at fold@radius}\xdef\yd{\dynkin at fold@radius}}%
+			{northfold}{\xdef\xd{0}\xdef\yd{2*\dynkin at fold@radius}}%
+			{southfold}{\xdef\xd{0}\xdef\yd{-2*\dynkin at fold@radius}}%
+		}%
+	\fi
+	\node (Dynkin current) at ($(\dynkin at root@name \the\@fromRoot)+({\xd},{\yd})$){};
+	\dynkinPlaceRootHere{\the\@toRoot}{#5}{#6}%
 }%
 
+% Jump the current location by a certain multiple of the fold radius.
+\NewDocumentCommand\dynkin at jump{m}%
+{%
+\xdef\yj{#1*\dynkin at fold@radius}%
+\node (Dynkin current) at ($(Dynkin current)+(0,{\yj})$){};%
+}%
+
+% Jump the current location by a certain multiple of the edge radius multiplied by sin(60).
+\NewDocumentCommand\dynkin at hop{m}%
+{%
+\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.
@@ -2560,8 +2893,6 @@
 	\node (Dynkin current) at ($(Dynkin current)+({\distance},0)$) {};%
 }%
 
-
-
 %% \dynkinWest
 %% Moves the TikZ cursor one edge to the left.
 %% Starred form for an indefinite edge.
@@ -2677,7 +3008,6 @@
 	\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 
@@ -2701,25 +3031,29 @@
 	\fi%
 }%
 
-%% \dynkin at pipe{<f>}{<t>}{<D>}{<L>}
+\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.
 %% Assumes that the root <f> is already created as a node in TikZ, but the others are not.
-\NewDocumentCommand\dynkin at pipe{mmmm}%
+\NewDocumentCommand\dynkin at pipe{mmmmm}%
 {%
-	\newcount\start at root
-	\start at root=#1
-	\ifnum\start at root<#2%
-		\newcount\bmo
-		\bmo=#1
-		\newcount\fpo
-		\fpo=#1
-		\advance\fpo by 1
-		\foreach \b in {\the\fpo,...,#2}%
+	\start at pipe=#1
+	\pipe at end=#2
+	\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
+		\foreach \bpipe in {\the\pipefpo,...,\the\pipe at end}%
 		{%
-			\dynkinPlaceRootRelativeTo*{\b}{\the\bmo}{#3}{#4}%
-			\dynkinEdge*{SingleEdge}{\b}{\the\bmo}%
-			\global\advance\bmo by 1%
+			\dynkinPlaceRootRelativeTo*{\bpipe}{\the\pipebmo}{#3}{#4}{#5}%
+			\dynkinEdge*{SingleEdge}{\bpipe}{\the\pipebmo}%
+			\global\advance\pipebmo by 1%
 		}%
 	\fi%
 }%
@@ -2735,7 +3069,7 @@
 	\advance\h by #2%
 	\advance\h by -1%
 	\divide\h by 2%
-	\dynkin at pipe{#1}{\the\h}{east}{above}
+	\dynkin at pipe{#1}{\the\h}{east}{above}{below right}
 	\newcount\hpo
 	\hpo=\the\h
 	\advance\hpo by 1
@@ -2747,15 +3081,15 @@
 	\advance\nrts by -#1
 	\ifodd\nrts%
 		\global\advance\afterfold by 1
-		\dynkinPlaceRootRelativeTo*{\the\hpo}{\the\h}{southeastfold}{right}
+		\dynkinPlaceRootRelativeTo*{\the\hpo}{\the\h}{southeastfold}{right}{left}
 		\dynkinEdge*{RightDownArc}{\the\h}{\the\hpo}%
-		\dynkinPlaceRootRelativeTo*{\the\afterfold}{\the\hpo}{southwestfold}{below}
+		\dynkinPlaceRootRelativeTo*{\the\afterfold}{\the\hpo}{southwestfold}{below}{above right}
 		\dynkinEdge*{RightUpArc}{\the\afterfold}{\the\hpo}%
 	\else
-		\dynkinPlaceRootRelativeTo*{\the\afterfold}{\the\h}{southfold}{below}
+		\dynkinPlaceRootRelativeTo*{\the\afterfold}{\the\h}{southfold}{below}{above right}
 		\dynkinEdge*{SemiCircle}{\the\h}{\the\afterfold}%
 	\fi
-	\dynkin at pipe{\the\afterfold}{#2}{west}{below}
+	\dynkin at pipe{\the\afterfold}{#2}{west}{below}{above right}
 	\ifdynkin at arrows%
 		\newcount\countdown%
 		\countdown=#2%
@@ -2776,12 +3110,15 @@
 	\fi%
 %	% Create the roots.
 	\ifnum\dynkin at ply>1%
-		\dynkinPlaceRootHere*{1}{above}%
+		\ifnum\dynkin at ply=2%
+			\dynkin at jump{1}%
+		\fi%
+		\dynkinPlaceRootHere*{1}{above}{below right}%
 		\dynkin at fold{1}{\the\dynkin at rank}%
 	\else%
-		\dynkinPlaceRootHere*{1}{below}%
+		\dynkinPlaceRootHere*{1}{below}{above}%
 		\ifnum\dynkin at rank>1%
-			\dynkin at pipe{1}{\the\dynkin at rank}{east}{below}%
+			\dynkin at pipe{1}{\the\dynkin at rank}{east}{below}{above}%
 		\fi%
 	\fi%
 }%
@@ -2788,8 +3125,8 @@
 
 %% \Bdynkin 
 %% Draw a B series Dynkin diagram.
-\newcommand*{\Bdynkin}
-{
+\NewDocumentCommand\Bdynkin{}%
+{%
 	\ifnum\dynkin at rank<2
 		\Adynkin
 	\else
@@ -2804,31 +3141,34 @@
 			{\(4\)};
 		\else
 			% Create the roots.
-			\ifnum\dynkin at ply>1%	
+			\ifnum\dynkin at ply>1%
 				\ifnum\dynkin at rank>3%
-					\dynkinPlaceRootHere*{1}{above}%
-					\dynkinPlaceRootRelativeTo*{2}{1}{east}{above}%
+					\dynkin at jump{1}%
+					\dynkinPlaceRootHere*{1}{above}{below right}%
+					\dynkinPlaceRootRelativeTo*{2}{1}{east}{above}{below right}%
 					\dynkin at fold{2}{\the\drmo}%
-					\dynkinPlaceRootRelativeTo*{\the\dynkin at rank}{\the\drmo}{west}{below}%
+					\dynkinPlaceRootRelativeTo*{\the\dynkin at rank}{\the\drmo}{west}{below}{above right}%
 					\dynkinEdge*{DoubleEdge}{\the\drmo}{\the\dynkin at rank}%
 					\dynkinEdge*{SingleEdge}{1}{2}%
 				\else%
 					\ifnum\dynkin at rank=2%
-						\dynkinPlaceRootHere*{1}{left}%
-						\dynkinPlaceRootRelativeTo*{2}{1}{southfold}{left}%
+						\dynkin at jump{1}%
+						\dynkinPlaceRootHere*{1}{above}{below right}%
+						\dynkinPlaceRootRelativeTo*{2}{1}{southfold}{below}{above right}%
 						\dynkinEdge*{DoubleDownRightSemiCircle}{1}{2}%
 					\else%
-						\dynkinPlaceRootHere*{1}{left}%
-						\dynkinPlaceRootRelativeTo*{2}{1}{southeastfold}{right}%
-						\dynkinPlaceRootRelativeTo*{3}{2}{southwestfold}{left}%
+						\dynkin at jump{1}%
+						\dynkinPlaceRootHere*{1}{above}{below right}%
+						\dynkinPlaceRootRelativeTo*{2}{1}{southeastfold}{right}{left}%
+						\dynkinPlaceRootRelativeTo*{3}{2}{southwestfold}{below}{above right}%
 						\dynkinEdge*{RightDownArc}{1}{2}%
 						\dynkinEdge*{DoubleDownLeftArc}{2}{3}%
 					\fi%
 				\fi%
 			\else%
-				\dynkinPlaceRootHere*{1}{below}
-				\dynkin at pipe{1}{\the\drmo}{east}{below}
-				\dynkinPlaceRootRelativeTo*{\the\dynkin at rank}{\the\drmo}{east}{below}
+				\dynkinPlaceRootHere*{1}{below}{above}
+				\dynkin at pipe{1}{\the\drmo}{east}{below}{above}
+				\dynkinPlaceRootRelativeTo*{\the\dynkin at rank}{\the\drmo}{east}{below}{above}
 				\dynkinEdge*{DoubleEdge}{\the\drmo}{\the\dynkin at rank}%
 			\fi%
 			\ifdynkin at arrows%
@@ -2865,35 +3205,47 @@
 	\ifdynkin at is@extended%
 		\ifnum\dynkin at ply>1%
 			\ifnum\dynkin at rank=4%
-				\dynkinPlaceRootRelativeTo*{2}{0}{southeastfold}{right}%
+				\dynkinPlaceRootRelativeTo*{2}{0}{southeastfold}{left}{right}%
 			\else%
-				\dynkinPlaceRootRelativeTo*{2}{0}{southeastfold}{below}%
+				\dynkinPlaceRootRelativeTo*{2}{0}{southeastfold}{below right}{above right}%
 			\fi%
-			\dynkinPlaceRootRelativeTo*{1}{2}{southwestfold}{left}%
+			\dynkinPlaceRootRelativeTo*{1}{2}{southwestfold}{left}{above left}%
 		\else%	
 			\ifdynkin at left@fold%	
-				\dynkinPlaceRootRelativeTo*{2}{0}{southeastfold}{below}%
-				\dynkinPlaceRootRelativeTo*{1}{2}{southwestfold}{left}%
+				\ifnum\dynkin at rank=4%
+					\dynkinPlaceRootRelativeTo*{2}{0}{southeastfold}{left}{right}%
+				\else%
+					\dynkinPlaceRootRelativeTo*{2}{0}{southeastfold}{below right}{above right}%
+				\fi%
+				\dynkinPlaceRootRelativeTo*{1}{2}{southwestfold}{left}{above left}%
 			\else%
-				\dynkinPlaceRootRelativeTo*{2}{0}{southeast}{left}%
-				\dynkinPlaceRootRelativeTo*{1}{2}{southwest}{left}%
+				\ifnum\dynkin at rank=4%
+					\ifdynkin at right@fold%
+						\dynkinPlaceRootRelativeTo*{2}{0}{southeast}{left}{right}%
+					\else%
+						\dynkinPlaceRootRelativeTo*{2}{0}{southeast}{below}{above}%
+					\fi%
+				\else%
+					\dynkinPlaceRootRelativeTo*{2}{0}{southeast}{below right}{above right}%
+				\fi%
+				\dynkinPlaceRootRelativeTo*{1}{2}{southwest}{left}{above left}%
 			\fi%
 		\fi%
 		\dynkinMoveToRoot*{2}%
 	\else
-		\dynkinPlaceRootHere*{1}{below}
+		\dynkinPlaceRootHere*{1}{below}{above}
 		\ifnum\dynkin at rank=4%
 			\ifdynkin at right@fold%
-				\dynkinPlaceRootRelativeTo*{2}{1}{east}{below}%
+				\dynkinPlaceRootRelativeTo*{2}{1}{east}{below}{above}%
 			\else%			
 				\ifnum\dynkin at ply>1%
-					\dynkinPlaceRootRelativeTo*{2}{1}{east}{below}%
+					\dynkinPlaceRootRelativeTo*{2}{1}{east}{below left}{above left}%
 				\else%
-					\dynkinPlaceRootRelativeTo*{2}{1}{east}{right}%
+					\dynkinPlaceRootRelativeTo*{2}{1}{east}{below left}{above left}%
 				\fi%
 			\fi%
 		\else%
-			\dynkinPlaceRootRelativeTo*{2}{1}{east}{below}%
+			\dynkinPlaceRootRelativeTo*{2}{1}{east}{below}{above}%
 		\fi%
 	\fi
 	\newcount\rmo
@@ -2907,37 +3259,33 @@
 	\advance\rmth by -1
 	\ifnum\dynkin at rank>2
 		\ifnum\dynkin at rank>5%
-			\dynkinPlaceRootRelativeTo*{3}{2}{east}{below}%
+			\dynkinPlaceRootRelativeTo*{3}{2}{east}{below}{above}%
 		\else%
 			\ifnum\dynkin at ply>1%
-				\dynkinPlaceRootRelativeTo*{3}{2}{east}{below}%
+				\dynkinPlaceRootRelativeTo*{3}{2}{east}{below left}{above left}%
 			\else%
-%				\ifdynkin at left@fold%	
-%					\dynkinPlaceRootRelativeTo*{3}{2}{east}{below}%
-%				\else%
 					\ifnum\dynkin at rank=5%
 						\ifdynkin at right@fold%	
-							\dynkinPlaceRootRelativeTo*{3}{2}{east}{below}%
+							\dynkinPlaceRootRelativeTo*{3}{2}{east}{below left}{above left}%
 						\else%
-							\dynkinPlaceRootRelativeTo*{3}{2}{east}{right}%
+							\dynkinPlaceRootRelativeTo*{3}{2}{east}{below left}{above left}%
 						\fi%
 					\else%
-						\dynkinPlaceRootRelativeTo*{3}{2}{east}{right}%
+						\dynkinPlaceRootRelativeTo*{3}{2}{east}{below right}{above left}%
 					\fi%
-%				\fi%
 			\fi%
 		\fi%
 		\ifnum\rmth>3%
-			\dynkin at pipe{3}{\the\rmth}{east}{below}%
+			\dynkin at pipe{3}{\the\rmth}{east}{below}{above}%
 		\fi%
 		\ifnum\rmt>3%
 			\ifnum\dynkin at ply>1%
-				\dynkinPlaceRootRelativeTo*{\rmt}{\rmth}{east}{below}%
+				\dynkinPlaceRootRelativeTo*{\rmt}{\rmth}{east}{below left}{above left}%
 			\else%
 				\ifdynkin at right@fold%
-					\dynkinPlaceRootRelativeTo*{\rmt}{\rmth}{east}{below}%
+					\dynkinPlaceRootRelativeTo*{\rmt}{\rmth}{east}{below left}{above left}%
 				\else%
-					\dynkinPlaceRootRelativeTo*{\rmt}{\rmth}{east}{right}%
+					\dynkinPlaceRootRelativeTo*{\rmt}{\rmth}{east}{below left}{above left}%
 				\fi%
 			\fi%
 			\dynkinEdge*{SingleEdge}{\rmt}{\rmth}%
@@ -2944,15 +3292,15 @@
 		\fi%
 		\ifnum\dynkin at ply=1%
 			\ifdynkin at right@fold%
-				\dynkinPlaceRootRelativeTo*{\the\rmo}{\the\rmt}{northeastfold}{right}%
-				\dynkinPlaceRootRelativeTo*{\the\dynkin at rank}{\the\rmt}{southeastfold}{right}%
+				\dynkinPlaceRootRelativeTo*{\the\rmo}{\the\rmt}{northeastfold}{right}{above right}%
+				\dynkinPlaceRootRelativeTo*{\the\dynkin at rank}{\the\rmt}{southeastfold}{right}{above right}%
 			\else%
-				\dynkinPlaceRootRelativeTo*{\the\rmo}{\the\rmt}{northeast}{right}%
-				\dynkinPlaceRootRelativeTo*{\the\dynkin at rank}{\the\rmt}{southeast}{right}%
+				\dynkinPlaceRootRelativeTo*{\the\rmo}{\the\rmt}{northeast}{right}{above right}%
+				\dynkinPlaceRootRelativeTo*{\the\dynkin at rank}{\the\rmt}{southeast}{right}{above right}%
 			\fi%
 		\else%
-			\dynkinPlaceRootRelativeTo*{\the\rmo}{\the\rmt}{northeastfold}{right}%
-			\dynkinPlaceRootRelativeTo*{\the\dynkin at rank}{\the\rmt}{southeastfold}{right}%
+			\dynkinPlaceRootRelativeTo*{\the\rmo}{\the\rmt}{northeastfold}{right}{above right}%
+			\dynkinPlaceRootRelativeTo*{\the\dynkin at rank}{\the\rmt}{southeastfold}{right}{above right}%
 		\fi%
 	\fi%
 }%
@@ -3018,19 +3366,25 @@
 	\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{}%
 {%
 \ifdynkin at right@fold%
-	\dynkinPlaceRootHere*{2}{right}%
+	\dynkinPlaceRootHere*{1}{below left}{above right}%
+	\dynkinPlaceRootRelativeTo*{3}{1}{east}{below left}{above right}%
 	\xdef\old at edge@length{\dynkin at edge@length}%
 	\pgfmathparse{1.5*\dynkin at edge@length}%
 	\xdef\dynkin at edge@length{\pgfmathresult pt}%
-	\dynkinPlaceRootRelativeTo*{3}{2}{south}{right}%
-	\dynkinPlaceRootRelativeTo*{4}{3}{south}{right}%
+	\dynkinPlaceRootRelativeTo*{2}{3}{north}{below left}{above right}%
+	\dynkinPlaceRootRelativeTo*{4}{3}{south}{below}{above right}%
 	\xdef\dynkin at edge@length{\old at edge@length}%
-	\dynkinPlaceRootRelativeTo*{1}{3}{west}{left}%
 	\edef\old at fold@radius{\dynkin at fold@radius}%
 	\xdef\dynkin at fold@radius{\dynkin at edge@length}%
 	\dynkinEdge*{SingleEdge}{1}{3}%
@@ -3042,14 +3396,17 @@
 		\dynkin at fold@arrow at if@oo{3}{4}%
 	\fi%
 \else%
-	\global\dynkin at ply=1\relax%
-	\Ddynkin{}%
+	\dynkinPlaceRootHere*{1}{left}{above right}%
+	\dynkinPlaceRootRelativeTo*{2}{1}{east}{below left}{above left}%
+	\dynkinPlaceRootRelativeTo*{3}{2}{northeast}{above right}{below}%
+	\dynkinPlaceRootRelativeTo*{4}{2}{southeast}{below right}{left}%
+	\dynkinEdge*{SingleEdge}{1}{2}%
+	\dynkinEdge*{SingleEdge}{2}{3}%
+	\dynkinEdge*{SingleEdge}{2}{4}%
 	\begin{scope}[on background layer]%
-		\draw
-			[/Dynkin diagram/foldStyle] 
-			($(\dynkin at root@name 2)$)
-			circle
-			(\dynkin at edge@length);%
+		\centerarc[/Dynkin diagram/fold style](\dynkin at root@name 2)(-60:60:\dynkin at edge@length);
+		\centerarc[/Dynkin diagram/fold style](\dynkin at root@name 2)(60:180:\dynkin at edge@length);
+		\centerarc[/Dynkin diagram/fold style](\dynkin at root@name 2)(180:300:\dynkin at edge@length);
 	\end{scope}%
 \fi%
 }%
@@ -3081,6 +3438,7 @@
 				\fi%
 			\fi%
 		\fi%
+		\gdef\dynkin at series{D}%
 	\fi%
 }%
 
@@ -3089,23 +3447,23 @@
 \newcommand*{\Edynkin at unfolded}%
 {
 	% Create the @roots.
-	\dynkinPlaceRootHere*{1}{below}%
-	\dynkinPlaceRootRelativeTo*{3}{1}{east}{below}%
-	\dynkinPlaceRootRelativeTo*{4}{3}{east}{below}%
+	\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
-			\dynkinPlaceRootRelativeTo*{2}{4}{north}{right}%
+			\dynkinPlaceRootRelativeTo*{2}{4}{north}{right}{above right}%
 		\else
-			\dynkinPlaceRootRelativeTo*{2}{4}{north}{above}%
+			\dynkinPlaceRootRelativeTo*{2}{4}{north}{right}{above}%
 		\fi
 	\else
-		\dynkinPlaceRootRelativeTo*{2}{4}{north}{above}%
+		\dynkinPlaceRootRelativeTo*{2}{4}{north}{right}{above}%
 	\fi
 	\newcount\bmo\relax%
 	\bmo=4\relax%
 	\foreach \b in {5,...,\dynkin at rank}%
 	{%
-		\dynkinPlaceRootRelativeTo*{\b}{\the\bmo}{east}{below}%
+		\dynkinPlaceRootRelativeTo*{\b}{\the\bmo}{east}{below}{above}%
 		\dynkinEdge*{SingleEdge}{\the\bmo}{\b}%
 		\global\advance\bmo by 1%
 	}%
@@ -3115,14 +3473,14 @@
 	\dynkinEdge*{SingleEdge}{4}{2}
 	\ifdynkin at is@extended%
 		\ifnum\dynkin at rank=6%
-			\dynkinPlaceRootRelativeTo*{0}{2}{north}{above}%
+			\dynkinPlaceRootRelativeTo*{0}{2}{north}{right}{above}%
 			\dynkinEdge*{SingleEdge}{0}{2}%
 		\else%
 			\ifnum\dynkin at rank=7%
-				\dynkinPlaceRootRelativeTo*{0}{1}{west}{below}%
+				\dynkinPlaceRootRelativeTo*{0}{1}{west}{below}{above}%
 				\dynkinEdge*{SingleEdge}{0}{1}%
 			\else%
-				\dynkinPlaceRootRelativeTo*{0}{8}{east}{below}%
+				\dynkinPlaceRootRelativeTo*{0}{8}{east}{below}{above}%
 				\dynkinEdge*{SingleEdge}{0}{8}%
 			\fi%
 		\fi%
@@ -3143,17 +3501,18 @@
 
 \NewDocumentCommand\ESixTwoPly{}%
 {%
-	\dynkinPlaceRootHere*{1}{above}%
-	\dynkinPlaceRootRelativeTo*{3}{1}{east}{above}%
-	\dynkinPlaceRootRelativeTo*{4}{3}{southeastfold}{below}%
-	\dynkinPlaceRootRelativeTo*{5}{4}{southwestfold}{below}%
-	\dynkinPlaceRootRelativeTo*{6}{5}{west}{below}%
+	\dynkin at jump{1}%
+	\dynkinPlaceRootHere*{1}{above}{below right}%
+	\dynkinPlaceRootRelativeTo*{3}{1}{east}{above}{below right}%
+	\dynkinPlaceRootRelativeTo*{4}{3}{southeastfold}{below right}{above right}%
+	\dynkinPlaceRootRelativeTo*{5}{4}{southwestfold}{below}{above right}%
+	\dynkinPlaceRootRelativeTo*{6}{5}{west}{below}{above right}%
 	\ifdynkin at is@extended%
-		\dynkinPlaceRootRelativeTo*{2}{4}{east}{below}%
-		\dynkinPlaceRootRelativeTo*{0}{2}{east}{right}%
+		\dynkinPlaceRootRelativeTo*{2}{4}{east}{below}{above}%
+		\dynkinPlaceRootRelativeTo*{0}{2}{east}{below}{above}%
 		\dynkinEdge*{SingleEdge}{0}{2}%
 	\else%
-		\dynkinPlaceRootRelativeTo*{2}{4}{east}{right}%
+		\dynkinPlaceRootRelativeTo*{2}{4}{east}{below}{above}%
 	\fi%
 	\dynkinEdge*{SingleEdge}{1}{3}%
 	\dynkinEdge*{SingleEdge}{2}{4}%
@@ -3169,19 +3528,21 @@
 
 \NewDocumentCommand\ESixThreePly{}%
 {%
-	\dynkinPlaceRootHere*{3}{above}%
+	\dynkin at is@extendedtrue
+	\node (Dynkin current) at ($(Dynkin current)+(0,1.5*\dynkin at edge@length)$){};%
+	\dynkinPlaceRootHere*{3}{below left}{above}%
 	\edef\old at edge@length{\dynkin at edge@length}%
 	\pgfmathparse{1.5*\dynkin at edge@length}%
 	\xdef\dynkin at edge@length{\pgfmathresult pt}%
-	\dynkinPlaceRootRelativeTo*{2}{3}{south}{diagonal}%
-	\dynkinPlaceRootRelativeTo*{5}{2}{south}{below}%
+	\dynkinPlaceRootRelativeTo*{2}{3}{south}{below left}{above right}%
+	\dynkinPlaceRootRelativeTo*{5}{2}{south}{below}{above right}%
 	\xdef\dynkin at edge@length{\old at edge@length}%
-	\dynkinPlaceRootRelativeTo*{1}{3}{west}{left}%
-	\dynkinPlaceRootRelativeTo*{0}{2}{west}{left}%
-	\dynkinPlaceRootRelativeTo*{6}{5}{west}{left}%
+	\dynkinPlaceRootRelativeTo*{1}{3}{west}{below left}{above right}%
+	\dynkinPlaceRootRelativeTo*{0}{2}{west}{below left}{above right}%
+	\dynkinPlaceRootRelativeTo*{6}{5}{west}{below}{above right}%
 	\edef\old at fold@radius{\dynkin at fold@radius}%
 	\xdef\dynkin at fold@radius{\dynkin at edge@length}%
-	\dynkinPlaceRootRelativeTo*{4}{2}{east}{right}%
+	\dynkinPlaceRootRelativeTo*{4}{2}{east}{below left}{above right}%
 	\dynkinEdge*{SingleEdge}{4}{2}%
 	\dynkinEdge*{SingleEdge}{3}{1}%
 	\dynkinEdge*{SingleEdge}{2}{0}%
@@ -3199,14 +3560,15 @@
 
 \NewDocumentCommand\extendedESevenFolded{}%
 {%
-	\dynkinPlaceRootHere*{0}{above}%
-	\dynkinPlaceRootRelativeTo*{1}{0}{east}{above}%
-	\dynkinPlaceRootRelativeTo*{3}{1}{east}{above}%
-	\dynkinPlaceRootRelativeTo*{4}{3}{southeastfold}{left}%
-	\dynkinPlaceRootRelativeTo*{5}{4}{southwestfold}{below}%
-	\dynkinPlaceRootRelativeTo*{6}{5}{west}{below}%
-	\dynkinPlaceRootRelativeTo*{7}{6}{west}{below}%
-	\dynkinPlaceRootRelativeTo*{2}{4}{east}{below}%
+	\dynkin at jump{1}%
+	\dynkinPlaceRootHere*{0}{above}{below}%
+	\dynkinPlaceRootRelativeTo*{1}{0}{east}{above}{below}%
+	\dynkinPlaceRootRelativeTo*{3}{1}{east}{above}{below}%
+	\dynkinPlaceRootRelativeTo*{4}{3}{southeastfold}{left}{right}%
+	\dynkinPlaceRootRelativeTo*{5}{4}{southwestfold}{below}{above}%
+	\dynkinPlaceRootRelativeTo*{6}{5}{west}{below}{above}%
+	\dynkinPlaceRootRelativeTo*{7}{6}{west}{below}{above}%
+	\dynkinPlaceRootRelativeTo*{2}{4}{east}{below}{above}%
 	\dynkinEdge*{SingleEdge}{0}{1}%
 	\dynkinEdge*{SingleEdge}{1}{3}%
 	\dynkinEdge*{SingleEdge}{2}{4}%
@@ -3226,12 +3588,12 @@
 %% Draws an E6 Dynkin diagram.
 \NewDocumentCommand\Edynkin{}%
 {%
-	\ifnum\dynkin at ply>1%	
+	\ifnum\dynkin at ply>1
 		\ifnum\dynkin at rank=6%
 			\Edynkin at folded%
 		\else%
-			\ifnum\dynkin at rank=7%
-				\ifdynkin at is@extended%
+			\ifnum\dynkin at rank=7
+				\ifdynkin at is@extended
 					\Edynkin at folded%
 				\else%
 					\ClassError{Dynkin diagrams}%
@@ -3248,10 +3610,10 @@
 %% Draws an F series Dynkin diagram.
 \newcommand*{\Fdynkin}%
 {
-	\dynkinPlaceRootHere*{1}{below}
-	\dynkinPlaceRootRelativeTo*{2}{1}{east}{below}%
-	\dynkinPlaceRootRelativeTo*{3}{2}{east}{below}%
-	\dynkinPlaceRootRelativeTo*{4}{3}{east}{below}%
+	\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}
@@ -3275,15 +3637,16 @@
 		\Idynkin%
 	\else%
 		\ifnum\dynkin at ply>1%	
-			\dynkinPlaceRootHere*{1}{left}%
-			\dynkinPlaceRootRelativeTo*{2}{1}{southfold}{left}%
+			\dynkin at jump{1}%
+			\dynkinPlaceRootHere*{1}{left}{above}%
+			\dynkinPlaceRootRelativeTo*{2}{1}{southfold}{left}{below}%
 			\dynkinEdge*{TripleDownRightSemiCircle}{1}{2}%
 			\ifdynkin at arrows%
 				\dynkinLeftFold*{1}{2}%
 			\fi%
 		\else%
-			\dynkinPlaceRootHere*{1}{below}%
-			\dynkinPlaceRootRelativeTo*{2}{1}{east}{below}%
+			\dynkinPlaceRootHere*{1}{below}{above}%
+			\dynkinPlaceRootRelativeTo*{2}{1}{east}{below}{above}%
 			\dynkinTripleEdge*{1}{2}%
 		\fi%
 	\fi%
@@ -3315,13 +3678,11 @@
 \NewDocumentCommand\extendedAdynkin{}%
 {%
 	\ifnum\dynkin at rank=1%
-		\dynkinPlaceRootHere{0}{below}%
-		\dynkinPlaceRootRelativeTo*{1}{0}{east}{below}%
+		\dynkinPlaceRootHere{0}{below}{above}%
+		\dynkinPlaceRootRelativeTo*{1}{0}{east}{below}{above}%
 		\convertRootNumber{1}%
 		\begin{scope}{on background layer}%
-			\draw[%
-				/Dynkin diagram/edge,
-				double,
+			\draw[/Dynkin diagram/edge,double,
 				{Classical TikZ Rightarrow[length={2*\dynkin at root@radius}]}%
 				-{Classical TikZ Rightarrow[length={2*\dynkin at root@radius}]}%
 			]%
@@ -3331,10 +3692,11 @@
 		\end{scope}%
 	\else%
 		\ifnum\dynkin at ply=4%
-			\dynkinPlaceRootHere*{0}{left}%
-			\dynkinPlaceRootRelativeTo*{1}{0}{east}{right}%
-			\dynkinPlaceRootRelativeTo*{2}{0}{south}{left}%
-			\dynkinPlaceRootRelativeTo*{3}{1}{south}{right}%
+			\node (Dynkin current) at ($(Dynkin current)+(0,\dynkin at edge@length)$){};%
+			\dynkinPlaceRootHere*{0}{left}{above}%
+			\dynkinPlaceRootRelativeTo*{1}{0}{east}{right}{above}%
+			\dynkinPlaceRootRelativeTo*{2}{0}{south}{below}{left}%
+			\dynkinPlaceRootRelativeTo*{3}{1}{south}{below}{right}%
 			\dynkinEdge*{SingleEdge}{0}{1}%
 			\dynkinEdge*{SingleEdge}{1}{2}%
 			\dynkinEdge*{SingleEdge}{2}{3}%
@@ -3344,13 +3706,13 @@
 		\else%
 			\Adynkin{}%
 			\ifnum\dynkin at ply>1%
-				\dynkinPlaceRootRelativeTo*{0}{1}{southwestfold}{right}%
+				\dynkinPlaceRootRelativeTo*{0}{1}{southwestfold}{left}{right}%
 				\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)$){};%
 				\dynkinNorth%
-				\dynkinPlaceRootHere*{0}{above}%
+				\dynkinPlaceRootHere*{0}{below}{above}%
 				\dynkinEdge*{SingleEdge}{0}{1}%
 				\dynkinEdge*{SingleEdge}{0}{\the\dynkin at rank}%
 			\fi%
@@ -3361,16 +3723,16 @@
 
 \NewDocumentCommand\extendedBthreePly{}%
 {%
-	\dynkinPlaceRootHere*{0}{right}%
-	\edef\old at edge@length{\dynkin at edge@length}%
-	\pgfmathparse{1.5*\dynkin at edge@length}%
-	\xdef\dynkin at edge@length{\pgfmathresult pt}%
-	\dynkinPlaceRootRelativeTo*{1}{0}{south}{right}%
-	\dynkinPlaceRootRelativeTo*{3}{1}{south}{right}%
-	\xdef\dynkin at edge@length{\old at edge@length}%
+	\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}%
 	\edef\old at fold@radius{\dynkin at fold@radius}%
 	\xdef\dynkin at fold@radius{\dynkin at edge@length}%
-	\dynkinPlaceRootRelativeTo*{2}{1}{west}{left}%
+	\dynkinPlaceRootRelativeTo*{2}{1}{west}{left}{above right}%
 	\dynkinEdge*{LeftDownArc}{0}{2}%
 	\dynkinFold*{0}{1}%
 	\dynkinFold*{1}{3}%
@@ -3387,9 +3749,9 @@
 		\extendedAdynkin%
 	\else%
 		\ifnum\the\dynkin at rank=2
-				\dynkinPlaceRootHere*{0}{left}%
-				\dynkinPlaceRootRelativeTo*{1}{0}{east}{below}%
-				\dynkinPlaceRootRelativeTo*{2}{1}{east}{left}%
+				\dynkinPlaceRootHere*{0}{below}{above}%
+				\dynkinPlaceRootRelativeTo*{1}{0}{east}{below}{above}%
+				\dynkinPlaceRootRelativeTo*{2}{1}{east}{below}{above}%
 				\dynkinEdge*{SingleEdge}{0}{1}%
 				\dynkinEdge*{DoubleEdge}{1}{2}%
 		\else%
@@ -3397,16 +3759,18 @@
 				\extendedBthreePly%
 			\else%
 				\ifnum\dynkin at ply=2%
-					\dynkinPlaceRootHere*{0}{left}%
-					\dynkinPlaceRootRelativeTo*{2}{0}{southeastfold}{below}%
-					\dynkinPlaceRootRelativeTo*{1}{2}{southwestfold}{left}%
+					\dynkin at jump{1}%
+					\dynkinPlaceRootHere*{0}{left}{above left}%
+					\dynkinPlaceRootRelativeTo*{2}{0}{southeastfold}{below right}{above right}%
+					\dynkinPlaceRootRelativeTo*{1}{2}{southwestfold}{left}{above left}%
 					\dynkinLeftFold*{0}{1}%
 					\dynkinEdge*{RightDownArc}{0}{2}%
 					\dynkinEdge*{RightUpArc}{1}{2}%
 				\else%
-					\dynkinPlaceRootHere*{0}{left}%
-					\dynkinPlaceRootRelativeTo*{2}{0}{southeast}{left}%
-					\dynkinPlaceRootRelativeTo*{1}{2}{southwest}{left}%
+					\dynkin at hop{1}%
+					\dynkinPlaceRootHere*{0}{left}{above left}%
+					\dynkinPlaceRootRelativeTo*{2}{0}{southeast}{below right}{above right}%
+					\dynkinPlaceRootRelativeTo*{1}{2}{southwest}{left}{above left}%
 					\dynkinEdge*{SingleEdge}{0}{2}%
 					\dynkinEdge*{SingleEdge}{1}{2}%
 				\fi%
@@ -3418,13 +3782,13 @@
 				\ifnum\dynkin at rank>3%
 					\foreach \b in {3,...,\the\drmo}%
 					{%
-						\dynkinPlaceRootRelativeTo*{\b}{\the\bmo}{east}{below}%
+						\dynkinPlaceRootRelativeTo*{\b}{\the\bmo}{east}{below}{above}%
 						\dynkinEdge*{SingleEdge}{\b}{\the\bmo}%
 						\global\advance\bmo by 1\relax%
 					}%
 				\fi%
 				\ifnum\dynkin at ply<3%
-					\dynkinPlaceRootRelativeTo*{\the\dynkin at rank}{\the\drmo}{east}{below}%
+					\dynkinPlaceRootRelativeTo*{\the\dynkin at rank}{\the\drmo}{east}{below}{above}%
 				\fi%
 				\ifdynkin at Coxeter%
 					\dynkinEdge*{SingleEdge}{\the\drmo}{\the\dynkin at rank}%
@@ -3447,7 +3811,7 @@
 %% Draws an C series affine Dynkin/Coxeter diagram.
 \newcommand*{\extendedCdynkin}%
 {%
-	\dynkinPlaceRootHere*{0}{below}%
+	\dynkinPlaceRootHere*{0}{below}{above}%
 	\dynkinEast%
 	\Cdynkin{}%
 	\ifdynkin at Coxeter%
@@ -3464,13 +3828,14 @@
 %% Draws a D^1_4 series affine Dynkin diagram folded about an A^2_2.
 \NewDocumentCommand\DOneFourFourPly{}%
 {%
-	\dynkinPlaceRootHere*{0}{right}%
+	\dynkin at hop{2.25}%
+	\dynkinPlaceRootHere*{0}{right}{left}%
 	\edef\old at edge@length{\dynkin at edge@length}%
 	\pgfmathparse{1.5*\dynkin at edge@length}%
 	\xdef\dynkin at edge@length{\pgfmathresult pt}%
-	\dynkinPlaceRootRelativeTo*{1}{0}{south}{right}%
-	\dynkinPlaceRootRelativeTo*{3}{1}{south}{right}%
-	\dynkinPlaceRootRelativeTo*{4}{3}{south}{right}%
+	\dynkinPlaceRootRelativeTo*{1}{0}{south}{right}{left}%
+	\dynkinPlaceRootRelativeTo*{3}{1}{south}{right}{left}%
+	\dynkinPlaceRootRelativeTo*{4}{3}{south}{right}{left}%
 	\xdef\dynkin at edge@length{\old at edge@length}%
 	\convertRootPair{0}{4}%
 	\node 
@@ -3478,7 +3843,7 @@
 		at 
 		($.5*(\dynkin at root@name \the\@fromRoot)+.5*(\dynkin at root@name \the\@toRoot)$){};%
 	\dynkinWest%
-	\dynkinPlaceRootHere*{2}{left}%
+	\dynkinPlaceRootHere*{2}{right}{left}%
 	\dynkinEdge*{SingleEdge}{0}{2}%
 	\dynkinEdge*{SingleEdge}{1}{2}%
 	\dynkinEdge*{SingleEdge}{3}{2}%
@@ -3493,9 +3858,11 @@
 %% Draws a D series affine Dynkin diagram folded about its middle.
 \NewDocumentCommand\DfourPly{}%
 {%
-	\dynkinPlaceRootHere*{0}{left}%
-	\dynkinPlaceRootRelativeTo*{2}{0}{southeastfold}{above}%
-	\dynkinPlaceRootRelativeTo*{1}{2}{southwestfold}{left}%
+	\xdef\yfp{2*\dynkin at fold@radius+2*cos(60)*\dynkin at edge@length}%
+	\node (Dynkin current) at ($(Dynkin current)+(0,{\yfp})$){};%
+	\dynkinPlaceRootHere*{0}{left}{above left}%
+	\dynkinPlaceRootRelativeTo*{2}{0}{southeastfold}{above right}{below right}%
+	\dynkinPlaceRootRelativeTo*{1}{2}{southwestfold}{left}{above left}%
 	\dynkinMoveToRoot*{2}%
 	\newcount\drmo%
 	\drmo=\the\dynkin at rank%
@@ -3507,13 +3874,11 @@
 	\pgfmathparse{\dynkin at fold@radius+2*cos(60)*\dynkin at edge@length}%
 	\xdef\dynkin at fold@radius{\pgfmathresult pt}%
 	\dynkin at fold{2}{\the\drmt}%
+	% 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}%
-	\dynkinPlaceRootRelativeTo*{\the\dynkin at rank}{\the\drmt}{southwestfold}{left}%
-%	\ifdynkin at arrows%
-%		\dynkinLeftFold*{0}{1}%
-%		\dynkinLeftFold*{\the\drmo}{\the\dynkin at rank}%
-%	\fi%
+	\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}%
@@ -3524,15 +3889,15 @@
 %% Draws a D^1_4 series Dynkin diagram, folded over a B^1_3.
 \NewDocumentCommand\extendedDthreePly{}%
 {%
-	\dynkinPlaceRootHere*{2}{right}%
+	\dynkinPlaceRootHere*{0}{below}{above}%
+	\dynkinPlaceRootRelativeTo*{1}{0}{east}{below left}{above right}%
+	\dynkinPlaceRootRelativeTo*{3}{1}{east}{below left}{above right}%
 	\edef\old at edge@length{\dynkin at edge@length}%
 	\pgfmathparse{1.5*\dynkin at edge@length}%
 	\xdef\dynkin at edge@length{\pgfmathresult pt}%
-	\dynkinPlaceRootRelativeTo*{3}{2}{south}{right}%
-	\dynkinPlaceRootRelativeTo*{4}{3}{south}{right}%
+	\dynkinPlaceRootRelativeTo*{2}{3}{north}{below left}{above right}%
+	\dynkinPlaceRootRelativeTo*{4}{3}{south}{below}{above right}%
 	\xdef\dynkin at edge@length{\old at edge@length}%
-	\dynkinPlaceRootRelativeTo*{1}{3}{west}{diagonal}%
-	\dynkinPlaceRootRelativeTo*{0}{1}{west}{left}%
 	\dynkinEdge*{SingleEdge}{1}{3}%
 	\edef\old at fold@radius{\dynkin at fold@radius}%
 	\xdef\dynkin at fold@radius{\dynkin at edge@length}%
@@ -3563,8 +3928,12 @@
 		\else%
 			\ifnum\the\dynkin at rank=1%
 				\extendedAdynkin%
-			\else
-				\dynkinPlaceRootHere*{0}{left}%
+			\else%
+				\ifnum\the\dynkin at rank=4%
+					\global\dynkin at hex@gridfalse
+				\fi
+				\dynkin at hop{1}%
+				\dynkinPlaceRootHere*{0}{left}{above left}%
 				\Ddynkin%
 				\ifnum\dynkin at ply=2%
 					\dynkinEdge*{RightDownArc}{0}{2}%
@@ -3575,6 +3944,9 @@
 						\dynkinEdge*{SingleEdge}{0}{2}%
 					\fi%
 				\fi%
+				\ifnum\the\dynkin at rank=4%
+					\global\dynkin at hex@gridtrue
+				\fi
 			\fi%
 		\fi%
 	\fi%
@@ -3592,19 +3964,20 @@
 \newcommand*{\extendedFdynkin}%
 {%
 	\ifnum\dynkin at ply=1%
-		\dynkinPlaceRootHere*{0}{below}%
+		\dynkinPlaceRootHere*{0}{below}{above}%
 		\dynkinEast%
 		\Fdynkin%
 		\dynkinEdge*{SingleEdge}{0}{1}%
 	\else%
-		\dynkinPlaceRootHere*{0}{above}%
-		\dynkinPlaceRootRelativeTo*{1}{0}{east}{above}%
+		\dynkin at jump{1}%
+		\dynkinPlaceRootHere*{0}{above}{below}%
+		\dynkinPlaceRootRelativeTo*{1}{0}{east}{above}{below}%
 		\dynkinEdge*{SingleEdge}{0}{1}%
-		\dynkinPlaceRootRelativeTo*{2}{1}{southeastfold}{right}%
+		\dynkinPlaceRootRelativeTo*{2}{1}{southeastfold}{right}{left}%
 		\dynkinDefiniteRightDownArc*{1}{2}%
-		\dynkinPlaceRootRelativeTo*{3}{2}{southwestfold}{below}%
+		\dynkinPlaceRootRelativeTo*{3}{2}{southwestfold}{below}{above}%
 		\dynkinDefiniteDoubleDownLeftArc*{2}{3}%
-		\dynkinPlaceRootRelativeTo*{4}{3}{west}{below}%
+		\dynkinPlaceRootRelativeTo*{4}{3}{west}{below}{above}%
 		\dynkinEdge*{SingleEdge}{3}{4}%
 		\ifdynkin at arrows%
 			\dynkinFold*{0}{4}%
@@ -3618,7 +3991,7 @@
 \newcommand*{\extendedGdynkin}%
 {%
 	\xdef\dynkin at gonality{6}%
-	\dynkinPlaceRootHere*{0}{below}%
+	\dynkinPlaceRootHere*{0}{below}{above}%
 	\dynkinEast%
 	\Gdynkin%
 	\dynkinEdge*{SingleEdge}{0}{1}%
@@ -3628,7 +4001,7 @@
 %% Draws an H series affine Coxeter diagram.
 \newcommand*{\extendedHdynkin}%
 {%
-	\dynkinPlaceRootHere*{0}{below}%
+	\dynkinPlaceRootHere*{0}{below}{above}%
 	\dynkinEast%
 	\Adynkin%
 	\dynkinEdge*{SingleEdge}{0}{1}%
@@ -3648,7 +4021,7 @@
 %% Draws an I series affine Coxeter diagram.
 \newcommand*{\extendedIdynkin}%
 {
-	\dynkinPlaceRootHere*{0}{below}%
+	\dynkinPlaceRootHere*{0}{below}{above}%
 	\dynkinEast%
 	\dynkin at rank=1%
 	\Adynkin%
@@ -3669,8 +4042,8 @@
 		\ClassError{Dynkin diagrams}{A2 series twisted diagrams cannot have rank \the\dynkin at rank}{}%
 	\fi
 	\ifnum\dynkin at rank=2%
-		\dynkinPlaceRootHere*{0}{below}%
-		\dynkinPlaceRootRelativeTo*{1}{0}{east}{below}%
+		\dynkinPlaceRootHere*{0}{below}{above}%
+		\dynkinPlaceRootRelativeTo*{1}{0}{east}{below}{above}%
 		\dynkinQuadrupleEdge*{1}{0}%
 	\else%
 		\newcount\hmo%
@@ -3677,43 +4050,56 @@
 		\hmo=\the\dynkin at nodes%
 		\advance\hmo by -1%
 		\ifodd\dynkin at rank%
+\typeout{!!! odd dynkin rank}		
 			\ifnum\dynkin at ply>1%	
-				\dynkinPlaceRootHere*{0}{above}%
-				\dynkinPlaceRootRelativeTo*{2}{0}{southeastfold}{below}%
-				\dynkinPlaceRootRelativeTo*{1}{2}{southwestfold}{below}%
+\typeout{!!! ply more than 1}
+				\dynkinPlaceRootHere*{2}{below right}{above right}%
+				\dynkinPlaceRootRelativeTo*{0}{2}{northwestfold}{left}{above left}%
+				\dynkinPlaceRootRelativeTo*{1}{2}{southwestfold}{left}{above left}%
 				\dynkinEdge*{RightDownArc}{0}{2}%
 				\dynkinEdge*{RightUpArc}{1}{2}%
 			\else%
-				\dynkinPlaceRootHere*{0}{left}%
-				\dynkinPlaceRootRelativeTo*{2}{0}{southeast}{left}%
-				\dynkinPlaceRootRelativeTo*{1}{2}{southwest}{left}%
+				\dynkin at hop{1}%
+				\dynkinPlaceRootHere*{0}{left}{right}%
+				\dynkinPlaceRootRelativeTo*{2}{0}{southeast}{left}{right}%
+				\dynkinPlaceRootRelativeTo*{1}{2}{southwest}{left}{right}%
 				\dynkinEdge*{SingleEdge}{0}{2}%
 				\dynkinEdge*{SingleEdge}{1}{2}%
 			\fi%
 			\dynkinMoveToRoot*{2}%
-			\dynkin at pipe{2}{\the\hmo}{east}{below}%
-			\dynkinPlaceRootRelativeTo*{\the\dynkin at nodes}{\the\hmo}{east}{below}%
+			\dynkin at pipe{2}{\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}%
 			\fi%			
 		\else%
-			\dynkinPlaceRootHere*{0}{below}%
-			\dynkinPlaceRootRelativeTo*{1}{0}{east}{below}%
-			\dynkinEdge*{DoubleEdge}{1}{0}%
 			\ifnum\dynkin at nodes>1%
 				\ifnum\dynkin at ply>1%	
 					\ifnum\hmo>1%
+						\dynkin at jump{1}%
+					\fi%
+					\dynkinPlaceRootHere*{0}{below}{above}%
+					\dynkinPlaceRootRelativeTo*{1}{0}{east}{below left}{above}%
+					\dynkinEdge*{DoubleEdge}{1}{0}%
+					\ifnum\hmo>1%
 						\dynkin at fold{1}{\the\hmo}%
 					\fi%
-					\dynkinPlaceRootRelativeTo*{\the\dynkin at nodes}{\the\hmo}{west}{below}%
+					\dynkinPlaceRootRelativeTo*{\the\dynkin at nodes}{\the\hmo}{west}{below}{above}%
 				\else%
+					\dynkinPlaceRootHere*{0}{below}{above}%
+					\dynkinPlaceRootRelativeTo*{1}{0}{east}{below right}{above}%
+					\dynkinEdge*{DoubleEdge}{1}{0}%
 					\ifnum\hmo>1%
-						\dynkin at pipe{1}{\the\hmo}{east}{below}%
+						\dynkin at pipe{1}{\the\hmo}{east}{below}{above}%
 					\fi%
-					\dynkinPlaceRootRelativeTo*{\the\dynkin at nodes}{\the\hmo}{east}{below}%
+					\dynkinPlaceRootRelativeTo*{\the\dynkin at nodes}{\the\hmo}{east}{below}{above}%
 				\fi%
 				\dynkinEdge*{DoubleEdge}{\the\dynkin at nodes}{\the\hmo}%
+			\else%
+				\dynkinPlaceRootHere*{0}{below}{above}%
+				\dynkinPlaceRootRelativeTo*{1}{0}{east}{below right}{above}%
+				\dynkinEdge*{DoubleEdge}{1}{0}%				
 			\fi%
 		\fi%
 	\fi%
@@ -3730,9 +4116,9 @@
 		{3}%
 		{%
 			\ifnum\dynkin at rank=4%
-				\dynkinPlaceRootHere*{0}{below}%
-				\dynkinPlaceRootRelativeTo*{1}{0}{east}{below}%
-				\dynkinPlaceRootRelativeTo*{2}{1}{east}{below}%
+				\dynkinPlaceRootHere*{0}{below}{above}%
+				\dynkinPlaceRootRelativeTo*{1}{0}{east}{below}{above}%
+				\dynkinPlaceRootRelativeTo*{2}{1}{east}{below}{above}%
 				\dynkinEdge*{SingleEdge}{0}{1}%
 				\dynkinTripleEdge*{2}{1}%
 			\else%
@@ -3755,16 +4141,17 @@
 	\drmo=\the\dynkin at nodes%
 	\advance\drmo by -1%
 	\ifnum\dynkin at ply=1%
-		\dynkinPlaceRootHere*{0}{below}%
-		\dynkinPlaceRootRelativeTo*{1}{0}{east}{below}%
+		\dynkinPlaceRootHere*{0}{below}{above}%
+		\dynkinPlaceRootRelativeTo*{1}{0}{east}{below}{above}%
 	\else%
 		\ifnum\dynkin at rank=3%
-			\dynkinPlaceRootHere*{0}{right}%
-			\dynkinPlaceRootRelativeTo*{1}{0}{southwestfold}{left}%
-			\dynkinPlaceRootRelativeTo*{2}{1}{southeastfold}{right}%
+			\dynkin at jump{1}%
+			\dynkinPlaceRootHere*{0}{above}{right}%
+			\dynkinPlaceRootRelativeTo*{1}{0}{southwestfold}{left}{right}%
+			\dynkinPlaceRootRelativeTo*{2}{1}{southeastfold}{below}{right}%
 		\else%
-			\dynkinPlaceRootHere*{0}{above}%
-			\dynkinPlaceRootRelativeTo*{1}{0}{east}{above}%
+			\dynkinPlaceRootHere*{0}{above}{below}%
+			\dynkinPlaceRootRelativeTo*{1}{0}{east}{above}{below}%
 		\fi%
 	\fi%
 	\ifnum\dynkin at ply=2%
@@ -3775,7 +4162,7 @@
 	\ifnum\dynkin at ply>1%	
 		\ifnum\dynkin at rank>3%
 			\dynkin at fold{1}{\the\drmo}%
-			\dynkinPlaceRootRelativeTo*{\the\dynkin at nodes}{\the\drmo}{west}{below}%
+			\dynkinPlaceRootRelativeTo*{\the\dynkin at nodes}{\the\drmo}{west}{below}{above}%
 			\dynkinFold*{0}{\the\dynkin at nodes}%
 		\else%
 			\dynkinFold*{0}{2}%
@@ -3782,9 +4169,9 @@
 		\fi%
 	\else%
 		\ifnum\dynkin at rank>2%
-			\dynkin at pipe{1}{\the\drmo}{east}{below}%
+			\dynkin at pipe{1}{\the\drmo}{east}{below}{above}%
 		\fi%
-		\dynkinPlaceRootRelativeTo*{\the\dynkin at nodes}{\the\drmo}{east}{below}%
+		\dynkinPlaceRootRelativeTo*{\the\dynkin at nodes}{\the\drmo}{east}{below}{above}%
 	\fi%
 	\ifnum\dynkin at ply=2%
 		\dynkinEdge*{DoubleDownRightArc}{\the\drmo}{\the\dynkin at nodes}%
@@ -3804,10 +4191,10 @@
 		{1}{\extendedEdynkin}%
 		{2}%
 		{%
-			\dynkinPlaceRootHere*{0}{below}%
-			\dynkin at pipe{0}{2}{east}{below}%
-			\dynkinPlaceRootRelativeTo*{3}{2}{east}{below}%
-			\dynkinPlaceRootRelativeTo*{4}{3}{east}{below}%
+			\dynkinPlaceRootHere*{0}{below}{above}%
+			\dynkin at pipe{0}{2}{east}{below}{above}%
+			\dynkinPlaceRootRelativeTo*{3}{2}{east}{below}{above}%
+			\dynkinPlaceRootRelativeTo*{4}{3}{east}{below}{above}%
 			\dynkinEdge*{SingleEdge}{3}{4}%
 			\dynkinEdge*{DoubleEdge}{3}{2}%
 		}%



More information about the tex-live-commits mailing list