summaryrefslogtreecommitdiff
path: root/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.tex
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.tex')
-rw-r--r--graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.tex333
1 files changed, 227 insertions, 106 deletions
diff --git a/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.tex b/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.tex
index 1cc6083977..8e4901234e 100644
--- a/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.tex
+++ b/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.tex
@@ -1,7 +1,7 @@
\documentclass{amsart}
\title[The Dynkin diagrams package]%
{The Dynkin diagrams package \\
-Version 3.141\,592\,653\,589\,793\,2}
+Version 3.141\,592\,653\,589\,793\,23}
%% My name:
\makeatletter
\DeclareRobustCommand{\scotsMc}{\scotsMcx{c}}
@@ -20,7 +20,7 @@ Version 3.141\,592\,653\,589\,793\,2}
\author{Ben \scotsMc{}Kay}
\address{School of Mathematical Sciences, University College Cork, Cork, Ireland}
\email{b.mckay@ucc.ie}
-\date{4 April 2021}
+\date{18 May 2023}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenx}
\usepackage{etoolbox}
@@ -33,6 +33,7 @@ Version 3.141\,592\,653\,589\,793\,2}
\usepackage{array}
\usepackage{xstring}
\usepackage{longtable}
+\usepackage[dvipsnames,table]{xcolor}
\usepackage[listings]{tcolorbox}
\tcbuselibrary{breakable}
\tcbuselibrary{skins}
@@ -230,6 +231,7 @@ The Dynkin diagram of \(B_3\) is
\newpage
\renewcommand\do[1]{\dyn#1}
+\renewcommand{\wdtA}{3cm}
\begin{dynkinTable}{The Dynkin diagrams of the reduced simple root systems \cite{Bourbaki:2002} pp. 265--290, plates I--IX}{2.25cm}{2.5cm}
\docsvlist{A{},B{},C{},D{},E6,E7,E8,F4,G2}
\end{dynkinTable}
@@ -264,13 +266,48 @@ You can also pass options to the package in \verb!\usepackage!.
\end{Verbatim}
\end{tcolorbox}
-
-
+\section{Disconnected Dynkin diagrams}
+Disconnected Dynkin diagrams that represent a product of simple Lie groups (or a sum of Lie algebras, or a product of Coxeter systems, \dots) have a different syntax (to ensure back compatibility):
+\begin{tcblisting}{title={Command}}
+The Dynkin diagram of \(B_3 \times A_2\) is \dynkins{B3|A2}.
+\end{tcblisting}
+\begin{tcblisting}{title={Environment}}
+The Dynkin diagram of \(B_3 \times A_2\) is
+\begin{DynkinDiagrams}{B3|A2}\end{DynkinDiagrams}
+\end{tcblisting}
+Each factor can have its own options.
+\begin{tcblisting}{title={Environment}}
+The Dynkin diagram of \(B_3 \times A_2\) is
+\[
+\begin{DynkinDiagrams}{[name=Bob]B3|[name=Alice]A2}
+\draw[very thick,blue] (Bob root 1)
+ to [out=-45, in=-135] (Alice root 2);
+\end{DynkinDiagrams}
+\]
+\end{tcblisting}
+They are spaced out by the length of one edge between successive diagrams; change this with \texttt{separator length}.
+\begin{longtable}{@{}>{\columncolor[gray]{.9}$}m{1.5cm}<{$}%
+@{}>{\columncolor[gray]{.9}$}m{1cm}<{$}%
+@{}>{\columncolor[gray]{.9}$}m{3cm}<{$}}
+\caption{The Dynkin diagrams of the rank $2$ root systems}\\
+\endfirsthead
+\caption{\dots continued}\\
+\endhead
+\multicolumn{2}{c}{continued \dots}\\
+\endfoot
+\endlastfoot
+A_1\times A_1&\dynkins{A1|A1}&\texttt{\detokenize{\dynkins}\{A1|A1\}}\\
+A_2&\dynkins{A2}&\texttt{\detokenize{\dynkins}\{A2\}}\\
+B_2&\dynkins{B2}&\texttt{\detokenize{\dynkins}\{B2\}}\\
+C_2&\dynkins{C2}&\texttt{\detokenize{\dynkins}\{C2\}}\\
+D_2&\dynkins{D2}&\texttt{\detokenize{\dynkins}\{D2\}}\\
+G_2&\dynkins{G2}&\texttt{\detokenize{\dynkins}\{G2\}}\\
+\end{longtable}
\section{Coxeter diagrams}
\begin{tcblisting}{title={Coxeter diagram option}}
-\dynkin[Coxeter]{F}{4}
+\dynkin[Coxeter]F4
\end{tcblisting}
\begin{tcblisting}{title={gonality option for \(G_2\) and \(I_n\) Coxeter diagrams}}
@@ -310,15 +347,14 @@ E{I},E{II},E{III},E{IV},E{V},E{VI},E{VII},E{VIII},E{IX},F{I},F{II},GI}
\section{How to fold}
\begin{tcblisting}{title={If you don't like the solid gray ``folding bar'', most people use arrows. Here is \(E_{II}\)}}
-\dynkin[%
- edge length=.75cm,
- labels*={1,...,6},
- involutions={16;35}]E6
+\dynkin[edge length=.75cm,
+ labels*={1,...,6},
+ involutions={16;35}]E6
\end{tcblisting}
\begin{tcblisting}{title={The double arrows for \(A_{IIIa}\) are big}}
\dynkin[edge length=.75cm,
- involutions={1{10};29;38;47;56}]{A}{oo.o**.**o.oo}
+ involutions={1{10};29;38;47;56}]{A}{oo.o**.**o.oo}
\end{tcblisting}
\newpage
@@ -335,18 +371,16 @@ E{I},E{II},E{III},E{IV},E{V},E{VI},E{VII},E{VIII},E{IX},F{I},F{II},GI}
\end{tcblisting}
\begin{tcblisting}{title={Style options}}
-\dynkin[%
- edge length=.75cm,
- involution/.style={blue!50,stealth-stealth,thick},
- involutions={1{10};29;38;47;56}
- ]{A}{oo.o**.**o.oo}
+\dynkin[edge length=.75cm,
+ involution/.style={blue!50,stealth-stealth,thick},
+ involutions={1{10};29;38;47;56}
+ ]{A}{oo.o**.**o.oo}
\end{tcblisting}
\begin{tcblisting}{title={Arrow angles}}
-\dynkin[%
- edge length=.75cm,
- involutions={[in=-120,out=-60,relative]1{10};29;38;47;56}
- ]{A}{oo.o**.**o.oo}
+\dynkin[edge length=.75cm,
+ involutions={[in=-120,out=-60,relative]1{10};29;38;47;56}
+ ]{A}{oo.o**.**o.oo}
\end{tcblisting}
\begin{tcblisting}{title={Arrow angles}}
@@ -382,11 +416,10 @@ segment length=1mm,amplitude=.6mm}}}
\begin{tcblisting}{title={Make a list of labels for the roots.
Optionally, you can add label directions to say where to put each label relative to its root.}}
-\dynkin[%
- labels={m\cosh\theta,1,2,3,,n-2,n-1,n,n+1},
- label directions={,,left,,,,right,,},
- scale=1.8,
- extended] D{*ooo...oooo}
+\dynkin[labels={m\cosh\theta,1,2,3,,n-2,n-1,n,n+1},
+ label directions={,,left,,,,right,,},
+ scale=1.8,
+ extended] D{*ooo...oooo}
\end{tcblisting}
\begin{tcblisting}{title={Make a macro to assign labels to roots}}
\dynkin[label,label macro/.code={\alpha_{\drlap{#1}}},edge length=.75cm]D5
@@ -422,38 +455,37 @@ Optionally, you can add label directions to say where to put each label relative
\newpage
\begin{tcblisting}{title={Labelling several roots and alternates}}
-\dynkin[%
-label macro/.code={\alpha_{\drlap{#1}}},
-label macro*/.code={\gamma_{\drlap{#1}}},
-labels={,2,...,5,,7},
-labels*={1,3,4,5,6}]A7
+\dynkin[label macro/.code={\alpha_{\drlap{#1}}},
+ label macro*/.code={\gamma_{\drlap{#1}}},
+ labels={,2,...,5,,7},
+ labels*={1,3,4,5,6}]A7
\end{tcblisting}
\section{Label subscripts}
Note the slight improvement that \verb!\drlap! makes: the labels are centered on the middle of the letter \(\alpha\), ignoring the space taken up by the subscripts, using the \verb!mathtools! command \verb!\mathrlap!, but only for labels which are \emph{not} placed to the left or right of a root.
\begin{tcblisting}{title={Label subscript spacing}}
\dynkin[label,label macro/.code={\alpha_{#1}},
- edge length=.75cm]D{15}
+ edge length=.75cm]D{15}
\par\noindent{}%
\dynkin[label,label macro/.code={\alpha_{\drlap{#1}}},
- edge length=.75cm]D{15}
+ edge length=.75cm]D{15}
\end{tcblisting}
\newpage
\begin{tcblisting}{title={Label subscript spacing}}
\dynkin[label,label macro/.code={\alpha_{#1}},
- edge length=.75cm]E8
+ edge length=.75cm]E8
\dynkin[label,label macro/.code={\alpha_{#1}},backwards,
- edge length=.75cm]E8
+ edge length=.75cm]E8
\par\noindent{}%
\dynkin[label,label macro/.code={\alpha_{\mathrlap{#1}}},
- edge length=.75cm]E8
+ edge length=.75cm]E8
\dynkin[label,label macro/.code={\alpha_{\mathrlap{#1}}},backwards,
- edge length=.75cm]E8
+ edge length=.75cm]E8
\par\noindent{}%
\dynkin[label,label macro/.code={\alpha_{\drlap{#1}}},
- edge length=.75cm]E8
+ edge length=.75cm]E8
\dynkin[label,label macro/.code={\alpha_{\drlap{#1}}},backwards,
- edge length=.75cm]E8
+ edge length=.75cm]E8
\end{tcblisting}
\newpage
@@ -463,13 +495,12 @@ To change these, set \verb!label height! and \verb!label depth!:
\begin{tcblisting}{title={Change height and depth of characters}}
\dynkin[labels={a,b,c,d},label height=d,label depth=d]F4
\dynkin[labels*={a,b,c,d},label height=d,label depth=d]F4
-\dynkin[%
-label macro/.code={\alpha_{\drlap{#1}}},
-label macro*/.code={\gamma_{\drlap{#1}}},
-label height=$\alpha_1$,
-label depth=$\alpha_1$,
-labels={,2,...,5,,7},
-labels*={1,3,4,5,6}]A7
+\dynkin[label macro/.code={\alpha_{\drlap{#1}}},
+ label macro*/.code={\gamma_{\drlap{#1}}},
+ label height=$\alpha_1$,
+ label depth=$\alpha_1$,
+ labels={,2,...,5,,7},
+ labels*={1,3,4,5,6}]A7
\dynkin[labels={A,B,C,D},label height=$A$,label depth=$A$]F4
\dynkin[labels={a^1,b^2,c^3,d^4},label height=$X^X$]F4
\end{tcblisting}
@@ -477,9 +508,9 @@ labels*={1,3,4,5,6}]A7
\section{Text style for the labels}
\begin{tcblisting}{title={Use a text style: big and blue}}
\begin{dynkinDiagram}[text style/.style={scale=1.2,blue},
-edge length=1cm,
-labels={1,2,n-1,n},
-label macro/.code={\alpha_{\drlap{#1}}}
+ edge length=1cm,
+ labels={1,2,n-1,n},
+ label macro/.code={\alpha_{\drlap{#1}}}
]A{}
\end{dynkinDiagram}
\end{tcblisting}
@@ -488,9 +519,9 @@ label macro/.code={\alpha_{\drlap{#1}}}
\begin{tcblisting}{title={Use a text style; font selection is in the label macro}}
\begin{dynkinDiagram}[text style/.style={scale=1.2,blue},
-edge length=1cm,
-labels={1,2,n-1,n},
-label macro/.code={\mathbb{A}_{\drlap{#1}}}]A{}
+ edge length=1cm,
+ labels={1,2,n-1,n},
+ label macro/.code={\mathbb{A}_{\drlap{#1}}}]A{}
\end{dynkinDiagram}
\end{tcblisting}
@@ -499,27 +530,29 @@ label macro/.code={\mathbb{A}_{\drlap{#1}}}]A{}
\section{Bracing roots}
\begin{tcblisting}{title={Bracing roots}}
\begin{dynkinDiagram}A{*.*x*.*}
-\dynkinBrace[p]12
-\dynkinBrace[q]45
+ \dynkinBrace[p]12
+ \dynkinBrace[q]45
\end{dynkinDiagram}
\end{tcblisting}
\begin{tcblisting}{title={Bracing roots, and a starred form}}
\begin{dynkinDiagram}A{10}
-\dynkinBrace[\text{Roots 2 to 9}]29
-\dynkinBrace*[\text{Roots 3 to 8}]38
+ \dynkinBrace[\text{Roots 2 to 9}]29
+ \dynkinBrace*[\text{Roots 3 to 8}]38
\end{dynkinDiagram}
\end{tcblisting}
\newpage
\begin{tcblisting}{title={Bracing roots}}
-\newcommand\circleRoot[1]{\draw (root #1) circle (3pt);}
+\newcommand\circleRoot[1]{
+\draw[fill=white] (root #1) circle (3pt);
+\fill[black] (root #1) circle (1.5pt);}
\begin{dynkinDiagram}A{**.***.***.***.***.**}
-\circleRoot 4\circleRoot 7\circleRoot 10\circleRoot 13
-\dynkinBrace[y-1]13
-\dynkinBrace[z-1]56
-\dynkinBrace[t-1]{11}{12}
-\dynkinBrace[x-1]{14}{16}
+ \foreach\r in {4,7,10,13} {\circleRoot \r}
+ \dynkinBrace[y-1]13
+ \dynkinBrace[z-1]56
+ \dynkinBrace[t-1]{11}{12}
+ \dynkinBrace[x-1]{14}{16}
\end{dynkinDiagram}
\end{tcblisting}
@@ -540,11 +573,10 @@ If you don't want to fold, you might prefer instead to put the \(6\) on the righ
\noindent{}The default locations are overridden by the \verb!label directions!.
For extended diagrams, this list starts at \(0\)-offset.
\begin{tcblisting}{}
-\dynkin[%
- label,
- label directions={above,,,,,,},
- involutions={[out=-60,in=-120,relative]16;60;01}
- ]E[1]{6}
+\dynkin[label,
+ label directions={above,,,,,,},
+ involutions={[out=-60,in=-120,relative]16;60;01}
+ ]E[1]{6}
\end{tcblisting}
@@ -552,30 +584,22 @@ For extended diagrams, this list starts at \(0\)-offset.
\tikzset{/Dynkin diagram,ordering=Dynkin,label macro/.code={\alpha_{\drlap{#1}}}}
\newcounter{EPNo}
\setcounter{EPNo}{0}
-\NewDocumentCommand\EP{smmmm}%
-{%
- \stepcounter{EPNo}\roman{EPNo}. &%
- \def\eL{.6cm}%
- \IfStrEqCase{#2}%
- {%
- D{%
- \gdef\eL{1cm}%
- \tikzset{/Dynkin diagram/label directions={,,,right,,}}%
- }%
- E{\gdef\eL{.75cm}}%
- F{\gdef\eL{.35cm}}%
- G{\gdef\eL{.35cm}}%
- }%
- \IfBooleanTF{#1}%
- {%
+\NewDocumentCommand\EP{smmmm}{
+ \stepcounter{EPNo}\roman{EPNo}. &
+ \def\eL{.6cm}
+ \IfStrEqCase{#2}{
+ D{
+ \gdef\eL{1cm}
+ \tikzset{/Dynkin diagram/label directions={,,,right,,}}}
+ E{\gdef\eL{.75cm}}
+ F{\gdef\eL{.35cm}}
+ G{\gdef\eL{.35cm}}}
+ \IfBooleanTF{#1}{
\dynkin[edge length=\eL,backwards,labels*={#4},labels={#5}]{#2}{#3}
- }%
- {%
- \dynkin[edge length=\eL,labels*={#4},labels={#5}]{#2}{#3}
- }%
- \tikzset{/Dynkin diagram/label directions={}}%
- \\%
-}%
+ }{
+ \dynkin[edge length=\eL,labels*={#4},labels={#5}]{#2}{#3}}
+ \tikzset{/Dynkin diagram/label directions={}}
+ \\}
\renewcommand*\do[1]{\EP#1}%
\begin{longtable}{MM}
\caption{Dynkin diagrams from Euler products \cite{Langlands:1967}}\\
@@ -617,8 +641,7 @@ For extended diagrams, this list starts at \(0\)-offset.
*E8{1,1,1,1,1,1,1,1}{,7,5,4,3,2,1,6},
*E7{1,1,1,1,1,1,1}{5,...,1,,6},
*E7{1,1,1,1,1,1,1}{1,...,5,,6},
- *E8{1,1,1,1,1,1,1,1}{6,...,1,,7}%
- }
+ *E8{1,1,1,1,1,1,1,1}{6,...,1,,7}}
\end{longtable}
\end{filecontents*}
{\input{EulerProducts}}\VerbatimInput{EulerProducts.tex}
@@ -636,11 +659,13 @@ For extended diagrams, this list starts at \(0\)-offset.
\begingroup
\tikzset{/Dynkin diagram,edge length=1cm,root radius=1mm,edge/.style=thick}
\begin{tcblisting}{title={Popular arrow shapes. These mess with nonwhite backgrounds, but are prettier than the default shape.}}
+\begin{tcolorbox}[colback=white,colframe=white]
\begin{tabular}{rcc}
default&\dynkin G2 &\dynkin F4\\
Bourbaki&\dynkin[Bourbaki arrow]G2&\dynkin[Bourbaki arrow]F4\\
bird&\dynkin[bird arrow]G2 &\dynkin[bird arrow]F4
\end{tabular}
+\end{tcolorbox}
\end{tcblisting}
\endgroup
Use \verb!\tikzset{/Dynkin diagram,Bourbaki arrow}! to force all arrows to have Bourbaki style throughout your document.
@@ -1030,12 +1055,10 @@ The extended Dynkin diagrams are also described in the notation of Kac \cite{Kac
\end{dynkinTable}
\newpage
\begin{tcblisting}{title={Directed edges}}
-\dynkin[%
- edge length=.75cm,
- edge/.style={-{stealth[sep=2pt]}},
- labels={,1,2,\ell-1,\ell},
- labels*={0}]
-A[1]{}
+\dynkin[edge length=.75cm,
+ edge/.style={-{stealth[sep=2pt]}},
+ labels={,1,2,\ell-1,\ell},
+ labels*={0}]A[1]{}
\end{tcblisting}
\section{Affine twisted and untwisted Dynkin diagrams}
@@ -1146,16 +1169,15 @@ The \(D^{(1)}_{\ell}\) diagrams can be folded on their left end and separately o
\newpage
We have to be careful about the 4-ply foldings of \(D^{(1)}_{2\ell}\), for which we can have two different patterns, so by default, the package only draws as much as it can without distinguishing the two:
\begin{tcblisting}{title={Default \(D^{(1)}_{2\ell}\) and the two ways to finish it}}
- \dynkin[ply=4]D[1]{****.*****.*****}%
- \
-\begin{dynkinDiagram}[ply=4]{D}[1]{****.*****.*****}%
- \dynkinFold[bend right=90]1{13}%
- \dynkinFold[bend right=90]0{14}%
+\dynkin[ply=4]D[1]{****.*****.*****} \
+\begin{dynkinDiagram}[ply=4]{D}[1]{****.*****.*****}
+ \dynkinFold[bend right=90]1{13}
+ \dynkinFold[bend right=90]0{14}
\end{dynkinDiagram} \
-\begin{dynkinDiagram}[ply=4]{D}[1]{****.*****.*****}%
- \dynkinFold01%
- \dynkinFold1{13}%
- \dynkinFold{13}{14}%
+\begin{dynkinDiagram}[ply=4]{D}[1]{****.*****.*****}
+ \dynkinFold01
+ \dynkinFold1{13}
+ \dynkinFold{13}{14}
\end{dynkinDiagram}
\end{tcblisting}
\begingroup
@@ -1320,6 +1342,46 @@ We can then connect the two with folding edges:
\end{pgfonlayer}
\end{dynkinDiagram}
\end{tcblisting}
+\begin{tcblisting}{title={The nonsplit Freudenthal--Tits magic square}}
+\newcommand\clrK{\rowcolor{BurntOrange!80}}
+\newcommand\clrL{\rowcolor{SeaGreen}}
+\newcommand\clrH{\rowcolor{RoyalBlue!50}}
+\newcommand\clrO{\rowcolor{OrangeRed!70}}
+\newcommand\clrOO{\cellcolor{Red}}
+\NewDocumentCommand\hd{om}{
+\cellcolor{gray!30}$\IfNoValueF{#1}{\mathbb{#1}\setminus}\mathbb{#2}$}
+\tikzset{/Dynkin diagram/fold style/.style={blue!22,ultra thick}}
+\begin{tcolorbox}[colback=white,colframe=white]
+\begin{tabular}{|c|c|c|c|c|}\hline
+\hd[A]{B}&\hd{K}&\hd{L}&\hd{H}&\hd{O}\\ \hline
+\clrK\hd{K}& \dynkin A1 & \dynkin A{*o} & \dynkin C{o*o} & \dynkin F{*ooo} \\ \hline
+\clrL\hd{L}& \dynkin A{**} &
+\begin{dynkinDiagram}[name=upper]A2
+\node (current) at ($(upper root 1)+(0,-.35cm)$) {};
+\dynkin[at=(current),name=lower]A2
+\begin{pgfonlayer}{Dynkin behind}
+\foreach \i in {1,2}{%
+\draw[/Dynkin diagram/fold style] ($(upper root \i)$) -- ($(lower root \i)$);}
+\end{pgfonlayer}
+\end{dynkinDiagram}&
+\dynkin A{*ooo*} &
+\dynkin E{*oooo*} \\ \hline
+\clrH\hd{H} &
+\dynkin C{***} &
+\dynkin[fold] A{*****} &
+\dynkin D{*oo*o*} &
+\dynkin E{*oooo**}\\ \hline
+\clrO\hd{O} &
+\dynkin F{****} &
+\dynkin[o/.style = {
+ solid,
+ draw=black,
+ fill=black}] E{II} &
+\dynkin[backwards] E{*o**oo*o} &
+\clrOO \dynkin E{*oooo***}\\ \hline
+\end{tabular}
+\end{tcolorbox}
+\end{tcblisting}
\newpage
The following diagrams arise in the Satake diagrams of the pseudo-Riemannian symmetric spaces \cite{Baba:2009}.
\begin{tcblisting}{}
@@ -1635,7 +1697,6 @@ Below we draw the Vogan diagrams of some affine Lie superalgebras \cite{Ransingh
\end{tcblisting}
\end{Category}
\endgroup
-\tikzset{/Dynkin diagram,label macro/.code={},label=false}
\section{Example: the complex simple Lie algebras}
\begin{filecontents*}{simple-lie-algebras.tex}
@@ -1751,6 +1812,7 @@ G_2&
\end{longtable}
\end{filecontents*}
\begingroup
+\tikzset{/Dynkin diagram,label macro/.code={},label=false,root radius=.04cm}
\input{simple-lie-algebras.tex}
\endgroup
\VerbatimInput{simple-lie-algebras.tex}
@@ -1788,6 +1850,63 @@ G_2&
\endgroup
\VerbatimInput{borovoi.tex}
+There are many undocumented features, which are not usually very useful; here is a taste, from \cite{Humphreys:1978} p. 61.
+
+\begin{filecontents*}{humphreys.tex}
+\begin{center}
+\makeatletter
+\newcommand{\extraNode}[6]%
+{%
+\dynkinPlaceRootRelativeTo{#1}{#2}{#3}{#4}{#5}
+\dynkinDefiniteSingleEdge{#1}{#2}
+\dynkinRootMark{o}{#1}
+\advance\dynkin@nodes by 1
+\dynkinLabelRoot{#1}{#6}
+}%
+\newcommand{\extraDotNode}[6]%
+{%
+\dynkinPlaceRootRelativeTo{#1}{#2}{#3}{#4}{#5}
+\dynkinIndefiniteSingleEdge{#1}{#2}
+\dynkinRootMark{o}{#1}
+\advance\dynkin@nodes by 1
+\dynkinLabelRoot{#1}{#6}
+}%
+\makeatother
+\tikzset{/Dynkin diagram,mark=o,edge length=.5cm}
+\begin{tabular}{>{\columncolor[gray]{.9}}c}
+\dynkin A{}
+\\ \midrule
+\begin{dynkinDiagram}A{ooo.o}
+\dynkinLabelRoot{1}{\varepsilon_1}
+\dynkinLabelRoot{2}{\varepsilon_2}
+\dynkinLabelRoot{3}{\varepsilon_3}
+\dynkinLabelRoot{4}{\varepsilon_p}
+\dynkin[at=(root 4),arrows=false]B2
+\dynkin[at=(root 2),labels={\eta_q,\eta_{q-1},\eta_2,\eta_1}]A{oo.oo}
+\end{dynkinDiagram}
+\\ \midrule
+\dynkin[arrows=false] G{2}
+\\ \midrule
+\begin{dynkinDiagram}[%
+labels={\varepsilon_{p-1},\psi,\zeta_{r-1},\eta_{q-1}},
+mark=o,edge length=.75cm]D4
+\extraDotNode{5}{3}{northeast}{right}{left}{\zeta_2}
+\extraDotNode{6}{4}{southeast}{right}{left}{\eta_2}
+\extraDotNode{7}{1}{west}{below}{above}{\varepsilon_2}
+\extraNode{8}{5}{northeast}{right}{left}{\zeta_1}
+\extraNode{9}{6}{southeast}{right}{left}{\eta_1}
+\extraNode{10}{7}{west}{below}{above}{\varepsilon_1}
+\end{dynkinDiagram}
+\end{tabular}
+\end{center}
+\end{filecontents*}
+\begingroup
+\tikzset{/Dynkin diagram,label=false,label*=false}
+\input{humphreys.tex}
+\endgroup
+\VerbatimInput[commentchar=!]{humphreys.tex}
+
+
\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:
\[
@@ -1946,6 +2065,8 @@ is computed as \(n=\sum 2^{i-1} a_i\), \(a_i=0\) or \(1\), to say that root \(i\
& whether to reverse the direction of the arrows that arise along the edges\\
\optionLabel{root radius}{\typ{number}cm}{.05cm}
& size of the dots and of the crosses in the Dynkin diagram \\
+\optionLabel{separator length}{length}{.35cm}
+& distance between successive components of a disconnected Dynkin diagram \\
\optionLabel{text style}{\TikZstyle}{scale=.7}
& Style for any labels on the roots\\
\optionLabel{upside down}{\truefalse}{false}