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