summaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
Diffstat (limited to 'graphics')
-rw-r--r--graphics/pgf/contrib/dynkin-diagrams/DoneTwoElBendy.tex5
-rw-r--r--graphics/pgf/contrib/dynkin-diagrams/DoneTwoElStraight.tex6
-rw-r--r--graphics/pgf/contrib/dynkin-diagrams/EulerProducts.tex61
-rw-r--r--graphics/pgf/contrib/dynkin-diagrams/README10
-rw-r--r--graphics/pgf/contrib/dynkin-diagrams/borovoi.tex15
-rw-r--r--graphics/pgf/contrib/dynkin-diagrams/d44.tex19
-rw-r--r--graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.pdfbin751053 -> 753222 bytes
-rw-r--r--graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.sty1508
-rw-r--r--graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.tex1247
-rw-r--r--graphics/pgf/contrib/dynkin-diagrams/hermitian-symmetric-spaces.tex19
-rw-r--r--graphics/pgf/contrib/dynkin-diagrams/simple-lie-algebras.tex35
-rw-r--r--graphics/pgf/contrib/tikz-trackschematic/README.md5
-rw-r--r--graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-documentation.sty10
-rw-r--r--graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets.pdfbin147916 -> 149835 bytes
-rw-r--r--graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets.tex22
-rw-r--r--graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/braking_point_backward.tikz13
-rw-r--r--graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/braking_point_forward.tikz13
-rw-r--r--graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/danger_point_backward.tikz13
-rw-r--r--graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/danger_point_forward.tikz13
-rw-r--r--graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/end_of_movement_authority_backward.tikz (renamed from graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_end_marker_backward.tikz)0
-rw-r--r--graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/end_of_movement_authority_forward.tikz (renamed from graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_end_marker_forward.tikz)0
-rw-r--r--graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic.pdfbin205165 -> 206717 bytes
-rw-r--r--graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic.tex94
-rw-r--r--graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.trafficcontrol.code.tex150
24 files changed, 1857 insertions, 1401 deletions
diff --git a/graphics/pgf/contrib/dynkin-diagrams/DoneTwoElBendy.tex b/graphics/pgf/contrib/dynkin-diagrams/DoneTwoElBendy.tex
deleted file mode 100644
index b878b676b8..0000000000
--- a/graphics/pgf/contrib/dynkin-diagrams/DoneTwoElBendy.tex
+++ /dev/null
@@ -1,5 +0,0 @@
-\begin{dynkinDiagram}[ply=4]{D}[1]%
-{****.*****.*****}
- \dynkinFold[bend right=90]{1}{13}
- \dynkinFold[bend right=90]{0}{14}
-\end{dynkinDiagram}
diff --git a/graphics/pgf/contrib/dynkin-diagrams/DoneTwoElStraight.tex b/graphics/pgf/contrib/dynkin-diagrams/DoneTwoElStraight.tex
deleted file mode 100644
index f74b7f7b19..0000000000
--- a/graphics/pgf/contrib/dynkin-diagrams/DoneTwoElStraight.tex
+++ /dev/null
@@ -1,6 +0,0 @@
-\begin{dynkinDiagram}[ply=4]{D}[1]%
-{****.*****.*****}
- \dynkinFold{0}{1}
- \dynkinFold{1}{13}
- \dynkinFold{13}{14}
-\end{dynkinDiagram}
diff --git a/graphics/pgf/contrib/dynkin-diagrams/EulerProducts.tex b/graphics/pgf/contrib/dynkin-diagrams/EulerProducts.tex
deleted file mode 100644
index f087ce48b6..0000000000
--- a/graphics/pgf/contrib/dynkin-diagrams/EulerProducts.tex
+++ /dev/null
@@ -1,61 +0,0 @@
-\tikzset{/Dynkin diagram,ordering=Dynkin,label macro/.code={\alpha_{#1}}}
-\newcounter{EPNo}
-\setcounter{EPNo}{0}
-\NewDocumentCommand\EP{smmmm}%
-{%
-\stepcounter{EPNo}\roman{EPNo}. &
-\def\eL{.6cm}
-\IfStrEqCase{#2}%
-{%
-{D}{\gdef\eL{1cm}}%
-{E}{\gdef\eL{.75cm}}%
-{F}{\gdef\eL{.35cm}}%
-{G}{\gdef\eL{.35cm}}%
-}%
-\tikzset{/Dynkin diagram,edge length=\eL}
-\IfBooleanTF{#1}%
-{\dynkin[backwards,labels*={#4},labels={#5}]{#2}{#3}}
-{\dynkin[labels*={#4},labels={#5}]{#2}{#3}}
-\\
-}%
-\begin{longtable}{MM}
-\caption{Dynkin diagrams from Euler products \cite{Langlands:1967}}\\
-\endfirsthead
-\caption{\dots continued}\\
-\endhead
-\multicolumn{2}{c}{continued \dots}\\
-\endfoot
-\endlastfoot
-\EP{A}{***.**}{1,1,1,1,1}{,1,2,n-1,n}
-\EP{A}{***.**}{1,1,1,1,1}{1,2,n-1,n}
-\EP{A}{**.***.*}{1,1,1,1,1,1}{1,2,m-1,,m,n}
-\EP{B}{**.***}{2,2,2,2,1}{1,2,n-1,n}
-\EP*{B}{***.**}{2,2,2,2,1}{n,n-1,2,1,}
-\EP{C}{**.***}{1,1,1,1,2}{1,2,n-1,}
-\EP*{C}{***.**}{1,1,1,1,2}{n,n-1,2,1,}
-\EP{D}{**.****}{1,1,1,1,1,1}{1,2,n-2,n-1,n}
-\EP{D}{**.****}{1,1,1,1,1,1}{1,2,n-2,n-1,n}
-\EP{E}{6}{1,1,1,1,1,1}{1,...,5}
-\EP*{E}{7}{1,1,1,1,1,1,1}{6,...,1}
-\EP{E}{7}{1,1,1,1,1,1,1}{1,...,6}
-\EP*{E}{8}{1,1,1,1,1,1,1,1}{7,...,1}
-\EP{E}{8}{1,1,1,1,1,1,1,1}{1,...,7}
-\EP{G}{2}{1,3}{,1}
-\EP{G}{2}{1,3}{1}
-\EP{B}{**.*.**}{2,2,2,2,1}{,1,2,n-1,n}
-\EP{F}{4}{1,1,2,2}{,3,2,1}
-\EP{C}{3}{1,1,2}{,2,1}
-\EP{C}{**.***}{1,1,1,1,2}{,1,n-2,n-1,n}
-\EP*{B}{3}{2,2,1}{1,2}
-\EP{F}{4}{1,1,2,2}{1,2,3}
-\EP{D}{**.****}{1,1,1,1,1,1}{1,2,n-2,n-2,n,n}
-\EP{E}{6}{1,1,1,1,1,1}{1,2,3,4,,5}
-\EP{E}{6}{1,1,1,1,1,1}{1,2,3,5,,4}
-\EP*{E}{7}{1,1,1,1,1,1,1}{,5,...,1,6}
-\EP*{E}{7}{1,1,1,1,1,1,1}{,6,4,3,2,1,5}
-\EP*{E}{8}{1,1,1,1,1,1,1,1}{,6,...,1,7}
-\EP*{E}{8}{1,1,1,1,1,1,1,1}{,7,5,4,3,2,1,6}
-\EP*{E}{7}{1,1,1,1,1,1,1}{5,...,1,,6}
-\EP*{E}{7}{1,1,1,1,1,1,1}{1,...,5,,6}
-\EP*{E}{8}{1,1,1,1,1,1,1,1}{6,...,1,,7}
-\end{longtable}
diff --git a/graphics/pgf/contrib/dynkin-diagrams/README b/graphics/pgf/contrib/dynkin-diagrams/README
index 63b623b955..ea0e6117c2 100644
--- a/graphics/pgf/contrib/dynkin-diagrams/README
+++ b/graphics/pgf/contrib/dynkin-diagrams/README
@@ -2,9 +2,9 @@ ___________________________________
Dynkin diagrams
- v3.141592653
+ v3.1415926535
- 4 December 2019
+ 2 February 2020
___________________________________
Authors : Ben McKay
@@ -15,8 +15,6 @@ Licence : Released under the LaTeX Project Public License v1.3c or
----------------------------------------------------------------------
-Draws Dynkin Coxeter, and Satake diagrams in LaTeX doc­u­ments, us­ing the TikZ pack­age.
-Version 3.141592653 fixes problems with Coxeter diagram edge labels being too far away, adds a macro to draw general edge labels, and a macro to typeset a name for a Dynkin diagram.
-
-
+Draws Dynkin, Coxeter, and Satake diagrams in LaTeX documents, using
+the TikZ package.
diff --git a/graphics/pgf/contrib/dynkin-diagrams/borovoi.tex b/graphics/pgf/contrib/dynkin-diagrams/borovoi.tex
deleted file mode 100644
index f0664d2207..0000000000
--- a/graphics/pgf/contrib/dynkin-diagrams/borovoi.tex
+++ /dev/null
@@ -1,15 +0,0 @@
-\tikzset{big arrow/.style={
- -Stealth,line cap=round,line width=1mm,
- shorten <=1mm,shorten >=1mm}}
-\newcommand\catholic[2]{\draw[big arrow,green!25!white]
-(root #1) to (root #2);}
-\newcommand\protestant[2]{
-\begin{scope}[transparency group, opacity=.25]
-\draw[big arrow,orange] (root #1) to (root #2);
-\end{scope}}
-\begin{dynkinDiagram}[edge length=1.2cm,
-indefinite edge/.style={thick,loosely dotted},
-labels*={0,1,2,3,\ell-3,\ell-2,\ell-1,\ell}]{D}[1]{}
-\catholic{0}{6}\catholic{1}{7}
-\protestant{7}{0}\protestant{6}{1}
-\end{dynkinDiagram}
diff --git a/graphics/pgf/contrib/dynkin-diagrams/d44.tex b/graphics/pgf/contrib/dynkin-diagrams/d44.tex
deleted file mode 100644
index 482b805fa5..0000000000
--- a/graphics/pgf/contrib/dynkin-diagrams/d44.tex
+++ /dev/null
@@ -1,19 +0,0 @@
-\tikzset{/Dynkin diagram,edge length=1cm,fold radius=1cm}
-\tikzset{/Dynkin diagram,label macro/.code={\alpha_{#1}},label macro*/.code={\beta_{#1}}}
-\({}^1 D_4\) 4-ply tied straight:
-\begin{dynkinDiagram}[ply=4]{D}[1]%
-{****.*****.*****}
- \dynkinFold{0}{1}
- \dynkinFold{1}{13}
- \dynkinFold{13}{14}
-\dynkinLabelRoots{0,...,14}
-\dynkinLabelRoots*{0,...,14}
-\end{dynkinDiagram}
-\({}^1 D_4\) 4-ply tied bending:
-\begin{dynkinDiagram}[ply=4]{D}[1]%
-{****.*****.*****}
- \dynkinFold{1}{13}
- \dynkinFold[bend right=65]{0}{14}
-\dynkinLabelRoots{0,...,14}
-\dynkinLabelRoots*{0,...,14}
-\end{dynkinDiagram}
diff --git a/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.pdf b/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.pdf
index 29f6f28c86..6c5a374c37 100644
--- a/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.pdf
+++ b/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.sty b/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.sty
index e7c4af6022..4a5f69c3ac 100644
--- a/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.sty
+++ b/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.sty
@@ -1,8 +1,7 @@
%
-%
% The Dynkin Diagrams package.
%
-% Version 3.141592653
+% Version 3.1415926535
%
%
% This package draws Dynkin diagrams in LaTeX documents, using the TikZ package.
@@ -18,7 +17,7 @@
%
%
\NeedsTeXFormat{LaTeX2e}[1994/06/01]
-\ProvidesPackage{dynkin-diagrams}[2019/12/04 Dynkin diagrams]
+\ProvidesPackage{dynkin-diagrams}[2020/02/02 Dynkin diagrams]
\RequirePackage{tikz}
\RequirePackage{xstring}
\RequirePackage{xparse}
@@ -44,6 +43,16 @@
%%% See dynkin-diagrams.tex file for examples of use.
%%%
+
+\ifx\draw@lie@hasse@root\undefined
+\pgfdeclarelayer{background}
+\pgfdeclarelayer{Dynkin behind}
+%\pgfdeclarelayer{Dynkin middle}
+%\pgfdeclarelayer{Dynkin above}
+\pgfsetlayers{background,Dynkin behind,%Dynkin middle,Dynkin above,
+main}
+\fi
+
\newif\ifold@dynkin@is@backwards
\newif\ifold@dynkin@is@upsidedown
\newif\ifold@dynkin@is@extended
@@ -70,7 +79,7 @@
\NewDocumentEnvironment{dynkinDiagram}{O{}mO{0}m}%
{%
\dynkin@save{}%
-\begin{tikzpicture}%
+\begin{tikzpicture}[baseline=(origin.base)]%
\@dynkin[#1]{#2}[#3]{#4}%
}%
{%
@@ -98,10 +107,10 @@
}%
\NewDocumentCommand\dynkinName{O{}mO{0}m}%
{%
-\dynkin@save{}%
-\xdef\dynkin@ply@value{1}%
-\xdef\dynkin@label@directions{}%
-\xdef\dynkin@label@directions@star{}%
+ \dynkin@save{}%
+ \xdef\dynkin@ply@value{1}%
+ \xdef\dynkin@label@directions{}%
+ \xdef\dynkin@label@directions@star{}%
\setcounter{dynkinRootNo}{0}%
\dynkin@clear@indefinite@edge@list%
\xdef\dynkin@parabolic{0}%
@@ -109,9 +118,28 @@
\xdef\dynkin@user@series{#2}%
\xdef\dynkin@twisted@series{#3}%
\xdef\dynkin@user@string{#4}%
+ \xdef\dynkin@string{#4}%
\xdef\dynkin@series{#2}%
\dynkin@grok@series%
\IfSubStr{ABCDEFGHI}{\dynkin@series}{}{\dynkin@error@series}%
+ \IfInteger{\dynkin@string}%
+ {%
+ \dynkin@integer@rank%
+ }%
+ {%
+ % Turn Satake codes into Dynkin diagram expressions in \dynkin@string.
+ \dynkin@grok@Satake@codes%
+ }%
+ % Expand out any digits in \dynkin@string into multiples of the various root marks.
+ \expand@Dynkin@Roots@Digits%
+ % Assign to \dynkin@roots the input string \dynkin@string with all . symbols removed,
+ % so we only get the symbols representing the marks for the various roots.
+ \StrDel{\dynkin@string}{.}[\temp]%
+ \xdef\dynkin@roots{\temp}%
+ \StrLen{\dynkin@roots}[\temp]%
+ \global\dynkin@nodes=\temp\relax%
+ \dynkin@grok@indefinite@edges%
+ \dynkin@find@rank{}%
\ensuremath{%
\dynkin@series^{%
\ifdynkin@is@extended{1}%
@@ -126,7 +154,18 @@
{%
\IfStrEq{\dynkin@user@string}{}%
{\dynkin@indefinite@number@symbol}%
- {\dynkin@user@string}%
+ {\ifdynkin@Satake@diagram%
+ \dynkin@user@string%
+ \else%
+ \IfStrEq{\dynkin@user@string}{even}{ev}%
+ {%
+ \IfStrEq{\dynkin@user@string}{odd}{od}%
+ {%
+ \the\dynkin@rank%
+ }%
+ }%
+ \fi%
+ }%
\IfStrEq{\dynkin@parabolic}{0}%
{}%
{,\dynkin@parabolic}
@@ -135,6 +174,11 @@
\dynkin@restore{}%
}%
+%% Returns the current Dynkin diagram ordering as a string.
+\NewDocumentCommand\currentDynkinOrdering{}%
+{%
+ \dynkin@ordering%
+}%
\NewDocumentCommand\dynkinRefreshRoots{}%
{%
@@ -215,14 +259,19 @@
{%
\ifdefined\filldraw\else\dynkin@error@not@in@tikz\fi%
\ifnum\dynkin@nodes<#2%
- \ClassError{Dynkin diagrams}{Unrecognized root: ``#2'' found when labelling Dynkin diagram \dynkin@user@series{\dynkin@user@string}. Allowed values are up to \the\dynkin@nodes}{}%
+ \ClassError{Dynkin diagrams}%
+ {Unrecognized root:
+ ``#2'' found when labelling Dynkin diagram
+ \dynkin@user@series{\dynkin@user@string}.
+ Allowed values are up to \the\dynkin@nodes}%
+ {}%
\fi%
\IfStrEq{#3}{}%
{%
}%
{%
- \rpo=#2%
- \advance\rpo by 1%
+ \rpo=#2\relax%
+ \advance\rpo by 1\relax%
\IfBooleanTF{#1}%
{%
\StrMid{\dynkin@label@directions@star}{\the\rpo}{\the\rpo}[\dynkin@direction@letter]%
@@ -282,15 +331,18 @@
\setcounter{dynkinRootNo}{0}%
\fi%
\fi%
- \edef\XXX{#2}%
- \foreach \i in \XXX%
+ \edef\dynkin@labelies{#2}%
+ \IfBooleanTF{#1}%
{%
- \IfBooleanTF{#1}%
+ \foreach \i in \dynkin@labelies%
{%
- \@dynkinLabelThisRootStar{\i}%
+ \@dynkinLabelThisRootStar{\i}%
}%
+ }%
+ {%
+ \foreach \i in \dynkin@labelies%
{%
- \@dynkinLabelThisRoot{\i}%
+ \@dynkinLabelThisRoot{\i}%
}%
}%
}%
@@ -298,26 +350,26 @@
\NewDocumentCommand\dynkinBrace{somm}%[text]{start}{end}
{%
\ifdefined\filldraw\else\dynkin@error@not@in@tikz\fi%
-\draw[
-decoration=
- {
- brace,
- \IfBooleanF{#1}{mirror},
- raise=0.05cm,
- },
- decorate]
- ($(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}})$)
- node
- [
- pos=0.5,
- anchor=\IfBooleanTF{#1}{south}{north},
- yshift=\IfBooleanTF{#1}{1mm}{-1mm},
- /Dynkin diagram/text style
-]
-{\IfValueT{#2}{\(#2\)}};%
-}
+ \draw[%
+ decoration=%
+ {%
+ brace,
+ \IfBooleanF{#1}{mirror},
+ raise=0.05cm,
+ },%
+ decorate]%
+ ($(root #3)-({\dynkin@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,%
+ anchor=\IfBooleanTF{#1}{south}{north},%
+ yshift=\IfBooleanTF{#1}{1mm}{-1mm},%
+ /Dynkin diagram/text style%
+ ]%
+ {\IfValueT{#2}{\(#2\)}};%
+}%
%% \dynkinPrintLabels
@@ -384,7 +436,17 @@ decoration=
}%
-
+\NewDocumentCommand\dynkinDrawCrossRootMark{O{}m}%
+{%
+ \draw[/Dynkin diagram,x,#1]%
+ ($(#2)+(\dynkin@root@radius,\dynkin@root@radius)$)%
+ --%
+ ($(#2)-(\dynkin@root@radius,\dynkin@root@radius)$);%
+ \draw[/Dynkin diagram,x,#1]%
+ ($(#2)+(-\dynkin@root@radius,\dynkin@root@radius)$)%
+ --%
+ ($(#2)+(\dynkin@root@radius,-\dynkin@root@radius)$);%
+}%
%% \dynkinCrossRootMark{<n>}
%% Prints a cross at root <n> on the current Dynkin diagram.
@@ -397,16 +459,9 @@ decoration=
\convertRootNumber{#3}%
}%
{%
- \RootNumber=#3%
+ \RootNumber=#3\relax%
}%
- \draw[/Dynkin diagram,x,#2]%
- ($(\dynkin@root@name \the\RootNumber)+(\dynkin@root@radius,\dynkin@root@radius)$)%
- --%
- ($(\dynkin@root@name \the\RootNumber)-(\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\RootNumber)+(\dynkin@root@radius,-\dynkin@root@radius)$);%
+ \dynkinDrawCrossRootMark[#2]{\dynkin@root@name \the\RootNumber}%
}%
%% \dynkinHeavyCrossRootMark{<n>}
@@ -420,7 +475,7 @@ decoration=
\convertRootNumber{#3}%
}%
{%
- \RootNumber=#3%
+ \RootNumber=#3\relax%
}%
\draw[/Dynkin diagram,X,#2]%
($(\dynkin@root@name \the\RootNumber)+(\dynkin@root@radius,\dynkin@root@radius)$)%
@@ -444,7 +499,7 @@ decoration=
\convertRootNumber{#3}%
}%
{%
- \RootNumber=#3%
+ \RootNumber=#3\relax%
}%
\fill[/Dynkin diagram,o,#2] (\dynkin@root@name \the\RootNumber) circle (\dynkin@root@radius);%
}%
@@ -460,12 +515,18 @@ decoration=
\convertRootNumber{#3}%
}%
{%
- \RootNumber=#3%
+ \RootNumber=#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);%
}%
+\NewDocumentCommand\dynkinDrawSolidRootMark{O{}m}%
+{%
+ \ifdefined\filldraw\else\dynkin@error@not@in@tikz\fi%
+ \fill[/Dynkin diagram,*,#1] (#2) circle (\dynkin@root@radius);%
+}%
+
%% \dynkinSolidRootMark{<n>}
%% Prints a solid dot at root <n> on the current Dynkin diagram.
%% The starred form accepts <n> in the Bourbaki ordering.
@@ -477,9 +538,10 @@ decoration=
\convertRootNumber{#3}%
}%
{%
- \RootNumber=#3%
+ \RootNumber=#3\relax%
}%
- \fill[/Dynkin diagram,*,#2] (\dynkin@root@name \the\RootNumber) circle (\dynkin@root@radius);%
+ \dynkinDrawSolidRootMark[#2]{\dynkin@root@name \the\RootNumber}%
+% \fill[/Dynkin diagram,*,#2] (\dynkin@root@name \the\RootNumber) circle (\dynkin@root@radius);%
}%
%% \dynkinTensorRootMark{<n>}
@@ -493,7 +555,7 @@ decoration=
\convertRootNumber{#3}%
}%
{%
- \RootNumber=#3%
+ \RootNumber=#3\relax%
}%
\fill[/Dynkin diagram,o,#2] (\dynkin@root@name \the\RootNumber) circle ({\dynkin@root@radius});%
\draw[/Dynkin diagram,t,#2]%
@@ -557,15 +619,15 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%
\draw[/Dynkin diagram,edge,#2]
($(\dynkin@root@name \the\@fromRoot)$)
--
($(\dynkin@root@name \the\@toRoot)$);%
- \end{scope}%
+ \end{pgfonlayer}%
}%
%% \dynkinIndefiniteSingleEdge{<p>}{<q>}
@@ -580,23 +642,23 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%
\draw[/Dynkin diagram,edge,#2]
($(\dynkin@root@name \the\@fromRoot)$)
--
- (${(2/3)}*(\dynkin@root@name \the\@fromRoot)+{(1/3)}*(\dynkin@root@name \the\@toRoot)$);
+ (${(2/3)}*(\dynkin@root@name \the\@fromRoot)+{(1/3)}*(\dynkin@root@name \the\@toRoot)$);%
\draw[/Dynkin diagram,indefinite edge,#2]
(${(2/3)}*(\dynkin@root@name \the\@fromRoot)+{(1/3)}*(\dynkin@root@name \the\@toRoot)$)
--
- (${(1/3)}*(\dynkin@root@name \the\@fromRoot)+{(2/3)}*(\dynkin@root@name \the\@toRoot)$);
+ (${(1/3)}*(\dynkin@root@name \the\@fromRoot)+{(2/3)}*(\dynkin@root@name \the\@toRoot)$);%
\draw[/Dynkin diagram,edge,#2]
(${(1/3)}*(\dynkin@root@name \the\@fromRoot)+{(2/3)}*(\dynkin@root@name \the\@toRoot)$)
--
- ($(\dynkin@root@name \the\@toRoot)$);
- \end{scope}%
+ ($(\dynkin@root@name \the\@toRoot)$);%
+ \end{pgfonlayer}%
}%
%%% \dynkinRightFold{<p>}{<q>}
@@ -640,16 +702,16 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
% \convertRootPair{\@fromRoot}{\@toRoot}%
- \begin{scope}[on background layer]
+ \begin{pgfonlayer}{Dynkin behind}%
\draw[/Dynkin diagram/fold style,#2]
($(\dynkin@root@name \the\@fromRoot)$)
to
($(\dynkin@root@name \the\@toRoot)$);
- \end{scope}%
+ \end{pgfonlayer}%
}%
@@ -664,14 +726,14 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%
\draw[/Dynkin diagram,edge,fill=none,#2]%
($(\dynkin@root@name \the\@fromRoot)$)%
arc (90:0:\dynkin@fold@radius);%
- \end{scope}%
+ \end{pgfonlayer}%
}%
%% \dynkinIndefiniteRightDownArc{<p>}{<q>}
@@ -685,11 +747,11 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
\node (center) at ($(\dynkin@root@name \the\@fromRoot)-(0,\dynkin@fold@radius)$) {};%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%
\draw[/Dynkin diagram,edge,fill=none,#2]
(center)
++(90:\dynkin@fold@radius)
@@ -702,7 +764,7 @@ decoration=
(center)
++(30:\dynkin@fold@radius)
arc [start angle=30, end angle=0, radius=\dynkin@fold@radius];%
- \end{scope}%
+ \end{pgfonlayer}%
}%
%% \dynkinDefiniteRightUpArc{<p>}{<q>}
@@ -716,14 +778,14 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%
\draw[/Dynkin diagram,edge,fill=none,#2]%
($(\dynkin@root@name \the\@fromRoot)$)%
arc (-90:0:\dynkin@fold@radius);%
- \end{scope}%
+ \end{pgfonlayer}%
}%
%% \dynkinIndefiniteRightUpArc{<p>}{<q>}
@@ -737,11 +799,11 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
\node (center) at ($(\dynkin@root@name \the\@fromRoot)+(0,\dynkin@fold@radius)$) {};%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%
\draw[/Dynkin diagram,edge,fill=none,#2]
(center)
++(-90:\dynkin@fold@radius)
@@ -754,7 +816,7 @@ decoration=
(center)
++(-30:\dynkin@fold@radius)
arc [start angle=-30, end angle=0, radius=\dynkin@fold@radius];%
- \end{scope}%
+ \end{pgfonlayer}%
}%
@@ -769,14 +831,14 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%
\draw[/Dynkin diagram,edge,fill=none,#2]%
($(\dynkin@root@name \the\@fromRoot)$)%
arc (90:180:\dynkin@fold@radius);%
- \end{scope}%
+ \end{pgfonlayer}%
}%
%% \dynkinIndefiniteLeftDownArc{<p>}{<q>}
@@ -790,11 +852,11 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
\node (center) at ($(\dynkin@root@name \the\@fromRoot)-(0,\dynkin@fold@radius)$) {};%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%
\draw[/Dynkin diagram,edge,fill=none,#2]
(center)
++(90:\dynkin@fold@radius)
@@ -807,7 +869,7 @@ decoration=
(center)
++(150:\dynkin@fold@radius)
arc [start angle=150, end angle=180, radius=\dynkin@fold@radius];%
- \end{scope}%
+ \end{pgfonlayer}%
}%
%% \dynkinDefiniteLeftUpArc{<p>}{<q>}
@@ -821,14 +883,14 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%
\draw[/Dynkin diagram,edge,fill=none,#2]
($(\dynkin@root@name \the\@fromRoot)$)
arc (-90:-180:\dynkin@fold@radius);%
- \end{scope}%
+ \end{pgfonlayer}%
}%
%% \dynkinIndefiniteLeftUpArc{<p>}{<q>}
@@ -842,11 +904,11 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
\node (center) at ($(\dynkin@root@name \the\@fromRoot)+(0,\dynkin@fold@radius)$) {};%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%%
\draw[/Dynkin diagram,edge,fill=none,#2]
(center)
++(-90:\dynkin@fold@radius)
@@ -859,7 +921,7 @@ decoration=
(center)
++(-150:\dynkin@fold@radius)
arc [start angle=-150, end angle=-180, radius=\dynkin@fold@radius];%
- \end{scope}%
+ \end{pgfonlayer}%
}%
@@ -874,14 +936,14 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%%
\draw[/Dynkin diagram,edge,fill=none,#2]
($(\dynkin@root@name \the\@fromRoot)$)
arc (90:-90:\dynkin@fold@radius);%
- \end{scope}%
+ \end{pgfonlayer}%
}%
%% \dynkinIndefiniteSemiCircle{<p>}{<q>}
@@ -895,11 +957,11 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
\node (center) at ($(\dynkin@root@name \the\@fromRoot)-(0,\dynkin@fold@radius)$) {};%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%%
\draw[/Dynkin diagram,edge,fill=none,#2]
(center)
++(90:\dynkin@fold@radius)
@@ -911,8 +973,8 @@ decoration=
\draw[/Dynkin diagram,edge,fill=none,#2]
(center)
++(-90:\dynkin@fold@radius)
- arc [start angle=-90, end angle=-30, radius=\dynkin@fold@radius];
- \end{scope}%
+ arc [start angle=-90, end angle=-30, radius=\dynkin@fold@radius];%
+ \end{pgfonlayer}%
}%
%% \dynkinDefiniteDoubleRightDownArc{<p>}{<q>}
@@ -927,10 +989,10 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%%
\draw[/Dynkin diagram,edge,double,fill=none,#2]%
($(\dynkin@root@name \the\@fromRoot)$)%
arc (90:0:{\dynkin@fold@radius});%
@@ -947,7 +1009,7 @@ decoration=
arc (90:45:{\dynkin@fold@radius});%
\fi%
\fi%
- \end{scope}%
+ \end{pgfonlayer}%
}%
@@ -963,10 +1025,10 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%%
\draw[/Dynkin diagram,edge,double,fill=none,#2]%
($(\dynkin@root@name \the\@fromRoot)$)%
arc (180:90:{\dynkin@fold@radius});%
@@ -981,7 +1043,7 @@ decoration=
arc (180:135:{\dynkin@fold@radius});%
\fi%
\fi%
- \end{scope}%
+ \end{pgfonlayer}%
}%
@@ -997,10 +1059,10 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%%
\draw[/Dynkin diagram,edge,double,fill=none,#2]%
($(\dynkin@root@name \the\@fromRoot)$)%
arc (0:90:{\dynkin@fold@radius});%
@@ -1017,7 +1079,7 @@ decoration=
arc (0:45:{\dynkin@fold@radius});%
\fi%
\fi%
- \end{scope}%
+ \end{pgfonlayer}%
}%
@@ -1035,10 +1097,10 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%%
\draw[/Dynkin diagram,edge,double,fill=none,#2]%
($(\dynkin@root@name \the\@fromRoot)$)%
--
@@ -1057,7 +1119,7 @@ decoration=
arc (180:225:{\dynkin@fold@radius});%
\fi%
\fi%
- \end{scope}%
+ \end{pgfonlayer}%
}%
@@ -1073,10 +1135,10 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%%
\draw[/Dynkin diagram,edge,double,fill=none,#2]%
($(\dynkin@root@name \the\@fromRoot)$)%
arc (270:360:{\dynkin@fold@radius});%
@@ -1093,7 +1155,7 @@ decoration=
arc (270:315:\dynkin@fold@radius);%
\fi%
\fi%
- \end{scope}%
+ \end{pgfonlayer}%
}%
%% \dynkinDefiniteDoubleLeftDownArc{<p>}{<q>}
@@ -1108,10 +1170,10 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%%
\draw[/Dynkin diagram,edge,double,fill=none,#2]%
($(\dynkin@root@name \the\@fromRoot)$)%
arc (90:180:{\dynkin@fold@radius});%
@@ -1129,7 +1191,7 @@ decoration=
arc (90:135:{\dynkin@fold@radius});%
\fi%
\fi%
- \end{scope}%
+ \end{pgfonlayer}%
}%
@@ -1145,10 +1207,10 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%%
\draw[/Dynkin diagram,edge,double,fill=none,#2]%
($(\dynkin@root@name \the\@fromRoot)$)%
arc (360:270:{\dynkin@fold@radius});%
@@ -1167,7 +1229,7 @@ decoration=
arc (360:315:{\dynkin@fold@radius});%
\fi%
\fi%
- \end{scope}%
+ \end{pgfonlayer}%
}%
@@ -1184,10 +1246,10 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%%
\draw[/Dynkin diagram,edge,double,fill=none,#2]%
($(\dynkin@root@name \the\@fromRoot)$)%
arc (-90:-180:{\dynkin@fold@radius});%
@@ -1205,7 +1267,7 @@ decoration=
arc (-90:-135:\dynkin@fold@radius);%
\fi%
\fi%
- \end{scope}%
+ \end{pgfonlayer}%
}%
@@ -1221,10 +1283,10 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%%
\draw[/Dynkin diagram,edge,double,fill=none,#2]%
($(\dynkin@root@name \the\@fromRoot)$)%
arc (90:-90:{\dynkin@fold@radius});%
@@ -1243,7 +1305,7 @@ decoration=
arc (90:0:\dynkin@fold@radius);%
\fi%
\fi%
- \end{scope}%
+ \end{pgfonlayer}%
}%
@@ -1261,10 +1323,10 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%%
\draw[/Dynkin diagram,
edge,
double,
@@ -1292,7 +1354,7 @@ decoration=
arc (90:0:\dynkin@fold@radius);%
\fi%
\fi%
- \end{scope}%
+ \end{pgfonlayer}%%
}%
@@ -1310,10 +1372,10 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%%
\draw[/Dynkin diagram,edge,double,fill=none,#2]%
($(\dynkin@root@name \the\@fromRoot)$)%
arc (-90:90:{\dynkin@fold@radius});%
@@ -1332,7 +1394,7 @@ decoration=
arc (-90:0:\dynkin@fold@radius);%
\fi%
\fi%
- \end{scope}%
+ \end{pgfonlayer}%%
}%
@@ -1375,10 +1437,10 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%%
\ifdynkin@reverse@arrows%
\path[
-{Computer Modern Rightarrow[\dynkin@arrow@color]},
@@ -1394,14 +1456,14 @@ decoration=
--
($.3*(\dynkin@root@name \the\@fromRoot)+.7*(\dynkin@root@name \the\@toRoot)$);%
\fi%
- \end{scope}%
+ \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]%
+ /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]%
@@ -1448,27 +1510,27 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
\StrChar{\dynkin@roots}{\the\@fromRoot}[\my@root@marker]%
\IfStrEq{\my@root@marker}{x}%
{%
- \global\onesbit=1%
+ \global\onesbit=1\relax%
}%
{%
- \global\onesbit=0%
+ \global\onesbit=0\relax%
}%
\StrChar{\dynkin@roots}{\the\@toRoot}[\my@root@marker]%
\IfStrEq{\my@root@marker}{x}%
{%
- \global\twosbit=1%
+ \global\twosbit=1\relax%
}%
{%
- \global\twosbit=0%
+ \global\twosbit=0\relax%
}%
\ifdynkin@Kac@arrows
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%%
\ifdynkin@arrows%
\ifdynkin@reverse@arrows
\ifdynkin@is@backwards
@@ -1489,10 +1551,10 @@ decoration=
--%
(\dynkin@root@name \the\@toRoot);%
\fi%
- \end{scope}%
+ \end{pgfonlayer}%%
\else
\def\LL{.5*\dynkin@root@radius}
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%%
\draw[/Dynkin diagram,edge,#2]%
($(\dynkin@root@name \the\@fromRoot)$)%
--%
@@ -1507,7 +1569,7 @@ decoration=
($(\dynkin@root@name \the\@fromRoot)+(\the\onesbit*\LL,-\LL)$)%
--%
cycle;%
- \end{scope}%
+ \end{pgfonlayer}%%
\ifdynkin@arrows%
\dynkinEdgeArrow[#2]{\the\@fromRoot}{\the\@toRoot}%
\fi%
@@ -1525,27 +1587,27 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
\StrChar{\dynkin@roots}{\the\@fromRoot}[\my@root@marker]%
\IfStrEq{\my@root@marker}{x}%
{%
- \global\onesbit=1%
+ \global\onesbit=1\relax%
}%
{%
- \global\onesbit=0%
+ \global\onesbit=0\relax%
}%
\StrChar{\dynkin@roots}{\the\@toRoot}[\my@root@marker]%
\IfStrEq{\my@root@marker}{x}%
{%
- \global\twosbit=1%
+ \global\twosbit=1\relax%
}%
{%
- \global\twosbit=0%
+ \global\twosbit=0\relax%
}%
\ifdynkin@Kac@arrows
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%%
\ifdynkin@arrows%
\ifdynkin@reverse@arrows
\ifdynkin@is@backwards
@@ -1570,9 +1632,9 @@ decoration=
--%
(\dynkin@root@name \the\@toRoot);%
\fi%
- \end{scope}%
+ \end{pgfonlayer}%%
\else
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%%
\draw[/Dynkin diagram,edge,#2]%
($(\dynkin@root@name \the\@fromRoot)$)%
--%
@@ -1591,7 +1653,7 @@ decoration=
($(\dynkin@root@name \the\@fromRoot)$)
--
($(\dynkin@root@name \the\@toRoot)$);%
- \end{scope}%
+ \end{pgfonlayer}%%
\ifdynkin@arrows%
\dynkinEdgeArrow[#2]{\the\@fromRoot}{\the\@toRoot}%
\fi%
@@ -1611,11 +1673,11 @@ decoration=
\convertRootPair{#3}{#4}%
}%
{%
- \@fromRoot=#3%
- \@toRoot=#4%
+ \@fromRoot=#3\relax%
+ \@toRoot=#4\relax%
}%
\ifdynkin@Kac@arrows
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%%
\ifdynkin@arrows%
\ifdynkin@reverse@arrows
\ifdynkin@is@backwards
@@ -1640,9 +1702,9 @@ decoration=
--%
(\dynkin@root@name \the\@toRoot);%
\fi%
- \end{scope}%
+ \end{pgfonlayer}%%
\else
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%%
\draw[/Dynkin diagram,edge,#2]%
($(\dynkin@root@name \the\@fromRoot)+(0,\dynkin@root@radius)$)--%
($(\dynkin@root@name \the\@toRoot)+(0,\dynkin@root@radius)$)--%
@@ -1655,7 +1717,7 @@ decoration=
($(\dynkin@root@name \the\@toRoot)+(0,-\dynkin@root@radius/3)$)--%
($(\dynkin@root@name \the\@fromRoot)+(0,-\dynkin@root@radius/3)$)--%
cycle;
- \end{scope}%
+ \end{pgfonlayer}%%
\ifdynkin@arrows%
\dynkinEdgeArrow[#2]{\the\@fromRoot}{\the\@toRoot}%
\fi%
@@ -1791,24 +1853,30 @@ decoration=
\def\dynkin@arrow@color{}
+\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,
affine mark/.estore in = \dynkin@affine@root@mark,
+ 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,
arrows/.is if = dynkin@arrows,
arrows = true,
at/.estore in = \dynkin@current@location,
+ at/.default = {(0,0)},
backwards/.is if = dynkin@is@backwards,
backwards = false,
Coxeter/.is if = dynkin@Coxeter,
Coxeter=false,
- edge label/.style={text height=0,text depth=0,label distance=-4pt},
double edges/.style = {
fold style/.style = {
draw=black,
@@ -1818,6 +1886,7 @@ decoration=
line width=\defaultpgflinewidth}
},
double-edges/.forward to=/Dynkin diagram/double edges/.style,
+ doubleedges/.forward to=/Dynkin diagram/double edges/.style,
double fold/.style = {
fold style/.style = {
draw=black,
@@ -1827,6 +1896,7 @@ decoration=
line width=\defaultpgflinewidth}
},
double-fold/.forward to=/Dynkin diagram/double fold/.style,
+ doublefold/.forward to=/Dynkin diagram/double fold/.style,
double left/.style = {
fold left style/.style = {
draw=black,
@@ -1836,6 +1906,7 @@ decoration=
line width=\defaultpgflinewidth}
},
double-left/.forward to=/Dynkin diagram/double left/.style,
+ doubleleft/.forward to=/Dynkin diagram/double left/.style,
double fold left/.style = {
fold left style/.style = {
draw=black,
@@ -1844,7 +1915,8 @@ decoration=
double distance=\dynkin@root@radius,
line width=\defaultpgflinewidth}
},
- double-fold/.forward to=/Dynkin diagram/double fold/.style,
+ double-fold-left/.forward to=/Dynkin diagram/double fold left/.style,
+ doublefoldleft/.forward to=/Dynkin diagram/double fold left/.style,
double right/.style = {
fold right style/.style = {
draw=black,
@@ -1854,6 +1926,7 @@ decoration=
line width=\defaultpgflinewidth}
},
double-right/.forward to=/Dynkin diagram/double right/.style,
+ doubleright/.forward to=/Dynkin diagram/double right/.style,
double fold right/.style = {
fold right style/.style = {
draw=black,
@@ -1863,34 +1936,63 @@ decoration=
line width=\defaultpgflinewidth}
},
double-fold-right/.forward to=/Dynkin diagram/double fold right/.style,
+ doublefoldright/.forward to=/Dynkin diagram/double fold right/.style,
+ edge label/.style={text height=0,text depth=0,label distance=-4pt},
+ edgelabel/.forward to=/Dynkin diagram/edge label/.style,
edge length/.estore in = \dynkin@edge@length,
edge-length/.forward to=/Dynkin diagram/edge length,
+ edgelength/.forward to=/Dynkin diagram/edge length,
edge length = .35cm,
edge/.style={solid,draw=black,fill=white,thin},
extended/.is if = dynkin@is@extended,
extended = false,
fold left/.is if = dynkin@left@fold,
+ fold-left/.forward to = /Dynkin diagram/fold left,
+ foldleft/.forward to = /Dynkin diagram/fold left,
+ fold left/.default = false,
ply/.estore in = \dynkin@ply@value,
ply/.default = 1,
fold/.style={/Dynkin diagram/ply=2,fold style},
- fold style/.style = {/Dynkin diagram/ply=2,solid,draw=black!40,fill=none,line width=\dynkin@root@radius,{Triangle Cap[]}-{Triangle Cap[]}},
+ fold style/.style = {
+ /Dynkin diagram/ply=2,
+ solid,
+ draw=black!40,
+ fill=none,
+ line width=\dynkin@root@radius,
+ {Triangle Cap[]}-{Triangle Cap[]}
+ },
fold-style/.forward to=/Dynkin diagram/fold style/.style,
+ foldstyle/.forward to=/Dynkin diagram/fold style/.style,
fold left style/.style = {},
fold-left-style/.forward to=/Dynkin diagram/fold left style/.style,
+ foldleftstyle/.forward to=/Dynkin diagram/fold left style/.style,
fold radius/.estore in = \dynkin@fold@radius,
fold-radius/.forward to=/Dynkin diagram/fold radius,
+ foldradius/.forward to=/Dynkin diagram/fold radius,
fold radius=.3cm,
fold right/.is if = dynkin@right@fold,
+ fold-right/.forward to = fold right,
+ foldright/.forward to = fold right,
+ fold right/.default = false,
fold right style/.style = {},
fold-right-style/.forward to=/Dynkin diagram/fold right style/.style,
+ foldrightstyle/.forward to=/Dynkin diagram/fold right style/.style,
gonality/.estore in = \dynkin@gonality,
+ gonality/.default = 0,
+ horizontal shift/.estore in=\dynkin@horizontal@shift,
+ horizontal shift/.default=0pt,
+ horizontal-shift/.forward to=/Dynkin diagram/horizontal shift,
+ horizontalshift/.forward to=/Dynkin diagram/horizontal shift,
indefinite edge ratio/.estore in = \dynkin@indefinite@edge@ratio,
indefinite-edge-ratio/.forward to = /Dynkin diagram/indefinite edge ratio,
+ indefiniteedgeratio/.forward to = /Dynkin diagram/indefinite edge ratio,
indefinite edge ratio = 1.6,
indefinite edge/.style={solid,draw=black,fill=white,thin,densely dotted},
indefinite-edge/.forward to=/Dynkin diagram/indefinite edge/.style,
+ indefiniteedge/.forward to=/Dynkin diagram/indefinite edge/.style,
Kac arrows/.is if = dynkin@Kac@arrows,
Kac-arrows/.forward to = /Dynkin diagram/Kac arrows,
+ Kacarrows/.forward to = /Dynkin diagram/Kac arrows,
Kac arrows=false,
Kac/.style={
Kac arrows=true,
@@ -1909,20 +2011,25 @@ decoration=
label depth/.default=g,
label depth,
label-depth/.forward to = /Dynkin diagram/label depth,
+ labeldepth/.forward to = /Dynkin diagram/label depth,
label height/.style={/tikz/every label/.append style={text height={height("#1"}}},
label height/.default=b,
label height,
label-height/.forward to = /Dynkin diagram/label height,
+ labelheight/.forward to = /Dynkin diagram/label height,
labels/.default = {},
labels*/.default = {},
label macro/.code = {\regurgitate{#1}},
label-macro/.forward to=/Dynkin diagram/label macro,
+ labelmacro/.forward to=/Dynkin diagram/label macro,
label macro*/.code = {\regurgitate{#1}},
label-macro*/.forward to=/Dynkin diagram/label macro*,
+ labelmacro*/.forward to=/Dynkin diagram/label macro*,
labels/.store in = \dynkin@label@list,
labels*/.store in = \dynkin@label@list@star,
make indefinite edge/.code={\dynkin@set@edge@indefinite@pair{#1}},
make-indefinite-edge/.forward to=/Dynkin diagram/make indefinite edge,
+ makeindefiniteedge/.forward to=/Dynkin diagram/make indefinite edge,
mark/.estore in = \dynkin@root@mark,
mark = *,
name/.estore in = \dynkin@diagram@name,
@@ -1932,23 +2039,43 @@ decoration=
ordering/.store in = \dynkin@ordering,
ordering = Bourbaki,
parabolic/.estore in = \dynkin@parabolic,
+ parabolic/.default = 0,
reverse arrows/.is if = dynkin@reverse@arrows,
reverse arrows = false,
reverse-arrows/.forward to = /Dynkin diagram/reverse arrows,
+ reversearrows/.forward to = /Dynkin diagram/reverse arrows,
upside down/.is if = dynkin@is@upsidedown,
upside down = false,
upside-down/.forward to = /Dynkin diagram/upside down,
+ upsidedown/.forward to = /Dynkin diagram/upside down,
root radius/.estore in = \dynkin@root@radius,
root-radius/.forward to=/Dynkin diagram/root radius,
+ rootradius/.forward to=/Dynkin diagram/root radius,
root radius=.05cm,
text style/.style={#1},
text style/.default={scale=.7},
- text-style/.forward to=/Dynkin diagram/text style/.style,
+ text-style/.forward to=text style/.style,
+ textstyle/.forward to=text style/.style,
twisted/.is if = dynkin@is@twisted,
twisted/.default = false,
twisted series/.estore in = \dynkin@twisted@series,
twisted-series/.forward to = /Dynkin diagram/twisted series,
+ twistedseries/.forward to = /Dynkin diagram/twisted series,
twisted series/.default = 0,
+ vertical shift/.estore in=\dynkin@vertical@shift,
+ vertical shift/.default=.5ex,
+ vertical-shift/.forward to=/Dynkin diagram/vertical shift,
+ verticalshift/.forward to=/Dynkin diagram/vertical shift,
+ x shift in edge lengths/.code=%
+ {%
+ \pgfmathsetlengthmacro\dynkin@horizontal@shift%
+ {(#1*\dynkin@edge@length)+\dynkin@horizontal@shift}%
+ },%
+ y shift in edge lengths/.code=%
+ {%
+ \pgfmathsetlengthmacro\dynkin@vertical@shift%
+ {(#1*\dynkin@edge@length)+\dynkin@vertical@shift}%
+ },%
*/.style = {
solid,
draw=black,
@@ -2027,13 +2154,6 @@ decoration=
fill=white,
},
},
- at/.default = {(0,0)},
- parabolic/.default = 0,
- gonality/.default = 0,
- fold-left/.forward to = /Dynkin diagram/fold left,
- fold left/.default = false,
- fold-right/.forward to = /Dynkin diagram/fold right,
- fold right/.default = false,
.search also={/tikz},
}
@@ -2046,13 +2166,13 @@ decoration=
%% 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%
- \advance\drpo by 1%
- \dynkin@where=#2%
+ \drpo=\the\dynkin@nodes\relax%
+ \advance\drpo by 1\relax%
+ \dynkin@where=#2\relax%
\IfBooleanTF{#1}%
{%
\StrMid{\dynkin@label@directions@star}{1}{\the\dynkin@where}[\dynkin@start]%
- \advance\dynkin@where by 2
+ \advance\dynkin@where by 2\relax%
\StrMid{\dynkin@label@directions@star}{\the\dynkin@where}{\the\drpo}[\dynkin@end]%
\IfStrEqCase{#3}{%
{right}{\xdef\dynkin@label@directions@star{\dynkin@start 0\dynkin@end}}%
@@ -2069,7 +2189,7 @@ decoration=
}%
{%
\StrMid{\dynkin@label@directions}{1}{\the\dynkin@where}[\dynkin@start]%
- \advance\dynkin@where by 2
+ \advance\dynkin@where by 2\relax%
\StrMid{\dynkin@label@directions}{\the\dynkin@where}{\the\drpo}[\dynkin@end]%
\IfStrEqCase{#3}{%
{right}{\xdef\dynkin@label@directions{\dynkin@start 0\dynkin@end}}%
@@ -2123,8 +2243,8 @@ decoration=
% writes the given number <n> of copies of the default root mark into the string \dynkin@string.
\NewDocumentCommand\dynkin@integer@rank{}%
{%
- \global\dynkin@rank=\dynkin@string%
- \global\dynkin@nodes=\dynkin@string%
+ \global\dynkin@rank=\dynkin@string\relax%
+ \global\dynkin@nodes=\dynkin@string\relax%
\ifdynkin@is@twisted%
\IfStrEqCase{\dynkin@series}%
{%
@@ -2133,7 +2253,7 @@ decoration=
\divide\dynkin@nodes by 2%
\ifodd\dynkin@rank%
\global\dynkin@oddtrue%
- \advance\dynkin@nodes by 1%
+ \advance\dynkin@nodes by 1\relax%
\else%
\global\dynkin@oddfalse%
\fi%
@@ -2144,13 +2264,13 @@ decoration=
{%
{2}%
{%
- \global\advance\dynkin@nodes by -1%
+ \global\advance\dynkin@nodes by -1\relax%
}%
{3}%
{%
\IfStrEq{\dynkin@string}{4}%
{%
- \global\dynkin@nodes=2%
+ \global\dynkin@nodes=2\relax%
}%
{%
\dynkin@error@series%
@@ -2165,7 +2285,7 @@ decoration=
{%
\IfStrEq{\dynkin@string}{6}%
{%
- \global\dynkin@nodes=4%
+ \global\dynkin@nodes=4\relax%
}%
{%
\dynkin@error@series%
@@ -2202,7 +2322,7 @@ decoration=
\NewDocumentCommand\dynkin@set@edge@indefinite@pair{>{\SplitArgument{1}{-}}m}%
{%
-\dynkin@set@edge@indefinite#1
+\dynkin@set@edge@indefinite#1%
}%
\newif\ifdynkin@is@indefinite@edge
@@ -2224,8 +2344,8 @@ decoration=
\convertRootPair{#2}{#3}%
}%
{%
- \@fromRoot=#2%
- \@toRoot=#3%
+ \@fromRoot=#2\relax%
+ \@toRoot=#3\relax%
}%
% Next we sort the order, since edges are stored as undirected edges.
\global\first=\@fromRoot\relax%
@@ -2251,30 +2371,28 @@ decoration=
% interprets it to say which edges are indefinite edges.
\NewDocumentCommand\dynkin@grok@indefinite@edges{}%
{%
- \rootnum=1
+ \rootnum=1\relax
\StrLen{\dynkin@string}[\temp]%
- \dynkin@string@length=\temp
+ \dynkin@string@length=\temp\relax%
\foreach \i in {2,...,\the\dynkin@string@length}%
{%
\StrChar{\dynkin@string}{\i}[\c]%
\IfStrEq{\c}{.}%
{%
- \rootnumpo=\rootnum%
+ \rootnumpo=\rootnum\relax%
\advance\rootnumpo by 1\relax%
\ifnum\the\rootnum<\the\dynkin@nodes%
\dynkin@set@edge@indefinite{\rootnum}{\rootnumpo}%
\fi%
}%
{%
- \global\advance\rootnum by 1%
+ \global\advance\rootnum by 1\relax%
}%
}%
}%
\xdef\spacy{ }
-\xdef\questionMarks{}
-
\NewDocumentCommand\dynkin@clear@label@directions{}%
{%
\xdef\dynkin@label@directions{}%
@@ -2285,7 +2403,7 @@ decoration=
\NewDocumentCommand\dynkin@set@default@label@directions{}%
{%
% \newcount\drpo%
- \drpo=\the\dynkin@nodes%
+ \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}{?}}%
@@ -2309,10 +2427,10 @@ decoration=
\xdef\dynkin@parabolic{0}%
\pgfkeys{/Dynkin diagram, #1}%
\ifdynkin@is@backwards%
- \tikzset{xscale=-1}%
+ \tikzset{xscale=-1}%
\fi%
\ifdynkin@is@upsidedown%
- \tikzset{yscale=-1}%
+ \tikzset{yscale=-1}%
\fi%
\IfStrEq{\dynkin@label@list\dynkin@label@list@star}{}%
{%
@@ -2324,7 +2442,7 @@ decoration=
\xdef\dynkin@twisted@series{#3}%
\xdef\dynkin@user@string{#4}%
\global\dynkin@ply=\dynkin@ply@value\relax%
- \xdef\dynkin@indefinite@edge@length{(\dynkin@edge@length*\dynkin@indefinite@edge@ratio)}\relax%
+\xdef\dynkin@indefinite@edge@length{(\dynkin@edge@length*\dynkin@indefinite@edge@ratio)}\relax%
\xdef\dynkin@series{#2}%
\IfStrEq{\dynkin@diagram@name}{anonymous}%
{%
@@ -2335,7 +2453,7 @@ decoration=
}%
\dynkin@grok@series%
\IfSubStr{ABCDEFGHI}{\dynkin@series}{}{\dynkin@error@series}%
- \xdef\dynkin@string{#4}
+ \xdef\dynkin@string{#4}%
\IfInteger{\dynkin@string}%
{%
\dynkin@integer@rank%
@@ -2344,6 +2462,7 @@ decoration=
% Turn Satake codes into Dynkin diagram expressions in \dynkin@string.
\dynkin@grok@Satake@codes%
}%
+
% Expand out any digits in \dynkin@string into multiples of the various root marks.
\expand@Dynkin@Roots@Digits%
% Assign to \dynkin@roots the input string \dynkin@string with all . symbols removed,
@@ -2357,9 +2476,19 @@ decoration=
\dynkin@cross@out@parabolics{}%
\dynkin@set@default@label@directions{}%
\check@Dynkin@diagram{}%
- \node[anchor=base,inner sep=0pt,outer sep=0pt] (origin) at \dynkin@current@location {};
-% \node (Dynkin current) at (origin) {};%
- \node (Dynkin current) at ($(origin)+(0,0.5ex)$){};
+ \ifdefined\initialize@roots@as@sums@table%
+ \initialize@roots@as@sums@table%
+ \fi%
+ \node[anchor=base,inner sep=0pt,outer sep=0pt]
+ (origin)
+ at
+ \dynkin@current@location
+ {};%
+ \node
+ (Dynkin current)
+ at
+ ($(origin)+(\dynkin@horizontal@shift,\dynkin@vertical@shift)$)%
+ {};%
\ifdynkin@is@twisted%
\csname twisted\dynkin@series dynkin\endcsname%
\else%
@@ -2375,7 +2504,7 @@ decoration=
%% We know the number of nodes; lets find the rank.
\NewDocumentCommand\dynkin@find@rank{}%
{%
- \global\dynkin@rank=\the\dynkin@nodes%
+ \global\dynkin@rank=\the\dynkin@nodes\relax%
\ifdynkin@is@twisted%
\IfStrEqCase{\dynkin@series}%
{%
@@ -2383,7 +2512,7 @@ decoration=
{%
\multiply\dynkin@rank by 2%
\ifdynkin@odd%
- \advance\dynkin@rank by -1%
+ \advance\dynkin@rank by -1\relax%
\fi%
}%
{D}%
@@ -2392,33 +2521,33 @@ decoration=
{%
{2}
{%
- \advance\dynkin@rank by 1%
+ \advance\dynkin@rank by 1\relax%
}%
{3}
{%
- \advance\dynkin@rank by 2%
+ \advance\dynkin@rank by 2\relax%
}%
}%
}%
{E}%
{%
- \advance\dynkin@rank by 2%
+ \advance\dynkin@rank by 2\relax%
}%
}%
\fi%
}%
-\newcount\lenny
+\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{}%
{%
- \StrLen{\dynkin@series}[\lenny]
- \ifnum\lenny>1%
+ \StrLen{\dynkin@series}[\dynkin@lenny]
+ \ifnum\dynkin@lenny>1%
\dynkin@error@series%
- \fi
- \edef\series{\dynkin@series}
+ \fi%
+ \edef\series{\dynkin@series}%
\IfStrEqCase{\dynkin@twisted@series}%
{%
{0}{}%
@@ -2464,16 +2593,13 @@ decoration=
\IfStrEqCase{\dynkin@string}%
{%
{even}{\gdef\dynkin@string{ddd.ddd}\global\dynkin@oddfalse\global\dynkin@Satake@diagramfalse}%
-% {even}{\gdef\dynkin@string{***.***}\global\dynkin@oddfalse\global\dynkin@Satake@diagramfalse}%
{odd}{\gdef\dynkin@string{dddd.ddd}\global\dynkin@oddtrue\global\dynkin@Satake@diagramfalse}%
-% {odd}{\gdef\dynkin@string{****.***}\global\dynkin@oddtrue\global\dynkin@Satake@diagramfalse}%
{}{\gdef\dynkin@string{dd.dd}\global\dynkin@Satake@diagramfalse}%
-% {}{\gdef\dynkin@string{**.**}\global\dynkin@Satake@diagramfalse}%
{I}{ \gdef\dynkin@string{oo.oo}}%
{II}{\gdef\dynkin@string{*o*.o*}}%
- {IIIa}{\global\dynkin@ply=2\gdef\dynkin@string{oo.o**.**o.oo}}%
- {IIIb}{\global\dynkin@ply=2\gdef\dynkin@string{oo.ooo.oo}}%
- {IV} {\global\dynkin@ply=2\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]%
}%
@@ -2525,33 +2651,28 @@ decoration=
\ifdynkin@is@extended%
\ifnum\dynkin@ply=4%
\gdef\dynkin@string{dddd.d.ddddd}
-% \gdef\dynkin@string{****.*.*****}
\else%
\gdef\dynkin@string{ddd.dddd}%
-% \gdef\dynkin@string{***.****}%
\fi%
\else%
\ifdynkin@is@twisted%
\IfStrEqCase{\dynkin@twisted@series}%
{%
{2}{ \gdef\dynkin@string{dd.ddd}}%
-% {2}{ \gdef\dynkin@string{**.***}}%
{3}{\gdef\dynkin@string{ddd}}%
-% {3}{\gdef\dynkin@string{***}}%
}%
[\dynkin@error@series]%
\else%
\gdef\dynkin@string{dd.dddd}%
-% \gdef\dynkin@string{**.****}%
\fi%
\fi%
}%
{Ia}{\gdef\dynkin@string{oo.o*.***}}%
- {Ib}{\global\dynkin@ply=2\gdef\dynkin@string{o.ooo}}%
+ {Ib}{\global\dynkin@ply=2\relax\gdef\dynkin@string{o.ooo}}%
{Ic}{\gdef\dynkin@string{o.ooo}}%
{II} {\gdef\dynkin@string{o*.***}}%
{IIIa}{\gdef\dynkin@string{*o*.o*o}}%
- {IIIb}{\global\dynkin@ply=2\gdef\dynkin@string{*o*.o*oo}}%
+ {IIIb}{\global\dynkin@ply=2\relax\gdef\dynkin@string{*o*.o*oo}}%
}%
[\global\dynkin@Satake@diagramfalse]%
}%
@@ -2565,15 +2686,14 @@ decoration=
\IfStrEq{\dynkin@twisted@series}{2}%
{%
\gdef\dynkin@string{ddddd}%
-% \gdef\dynkin@string{*****}%
}%
{%
\dynkin@error@series%
}%
}%
- {I}{ \global\dynkin@rank=6\gdef\dynkin@string{oooooo}}%
- {II} {\global\dynkin@ply=2\gdef\dynkin@string{oooooo}}%
- {III}{\global\dynkin@ply=2\gdef\dynkin@string{oo***o}}%
+ {I}{ \global\dynkin@rank=6\relax\gdef\dynkin@string{oooooo}}%
+ {II} {\global\dynkin@ply=2\relax\gdef\dynkin@string{oooooo}}%
+ {III}{\global\dynkin@ply=2\relax\gdef\dynkin@string{oo***o}}%
{IV} {\gdef\dynkin@string{o****o}}%
{V}{ \gdef\dynkin@string{ooooooo}}%
{VI} {\gdef\dynkin@string{o*oo*o*} }%
@@ -2585,7 +2705,7 @@ decoration=
}%
{F}%
{%
- \global\dynkin@rank=4%
+ \global\dynkin@rank=4\relax%
\IfStrEqCase{\dynkin@string}%
{%
{I}{ \gdef\dynkin@string{oooo}}%
@@ -2682,7 +2802,7 @@ decoration=
\foreach \i in {1,...,\the\dynkin@nodes}%
{%
\StrChar{\dynkin@roots}{\i}[\cccc]%
- \IfSubStr{*OXotx}{\cccc}%
+ \IfSubStr{*OXotx}{\cccc}%
{%
}%
{%else
@@ -2695,13 +2815,10 @@ decoration=
}%
}%
-%% \check@Dynkin@diagram
-%% Raises error messages for erroneous inputs.
-\NewDocumentCommand\check@Dynkin@diagram{}%
+%% \check@Dynkin@root@order
+\NewDocumentCommand\check@Dynkin@root@order{m}%
{%
- \IfSubStr{1234}{\the\dynkin@ply}{}{\dynkin@error@ply}%
- \check@Dynkin@Roots%
- \IfStrEqCase{\dynkin@ordering}%
+ \IfStrEqCase{#1}%
{%
{Adams}{}%
{Bourbaki}{}%
@@ -2712,9 +2829,17 @@ decoration=
}%
[\ClassError%
{Dynkin diagrams}%
- {Unrecognized label ordering: ``\dynkin@ordering''
- in Dynkin diagram \dynkin@user@series{\dynkin@user@string}}%
+ {Unrecognized label ordering: ``#1'' }%
{}]%
+}%
+
+%% \check@Dynkin@diagram
+%% Raises error messages for erroneous inputs.
+\NewDocumentCommand\check@Dynkin@diagram{}%
+{%
+ \IfSubStr{1234}{\the\dynkin@ply}{}{\dynkin@error@ply}%
+ \check@Dynkin@Roots%
+ \check@Dynkin@root@order{\dynkin@ordering}%
\IfStrEqCase{\dynkin@series}%
{%
{A}{}%
@@ -2741,7 +2866,7 @@ decoration=
\else%
\ifnum\dynkin@rank=8%
\else%
- \dynkin@error@rank%
+ \IfStrEq{\dynkin@ordering}{Kac}{}{\dynkin@error@rank}%
\fi%
\fi%
\fi%
@@ -2775,6 +2900,7 @@ decoration=
\newcount\RootNumber
\newcount\@fromRoot
\newcount\@toRoot
+\newcount\drmo
%% \swapRootIfInLastTwoRoots{<r>}
%% If the input root <r> is one of the last two roots, then put the other in \RootNumber, otherwise
@@ -2782,7 +2908,6 @@ decoration=
\NewDocumentCommand\swapRootIfInLastTwoRoots{m}%
{%
\ifnum\dynkin@rank>1%
- \newcount\drmo\relax%
\drmo=\dynkin@rank\relax%
\advance\drmo by -1\relax%
\ifnum\dynkin@rank=#1%
@@ -2799,13 +2924,291 @@ decoration=
\fi%
}%
+
+\newcount\dynkin@r
+\NewDocumentCommand\swap@if@in@last@two{mm}%
+{%
+ \global\dynkin@r=#2\relax%
+ \ifnum\dynkin@r=#1%
+ \global\advance \dynkin@r by -1\relax%
+ \else%
+ \global\advance \dynkin@r by 1\relax%
+ \ifnum\dynkin@r=#1%
+ \else%
+ \global\advance \dynkin@r by -1\relax%
+ \fi%
+ \fi%
+ \the\dynkin@r%
+}%
+
+\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
+%% the root <number> in <from order>, for the series of simple Lie algebra
+%% <series>, rank <rank>.
+%% Example: \dynkinOrderToBourbaki{E}{8}{Carter}{7}
+%% yields 3, because the 7th root in E8 according to Carter's ordering is the
+%% 3rd in Bourbaki's.
+{%
+% \check@Dynkin@root@order{#3}%
+ \IfStrEq{#4}{0}%
+ {%
+ % The affine root is often labelled as root 0, and it is the same in all orderings.
+ \global#5=0%
+ }%
+ {%
+ \IfStrEqCase{#1}%
+ {%
+ {A}%
+ {%
+ \global#5=#4\relax%
+ }%
+ {D}%
+ {%
+ \IfStrEqCase{#3}%
+ {%
+ {Adams}{%
+ \global#5=%
+ \swap@if@in@last@two{#2}{#4}%
+ \relax%
+ }%
+ {Dynkin}{%
+ \global#5=%
+ \swap@if@in@last@two{#2}{#4}%
+ \relax%
+ }%
+ {Kac}{%
+ \global#5=%
+ \swap@if@in@last@two{#2}{#4}%
+ \relax%
+ }%
+ }%
+ [\global#5=#4\relax]%
+ }%
+ {E}%
+ {%
+ \ifnum#2=6%
+ \IfStrEqCase{#3}%
+ {%
+ {Adams}{\global#5=%
+ \stringCharacterInPosition{135426}{#4}%
+ \relax}%
+ {Carter}{\global#5=%
+ \stringCharacterInPosition{134256}{#4}%
+ \relax}%
+ {Dynkin}{\global#5=%
+ \stringCharacterInPosition{134562}{#4}%
+ \relax}%
+ {Kac}{\global#5=%
+ \stringCharacterInPosition{134562}{#4}%
+ \relax}%
+ }%
+ [\global#5=#4\relax]%
+ \else%
+ \ifnum#2=7%
+ \IfStrEqCase{#3}%
+ {%
+ {Adams}{\global#5=%
+ \stringCharacterInPosition{6524317}{#4}%
+ \relax}%
+ {Carter}{\global#5=%
+ \stringCharacterInPosition{7654231}{#4}%
+ \relax}%
+ {Dynkin}{\global#5=%
+ \stringCharacterInPosition{1345672}{#4}%
+ \relax}%
+ {Kac}{\global#5=%
+ \stringCharacterInPosition{1245672}{#4}%
+ \relax}%
+ }%
+ [\global#5=#4\relax]%
+ \else%
+ \ifnum#2=8%
+ \IfStrEqCase{#3}%
+ {%
+ {Adams}{\global#5=%
+ \stringCharacterInPosition{13245678}{#4}%
+ \relax}%
+ {Carter}{\global#5=%
+ \stringCharacterInPosition{87654231}{#4}%
+ \relax}%
+ {Dynkin}{\global#5=%
+ \stringCharacterInPosition{13456782}{#4}%
+ \relax}%
+ {Kac}{\global#5=%
+ \stringCharacterInPosition{87654312}{#4}%
+ \relax}%
+ }%
+ [\global#5=#4\relax]%
+ \else%
+ \global#5=#4\relax%
+ \fi%
+ \fi%
+ \fi%
+ }%
+ {F}%
+ {%
+ \IfStrEqCase{#3}%
+ {%
+ {Adams}{\global#5=%
+ \stringCharacterInPosition{4321}{#4}%
+ \relax}%
+ }%
+ [\global#5=#4\relax]%
+ }%
+ {G}%
+ {%
+ \IfStrEqCase{#3}%
+ {%
+ {Carter}{\global#5=%
+ \stringCharacterInPosition{21}{#4}%
+ \relax}%
+ {Dynkin}{\global#5=%
+ \stringCharacterInPosition{21}{#4}%
+ \relax}%
+ }%
+ [\global#5=#4\relax]%
+ }%
+ }%
+ [\global#5=#4\relax]%
+ }%
+}%
+
+
+\NewDocumentCommand\dynkinOrderFromBourbaki{mmmmm}%
+%% \dynkinOrderFromBourbaki{series}{rank}{root}{to order}{count to store result}
+%% Stores the number of root in <from order> which corresponds to
+%% the root <number> in Bourbaki ordering, for the series of simple Lie algebra
+%% <series>, rank <rank>.
+%% Example: \dynkinOrderFromBourbaki{E}{8}{7}{Carter}
+%% yields 2, because the 7th root in E8 according to Bourbaki's ordering is the
+%% 2nd in Carter's.
+{%
+% \check@Dynkin@root@order{#4}%
+ \IfStrEq{#3}{0}%
+ {%
+ % The affine root is often labelled as root 0, and it is the same in all orderings.
+ \global#5=0\relax%
+ }%
+ {%
+ \IfStrEqCase{#1}%
+ {%
+ {A}%
+ {%
+ \global#5=#3\relax%
+ }%
+ {D}%
+ {%
+ \IfStrEqCase{#4}%
+ {%
+ {Adams}{%
+ \global#5=%
+ \swap@if@in@last@two{#2}{#3}%
+ \relax%
+ }%
+ {Dynkin}{%
+ \global#5=%
+ \swap@if@in@last@two{#2}{#3}%
+ \relax%
+ }%
+ {Kac}{%
+ \global#5=%
+ \swap@if@in@last@two{#2}{#3}%
+ \relax%
+ }%
+ }%
+ [\global#5=#3\relax]%
+ }%
+ {E}%
+ {%
+ \ifnum#2=6%
+ \IfStrEqCase{#4}%
+ {%
+ {Adams}{\global#5=\stringCharacterInPosition{152436}{#3}\relax}%
+ {Carter}{\global#5=\stringCharacterInPosition{142356}{#3}\relax}%
+ {Dynkin}{\global#5=\stringCharacterInPosition{162345}{#3}\relax}%
+ {Kac}{\global#5=\stringCharacterInPosition{162345}{#3}\relax}%
+ }%
+ [\global#5=#3\relax]%
+ \else%
+ \ifnum#2=7%
+ \IfStrEqCase{#4}%
+ {%
+ {Adams}{\global#5=\stringCharacterInPosition{6354217}{#3}\relax}%
+ {Carter}{\global#5=\stringCharacterInPosition{7564321}{#3}\relax}%
+ {Dynkin}{\global#5=\stringCharacterInPosition{1723456}{#3}\relax}%
+ {Kac}{\global#5=\stringCharacterInPosition{1723456}{#3}\relax}%
+ }%
+ [\global#5=#3\relax]%
+ \else%
+ \ifnum#2=8%
+ \IfStrEqCase{#4}%
+ {%
+ {Adams}{\global#5=\stringCharacterInPosition{13245678}{#3}\relax}%
+ {Carter}{\global#5=\stringCharacterInPosition{86754321}{#3}\relax}%
+ {Dynkin}{\global#5=\stringCharacterInPosition{18234567}{#3}\relax}%
+ {Kac}{\global#5=\stringCharacterInPosition{78654321}{#3}\relax}%
+ }%
+ [\global#5=#3\relax]%
+ \else%
+ \global#5=#3\relax%
+ \fi%
+ \fi%
+ \fi%
+ %\fi%
+ }%
+ {F}%
+ {%
+ \IfStrEqCase{#4}%
+ {%
+ {Adams}{\global#5=\stringCharacterInPosition{4321}{#3}\relax}%
+ }%
+ [\global#5=#3\relax]%
+ }%
+ {G}%
+ {%
+ \IfStrEqCase{#4}%
+ {%
+ {Carter}{\global#5=\stringCharacterInPosition{21}{#3}\relax}%
+ {Dynkin}{\global#5=\stringCharacterInPosition{21}{#3}\relax}%
+ }%
+ [\global#5=#3\relax]%
+ }%
+ }%
+ [\global#5=#3\relax]%
+ }%
+}%
+
+\newcount\dynkin@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}
+{%
+ \dynkinOrderToBourbaki{#1}{#2}{#3}{#4}{\dynkin@order@temp}%
+ \dynkinOrderFromBourbaki{#1}{#2}{\the\dynkin@order@temp}{#5}{#6}%
+}%
+
+
+%% \typeDynkinOrder <series><rank>.<from order>::<from root number>-><to order>.
+%% Example: \typeDynkinOrder D7.Carter::7->Bourbaki.
+\newcount\tempDynkinReorder
+\NewDocumentCommand\typeDynkinOrder{mmD.:{Bourbaki}r:-D>.{Bourbaki}}%
+{%
+\dynkinOrder{#1}{#2}.#3::#4->#5.{\tempDynkinReorder}\the\tempDynkinReorder%
+}%
+
+
%% \convertRootNumber{<n>}
%% Converts <n> from Bourbaki ordering to the current ordering, storing the result in a count called \RootNumber.
\NewDocumentCommand\convertRootNumber{m}%
{%
\IfStrEq{#1}{0}%
{%
- \global\RootNumber=0%
+ \global\RootNumber=0\relax%
}%
{%
\IfStrEqCase{\dynkin@series}%
@@ -2816,14 +3219,14 @@ decoration=
{%
{TestOrder}%
{%
- \global\RootNumber=#1
- \global\advance\RootNumber by 1
+ \global\RootNumber=#1\relax%
+ \global\advance\RootNumber by 1\relax%
\ifnum\RootNumber>\the\dynkin@rank%
- \global\RootNumber=1%
+ \global\RootNumber=1\relax%
\fi%
}%
}%
- [\global\RootNumber=#1]%
+ [\global\RootNumber=#1\relax]%
}%
{D}%
{%
@@ -2833,52 +3236,53 @@ decoration=
{Dynkin}{\swapRootIfInLastTwoRoots{#1}}%
{Kac}{%
\ifdynkin@is@twisted
- \global\RootNumber=#1
+ \global\RootNumber=#1\relax%
\else
\ifdynkin@is@extended
- \global\RootNumber=#1
+ \global\RootNumber=#1\relax%
\else
\swapRootIfInLastTwoRoots{#1}
\fi
\fi}%
}%
- [\global\RootNumber=#1]%
+ [\global\RootNumber=#1\relax]%
}%
{E}%
{%
\ifdynkin@is@twisted%
- \global\RootNumber=#1%
+ \global\RootNumber=#1\relax%
\else%
\ifnum\dynkin@rank=6%
\IfStrEqCase{\dynkin@ordering}%
{%
- {Adams}{\global\RootNumber=\stringCharacterInPosition{152436}{#1}}%
- {Carter}{\global\RootNumber=\stringCharacterInPosition{142356}{#1}}%
- {Dynkin}{\global\RootNumber=\stringCharacterInPosition{162345}{#1}}%
- {Kac}{\global\RootNumber=\stringCharacterInPosition{162345}{#1}}%
+ {Adams}{\global\RootNumber=\stringCharacterInPosition{152436}{#1}\relax}%
+ {Carter}{\global\RootNumber=\stringCharacterInPosition{142356}{#1}\relax}%
+ {Dynkin}{\global\RootNumber=\stringCharacterInPosition{162345}{#1}\relax}%
+ {Kac}{\global\RootNumber=\stringCharacterInPosition{162345}{#1}\relax}%
}%
- [\global\RootNumber=#1]%
+ [\global\RootNumber=#1\relax]%
\else%
\ifnum\dynkin@rank=7%
\IfStrEqCase{\dynkin@ordering}%
{%
- {Adams}{\global\RootNumber=\stringCharacterInPosition{6354217}{#1}}%
- {Carter}{\global\RootNumber=\stringCharacterInPosition{7564321}{#1}}%
- {Dynkin}{\global\RootNumber=\stringCharacterInPosition{1723456}{#1}}%
- {Kac}{\global\RootNumber=\stringCharacterInPosition{1723456}{#1}}%
+ {Adams}{\global\RootNumber=\stringCharacterInPosition{6354217}{#1}\relax}%
+ {Carter}{\global\RootNumber=\stringCharacterInPosition{7564321}{#1}\relax}%
+ {Dynkin}{\global\RootNumber=\stringCharacterInPosition{1723456}{#1}\relax}%
+ {Kac}{\global\RootNumber=\stringCharacterInPosition{1723456}{#1}\relax}%
}%
- [\global\RootNumber=#1]%
+ [\global\RootNumber=#1\relax]%
\else%
\ifnum\dynkin@rank=8%
\IfStrEqCase{\dynkin@ordering}%
{%
- {Adams}{\global\RootNumber=\stringCharacterInPosition{13245678}{#1}}%
- {Carter}{\global\RootNumber=\stringCharacterInPosition{86754321}{#1}}%
- {Dynkin}{\global\RootNumber=\stringCharacterInPosition{18234567}{#1}}%
- {Kac}{\global\RootNumber=\stringCharacterInPosition{78654321}{#1}}%
+ {Adams}{\global\RootNumber=\stringCharacterInPosition{13245678}{#1}\relax}%
+ {Carter}{\global\RootNumber=\stringCharacterInPosition{86754321}{#1}\relax}%
+ {Dynkin}{\global\RootNumber=\stringCharacterInPosition{18234567}{#1}\relax}%
+ {Kac}{\global\RootNumber=\stringCharacterInPosition{78654321}{#1}\relax}%
}%
- [\global\RootNumber=#1]%
+ [\global\RootNumber=#1\relax]%
\else%
+ \global\RootNumber=#1\relax%
\fi%
\fi%
\fi%
@@ -2888,21 +3292,21 @@ decoration=
{%
\IfStrEqCase{\dynkin@ordering}%
{%
- {Adams}{\global\RootNumber=\stringCharacterInPosition{4321}{#1}}%
+ {Adams}{\global\RootNumber=\stringCharacterInPosition{4321}{#1}\relax}%
}%
- [\global\RootNumber=#1]%
+ [\global\RootNumber=#1\relax]%
}%
{G}%
{%
\IfStrEqCase{\dynkin@ordering}%
{%
- {Carter}{\global\RootNumber=\stringCharacterInPosition{21}{#1}}%
- {Dynkin}{\global\RootNumber=\stringCharacterInPosition{21}{#1}}%
+ {Carter}{\global\RootNumber=\stringCharacterInPosition{21}{#1}\relax}%
+ {Dynkin}{\global\RootNumber=\stringCharacterInPosition{21}{#1}\relax}%
}%
- [\global\RootNumber=#1]%
+ [\global\RootNumber=#1\relax]%
}%
}%
- [\global\RootNumber=#1]%
+ [\global\RootNumber=#1\relax]%
}%
}%
@@ -2911,44 +3315,70 @@ decoration=
\NewDocumentCommand\convertRootPair{mm}
{%
\convertRootNumber{#1}%
- \global\@fromRoot=\RootNumber%
+ \global\@fromRoot=\RootNumber\relax%
\convertRootNumber{#2}%
- \global\@toRoot=\RootNumber%
+ \global\@toRoot=\RootNumber\relax%
+}%
+%% \testbit{<n>}{<b>}
+%% If bit number <b> of <n> is 1 then set bittrue else set bitfalse
+\newif\ifbit
+\newcount\test@bit@a
+\newcount\test@bit@b
+\newif\iftest@bit@more
+\NewDocumentCommand\testbit{mm}%
+{%
+ \test@bit@a#1\relax%
+ \test@bit@b#2\relax%
+ \ifnum\test@bit@a=0%
+ \global\bitfalse%
+ \else%
+ \global\test@bit@moretrue%
+ \loop%
+ \ifnum\test@bit@b=0\relax%
+ \global\test@bit@morefalse%
+ \ifodd\test@bit@a\empty%
+ \global\bittrue%
+ \else%
+ \global\bitfalse%
+ \fi%
+ \else%
+ \divide\test@bit@a by 2\relax%
+ \advance\test@bit@b by -1\relax%
+ \fi%
+ \iftest@bit@more\repeat%
+ \fi%
}%
-
-\ExplSyntaxOn
-\NewDocumentCommand\moduloInt{mm}{\int_mod:nn{#1}{#2}}
-\ExplSyntaxOff
-
-%% \testbit{<n>}{<b>}{<f>}{<g>}
-%% If bit number <b> of <n> is 1 then expand <f> else expand <g>.
-\NewDocumentCommand\testbit{mmmm}%
+%% \replaceNthChar{<string>}{<N>}{<char>}
+%% redefines the string <string>, a name of a macro returning a character string,
+%% to be the same as its original output, but with character <N> replaced by <char>.
+\newcount\replaceNthCounter
+\newcount\replacementN
+\xdef\replacementLeftString{}
+\xdef\replacementRightString{}
+\NewDocumentCommand\replaceNthChar{mmm}%
{%
- \newcount\x\relax%
- \x=#1\relax%
- \newcount\whichbit\relax%
- \whichbit=#2\relax%
- \ifnum\whichbit>0%
- \foreach \i in {1,...,#2}%
- {%
- \global\divide \x by 2%
- }%
+ \ifnum#2<1
+ \else%
+ \StrLen{#1}[\thatreplaceNthCounter]%
+ \replaceNthCounter\thatreplaceNthCounter\relax%
+ \ifnum\replaceNthCounter<#2
+ \else%
+ \replacementN#2\relax%
+ \advance\replacementN by -1\relax%
+ \StrLeft{#1}{\the\replacementN}[\replacementLeftString]%
+ \advance\replacementN by 1\relax%
+ \StrGobbleLeft{#1}{\the\replacementN}[\replacementRightString]%
+ \xdef#1{\replacementLeftString#3\replacementRightString}%
+ \fi%
\fi%
- \xdef\temp{\moduloInt{\the\x}{2}}%
- \x=\temp\relax%
- \ifnum\the\x=1 #3\else #4\fi%
}%
-
+\newcount\dynkin@where%
\NewDocumentCommand\dynkin@put@cross{m}%
{%
- \newcount\dynkin@where%
- \dynkin@where=#1%
- \StrMid{\dynkin@roots}{1}{#1}[\dynkin@start]%
- \advance\dynkin@where by 1%
- \StrMid{\dynkin@roots}{\the\dynkin@where}{\the\dynkin@nodes}[\dynkin@end]%
- \xdef\dynkin@roots{\dynkin@start x\dynkin@end}%
+ \dynkin@where#1\relax%
+ \advance\dynkin@where by 1\relax%
+ \replaceNthChar{\dynkin@roots}{\the\dynkin@where}{x}%
}%
-
\NewDocumentCommand\dynkin@cross@out@parabolics{}%
{%
\IfInteger{\dynkin@parabolic}%
@@ -2957,17 +3387,18 @@ decoration=
{%
}%
{%
- \newcount\drmo\relax%
\drmo=\the\dynkin@nodes\relax%
\advance\drmo by -1\relax%
\foreach \b in {0,...,\the\drmo}%
{%
- \testbit{\dynkin@parabolic}{\b}{\dynkin@put@cross{\b}}{}%
+ \testbit{\dynkin@parabolic}{\b}%
+ \ifbit\dynkin@put@cross{\b}\fi%
}%
}%
}%
+ {%
+ }%
}%
-
\NewDocumentCommand\dynkinMoveToRoot{sm}%
{%
\IfBooleanTF{#1}%
@@ -2975,7 +3406,7 @@ decoration=
\convertRootNumber{#2}%
}%
{%
- \global\RootNumber=#2
+ \global\RootNumber=#2\relax%
}%
\node (Dynkin current) at (\dynkin@root@name \the\RootNumber){};%
}%
@@ -2995,7 +3426,7 @@ decoration=
\convertRootNumber{#2}%
}%
{%
- \global\RootNumber=#2
+ \global\RootNumber=#2\relax%
}%
\node (\dynkin@root@name \the\RootNumber) at (Dynkin current) {};%
\dynkin@put@direction{\the\RootNumber}{#3}%
@@ -3026,8 +3457,8 @@ decoration=
\convertRootPair{#3}{#2}%
}%
{%
- \global\@fromRoot=#3%
- \global\@toRoot=#2%
+ \global\@fromRoot=#3\relax%
+ \global\@toRoot=#2\relax%
}%
\dynkin@is@edge@indefinite{\@fromRoot}{\@toRoot}%
\ifdynkin@is@indefinite@edge%
@@ -3089,7 +3520,6 @@ decoration=
\xdef\yjj{#1*\dynkin@edge@length*sin(60)}%
\node (Dynkin current) at ($(Dynkin current)+(0,{\yjj})$){};%
}%
-
%% \dynkinEast
%% Moves the TikZ cursor one edge to the right.
%% Starred form for an indefinite edge.
@@ -3098,93 +3528,82 @@ decoration=
\xdef\distance{\IfBooleanTF{#1}{\dynkin@indefinite@edge@length}{\dynkin@edge@length}}
\node (Dynkin current) at ($(Dynkin current)+({\distance},0)$) {};%
}%
-
%% \dynkinWest
%% Moves the TikZ cursor one edge to the left.
%% Starred form for an indefinite edge.
\NewDocumentCommand\dynkinWest{s}%
{%
- \xdef\distance{\IfBooleanTF{#1}{\dynkin@indefinite@edge@length}{\dynkin@edge@length}}
+ \xdef\distance{\IfBooleanTF{#1}{\dynkin@indefinite@edge@length}{\dynkin@edge@length}}%
\node (Dynkin current) at ($(Dynkin current)+({-\distance},0)$) {};%
}%
-
%% \dynkinNorth
%% Moves the TikZ cursor one edge up.
%% Starred form for an indefinite edge.
\NewDocumentCommand\dynkinNorth{s}%
{%
- \xdef\distance{\IfBooleanTF{#1}{\dynkin@indefinite@edge@length}{\dynkin@edge@length}}
+ \xdef\distance{\IfBooleanTF{#1}{\dynkin@indefinite@edge@length}{\dynkin@edge@length}}%
\node (Dynkin current) at ($(Dynkin current)+(0,{\distance})$) {};%
}%
-
%% \dynkinSouth
%% Moves the TikZ cursor one edge to the left.
%% Starred form for an indefinite edge.
\NewDocumentCommand\dynkinSouth{s}%
{%
- \xdef\distance{\IfBooleanTF{#1}{\dynkin@indefinite@edge@length}{\dynkin@edge@length}}
+ \xdef\distance{\IfBooleanTF{#1}{\dynkin@indefinite@edge@length}{\dynkin@edge@length}}%
\node (Dynkin current) at ($(Dynkin current)+(0,{-\distance})$) {};%
}%
-
%% \dynkinNorthEast
%% Moves the TikZ cursor one edge to the north east.
%% Starred form for an indefinite edge.
\NewDocumentCommand\dynkinNorthEast{s}%
{%
- \xdef\distance{\IfBooleanTF{#1}{\dynkin@indefinite@edge@length}{\dynkin@edge@length}}
+ \xdef\distance{\IfBooleanTF{#1}{\dynkin@indefinite@edge@length}{\dynkin@edge@length}}%
\node (Dynkin current) at
($(Dynkin current)+
({cos(60)*\distance},{sin(60)*\distance})$) {};%
}%
-
%% \dynkinSouthEast
%% Moves the TikZ cursor one edge to the south east.
%% Starred form for an indefinite edge.
\NewDocumentCommand\dynkinSouthEast{s}%
{%
- \xdef\distance{\IfBooleanTF{#1}{\dynkin@indefinite@edge@length}{\dynkin@edge@length}}
+ \xdef\distance{\IfBooleanTF{#1}{\dynkin@indefinite@edge@length}{\dynkin@edge@length}}%
\node (Dynkin current) at
($(Dynkin current)+
({cos(-60)*\distance},{sin(-60)*\distance})$) {};%
}%
-
%% \dynkinNorthWest
%% Moves the TikZ cursor one edge to the north west.
%% Starred form for an indefinite edge.
\NewDocumentCommand\dynkinNorthWest{s}%
{%
- \xdef\distance{\IfBooleanTF{#1}{\dynkin@indefinite@edge@length}{\dynkin@edge@length}}
+ \xdef\distance{\IfBooleanTF{#1}{\dynkin@indefinite@edge@length}{\dynkin@edge@length}}%
\node (Dynkin current) at
($(Dynkin current)+
({cos(120)*\distance},{sin(120)*\distance})$) {};%
}%
-
%% \dynkinSouthWest
%% Moves the TikZ cursor one edge to the south west.
%% Starred form for an indefinite edge.
\NewDocumentCommand\dynkinSouthWest{s}%
{%
- \xdef\distance{\IfBooleanTF{#1}{\dynkin@indefinite@edge@length}{\dynkin@edge@length}}
+ \xdef\distance{\IfBooleanTF{#1}{\dynkin@indefinite@edge@length}{\dynkin@edge@length}}%
\node (Dynkin current) at
($(Dynkin current)+
({cos(240)*\distance},{sin(240)*\distance})$) {};%
}%
-
-
%% \dynkinSouthEastFold
%% Moves the TikZ cursor one edge to the south east in the middle of a fold.
\NewDocumentCommand\dynkinSouthEastFold{}%
{%
\node (Dynkin current) at ($(Dynkin current)+({\dynkin@fold@radius},{-\dynkin@fold@radius})$) {};%
}%
-
%% \dynkinSouthWestFold
%% Moves the TikZ cursor one edge to the south west in the middle of a fold.
\NewDocumentCommand\dynkinSouthWestFold{}%
{%
\node (Dynkin current) at ($(Dynkin current)+({-\dynkin@fold@radius},{-\dynkin@fold@radius})$) {};%
}%
-
%% \dynkinSouthFold
%% Moves the TikZ cursor one edge to the south in the middle of a fold.
\NewDocumentCommand\dynkinSouthFold{}%
@@ -3197,7 +3616,6 @@ decoration=
\StrChar{\dynkin@roots}{#1}[\my@root@marker]%
\my@root@marker
}%
-
\NewDocumentCommand\dynkin@draw@all@roots{}%
{%
\foreach \b in {1,...,\the\dynkin@nodes}%
@@ -3213,7 +3631,6 @@ decoration=
\fi%
\fi%
}%
-
%% \dynkin@fold@arrow@if@oo{<p>}{<q>}
%% Inputs are roots (in Bourbaki ordering).
%% If we are working on a Satake diagram, and both roots are
@@ -3236,77 +3653,72 @@ decoration=
\dynkinFold{\the\@fromRoot}{\the\@toRoot}%
\fi%
}%
-
\newcount\pipebmo
\newcount\pipefpo
\newcount\pipe@end
\newcount\start@pipe
-
-
%% \dynkin@pipe{<f>}{<t>}{<D>}{<L>}{<L*>}
%% Layout the roots (as TikZ nodes) <f>, <f>+1, \dots, <t> in the Bourbaki ordering, in a straight line,
%% starting at the current position (Dynkin current), moving in the direction <D>=east, west, north, south, with labels placed according to <L>=left,right,above,below.
%% Assumes that the root <f> is already created as a node in TikZ, but the others are not.
\NewDocumentCommand\dynkin@pipe{mmmmm}%
{%
- \start@pipe=#1
- \pipe@end=#2
+ \start@pipe=#1\relax%
+ \pipe@end=#2\relax%
\ifnum\start@pipe<\the\pipe@end%
- \global\pipebmo=\the\start@pipe
- \global\pipefpo=\the\start@pipe
- \global\advance\pipefpo by 1
+ \global\pipebmo=\the\start@pipe\relax%
+ \global\pipefpo=\the\start@pipe\relax%
+ \global\advance\pipefpo by 1\relax%
\foreach \bpipe in {\the\pipefpo,...,\the\pipe@end}%
{%
\dynkinPlaceRootRelativeTo*{\bpipe}{\the\pipebmo}{#3}{#4}{#5}%
\dynkinEdge*{SingleEdge}{\bpipe}{\the\pipebmo}%
- \global\advance\pipebmo by 1%
+ \global\advance\pipebmo by 1\relax%
}%
\fi%
}%
-
+\newcount\dynkin@h%
+\newcount\dynkin@hpo%
+\newcount\dynkin@afterfold%
+\newcount\dynkin@nrts%
+\newcount\dynkin@countdown%
%% \dynkin@fold{<f>}{<t>}
%% Layout the roots (as TikZ nodes) <f>, <f>+1, \dots, <t> in the Bourbaki ordering, in a folded arrangement,
%% moving first east, then down, then west, starting at the current position (Dynkin current).
%% Assumes that the root <f> is already created as a node in TikZ, but the others are not.
\NewDocumentCommand\dynkin@fold{mm}%
{%
- \newcount\h%
- \h=#1%
- \advance\h by #2%
- \advance\h by -1%
- \divide\h by 2%
- \dynkin@pipe{#1}{\the\h}{east}{above}{below right}
- \newcount\hpo
- \hpo=\the\h
- \advance\hpo by 1
- \newcount\afterfold
- \global\afterfold=\the\hpo
- \newcount\nrts
- \nrts=#2
- \advance\nrts by 1
- \advance\nrts by -#1
- \ifodd\nrts%
- \global\advance\afterfold by 1
- \dynkinPlaceRootRelativeTo*{\the\hpo}{\the\h}{southeastfold}{right}{left}
- \dynkinEdge*{RightDownArc}{\the\h}{\the\hpo}%
- \dynkinPlaceRootRelativeTo*{\the\afterfold}{\the\hpo}{southwestfold}{below}{above right}
- \dynkinEdge*{RightUpArc}{\the\afterfold}{\the\hpo}%
+ \dynkin@h=#1\relax%
+ \advance\dynkin@h by #2\relax%
+ \advance\dynkin@h by -1\relax%
+ \divide\dynkin@h by 2\relax%
+ \dynkin@pipe{#1}{\the\dynkin@h}{east}{above}{below right}
+ \dynkin@hpo=\the\dynkin@h\relax%
+ \advance\dynkin@hpo by 1\relax%
+ \global\dynkin@afterfold=\the\dynkin@hpo\relax%
+ \dynkin@nrts=#2\relax%
+ \advance\dynkin@nrts by 1\relax%
+ \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}%
\else
- \dynkinPlaceRootRelativeTo*{\the\afterfold}{\the\h}{southfold}{below}{above right}
- \dynkinEdge*{SemiCircle}{\the\h}{\the\afterfold}%
+ \dynkinPlaceRootRelativeTo*{\the\dynkin@afterfold}{\the\dynkin@h}{southfold}{below}{above right}%
+ \dynkinEdge*{SemiCircle}{\the\dynkin@h}{\the\dynkin@afterfold}%
\fi
- \dynkin@pipe{\the\afterfold}{#2}{west}{below}{above right}
+ \dynkin@pipe{\the\dynkin@afterfold}{#2}{west}{below}{above right}
\ifdynkin@arrows%
- \newcount\countdown%
- \countdown=#2%
- \foreach \b in {#1,...,\the\h}%
+ \dynkin@countdown=#2\relax%
+ \foreach \dynkin@b in {#1,...,\the\dynkin@h}%
{%
- \dynkin@fold@arrow@if@oo{\b}{\the\countdown}%
- \global\advance\countdown by -1%
+ \dynkin@fold@arrow@if@oo{\dynkin@b}{\the\dynkin@countdown}%
+ \global\advance\dynkin@countdown by -1\relax%
}%
\fi%
}%
-
%% \Adynkin
%% Draws an A series Dynkin diagram.
\NewDocumentCommand\Adynkin{}%
@@ -3328,8 +3740,6 @@ decoration=
\fi%
\fi%
}%
-
-
%% \Bdynkin
%% Draw a B series Dynkin diagram.
\NewDocumentCommand\Bdynkin{}%
@@ -3337,11 +3747,11 @@ decoration=
\ifnum\dynkin@rank<2
\Adynkin
\else
- \newcount\drmo
- \drmo=\the\dynkin@rank
- \advance\drmo by -1
- \ifdynkin@Coxeter
- \Adynkin
+ \newcount\drmo%
+ \drmo=\the\dynkin@rank\relax%
+ \advance\drmo by -1\relax%
+ \ifdynkin@Coxeter%
+ \Adynkin%
\dynkinEdgeLabel{\the\drmo}{\the\dynkin@rank}{4}%
\else
% Create the roots.
@@ -3383,7 +3793,6 @@ decoration=
\fi%
\fi%
}
-
%% \Cdynkin
%% Draws a C series Dynkin diagram.
\newcommand*{\Cdynkin}
@@ -3400,7 +3809,6 @@ decoration=
\global\dynkin@reverse@arrowstrue%
\fi%
}
-
%% \Ddynkin@roots
%% Tell TikZ where to place the @roots for a D series Dynkin diagram. Draws nothing.
\newcommand*{\Ddynkin@roots}
@@ -3452,16 +3860,16 @@ decoration=
\dynkinPlaceRootRelativeTo*{2}{1}{east}{below}{above}%
\fi%
\fi
- \newcount\rmo
- \rmo=\dynkin@rank
- \advance \rmo by -1
- \newcount\rmt
- \rmt=\rmo
- \advance\rmt by -1
- \newcount\rmth
- \rmth=\rmt
- \advance\rmth by -1
- \ifnum\dynkin@rank>2
+ \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%
@@ -3508,21 +3916,20 @@ decoration=
\fi%
\fi%
}%
-
%% \Ddynkin@edges
%% Draws edges on a D series Dynkin diagram.
\NewDocumentCommand\Ddynkin@edges{}%
{%
% Draw the edges.
- \newcount\rmo
- \rmo=\dynkin@rank
- \advance \rmo by -1
- \newcount\rmt
- \rmt=\rmo
- \advance\rmt by -1
- \newcount\rmtr
- \rmtr=\rmt
- \advance\rmtr by -1
+ \newcount\rmo%
+ \rmo=\dynkin@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%
\ifdynkin@is@extended%
\dynkinEdge*{RightUpArc}{1}{2}%
@@ -3569,13 +3976,11 @@ decoration=
\fi%
\fi%
}%
-
\def\centerarc[#1](#2)(#3:#4:#5);%
%Syntax: [draw options] (center) (initial angle:final angle:radius)
{
\draw[#1]([shift=(#3:#5)]#2) arc (#3:#4:#5);
}
-
%% \DthreePly
%% Draws a D series Dynkin diagram of rank 4, folded over a G2.
\NewDocumentCommand\DthreePly{}%
@@ -3603,14 +4008,13 @@ decoration=
\dynkinEdge*{SingleEdge}{1}{2}%
\dynkinEdge*{SingleEdge}{2}{3}%
\dynkinEdge*{SingleEdge}{2}{4}%
- \begin{scope}[on background layer]%
+ \begin{pgfonlayer}{Dynkin behind}%%
\centerarc[/Dynkin diagram/fold style](\dynkin@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{scope}%
+ \end{pgfonlayer}%%
\fi%
}%
-
%% \Ddynkin
%% Draws a D series Dynkin diagram.
\NewDocumentCommand\Ddynkin{}%
@@ -3641,31 +4045,28 @@ decoration=
\gdef\dynkin@series{D}%
\fi%
}%
-
-%% \Edynkin@unfolded
-%% Draws an E series Dynkin diagram not folded.
-\newcommand*{\Edynkin@unfolded}%
-{
+\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}%
- \ifdynkin@is@extended
- \ifnum\dynkin@rank=6
+ \ifdynkin@is@extended%
+ \ifnum\dynkin@rank=6%
\dynkinPlaceRootRelativeTo*{2}{4}{north}{right}{above right}%
\else
\dynkinPlaceRootRelativeTo*{2}{4}{north}{right}{above}%
- \fi
- \else
+ \fi%
+ \else%
\dynkinPlaceRootRelativeTo*{2}{4}{north}{right}{above}%
- \fi
+ \fi%
\newcount\bmo\relax%
\bmo=4\relax%
\foreach \b in {5,...,\dynkin@rank}%
{%
\dynkinPlaceRootRelativeTo*{\b}{\the\bmo}{east}{below}{above}%
\dynkinEdge*{SingleEdge}{\the\bmo}{\b}%
- \global\advance\bmo by 1%
+ \global\advance\bmo by 1\relax%
}%
% % Draw the remaining edges.
\dynkinEdge*{SingleEdge}{1}{3}
@@ -3686,8 +4087,26 @@ decoration=
\fi%
\fi%
}%
-
-
+%% \Edynkin@unfolded
+%% Draws an E series Dynkin diagram not folded.
+\newcommand*{\Edynkin@unfolded}%
+{
+ \ifnum\dynkin@rank>8%
+ % 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}
+ \fi%
+ \else%
+ \Edynkin@unfolded@rank@up@to@eight%
+ \fi
+}%
%% \Edynkin@folded
%% Draws a folded E6, affine E6 or affine E7 Dynkin diagram.
\NewDocumentCommand\Edynkin@folded{}%
@@ -3698,7 +4117,6 @@ decoration=
\extendedESevenFolded%
\fi%
}%
-
\NewDocumentCommand\ESixTwoPly{}%
{%
\dynkin@jump{1}%
@@ -3724,8 +4142,6 @@ decoration=
\dynkin@fold@arrow@if@oo{3}{5}%
\fi%
}%
-
-
\NewDocumentCommand\ESixThreePly{}%
{%
\dynkin@is@extendedtrue
@@ -3754,7 +4170,6 @@ decoration=
\dynkin@fold@arrow@if@oo{2}{5}%
\fi%
}%
-
\NewDocumentCommand\extendedESevenFolded{}%
{%
\dynkin@jump{1}%
@@ -3779,14 +4194,12 @@ decoration=
\dynkin@fold@arrow@if@oo{3}{5}%
\fi%
}%
-
-
%% \Edynkin
%% Draws an E6 Dynkin diagram.
\NewDocumentCommand\Edynkin{}%
{%
- \ifnum\dynkin@ply>1
- \ifnum\dynkin@rank=6%
+ \ifnum\dynkin@ply>1\relax%
+ \ifnum\dynkin@rank=6\relax%
\Edynkin@folded%
\else%
\ifnum\dynkin@rank=7
@@ -3802,37 +4215,25 @@ decoration=
\Edynkin@unfolded%
\fi%
}%
-
%% \Fdynkin
%% Draws an F series Dynkin diagram.
\newcommand*{\Fdynkin}%
-{
+{%
\dynkinPlaceRootHere*{1}{below}{above}%
\dynkinPlaceRootRelativeTo*{2}{1}{east}{below}{above}%
\dynkinPlaceRootRelativeTo*{3}{2}{east}{below}{above}%
\dynkinPlaceRootRelativeTo*{4}{3}{east}{below}{above}%
- \ifdynkin@Coxeter
- \dynkinEdge*{SingleEdge}{1}{2}
- \dynkinEdge*{SingleEdge}{2}{3}
- \dynkinEdge*{SingleEdge}{3}{4}
+ \ifdynkin@Coxeter%
+ \dynkinEdge*{SingleEdge}{1}{2}%
+ \dynkinEdge*{SingleEdge}{2}{3}%
+ \dynkinEdge*{SingleEdge}{3}{4}%
\dynkinEdgeLabel{2}{3}{4}%
-% \convertRootPair{2}{3}
-% \node[inner sep=\dynkin@root@radius,%
-% label={%
-% [/Dynkin diagram/text style,/Dynkin diagram/edge label]%
-% above:
-% \(\pgfkeys{/Dynkin diagram/label macro*=4}\)%
-% }%
-% ]
-% at ($.5*(\dynkin@root@name \the\@fromRoot)+.5*(\dynkin@root@name \the\@toRoot)$)
-% {};
- \else
- \dynkinEdge*{SingleEdge}{1}{2}
- \dynkinEdge*{SingleEdge}{3}{4}
- \dynkinEdge*{DoubleEdge}{2}{3}
- \fi
-}
-
+ \else%
+ \dynkinEdge*{SingleEdge}{1}{2}%
+ \dynkinEdge*{SingleEdge}{3}{4}%
+ \dynkinEdge*{DoubleEdge}{2}{3}%
+ \fi%
+}%
%% \Gdynkin
%% Draws a G series Dynkin diagram.
\NewDocumentCommand\Gdynkin{}%
@@ -3840,7 +4241,7 @@ decoration=
\ifdynkin@Coxeter%
\Idynkin%
\else%
- \ifnum\dynkin@ply>1%
+ \ifnum\dynkin@ply>1\relax%
\dynkin@jump{1}%
\dynkinPlaceRootHere*{1}{left}{above}%
\dynkinPlaceRootRelativeTo*{2}{1}{southfold}{left}{below}%
@@ -3862,48 +4263,27 @@ decoration=
{%
\Adynkin%
\dynkinEdgeLabel{1}{2}{5}%
-% \convertRootPair{1}{2}%
-% \node[inner sep=\dynkin@root@radius,%
-% label={%
-% [/Dynkin diagram/text style,/Dynkin diagram/edge label]%
-% above:
-% \(\pgfkeys{/Dynkin diagram/label macro*=5}\)%
-% }%
-% ]
-% at ($.5*(\dynkin@root@name \the\@fromRoot)+.5*(\dynkin@root@name \the\@toRoot)$)
-% {};
}%
-
+%%%\newcount\dynkin@I@n%
%% \Idynkin
%% Draws an I series Coxeter diagram.
\newcommand*{\Idynkin}%
{%
- \newcount\In%
- \In=\dynkin@rank%
- \dynkin@rank=2%
+%%% \dynkin@I@n\dynkin@rank\relax%
+ \dynkin@rank=2\relax%
\Adynkin%
\dynkinEdgeLabel{1}{2}{\dynkin@gonality}%
-% \convertRootPair{1}{2}%
-% \node[inner sep=\dynkin@root@radius,%
-% label={%
-% [/Dynkin diagram/text style,/Dynkin diagram/edge label]%
-% above:
-% \(\pgfkeys{/Dynkin diagram/label macro*=\dynkin@gonality}\)%
-% }%
-% ]
-% at ($.5*(\dynkin@root@name \the\@fromRoot)+.5*(\dynkin@root@name \the\@toRoot)$)
-% {};
}%
%% \extendedAdynkin
%% Draws an A series affine Dynkin/Coxeter diagram.
\NewDocumentCommand\extendedAdynkin{}%
{%
- \ifnum\dynkin@rank=1%
+ \ifnum\dynkin@rank=1\relax%
\dynkinPlaceRootHere{0}{below}{above}%
\dynkinPlaceRootRelativeTo*{1}{0}{east}{below}{above}%
\convertRootNumber{1}%
- \begin{scope}{on background layer}%
+ \begin{pgfonlayer}{Dynkin behind}%
\draw[/Dynkin diagram/t,double,
{Classical TikZ Rightarrow[length={2*\dynkin@root@radius}]}%
-{Classical TikZ Rightarrow[length={2*\dynkin@root@radius}]}%
@@ -3911,7 +4291,7 @@ decoration=
($(\dynkin@root@name 0)+(\dynkin@root@radius,0)$)
--
($(\dynkin@root@name \the\RootNumber)-(\dynkin@root@radius,0)$);%
- \end{scope}%
+ \end{pgfonlayer}%%
\else%
\ifnum\dynkin@ply=4%
\node (Dynkin current) at ($(Dynkin current)+(0,\dynkin@edge@length)$){};%
@@ -3932,7 +4312,11 @@ decoration=
\dynkinEdge*{LeftDownArc}{1}{0}%
\dynkinEdge*{LeftUpArc}{\the\dynkin@rank}{0}%
\else%
- \node (Dynkin current) at ($.5*(\dynkin@root@name 1)+.5*(\dynkin@root@name \the\dynkin@rank)$){};%
+ \node (Dynkin current)
+ at
+ ($.5*(\dynkin@root@name 1)%
+ +.5*(\dynkin@root@name \the\dynkin@rank)$)%
+ {};%
\dynkinNorth%
\dynkinPlaceRootHere*{0}{below}{above}%
\dynkinEdge*{SingleEdge}{0}{1}%
@@ -3945,10 +4329,12 @@ decoration=
\NewDocumentCommand\extendedBthreePly{}%
{%
- \ifnum\dynkin@rank=3
- \else
- \ClassError{Dynkin diagrams}{B series extended 3-ply diagrams must have rank 3, so cannot have rank \the\dynkin@rank}{}%
- \fi
+ \ifnum\dynkin@rank=3%
+ \else%
+ \ClassError%
+ {Dynkin diagrams}%
+ {B series extended 3-ply diagrams must have rank 3, so cannot have rank \the\dynkin@rank}{}%
+ \fi%
\dynkinPlaceRootHere*{1}{right}{above left}%
\dynkinPlaceRootRelativeTo*{0}{1}{north}{above}{below left}%
\dynkinPlaceRootRelativeTo*{3}{1}{south}{below}{above left}%
@@ -3967,20 +4353,20 @@ decoration=
%% Draws a B series affine Dynkin/Coxeter diagram.
\newcommand*{\extendedBdynkin}%
{%
- \ifnum\the\dynkin@rank=1
+ \ifnum\the\dynkin@rank=1\relax%
\extendedAdynkin%
\else%
- \ifnum\the\dynkin@rank=2
+ \ifnum\the\dynkin@rank=2\relax%
\dynkinPlaceRootHere*{0}{below}{above}%
\dynkinPlaceRootRelativeTo*{1}{0}{east}{below}{above}%
\dynkinPlaceRootRelativeTo*{2}{1}{east}{below}{above}%
\dynkinEdge*{SingleEdge}{0}{1}%
\dynkinEdge*{DoubleEdge}{1}{2}%
\else%
- \ifnum\dynkin@ply=3%
+ \ifnum\dynkin@ply=3\relax%
\extendedBthreePly%
\else%
- \ifnum\dynkin@ply=2%
+ \ifnum\dynkin@ply=2\relax%
\dynkin@jump{1}%
\dynkinPlaceRootHere*{0}{left}{above left}%
\dynkinPlaceRootRelativeTo*{2}{0}{southeastfold}{below right}{above right}%
@@ -4000,7 +4386,7 @@ decoration=
\drmo=\the\dynkin@rank\relax%
\advance\drmo by -1\relax%
\newcount\bmo%
- \bmo=2%
+ \bmo=2\relax%
\ifnum\dynkin@rank>3%
\foreach \b in {3,...,\the\drmo}%
{%
@@ -4015,16 +4401,6 @@ decoration=
\ifdynkin@Coxeter%
\dynkinEdge*{SingleEdge}{\the\drmo}{\the\dynkin@rank}%
\dynkinEdgeLabel{\the\drmo}{\the\dynkin@rank}{4}%
-% \convertRootPair{\the\drmo}{\the\dynkin@rank}
-% \node[inner sep=\dynkin@root@radius,%
-% label={%
-% [/Dynkin diagram/text style,/Dynkin diagram/edge label]%
-% above:
-% \(\pgfkeys{/Dynkin diagram/label macro*=4}\)%
-% }%
-% ]
-% at ($.5*(\dynkin@root@name \the\@fromRoot)+.5*(\dynkin@root@name \the\@toRoot)$)
-% {};
\else%
\ifnum\dynkin@ply<3%
\dynkinEdge*{DoubleEdge}{\the\drmo}{\the\dynkin@rank}%
@@ -4047,21 +4423,10 @@ decoration=
\ifdynkin@Coxeter%
\dynkinEdge*{SingleEdge}{0}{1}%
\dynkinEdgeLabel{0}{1}{4}%
-% \convertRootPair{0}{1}
-% \node[inner sep=\dynkin@root@radius,%
-% label={%
-% [/Dynkin diagram/text style,/Dynkin diagram/edge label]%
-% above:
-% \(\pgfkeys{/Dynkin diagram/label macro*=4}\)%
-% }%
-% ]
-% at ($.5*(\dynkin@root@name \the\@fromRoot)+.5*(\dynkin@root@name \the\@toRoot)$)
-% {};
\else%
\dynkinEdge*{DoubleEdge}{0}{1}%
\fi%
}%
-
%% \DOneFourFourPly
%% Draws a D^1_4 series affine Dynkin diagram folded about an A^2_2.
\NewDocumentCommand\DOneFourFourPly{}%
@@ -4076,7 +4441,9 @@ decoration=
\node
(Dynkin current)
at
- ($.5*(\dynkin@root@name \the\@fromRoot)+.5*(\dynkin@root@name \the\@toRoot)$){};%
+ ($.5*(\dynkin@root@name \the\@fromRoot)%
+ +.5*(\dynkin@root@name \the\@toRoot)$)%
+ {};%
\dynkinWest%
\dynkinPlaceRootHere*{2}{right}{left}%
\dynkinEdge*{SingleEdge}{0}{2}%
@@ -4087,8 +4454,6 @@ decoration=
\dynkinFold*{1}{3}%
\dynkinFold*{3}{4}%
}%
-
-
%% \DfourPly
%% Draws a D series affine Dynkin diagram folded about its middle.
\NewDocumentCommand\DfourPly{}%
@@ -4100,11 +4465,11 @@ decoration=
\dynkinPlaceRootRelativeTo*{1}{2}{southwestfold}{left}{above left}%
\dynkinMoveToRoot*{2}%
\newcount\drmo%
- \drmo=\the\dynkin@rank%
- \advance\drmo by -1%
+ \drmo=\the\dynkin@rank\relax%
+ \advance\drmo by -1\relax%
\newcount\drmt%
- \drmt=\the\drmo%
- \advance\drmt by -1%
+ \drmt=\the\drmo\relax%
+ \advance\drmt by -1\relax%
\xdef\old@fold{\dynkin@fold@radius}%
\pgfmathparse{\dynkin@fold@radius+2*cos(60)*\dynkin@edge@length}%
\xdef\dynkin@fold@radius{\pgfmathresult pt}%
@@ -4112,8 +4477,18 @@ decoration=
% We place the root number rank-2 once again (it is already placed in the \dynkin@fold):
\dynkinPlaceRootHere*{\the\drmt}{below right}{above right}%
\xdef\dynkin@fold@radius{\old@fold}%
- \dynkinPlaceRootRelativeTo*{\the\drmo}{\the\drmt}{northwestfold}{left}{above left}%
- \dynkinPlaceRootRelativeTo*{\the\dynkin@rank}{\the\drmt}{southwestfold}{left}{above left}%
+ \dynkinPlaceRootRelativeTo*%
+ {\the\drmo}%
+ {\the\drmt}%
+ {northwestfold}%
+ {left}%
+ {above left}%
+ \dynkinPlaceRootRelativeTo*%
+ {\the\dynkin@rank}%
+ {\the\drmt}%
+ {southwestfold}%
+ {left}%
+ {above left}%
\dynkinEdge*{RightDownArc}{0}{2}%
\dynkinEdge*{RightUpArc}{1}{2}%
\dynkinEdge*{RightDownArc}{\the\drmo}{\the\drmt}%
@@ -4236,14 +4611,15 @@ decoration=
\dynkinEast%
\Adynkin%
\dynkinEdge*{SingleEdge}{0}{1}%
- \ifnum\dynkin@rank=3%
+ \ifnum\dynkin@rank=3\relax%
\convertRootPair{1}{2}%
\else%
\convertRootPair{0}{1}%
\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\@fromRoot)%
+ +.5*(\dynkin@root@name \the\@toRoot)$)%
{\(5\)};%
}%
@@ -4251,38 +4627,33 @@ decoration=
%% \extendedIdynkin
%% Draws an I series affine Coxeter diagram.
\newcommand*{\extendedIdynkin}%
-{
+{%
\dynkinPlaceRootHere*{0}{below}{above}%
\dynkinEast%
- \dynkin@rank=1%
+ \dynkin@rank=1\relax%
\Adynkin%
\dynkinEdge*{SingleEdge}{0}{1}%
\dynkinEdgeLabel{0}{1}{\infty}%
-% \convertRootPair{0}{1}%
-% \node[/Dynkin diagram/text style,/Dynkin diagram/edge label,above]
-% at
-% ($.5*(\dynkin@root@name \the\@fromRoot)+.5*(\dynkin@root@name \the\@toRoot)$)
-% {\(\infty\)};%
-}
+}%
%% \twistedAdynkin
%% Draws a twisted A series affine Dynkin diagram.
\NewDocumentCommand\twistedAdynkin{}%
{%
- \ifnum\dynkin@rank=3
+ \ifnum\dynkin@rank=3\relax%
\ClassError{Dynkin diagrams}{A2 series twisted diagrams cannot have rank \the\dynkin@rank}{}%
- \fi
- \ifnum\dynkin@rank=2%
+ \fi%
+ \ifnum\dynkin@rank=2\relax%
\dynkinPlaceRootHere*{0}{below}{above}%
\dynkinPlaceRootRelativeTo*{1}{0}{east}{below}{above}%
\dynkinQuadrupleEdge*{1}{0}%
\else%
\newcount\hmo%
- \hmo=\the\dynkin@nodes%
- \advance\hmo by -1%
+ \hmo=\the\dynkin@nodes\relax%
+ \advance\hmo by -1\relax%
\ifodd\dynkin@rank%
- \ifnum\dynkin@ply>1%
+ \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}%
@@ -4298,7 +4669,12 @@ decoration=
\fi%
\dynkinMoveToRoot*{2}%
\dynkin@pipe{2}{\the\hmo}{east}{below}{above}%
- \dynkinPlaceRootRelativeTo*{\the\dynkin@nodes}{\the\hmo}{east}{below}{above}%
+ \dynkinPlaceRootRelativeTo*%
+ {\the\dynkin@nodes}%
+ {\the\hmo}%
+ {east}%
+ {below}%
+ {above}%
\dynkinEdge*{DoubleEdge}{\the\dynkin@nodes}{\the\hmo}%
\ifnum\dynkin@ply>1%
\dynkinLeftFold*{0}{1}%
@@ -4315,7 +4691,12 @@ decoration=
\ifnum\hmo>1%
\dynkin@fold{1}{\the\hmo}%
\fi%
- \dynkinPlaceRootRelativeTo*{\the\dynkin@nodes}{\the\hmo}{west}{below}{above}%
+ \dynkinPlaceRootRelativeTo*%
+ {\the\dynkin@nodes}%
+ {\the\hmo}%
+ {west}%
+ {below}%
+ {above}%
\else%
\dynkinPlaceRootHere*{0}{below}{above}%
\dynkinPlaceRootRelativeTo*{1}{0}{east}{below right}{above}%
@@ -4323,7 +4704,12 @@ decoration=
\ifnum\hmo>1%
\dynkin@pipe{1}{\the\hmo}{east}{below}{above}%
\fi%
- \dynkinPlaceRootRelativeTo*{\the\dynkin@nodes}{\the\hmo}{east}{below}{above}%
+ \dynkinPlaceRootRelativeTo*%
+ {\the\dynkin@nodes}%
+ {\the\hmo}%
+ {east}%
+ {below}%
+ {above}%
\fi%
\dynkinEdge*{DoubleEdge}{\the\dynkin@nodes}{\the\hmo}%
\else%
@@ -4368,8 +4754,8 @@ decoration=
\ClassError{Dynkin diagrams}{D2 series twisted diagrams cannot have rank \the\dynkin@rank}{}%
\fi%
\newcount\drmo%
- \drmo=\the\dynkin@nodes%
- \advance\drmo by -1%
+ \drmo=\the\dynkin@nodes\relax%
+ \advance\drmo by -1\relax%
\ifnum\dynkin@ply=1%
\dynkinPlaceRootHere*{0}{below}{above}%
\dynkinPlaceRootRelativeTo*{1}{0}{east}{below}{above}%
@@ -4389,8 +4775,8 @@ decoration=
\else
\dynkinEdge*{DoubleEdge}{1}{0}%
\fi%
- \ifnum\dynkin@ply>1%
- \ifnum\dynkin@rank>3%
+ \ifnum\dynkin@ply>1\relax%
+ \ifnum\dynkin@rank>3\relax%
\dynkin@fold{1}{\the\drmo}%
\dynkinPlaceRootRelativeTo*{\the\dynkin@nodes}{\the\drmo}{west}{below}{above}%
\dynkinFold*{0}{\the\dynkin@nodes}%
@@ -4403,14 +4789,12 @@ decoration=
\fi%
\dynkinPlaceRootRelativeTo*{\the\dynkin@nodes}{\the\drmo}{east}{below}{above}%
\fi%
- \ifnum\dynkin@ply=2%
+ \ifnum\dynkin@ply=2\relax%
\dynkinEdge*{DoubleDownRightArc}{\the\drmo}{\the\dynkin@nodes}%
\else
\dynkinEdge*{DoubleEdge}{\the\drmo}{\the\dynkin@nodes}%
\fi%
}%
-
-
%% \twistedEdynkin
%% Draws a twisted E series affine Dynkin diagram.
\NewDocumentCommand\twistedEdynkin{}%
diff --git a/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.tex b/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.tex
index 4969361082..22d55fdbd5 100644
--- a/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.tex
+++ b/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.tex
@@ -1,7 +1,7 @@
\documentclass{amsart}
-
-\title{The Dynkin diagrams package \\ Version 3.141592653}
-
+\title[The Dynkin diagrams package]%
+{The Dynkin diagrams package \\ Version 3.1415926535}
+%% My name:
\makeatletter
\DeclareRobustCommand{\scotsMc}{\scotsMcx{c}}
\DeclareRobustCommand{\scotsMC}{\scotsMcx{\textsc{c}}}
@@ -16,12 +16,10 @@
\@uclclist\scotsMc\scotsMC
}
\makeatother
-
\author{Ben \scotsMc{}Kay}
\address{School of Mathematical Sciences, University College Cork, Cork, Ireland}
\email{b.mckay@ucc.ie}
-\date{4 December 2019}
-
+\date{2 February 2020}
\usepackage{etex}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenx}
@@ -55,6 +53,7 @@
\usepackage{filecontents}
\usetikzlibrary{decorations.markings}
\usetikzlibrary{decorations.pathmorphing}
+%% Use white rulings in tables.
\arrayrulecolor{white}
\makeatletter
\def\rulecolor#1#{\CT@arc{#1}}
@@ -80,13 +79,28 @@
\newcolumntype{P}{>{\columncolor[gray]{.9}}p{10cm}}
\NewDocumentCommand\textleftcurly{}{\texttt{\char'173}}%
\NewDocumentCommand\textrightcurly{}{\texttt{\char'175}}%
+\newcount\seriesLength
+\newcount\rankLength
\NewDocumentCommand\csDynkin{omom}%
{%
- \texttt{\detokenize{\dynkin}\!\!\!%
+ \texttt{\detokenize{\dynkin}\!\!%
\IfNoValueTF{#1}{}{[#1]}%
- \textleftcurly#2\textrightcurly%
+ \StrLen{#2}[\thatseriesLength]%
+ \seriesLength\thatseriesLength\relax%
+ \ifnum\seriesLength=1\relax%
+ \IfNoValueT{#1}{\ }%
+ #2%
+ \else%
+ \textleftcurly#2\textrightcurly%
+ \fi%
\IfNoValueTF{#3}{}{[#3]}%
- \textleftcurly#4\textrightcurly%
+ \StrLen{#4}[\thatrankLength]%
+ \rankLength\thatrankLength\relax%
+ \ifnum\rankLength=1\relax%
+ #4%
+ \else%
+ \textleftcurly#4\textrightcurly%
+ \fi%
}%
}%
@@ -167,20 +181,20 @@ before upper={\widowpenalties=3 10000 10000 150}}
\documentclass{amsart}
\usepackage{dynkin-diagrams}
\begin{document}
-The Dynkin diagram of \(B_3\) is \dynkin{B}{3}.
+The Dynkin diagram of \(B_3\) is \dynkin B3.
\end{document}
\end{verbatim}
\end{tcolorbox}
\begin{tcblisting}{title={Invoke it}}
-The Dynkin diagram of \(B_3\) is \dynkin{B}{3}.
+The Dynkin diagram of \(B_3\) is \dynkin B3.
\end{tcblisting}
\begin{tcblisting}{title={Inside a \TikZ statement}}
The Dynkin diagram of \(B_3\) is
-\tikz \dynkin{B}{3};
+\tikz \dynkin B3;
\end{tcblisting}
\begin{tcblisting}{title={Inside a Dynkin diagram environment}}
The Dynkin diagram of \(B_3\) is
-\begin{dynkinDiagram}{B}{3}
+\begin{dynkinDiagram}B3
\draw[very thick,red] (root 1) to [out=-45, in=-135] (root 3);
\end{dynkinDiagram}
\end{tcblisting}
@@ -188,23 +202,30 @@ The Dynkin diagram of \(B_3\) is
Baseline controls vertical alignment:
the Dynkin diagram of \(B_3\) is
\begin{tikzpicture}[baseline=(origin.base)]
-\dynkin{B}{3}
+\dynkin B3
\draw[very thick,red] (root 1) to [out=-45, in=-135] (root 3);
\end{tikzpicture}
\end{tcblisting}
+In a TikZ picture, you might need to kill the default vertical shift (needed to allow inline Dynkin diagrams):
+\begin{tcblisting}{title={Inside TikZ pictures}}
+\begin{tikzpicture}
+\draw (0,0) -- (.5,1) -- (1,0);
+\dynkin[vertical shift=0,edge length=1cm]G2
+\end{tikzpicture}
+\end{tcblisting}
\begin{tcblisting}{title={Indefinite rank Dynkin diagrams}}
-\dynkin{B}{}
+\dynkin B{}
\end{tcblisting}
\begin{dynkinTable}{The Dynkin diagrams of the reduced simple root systems \cite{Bourbaki:2002} pp. 265--290, plates I--IX}{2.25cm}{2.5cm}
-\dyn{A}{}
-\dyn{C}{}
-\dyn{D}{}
-\dyn{E}{6}
-\dyn{E}{7}
-\dyn{E}{8}
-\dyn{F}{4}
-\dyn{G}{2}
+\dyn A{}
+\dyn C{}
+\dyn D{}
+\dyn E6
+\dyn E7
+\dyn E8
+\dyn F4
+\dyn G2
\end{dynkinTable}
@@ -243,87 +264,87 @@ You can also pass options to the package in \verb!\usepackage!.
\end{tcblisting}
\begin{tcblisting}{title={gonality option for \(G_2\) and \(I_n\) Coxeter diagrams}}
-\(G_2=\dynkin[Coxeter,gonality=n]{G}{2}\), \
-\(I_n=\dynkin[Coxeter,gonality=n]{I}{}\)
+\(G_2=\dynkin[Coxeter,gonality=n]G2\), \
+\(I_n=\dynkin[Coxeter,gonality=n]I{}\)
\end{tcblisting}
\begin{dynkinTable}{The Coxeter diagrams of the simple reflection groups}{2.25cm}{6cm}
-\dyn[Coxeter]{A}{}
-\dyn[Coxeter]{B}{}
-\dyn[Coxeter]{C}{}
-\dyn[Coxeter]{E}{6}
-\dyn[Coxeter]{E}{7}
-\dyn[Coxeter]{E}{8}
-\dyn[Coxeter]{F}{4}
-\dyn[Coxeter,gonality=n]{G}{2}
-\dyn[Coxeter]{H}{3}
-\dyn[Coxeter]{H}{4}
-\dyn[Coxeter,gonality=n]{I}{}
+\dyn[Coxeter]A{}
+\dyn[Coxeter]B{}
+\dyn[Coxeter]C{}
+\dyn[Coxeter]E6
+\dyn[Coxeter]E7
+\dyn[Coxeter]E8
+\dyn[Coxeter]F4
+\dyn[Coxeter,gonality=n]G2
+\dyn[Coxeter]H3
+\dyn[Coxeter]H4
+\dyn[Coxeter,gonality=n]I{}
\end{dynkinTable}
\section{Satake diagrams}\label{section:Satake}
\begin{tcblisting}{title={Satake diagrams use the standard name instead of a rank}}
-\(A_{IIIb}=\dynkin{A}{IIIb}\)
+\(A_{IIIb}=\dynkin A{IIIb}\)
\end{tcblisting}
We use a solid gray bar to denote the folding of a Dynkin diagram, rather than the usual double arrow, since the diagrams turn out simpler and easier to read.
\begin{dynkinTable}{The Satake diagrams of the real simple Lie algebras \cite{Helgason:2001} p. 532--534}{2.75cm}{3cm}
-\dyn{A}{I}
-\dyn{A}{II}
-\dyn{A}{IIIa}
-\dyn{A}{IIIb}
-\dyn{A}{IV}
-\dyn{B}{I}
-\dyn{B}{II}
-\dyn{C}{I}
-\dyn{C}{IIa}
-\dyn{C}{IIb}
-\dyn{D}{Ia}
-\dyn{D}{Ib}
-\dyn{D}{Ic}
-\dyn{D}{II}
-\dyn{D}{IIIa}
-\dyn{D}{IIIb}
-\dyn{E}{I}
-\dyn{E}{II}
-\dyn{E}{III}
-\dyn{E}{IV}
-\dyn{E}{V}
-\dyn{E}{VI}
-\dyn{E}{VII}
-\dyn{E}{VIII}
-\dyn{E}{IX}
-\dyn{F}{I}
-\dyn{F}{II}
-\dyn{G}{I}
+\dyn A{I}
+\dyn A{II}
+\dyn A{IIIa}
+\dyn A{IIIb}
+\dyn A{IV}
+\dyn B{I}
+\dyn B{II}
+\dyn C{I}
+\dyn C{IIa}
+\dyn C{IIb}
+\dyn D{Ia}
+\dyn D{Ib}
+\dyn D{Ic}
+\dyn D{II}
+\dyn D{IIIa}
+\dyn D{IIIb}
+\dyn E{I}
+\dyn E{II}
+\dyn E{III}
+\dyn E{IV}
+\dyn E{V}
+\dyn E{VI}
+\dyn E{VII}
+\dyn E{VIII}
+\dyn E{IX}
+\dyn F{I}
+\dyn F{II}
+\dyn GI
\end{dynkinTable}
\section{How to fold}
\begin{tcblisting}{title={If you don't like the solid gray ``folding bar'', most people use arrows. Here is \(E_{II}\)}}
\newcommand{\invol}[2]{\draw[latex-latex] (root #1) to
[out=-60,in=-120] node[midway,below]{$\sigma$} (root #2);}
-\begin{dynkinDiagram}[edge length=.75cm,labels*={1,...,6}]{E}{6}
-\invol{1}{6}\invol{3}{5}
+\begin{dynkinDiagram}[edge length=.75cm,labels*={1,...,6}]E6
+\invol 16\invol 35
\end{dynkinDiagram}
\end{tcblisting}
\begin{tcblisting}{title={The double arrows for \(A_{IIIa}\) are big}}
\newcommand{\invol}[2]{\draw[latex-latex] (root #1) to
[out=-60,in=-120] node[midway,below]{$\sigma$} (root #2);}
\begin{dynkinDiagram}[edge length=.75cm]{A}{oo.o**.**o.oo}
-\invol{1}{10}\invol{2}{9}\invol{3}{8}\invol{4}{7}\invol{5}{6}
+\invol 1{10}\invol 29\invol 38\invol 47\invol 56
\end{dynkinDiagram}
\end{tcblisting}
\begin{tcblisting}{title={If you don't like the solid gray ``folding bar'', most people use arrows \dots}}
\tikzset{/Dynkin diagram/fold style/.style={stealth-stealth,thick,
shorten <=1mm,shorten >=1mm,}}
-\dynkin[ply=3,edge length=.75cm]{D}{4}
-\begin{dynkinDiagram}[ply=4]{D}[1]%
+\dynkin[ply=3,edge length=.75cm]D4
+\begin{dynkinDiagram}[ply=4]D[1]%
{****.*****.*****}
- \dynkinFold{1}{13}
- \dynkinFold[bend right=90]{0}{14}
+ \dynkinFold 1{13}
+ \dynkinFold[bend right=90] 0{14}
\end{dynkinDiagram}
\end{tcblisting}
@@ -331,65 +352,63 @@ shorten <=1mm,shorten >=1mm,}}
\tikzset{/Dynkin diagram/fold style/.style=
{decorate,decoration={name=coil,aspect=0.5,
segment length=1mm,amplitude=.6mm}}}
-\dynkin[ply=3,edge length=.75cm]{D}{4}
-\begin{dynkinDiagram}[ply=4]{D}[1]%
+\dynkin[ply=3,edge length=.75cm]D4
+\begin{dynkinDiagram}[ply=4]D[1]%
{****.*****.*****}
- \dynkinFold{1}{13}
- \dynkinFold[bend right=90]{0}{14}
+ \dynkinFold 1{13}
+ \dynkinFold[bend right=90]0{14}
\end{dynkinDiagram}
\end{tcblisting}
-
\section{Labels for the roots}
-
\begin{tcblisting}{title={Make a macro to assign labels to roots}}
-\dynkin[label,label macro/.code={\alpha_{\drlap{#1}}},edge length=.75cm]{D}{5}
+\dynkin[label,label macro/.code={\alpha_{\drlap{#1}}},edge length=.75cm]D5
\end{tcblisting}
\begin{tcblisting}{title={Labelling several roots}}
-\dynkin[labels={,2,...,5,,7},label macro/.code={\alpha_{\drlap#1}}]{A}{7}
+\dynkin[labels={,2,...,5,,7},label macro/.code={\alpha_{\drlap#1}}]A7
\end{tcblisting}
\begin{tcblisting}{title={The \texttt{foreach} notation I}}
-\dynkin[labels={1,3,...,7},]{A}{9}
+\dynkin[labels={1,3,...,7},]A9
\end{tcblisting}
\begin{tcblisting}{title={The \texttt{foreach} notation II}}
-\dynkin[labels={,\alpha_2,\alpha_...,\alpha_7},]{A}{7}
+\dynkin[labels={,\alpha_2,\alpha_...,\alpha_7},]A7
\end{tcblisting}
\begin{tcblisting}{title={The \texttt{foreach} notation III}}
-\dynkin[label macro/.code={\beta_{\drlap{#1}}},labels={,2,...,7},]{A}{7}
+\dynkin[label macro/.code={\beta_{\drlap{#1}}},labels={,2,...,7},]A7
\end{tcblisting}
\begin{tcblisting}{title={Label the roots individually by root number}}
-\dynkin[label]{B}{3}
+\dynkin[label]B3
\end{tcblisting}
\begin{tcblisting}{title={Label a single root}}
-\begin{dynkinDiagram}{B}{3}
-\dynkinLabelRoot{2}{\alpha_{\drlap{2}}}
+\begin{dynkinDiagram}B3
+\dynkinLabelRoot 2{\alpha_{\drlap{2}}}
\end{dynkinDiagram}
\end{tcblisting}
\begin{tcblisting}{title={Access root labels via TikZ}}
-\begin{dynkinDiagram}{B}{3}
+\begin{dynkinDiagram}B3
\node[below] at (root 2) {\(\alpha_{\drlap{2}}\)};
\end{dynkinDiagram}
\end{tcblisting}
\begin{tcblisting}{title={Commands to label several roots}}
-\begin{dynkinDiagram}{A}{7}
+\begin{dynkinDiagram}A7
\dynkinLabelRoots{,\alpha_2,\alpha_3,\alpha_4,\alpha_5,,\alpha_7}
\end{dynkinDiagram}
\end{tcblisting}
\begin{tcblisting}{title={The labels have default locations, mostly below roots}}
-\dynkin[edge length=.75cm,labels={1,2,3}]{E}{8}
+\dynkin[edge length=.75cm,labels={1,2,3}]E8
\end{tcblisting}
\begin{tcblisting}{title={The starred form flips labels to alternate locations, mostly above roots}}
-\dynkin[edge length=.75cm,labels*={1,2,3}]{E}{8}
+\dynkin[edge length=.75cm,labels*={1,2,3}]E8
\end{tcblisting}
\begin{tcblisting}{title={Labelling several roots and alternates}}
\dynkin[%
label macro/.code={\alpha_{\drlap{#1}}},
label macro*/.code={\gamma_{\drlap{#1}}},
labels={,2,...,5,,7},
-labels*={1,3,4,5,6}]{A}{7}
+labels*={1,3,4,5,6}]A7
\end{tcblisting}
\begin{tcblisting}{title={Commands to label several roots}}
-\begin{dynkinDiagram}{A}{7}
+\begin{dynkinDiagram}A7
\dynkinLabelRoots{,\alpha_2,\alpha_3,\alpha_4,\alpha_5,,\alpha_7}
\dynkinLabelRoots*{a,b,c,d,e,f,g}
\end{dynkinDiagram}
@@ -399,44 +418,44 @@ labels*={1,3,4,5,6}]{A}{7}
Note the slight improvement that \verb!\drlap! makes: the labels are centered on the middle of the letter \(\alpha\), ignoring the space taken up by the subscripts, using the \verb!mathtools! command \verb!\mathrlap!, but only for labels which are \emph{not} placed to the left or right of a root.
\begin{tcblisting}{title={Label subscript spacing}}
\dynkin[label,label macro/.code={\alpha_{#1}},
- edge length=.75cm]{D}{15}
+ edge length=.75cm]D{15}
\par\noindent{}%
\dynkin[label,label macro/.code={\alpha_{\drlap{#1}}},
- edge length=.75cm]{D}{15}
+ edge length=.75cm]D{15}
\end{tcblisting}
\begin{tcblisting}{title={Label subscript spacing}}
\dynkin[label,label macro/.code={\alpha_{#1}},
- edge length=.75cm]{E}{8}
+ edge length=.75cm]E8
\dynkin[label,label macro/.code={\alpha_{#1}},backwards,
- edge length=.75cm]{E}{8}
+ edge length=.75cm]E8
\par\noindent{}%
\dynkin[label,label macro/.code={\alpha_{\mathrlap{#1}}},
- edge length=.75cm]{E}{8}
+ edge length=.75cm]E8
\dynkin[label,label macro/.code={\alpha_{\mathrlap{#1}}},backwards,
- edge length=.75cm]{E}{8}
+ edge length=.75cm]E8
\par\noindent{}%
\dynkin[label,label macro/.code={\alpha_{\drlap{#1}}},
- edge length=.75cm]{E}{8}
+ edge length=.75cm]E8
\dynkin[label,label macro/.code={\alpha_{\drlap{#1}}},backwards,
- edge length=.75cm]{E}{8}
+ edge length=.75cm]E8
\end{tcblisting}
\newpage
\section{Height and depth of labels}
Labels are set with default maximum height the height of the character \(b\), and default maximum depth the depth of the character \(g\).
To change these, set \verb!label height! and \verb!label depth!:
-\begin{tcblisting}{title={Change height and dept of characters}}
-\dynkin[labels={a,b,c,d}]{F}{4}
-\dynkin[labels*={a,b,c,d}]{F}{4}
+\begin{tcblisting}{title={Change height and depth of characters}}
+\dynkin[labels={a,b,c,d},label height=d,label depth=d]F4
+\dynkin[labels*={a,b,c,d},label height=d,label depth=d]F4
\dynkin[%
label macro/.code={\alpha_{\drlap{#1}}},
label macro*/.code={\gamma_{\drlap{#1}}},
label height=$\alpha_1$,
label depth=$\alpha_1$,
labels={,2,...,5,,7},
-labels*={1,3,4,5,6}]{A}{7}
-\dynkin[labels={A,B,C,D},label height=$A$,label depth=$A$]{F}{4}
-\dynkin[labels={a^1,b^2,c^3,d^4},label height=$X^X$]{F}{4}
+labels*={1,3,4,5,6}]A7
+\dynkin[labels={A,B,C,D},label height=$A$,label depth=$A$]F4
+\dynkin[labels={a^1,b^2,c^3,d^4},label height=$X^X$]F4
\end{tcblisting}
\section{Text style for the labels}
@@ -445,14 +464,14 @@ labels*={1,3,4,5,6}]{A}{7}
edge length=.75cm,
labels={1,2,n-1,n},
label macro/.code={\alpha_{\drlap{#1}}}
-]{A}{}
+]A{}
\end{dynkinDiagram}
\end{tcblisting}
\begin{tcblisting}{title={Use a text style; font selection is in the label macro}}
\begin{dynkinDiagram}[text style={scale=1.2,blue},
edge length=.75cm,
labels={1,2,n-1,n},
-label macro/.code={\mathbb{A}_{\drlap{#1}}}]{A}{}
+label macro/.code={\mathbb{A}_{\drlap{#1}}}]A{}
\end{dynkinDiagram}
\end{tcblisting}
@@ -460,23 +479,23 @@ label macro/.code={\mathbb{A}_{\drlap{#1}}}]{A}{}
\section{Bracing roots}
\begin{tcblisting}{title={Bracing roots}}
-\begin{dynkinDiagram}{A}{*.*x*.*}
-\dynkinBrace[p]{1}{2}
-\dynkinBrace[q]{4}{5}
+\begin{dynkinDiagram}A{*.*x*.*}
+\dynkinBrace[p]12
+\dynkinBrace[q]45
\end{dynkinDiagram}
\end{tcblisting}
\begin{tcblisting}{title={Bracing roots, and a starred form}}
-\begin{dynkinDiagram}{A}{10}
-\dynkinBrace[\text{Roots 2 to 9}]{2}{9}
-\dynkinBrace*[\text{Roots 3 to 8}]{3}{8}
+\begin{dynkinDiagram}A{10}
+\dynkinBrace[\text{Roots 2 to 9}]29
+\dynkinBrace*[\text{Roots 3 to 8}]38
\end{dynkinDiagram}
\end{tcblisting}
\begin{tcblisting}{title={Bracing roots}}
\newcommand\circleRoot[1]{\draw (root #1) circle (3pt);}
-\begin{dynkinDiagram}{A}{**.***.***.***.***.**}
-\circleRoot{4}\circleRoot{7}\circleRoot{10}\circleRoot{13}
-\dynkinBrace[y-1]{1}{3}
-\dynkinBrace[z-1]{5}{6}
+\begin{dynkinDiagram}A{**.***.***.***.***.**}
+\circleRoot 4\circleRoot 7\circleRoot 10\circleRoot 13
+\dynkinBrace[y-1]13
+\dynkinBrace[z-1]56
\dynkinBrace[t-1]{11}{12}
\dynkinBrace[x-1]{14}{16}
\end{dynkinDiagram}
@@ -488,21 +507,21 @@ label macro/.code={\mathbb{A}_{\drlap{#1}}}]{A}{}
\setcounter{EPNo}{0}
\NewDocumentCommand\EP{smmmm}%
{%
-\stepcounter{EPNo}\roman{EPNo}. &
-\def\eL{.6cm}
+\stepcounter{EPNo}\roman{EPNo}. &%
+\def\eL{.6cm}%
\IfStrEqCase{#2}%
{%
-{D}{\gdef\eL{1cm}}%
-{E}{\gdef\eL{.75cm}}%
-{F}{\gdef\eL{.35cm}}%
-{G}{\gdef\eL{.35cm}}%
+D{\gdef\eL{1cm}}%
+E{\gdef\eL{.75cm}}%
+F{\gdef\eL{.35cm}}%
+G{\gdef\eL{.35cm}}%
}%
-\tikzset{/Dynkin diagram,edge length=\eL}
\IfBooleanTF{#1}%
-{\dynkin[backwards,labels*={#4},labels={#5}]{#2}{#3}}
-{\dynkin[labels*={#4},labels={#5}]{#2}{#3}}
+{\dynkin[edge length=\eL,backwards,labels*={#4},labels={#5}]{#2}{#3}}
+{\dynkin[edge length=\eL,labels*={#4},labels={#5}]{#2}{#3}}
\\
}%
+\renewcommand*\do[1]{\EP#1}%
\begin{longtable}{MM}
\caption{Dynkin diagrams from Euler products \cite{Langlands:1967}}\\
\endfirsthead
@@ -511,38 +530,39 @@ label macro/.code={\mathbb{A}_{\drlap{#1}}}]{A}{}
\multicolumn{2}{c}{continued \dots}\\
\endfoot
\endlastfoot
-\EP{A}{***.**}{1,1,1,1,1}{,1,2,n-1,n}
-\EP{A}{***.**}{1,1,1,1,1}{1,2,n-1,n}
-\EP{A}{**.***.*}{1,1,1,1,1,1}{1,2,m-1,,m,n}
-\EP{B}{**.***}{2,2,2,2,1}{1,2,n-1,n}
-\EP*{B}{***.**}{2,2,2,2,1}{n,n-1,2,1,}
-\EP{C}{**.***}{1,1,1,1,2}{1,2,n-1,}
-\EP*{C}{***.**}{1,1,1,1,2}{n,n-1,2,1,}
-\EP{D}{**.****}{1,1,1,1,1,1}{1,2,n-2,n-1,n}
-\EP{D}{**.****}{1,1,1,1,1,1}{1,2,n-2,n-1,n}
-\EP{E}{6}{1,1,1,1,1,1}{1,...,5}
-\EP*{E}{7}{1,1,1,1,1,1,1}{6,...,1}
-\EP{E}{7}{1,1,1,1,1,1,1}{1,...,6}
-\EP*{E}{8}{1,1,1,1,1,1,1,1}{7,...,1}
-\EP{E}{8}{1,1,1,1,1,1,1,1}{1,...,7}
-\EP{G}{2}{1,3}{,1}
-\EP{G}{2}{1,3}{1}
-\EP{B}{**.*.**}{2,2,2,2,1}{,1,2,n-1,n}
-\EP{F}{4}{1,1,2,2}{,3,2,1}
-\EP{C}{3}{1,1,2}{,2,1}
-\EP{C}{**.***}{1,1,1,1,2}{,1,n-2,n-1,n}
-\EP*{B}{3}{2,2,1}{1,2}
-\EP{F}{4}{1,1,2,2}{1,2,3}
-\EP{D}{**.****}{1,1,1,1,1,1}{1,2,n-2,n-2,n,n}
-\EP{E}{6}{1,1,1,1,1,1}{1,2,3,4,,5}
-\EP{E}{6}{1,1,1,1,1,1}{1,2,3,5,,4}
-\EP*{E}{7}{1,1,1,1,1,1,1}{,5,...,1,6}
-\EP*{E}{7}{1,1,1,1,1,1,1}{,6,4,3,2,1,5}
-\EP*{E}{8}{1,1,1,1,1,1,1,1}{,6,...,1,7}
-\EP*{E}{8}{1,1,1,1,1,1,1,1}{,7,5,4,3,2,1,6}
-\EP*{E}{7}{1,1,1,1,1,1,1}{5,...,1,,6}
-\EP*{E}{7}{1,1,1,1,1,1,1}{1,...,5,,6}
-\EP*{E}{8}{1,1,1,1,1,1,1,1}{6,...,1,,7}
+\docsvlist{
+A{***.**}{1,1,1,1,1}{,1,2,n-1,n},
+A{***.**}{1,1,1,1,1}{1,2,n-1,n},
+A{**.***.*}{1,1,1,1,1,1}{1,2,m-1,,m,n},
+B{**.***}{2,2,2,2,1}{1,2,n-1,n},
+*B{***.**}{2,2,2,2,1}{n,n-1,2,1,},
+C{**.***}{1,1,1,1,2}{1,2,n-1,},
+*C{***.**}{1,1,1,1,2}{n,n-1,2,1,},
+D{**.****}{1,1,1,1,1,1}{1,2,n-2,n-1,n},
+D{**.****}{1,1,1,1,1,1}{1,2,n-2,n-1,n},
+E6{1,1,1,1,1,1}{1,...,5},
+*E7{1,1,1,1,1,1,1}{6,...,1},
+E7{1,1,1,1,1,1,1}{1,...,6},
+*E8{1,1,1,1,1,1,1,1}{7,...,1},
+E8{1,1,1,1,1,1,1,1}{1,...,7},
+G2{1,3}{,1},
+G2{1,3}{1},
+B{**.*.**}{2,2,2,2,1}{,1,2,n-1,n},
+F4{1,1,2,2}{,3,2,1},
+C3{1,1,2}{,2,1},
+C{**.***}{1,1,1,1,2}{,1,n-2,n-1,n},
+*B3{2,2,1}{1,2},
+F4{1,1,2,2}{1,2,3},
+D{**.****}{1,1,1,1,1,1}{1,2,n-2,n-2,n,n},
+E6{1,1,1,1,1,1}{1,2,3,4,,5},
+E6{1,1,1,1,1,1}{1,2,3,5,,4},
+*E7{1,1,1,1,1,1,1}{,5,...,1,6},
+*E7{1,1,1,1,1,1,1}{,6,4,3,2,1,5},
+*E8{1,1,1,1,1,1,1,1}{,6,...,1,7},
+*E8{1,1,1,1,1,1,1,1}{,7,5,4,3,2,1,6},
+*E7{1,1,1,1,1,1,1}{5,...,1,,6},
+*E7{1,1,1,1,1,1,1}{1,...,5,,6},
+*E8{1,1,1,1,1,1,1,1}{6,...,1,,7}}
\end{longtable}
\end{filecontents*}
{\input{EulerProducts}}\VerbatimInput{EulerProducts.tex}
@@ -555,81 +575,77 @@ label macro/.code={\mathbb{A}_{\drlap{#1}}}]{A}{}
arrow color=red]{F}{4}
\end{tcblisting}
\begin{tcblisting}{title={Edge lengths}}
-The Dynkin diagram of \(A_3\) is \dynkin[edge length=1.2,parabolic=3]{A}{3}
+The Dynkin diagram of \(A_3\) is \dynkin[edge length=1.2]A3
\end{tcblisting}
\newpage
\begin{tcblisting}{title={Root marks}}
-\dynkin{E}{8}
-\dynkin[mark=*]{E}{8}
-\dynkin[mark=o]{E}{8}
-\dynkin[mark=O]{E}{8}
-\dynkin[mark=t]{E}{8}
-\dynkin[mark=x]{E}{8}
-\dynkin[mark=X]{E}{8}
+\dynkin E8
+\dynkin[mark=*]E8
+\dynkin[mark=o]E8
+\dynkin[mark=O]E8
+\dynkin[mark=t]E8
+\dynkin[mark=x]E8
+\dynkin[mark=X]E8
\end{tcblisting}
At the moment, you can only use:
-\par\noindent\begin{tabular}{>{\ttfamily}cl}
-* & solid dot \\
-o & hollow circle \\
-O & double hollow circle \\
-t & tensor root \\
-x & crossed root \\
-X & thickly crossed root
+\par\noindent\begin{tabular}{>{\ttfamily}ccl}
+* &\dynkin[mark=*]A1& solid dot \\
+o &\dynkin[mark=o]A1& hollow circle \\
+O&\dynkin[mark=O]A1 & double hollow circle \\
+t &\dynkin[mark=t]A1& tensor root \\
+x &\dynkin[mark=x]A1& crossed root \\
+X &\dynkin[mark=X]A1& thickly crossed root
\end{tabular}
\begin{tcblisting}{title={Mark styles}}
-The parabolic subgroup \(E_{8,124}\) is \dynkin[parabolic=124,x/.style={brown,very thick}]{E}{8}
+The parabolic subgroup \(E_{8,124}\) is \dynkin[parabolic=124,x/.style={brown,very thick}]E8
\end{tcblisting}
\begin{tcblisting}{title={Sizes of root marks}}
-\(A_{3,3}\) with big root marks is \dynkin[root radius=.08cm,parabolic=3]{A}{3}
+\(A_{3,3}\) with big root marks is \dynkin[root radius=.08cm,parabolic=3]A3
\end{tcblisting}
-
\section{Suppress or reverse arrows}
\begin{tcblisting}{title={Some diagrams have double or triple edges}}
-\dynkin{F}{4}
-\dynkin{G}{2}
+\dynkin F4
+\dynkin G2
\end{tcblisting}
\begin{tcblisting}{title={Suppress arrows}}
-\dynkin[arrows=false]{F}{4}
-\dynkin[arrows=false]{G}{2}
+\dynkin[arrows=false]F4
+\dynkin[arrows=false]G2
\end{tcblisting}
\begin{tcblisting}{title={Reverse arrows}}
-\dynkin[reverse arrows]{F}{4}
-\dynkin[reverse arrows]{G}{2}
+\dynkin[reverse arrows]F4
+\dynkin[reverse arrows]G2
\end{tcblisting}
-
\section{Backwards and upside down}
-
\begin{tcblisting}{title={Default}}
-\dynkin{E}{8}
-\dynkin{F}{4}
-\dynkin{G}{2}
+\dynkin E8
+\dynkin F4
+\dynkin G2
\end{tcblisting}
\begin{tcblisting}{title={Backwards}}
-\dynkin[backwards]{E}{8}
-\dynkin[backwards]{F}{4}
-\dynkin[backwards]{G}{2}
+\dynkin[backwards]E8
+\dynkin[backwards]F4
+\dynkin[backwards]G2
\end{tcblisting}
\begin{tcblisting}{title={Reverse arrows}}
-\dynkin[reverse arrows]{F}{4}
-\dynkin[reverse arrows]{G}{2}
+\dynkin[reverse arrows]F4
+\dynkin[reverse arrows]G2
\end{tcblisting}
\begin{tcblisting}{title={Backwards, reverse arrows}}
-\dynkin[backwards,reverse arrows]{F}{4}
-\dynkin[backwards,reverse arrows]{G}{2}
+\dynkin[backwards,reverse arrows]F4
+\dynkin[backwards,reverse arrows]G2
\end{tcblisting}
\begin{tcblisting}{title={Backwards versus upside down}}
-\dynkin[label]{E}{8}
-\dynkin[label,backwards]{E}{8}
-\dynkin[label,upside down]{E}{8}
-\dynkin[label,backwards,upside down]{E}{8}
+\dynkin[label]E8
+\dynkin[label,backwards]E8
+\dynkin[label,upside down]E8
+\dynkin[label,backwards,upside down]E8
\end{tcblisting}
-
\section{Drawing on top of a Dynkin diagram}
\begin{tcblisting}{title={TikZ can access the roots themselves}}
-\begin{dynkinDiagram}{A}{4}
+\begin{dynkinDiagram}A4
\fill[white,draw=black] (root 2) circle (.15cm);
\fill[white,draw=black] (root 2) circle (.1cm);
\draw[black] (root 2) circle (.05cm);
@@ -637,25 +653,22 @@ The parabolic subgroup \(E_{8,124}\) is \dynkin[parabolic=124,x/.style={brown,ve
\end{tcblisting}
\newpage
\begin{tcblisting}{title={Draw curves between the roots}}
-\begin{dynkinDiagram}[label]{E}{8}
+\begin{dynkinDiagram}[label]E8
\draw[very thick, black!50,-latex]
(root 3.south) to [out=-45, in=-135] (root 6.south);
\end{dynkinDiagram}
\end{tcblisting}
\begin{tcblisting}{title={Change marks}}
-\begin{dynkinDiagram}[mark=o,label]{E}{8}
- \dynkinRootMark{*}{5}
- \dynkinRootMark{*}{8}
+\begin{dynkinDiagram}[mark=o,label]E8
+ \dynkinRootMark{*}5
+ \dynkinRootMark{*}8
\end{dynkinDiagram}
\end{tcblisting}
-
\section{Mark lists}
-
The package allows a list of root marks instead of a rank:
-
\begin{tcblisting}{title={A mark list}}
-\dynkin{E}{oo**ttxx}
+\dynkin E{oo**ttxx}
\end{tcblisting}
The mark list \verb!oo**ttxx! has one mark for each root: \verb!o!, \verb!o!, \dots, \verb!x!.
Roots are listed in the current default ordering.
@@ -663,7 +676,7 @@ Roots are listed in the current default ordering.
If you need to repeat a mark, you can give a \emph{single digit} positive integer to indicate how many times to repeat it.
\begin{tcblisting}{title={A mark list with repetitions}}
-\dynkin{A}{x4o3t4}
+\dynkin A{x4o3t4}
\end{tcblisting}
\NewDocumentCommand\ClassicalLieSuperalgebras{om}%
@@ -674,15 +687,15 @@ If you need to repeat a mark, you can give a \emph{single digit} positive intege
\IfValueT{#1}{
& & \texttt{\textbackslash{}tikzset\{/Dynkin diagram,root radius=#1\}} \\
}
-A_{mn} & \dynk{A}{o3.oto.oo}
-B_{mn} & \dynk{B}{o3.oto.oo}
-B_{0n} & \dynk{B}{o3.o3.o*}
-C_{n} & \dynk{C}{too.oto.oo}
-D_{mn} & \dynk{D}{o3.oto.o4}
-D_{21\alpha} & \dynk{A}{oto}
-F_4 & \dynk{F}{ooot}
+A_{mn} & \dynk A{o3.oto.oo}
+B_{mn} & \dynk B{o3.oto.oo}
+B_{0n} & \dynk B{o3.o3.o*}
+C_{n} & \dynk C{too.oto.oo}
+D_{mn} & \dynk D{o3.oto.o4}
+D_{21\alpha} & \dynk A{oto}
+F_4 & \dynk F{ooot}
G_3 & \dynk[extended,affine mark=t,
-reverse arrows]{G}{2}
+reverse arrows]G2
\end{dynkinTable}
\IfValueT{#1}{\tikzset{/Dynkin diagram,root radius=.05cm}}
}%
@@ -692,49 +705,47 @@ reverse arrows]{G}{2}
\ClassicalLieSuperalgebras{Here we see the problem with using the default root radius parameter, which is too small for tensor product symbols.}
-
\section{Indefinite edges}
-An \emph{indefinite edge} is a dashed edge between two roots, \dynkin{A}{*.*} indicating that an indefinite number of roots have been omitted from the Dynkin diagram.
+An \emph{indefinite edge} is a dashed edge between two roots, \dynkin A{*.*} indicating that an indefinite number of roots have been omitted from the Dynkin diagram.
In between any two entries in a mark list, place a period to indicate an indefinite edge:
\begin{tcblisting}{title={Indefinite edges}}
-\dynkin{D}{o.o*.*.t.to.t}
+\dynkin D{o.o*.*.t.to.t}
\end{tcblisting}
In certain diagrams, roots may have an edge between them even though they are not subsequent in the ordering.
For such rare situations, there is an option:
\begin{tcblisting}{title={Indefinite edge option}}
-\dynkin[make indefinite edge={3-5},label]{D}{5}
+\dynkin[make indefinite edge={3-5},label]D5
\end{tcblisting}
\begin{tcblisting}{title={Give a list of edges to become indefinite}}
-\dynkin[make indefinite edge/.list={1-2,3-5},label]{D}{5}
+\dynkin[make indefinite edge/.list={1-2,3-5},label]D5
\end{tcblisting}
\begin{tcblisting}{title={Indefinite edge style}}
-\dynkin[indefinite edge/.style={draw=black,fill=white,thin,densely dashed},%
- edge length=1cm,%
- make indefinite edge={3-5}]
- {D}{5}
+\dynkin[indefinite edge/.style={
+ draw=black,fill=white,thin,densely dashed},
+ edge length=1cm,
+ make indefinite edge={3-5}]D5
\end{tcblisting}
\begin{tcblisting}{title={The ratio of the lengths of indefinite edges to those of other edges}}
-\dynkin[edge length = .5cm,%
- indefinite edge ratio=3,%
- make indefinite edge={3-5}]
- {D}{5}
+\dynkin[edge length = .5cm,
+ indefinite edge ratio=3,
+ make indefinite edge={3-5}]D5
\end{tcblisting}
-\begingroup
+%\begingroup
\renewcommand{\wdtA}{.35cm}
\renewcommand{\wdtE}{6.55cm}
\begin{dynkinTable}{Springer's table of indices \cite{Springer:2009}, pp. 320-321, with one form of \(E_7\) corrected}{2.5cm}{3.7cm}
% 1
A_n &
\multicolumn{2}{E}{
-\begin{dynkinDiagram}{A}{o.o*o.o*o.o}
-\dynkinLabelRoot{3}{d}
-\dynkinLabelRoot{6}{n-d}
+\begin{dynkinDiagram}A{o.o*o.o*o.o}
+\dynkinLabelRoot 3d
+\dynkinLabelRoot 6{n-d}
\end{dynkinDiagram}
}
\\
@@ -742,9 +753,9 @@ A_n &
A_n &
\multicolumn{2}{E}{
\begin{dynkinDiagram}{A}{o.o*o.o*o.o*o.o*o.o}
-\dynkinLabelRoot{3}{d}
-\dynkinLabelRoot{6}{rd}
-\dynkinLabelRoot{9}{n-rd}
+\dynkinLabelRoot 3d
+\dynkinLabelRoot 6{rd}
+\dynkinLabelRoot 9{n-rd}
\dynkinLabelRoot{12}{n-d}
\end{dynkinDiagram}
}
@@ -752,7 +763,7 @@ A_n &
% 3
B_n &
\multicolumn{2}{E}{
-\begin{dynkinDiagram}{B}{**.*.o.oo}
+\begin{dynkinDiagram}B{**.*.o.oo}
\dynkinLabelRoot{3}{r}
\end{dynkinDiagram}
}
@@ -760,81 +771,130 @@ B_n &
% 4
C_n &
\multicolumn{2}{E}{
-\begin{dynkinDiagram}{C}{o.o*o.o*o.oo}
-\dynkinLabelRoot{3}{d}
-\dynkinLabelRoot{6}{rd}
+\begin{dynkinDiagram}C{o.o*o.o*o.oo}
+\dynkinLabelRoot 3d
+\dynkinLabelRoot 6{rd}
\end{dynkinDiagram}
}
\\
% 5
D_n &
\multicolumn{2}{E}{
-\begin{dynkinDiagram}{D}{o.o*o.o*o.ooo}
-\dynkinLabelRoot{3}{d}
-\dynkinLabelRoot{6}{rd}
+\begin{dynkinDiagram}D{o.o*o.o*o.ooo}
+\dynkinLabelRoot 3d
+\dynkinLabelRoot 6{rd}
\end{dynkinDiagram}
}
\\
% 6
E_6 &
-\dynk{E}{*oooo*}
+\dynk E{*oooo*}
% 7
E_6 &
-\dynk{E}{o*o*oo}
+\dynk E{o*o*oo}
% 8
E_6 &
-\dynk{E}{o*oooo}
+\dynk E{o*oooo}
% 9
E_6 &
-\dynk{E}{**ooo*}
+\dynk E{**ooo*}
% 10
E_7 &
-\dynk{E}{*oooooo}
+\dynk E{*oooooo}
% 11
E_7 &
-\dynk{E}{ooooo*o}
+\dynk E{ooooo*o}
% 12
E_7 &
-\dynk{E}{oooooo*}
+\dynk E{oooooo*}
% 13
E_7 &
-\dynk{E}{*oooo*o}
+\dynk E{*oooo*o}
% 14 - corrected from Springer.
E_7 &
-\dynk{E}{*oooo**}
+\dynk E{*oooo**}
% 15
E_7 &
-\dynk{E}{*o**o*o}
+\dynk E{*o**o*o}
% 16
E_8 &
-\dynk{E}{*ooooooo}
+\dynk E{*ooooooo}
% 17
E_8 &
-\dynk{E}{ooooooo*}
+\dynk E{ooooooo*}
% 18
E_8 &
-\dynk{E}{*oooooo*}
+\dynk E{*oooooo*}
% 19
E_8 &
-\dynk{E}{oooooo**}
+\dynk E{oooooo**}
% 20
E_8 &
-\dynk{E}{*oooo***}
+\dynk E{*oooo***}
% 21
F_4 &
-\dynk{F}{ooo*}
+\dynk F{ooo*}
% 22
D_4 &
-\dynk{D}{o*oo}
+\dynk D{o*oo}
\end{longtable}
+
\endgroup
+\section{Root ordering}\label{section:order}
+\begin{tcblisting}{title={Root ordering}}
+\dynkin[label,ordering=Adams]E6
+\dynkin[label,ordering=Bourbaki]E6
+\dynkin[label,ordering=Carter]E6
+\dynkin[label,ordering=Dynkin]E6
+\dynkin[label,ordering=Kac]E6
+\end{tcblisting}
+Default is Bourbaki.
+Sources are Adams \cite{Adams:1996} p. 56--57, Bourbaki \cite{Bourbaki:2002} p. pp. 265--290 plates I-IX, Carter \cite{Carter:2005} p. 540--609, Dynkin \cite{Dynkin:1952}, Kac \cite{Kac:1990} p. 43.
+\NewDocumentCommand\tablerow{mm}%
+{%
+#1_{#2}&
+\dynkin[label,ordering=Adams]{#1}{#2}&
+\dynkin[label]{#1}{#2}&
+\dynkin[label,ordering=Carter]{#1}{#2}&
+\dynkin[label,ordering=Dynkin]{#1}{#2}&
+\dynkin[label,ordering=Kac]{#1}{#2}\\
+}%
+\begin{center}
+\renewcommand{\wdtA}{.7cm}
+\renewcommand{\wdtL}{2.2cm}
+\begin{longtable}{@{}ALLLLL@{}}
+\toprule
+& Adams & Bourbaki & Carter & Dynkin & Kac \\ \midrule
+\endfirsthead
+\toprule
+& Adams & Bourbaki & Carter & Dynkin & Kac \\ \midrule
+\endhead
+\bottomrule
+\endfoot
+\bottomrule
+\endlastfoot
+\tablerow E6\tablerow E7\tablerow E8\tablerow F4\tablerow G2
+\end{longtable}
+\end{center}
+The marks are set down in order according to the current root ordering:
+\begin{tcblisting}{}
+\dynkin[label]E{*otxXOt*}
+\dynkin[label,ordering=Carter]E{*otxXOt*}
+\dynkin[label,ordering=Kac]E{*otxXOt*}
+\end{tcblisting}
+\begin{tcblisting}{title={Convert between orderings}}
+\newcount\r
+\dynkinOrder E8.Carter::6->Bourbaki.{\r}
+In \(E_8\), root 6 in Carter's ordering is root \the\r{} in Bourbaki's ordering.
+\end{tcblisting}
+
\section{Parabolic subgroups}
Each set of roots is assigned a number, with each binary digit zero or one to say whether the corresponding root is crossed or not:
\begin{tcblisting}{}
The flag variety of pointed lines in
projective 3-space is associated to
-the Dynkin diagram \dynkin[parabolic=3]{A}{3}.
+the Dynkin diagram \dynkin[parabolic=3]A3.
\end{tcblisting}
\begin{filecontents*}{hermitian-symmetric-spaces.tex}
@@ -847,15 +907,15 @@ the Dynkin diagram \dynkin[parabolic=3]{A}{3}.
\caption{\dots continued}\\ \endhead
\caption{continued \dots}\\ \endfoot
\endlastfoot
-\HSS{A_n}{A}{**.*x*.**}{Grassmannian of $k$-planes in $\C{n+1}$}
-\HSS{B_n}[1]{B}{}{$(2n-1)$-dimensional hyperquadric, i.e. the variety of null lines in $\C{2n+1}$}
-\HSS{C_n}[16]{C}{}{space of Lagrangian $n$-planes in $\C{2n}$}
-\HSS{D_n}[1]{D}{}{$(2n-2)$-dimensional hyperquadric, i.e. the variety of null lines in $\C{2n}$}
-\HSS{D_n}[32]{D}{}{one component of the variety of maximal dimension null subspaces of $\C{2n}$}
-\HSS{D_n}[16]{D}{}{the other component}
-\HSS{E_6}[1]{E}{6}{complexified octave projective plane}
-\HSS{E_6}[32]{E}{6}{its dual plane}
-\HSS{E_7}[64]{E}{7}{the space of null octave 3-planes in octave 6-space}
+\HSS{A_n}A{**.*x*.**}{Grassmannian of $k$-planes in $\C{n+1}$}
+\HSS{B_n}[1]B{}{$(2n-1)$-dimensional hyperquadric, i.e. the variety of null lines in $\C{2n+1}$}
+\HSS{C_n}[16]C{}{space of Lagrangian $n$-planes in $\C{2n}$}
+\HSS{D_n}[1]D{}{$(2n-2)$-dimensional hyperquadric, i.e. the variety of null lines in $\C{2n}$}
+\HSS{D_n}[32]D{}{one component of the variety of maximal dimension null subspaces of $\C{2n}$}
+\HSS{D_n}[16]D{}{the other component}
+\HSS{E_6}[1]E6{complexified octave projective plane}
+\HSS{E_6}[32]E6{its dual plane}
+\HSS{E_7}[64]E7{the space of null octave 3-planes in octave 6-space}
\end{longtable}
\end{filecontents*}
\begingroup
@@ -866,24 +926,24 @@ the Dynkin diagram \dynkin[parabolic=3]{A}{3}.
\section{Extended Dynkin diagrams}
\begin{tcblisting}{title={Extended Dynkin diagrams}}
-\dynkin[extended]{A}{7}
+\dynkin[extended]A7
\end{tcblisting}
-The extended Dynkin diagrams are also described in the notation of Kac \cite{Kac:1990} p. 55 as affine untwisted Dynkin diagrams: we extend \verb!\dynkin{A}{7}! to become \verb!\dynkin{A}[1]{7}!:
+The extended Dynkin diagrams are also described in the notation of Kac \cite{Kac:1990} p. 55 as affine untwisted Dynkin diagrams: we extend \verb!\dynkin{A}{7}! to become \verb!\dynkin A[1]7!:
\begin{tcblisting}{title={Extended Dynkin diagrams}}
-\dynkin{A}[1]{7}
+\dynkin A[1]7
\end{tcblisting}
\renewcommand*{\arraystretch}{1.5}
\begin{dynkinTable}{The Dynkin diagrams of the extended simple root systems}{3cm}{5cm}
-\dyn[extended]{A}{1}
-\dyn[extended]{A}{}
-\dyn[extended]{B}{}
-\dyn[extended]{C}{}
-\dyn[extended]{D}{}
-\dyn[extended]{E}{6}
-\dyn[extended]{E}{7}
-\dyn[extended]{E}{8}
-\dyn[extended]{F}{4}
-\dyn[extended]{G}{2}
+\dyn[extended]A{1}
+\dyn[extended]A{}
+\dyn[extended]B{}
+\dyn[extended]C{}
+\dyn[extended]D{}
+\dyn[extended]E6
+\dyn[extended]E7
+\dyn[extended]E8
+\dyn[extended]F4
+\dyn[extended]G2
\end{dynkinTable}
\newpage
@@ -891,149 +951,156 @@ The extended Dynkin diagrams are also described in the notation of Kac \cite{Kac
\section{Affine twisted and untwisted Dynkin diagrams}
The affine Dynkin diagrams are described in the notation of Kac \cite{Kac:1990} p. 55:
\begin{tcblisting}{title={Affine Dynkin diagrams}}
-\(A^{(1)}_7=\dynkin{A}[1]{7}, \
-E^{(2)}_6=\dynkin{E}[2]{6}, \
-D^{(3)}_4=\dynkin{D}[3]{4}\)
+\(A^{(1)}_7=\dynkin A[1]7, \
+E^{(2)}_6=\dynkin E[2]6, \
+D^{(3)}_4=\dynkin D[3]4\)
\end{tcblisting}
\begin{dynkinTable}{The affine Dynkin diagrams}{3cm}{3.75cm}
-\dyn{A}[1]{1}
-\dyn{A}[1]{}
-\dyn{B}[1]{}
-\dyn{C}[1]{}
-\dyn{D}[1]{}
-\dyn{E}[1]{6}
-\dyn{E}[1]{7}
-\dyn{E}[1]{8}
-\dyn{F}[1]{4}
-\dyn{G}[1]{2}
-\dyn{A}[2]{2}
-\dyn{A}[2]{even}
-\dyn{A}[2]{odd}
-\dyn{D}[2]{}
-\dyn{E}[2]{6}
-\dyn{D}[3]{4}
+\dyn A[1]1
+\dyn A[1]{}
+\dyn B[1]{}
+\dyn C[1]{}
+\dyn D[1]{}
+\dyn E[1]6
+\dyn E[1]7
+\dyn E[1]8
+\dyn F[1]4
+\dyn G[1]2
+\dyn A[2]2
+\dyn A[2]{even}
+\dyn A[2]{odd}
+\dyn D[2]{}
+\dyn E[2]6
+\dyn D[3]4
\end{dynkinTable}
\begin{dynkinTable}{Some more affine Dynkin diagrams}{3cm}{3.25cm}
-\dyn{A}[2]{4}
-\dyn{A}[2]{5}
-\dyn{A}[2]{6}
-\dyn{A}[2]{7}
-\dyn{A}[2]{8}
-\dyn{D}[2]{3}
-\dyn{D}[2]{4}
-\dyn{D}[2]{5}
-\dyn{D}[2]{6}
-\dyn{D}[2]{7}
-\dyn{D}[2]{8}
-\dyn{D}[3]{4}
-\dyn{E}[2]{6}
+\dyn A[2]4
+\dyn A[2]5
+\dyn A[2]6
+\dyn A[2]7
+\dyn A[2]8
+\dyn D[2]3
+\dyn D[2]4
+\dyn D[2]5
+\dyn D[2]6
+\dyn D[2]7
+\dyn D[2]8
+\dyn D[3]4
+\dyn E[2]6
\end{dynkinTable}
+\begin{dynkinTable}{Some more Kac--Moody Dynkin diagrams, only allowed in Kac ordering}{3cm}{3.25cm}
+\dyn[ordering=Kac,label]E6
+\dyn[ordering=Kac,label]E7
+\dyn[ordering=Kac,label]E8
+\dyn[ordering=Kac,label]E9
+\dyn[ordering=Kac,label]E{10}
+\dyn[ordering=Kac,label]E{11}
+\end{dynkinTable}
\section{Extended Coxeter diagrams}
\begin{tcblisting}{title={Extended and Coxeter options together}}
-\dynkin[extended,Coxeter]{F}{4}
+\dynkin[extended,Coxeter]F4
\end{tcblisting}
\begin{dynkinTable}{The extended (affine) Coxeter diagrams}{3cm}{6cm}
-\dyn[extended,Coxeter]{A}{}
-\dyn[extended,Coxeter]{B}{}
-\dyn[extended,Coxeter]{C}{}
-\dyn[extended,Coxeter]{D}{}
-\dyn[extended,Coxeter]{E}{6}
-\dyn[extended,Coxeter]{E}{7}
-\dyn[extended,Coxeter]{E}{8}
-\dyn[extended,Coxeter]{F}{4}
-\dyn[extended,Coxeter]{G}{2}
-\dyn[extended,Coxeter]{H}{3}
-\dyn[extended,Coxeter]{H}{4}
-\dyn[extended,Coxeter]{I}{1}
+\dyn[extended,Coxeter]A{}
+\dyn[extended,Coxeter]B{}
+\dyn[extended,Coxeter]C{}
+\dyn[extended,Coxeter]D{}
+\dyn[extended,Coxeter]E6
+\dyn[extended,Coxeter]E7
+\dyn[extended,Coxeter]E8
+\dyn[extended,Coxeter]F4
+\dyn[extended,Coxeter]G2
+\dyn[extended,Coxeter]H3
+\dyn[extended,Coxeter]H4
+\dyn[extended,Coxeter]I1
\end{dynkinTable}
\section{Kac style}
We include a style called \verb!Kac! which tries to imitate the style of \cite{Kac:1990}.
\begin{tcblisting}{title={Kac style}}
-\dynkin[Kac]{F}{4}
+\dynkin[Kac]F4
\end{tcblisting}
\begingroup
\pgfkeys{/Dynkin diagram,Kac}
\begin{dynkinTable}{The Dynkin diagrams of the simple root systems in Kac style}{5cm}{4.5cm}
-\dyn{A}{}
-\dyn{B}{}
-\dyn{C}{}
-\dyn{D}{}
-\dyn{E}{6}
-\dyn{E}{7}
-\dyn{E}{8}
-\dyn{F}{4}
-\dyn{G}{2}
+\dyn A{}
+\dyn B{}
+\dyn C{}
+\dyn D{}
+\dyn E6
+\dyn E7
+\dyn E8
+\dyn F4
+\dyn G2
\end{dynkinTable}
-\newpage
\begin{dynkinTable}{The Dynkin diagrams of the extended simple root systems in Kac style}{5cm}{4.5cm}
-\dyn[extended]{A}{1}
-\dyn[extended]{A}{}
-\dyn[extended]{B}{}
-\dyn[extended]{C}{}
-\dyn[extended]{D}{}
-\dyn[extended]{E}{6}
-\dyn[extended]{E}{7}
-\dyn[extended]{E}{8}
-\dyn[extended]{F}{4}
-\dyn[extended]{G}{2}
+\dyn[extended]A1
+\dyn[extended]A{}
+\dyn[extended]B{}
+\dyn[extended]C{}
+\dyn[extended]D{}
+\dyn[extended]E6
+\dyn[extended]E7
+\dyn[extended]E8
+\dyn[extended]F4
+\dyn[extended]G2
\end{dynkinTable}
+\newpage
\begin{dynkinTable}{The Dynkin diagrams of the twisted simple root systems in Kac style}{6cm}{4.5cm}
-\dyn{A}[2]{2}
-\dyn{A}[2]{even}
-\dyn{A}[2]{odd}
-\dyn{D}[2]{}
-\dyn{E}[2]{6}
-\dyn{D}[3]{4}
+\dyn A[2]2
+\dyn A[2]{even}
+\dyn A[2]{odd}
+\dyn D[2]{}
+\dyn E[2]6
+\dyn D[3]4
\end{dynkinTable}
\endgroup
-\newpage
\section{Ceref style}
We include a style called \verb!ceref! which paints oblong root markers with shadows.
The word ``ceref'' is an old form of the word ``serif''.
\begin{tcblisting}{title={Ceref style}}
-\dynkin[ceref]{F}{4}
+\dynkin[ceref]F4
\end{tcblisting}
\begingroup
\pgfkeys{/Dynkin diagram,ceref}
\begin{dynkinTable}{The Dynkin diagrams of the simple root systems in ceref style}{5cm}{4.5cm}
-\dyn{A}{}
-\dyn{B}{}
-\dyn{C}{}
-\dyn{D}{}
-\dyn{E}{6}
-\dyn{E}{7}
-\dyn{E}{8}
-\dyn{F}{4}
-\dyn{G}{2}
+\dyn A{}
+\dyn B{}
+\dyn C{}
+\dyn D{}
+\dyn E6
+\dyn E7
+\dyn E8
+\dyn F4
+\dyn G2
\end{dynkinTable}
\begin{dynkinTable}{The Dynkin diagrams of the extended simple root systems in ceref style}{5cm}{4.5cm}
-\dyn[extended]{A}{1}
-\dyn[extended]{A}{}
-\dyn[extended]{B}{}
-\dyn[extended]{C}{}
-\dyn[extended]{D}{}
-\dyn[extended]{E}{6}
-\dyn[extended]{E}{7}
-\dyn[extended]{E}{8}
-\dyn[extended]{F}{4}
-\dyn[extended]{G}{2}
+\dyn[extended]A1
+\dyn[extended]A{}
+\dyn[extended]B{}
+\dyn[extended]C{}
+\dyn[extended]D{}
+\dyn[extended]E6
+\dyn[extended]E7
+\dyn[extended]E8
+\dyn[extended]F4
+\dyn[extended]G2
\end{dynkinTable}
\begin{dynkinTable}{The Dynkin diagrams of the twisted simple root systems in ceref style}{6cm}{4.5cm}
-\dyn{A}[2]{2}
-\dyn{A}[2]{even}
-\dyn{A}[2]{odd}
-\dyn{D}[2]{}
-\dyn{E}[2]{6}
-\dyn{D}[3]{4}
+\dyn A[2]2
+\dyn A[2]{even}
+\dyn A[2]{odd}
+\dyn D[2]{}
+\dyn E[2]6
+\dyn D[3]4
\end{dynkinTable}
\endgroup
@@ -1041,42 +1108,42 @@ The word ``ceref'' is an old form of the word ``serif''.
\section{More on folded Dynkin diagrams}
The Dynkin diagrams package has limited support for folding Dynkin diagrams.
\begin{tcblisting}{title={Folding}}
-\dynkin[fold]{A}{13}
+\dynkin[fold]A{13}
\end{tcblisting}
\begin{tcblisting}{title={Big fold radius}}
-\dynkin[fold,fold radius=1cm]{A}{13}
+\dynkin[fold,fold radius=1cm]A{13}
\end{tcblisting}
\begin{tcblisting}{title={Small fold radius}}
-\dynkin[fold,fold radius=.2cm]{A}{13}
+\dynkin[fold,fold radius=.2cm]A{13}
\end{tcblisting}
Some Dynkin diagrams have multiple foldings, which we attempt to distinguish (not entirely successfully) by their \emph{ply}: the maximum number of roots folded together.
Most diagrams can only allow a 2-ply folding, so \verb!fold! is a synonym for \verb!ply=2!.
\begin{tcblisting}{title={3-ply}}
-\dynkin[ply=3]{D}{4}
-\dynkin[ply=3,fold right]{D}{4}
-\dynkin[ply=3]{D}[1]{4}
+\dynkin[ply=3]D4
+\dynkin[ply=3,fold right]D4
+\dynkin[ply=3]D[1]4
\end{tcblisting}
\begin{tcblisting}{title={4-ply}}
-\dynkin[ply=4]{D}[1]{4}
+\dynkin[ply=4]D[1]4
\end{tcblisting}
The \(D^{(1)}_{\ell}\) diagrams can be folded on their left end and separately on their right end:
\begin{tcblisting}{title={Left, right and both}}
-\dynkin{D}[1]{} \
-\dynkin[fold left]{D}[1]{} \
-\dynkin[fold right]{D}[1]{} \
-\dynkin[fold]{D}[1]{}
+\dynkin D[1]{} \
+\dynkin[fold left]D[1]{} \
+\dynkin[fold right]D[1]{} \
+\dynkin[fold]D[1]{}
\end{tcblisting}
We have to be careful about the 4-ply foldings of \(D^{(1)}_{2\ell}\), for which we can have two different patterns, so by default, the package only draws as much as it can without distinguishing the two:
\begin{tcblisting}{title={Default \(D^{(1)}_{2\ell}\) and the two ways to finish it}}
- \dynkin[ply=4]{D}[1]{****.*****.*****}%
+ \dynkin[ply=4]D[1]{****.*****.*****}%
\
\begin{dynkinDiagram}[ply=4]{D}[1]{****.*****.*****}%
- \dynkinFold[bend right=90]{1}{13}%
- \dynkinFold[bend right=90]{0}{14}%
+ \dynkinFold[bend right=90]1{13}%
+ \dynkinFold[bend right=90]0{14}%
\end{dynkinDiagram} \
\begin{dynkinDiagram}[ply=4]{D}[1]{****.*****.*****}%
- \dynkinFold{0}{1}%
- \dynkinFold{1}{13}%
+ \dynkinFold01%
+ \dynkinFold1{13}%
\dynkinFold{13}{14}%
\end{dynkinDiagram}
\end{tcblisting}
@@ -1114,16 +1181,16 @@ We have to be careful about the 4-ply foldings of \(D^{(1)}_{2\ell}\), for which
\begin{filecontents*}{DoneTwoElBendy.tex}
\begin{dynkinDiagram}[ply=4]{D}[1]%
{****.*****.*****}
- \dynkinFold[bend right=90]{1}{13}
- \dynkinFold[bend right=90]{0}{14}
+\dynkinFold[bend right=90]1{13}
+\dynkinFold[bend right=90]0{14}
\end{dynkinDiagram}
\end{filecontents*}
\begin{filecontents*}{DoneTwoElStraight.tex}
-\begin{dynkinDiagram}[ply=4]{D}[1]%
+\begin{dynkinDiagram}[ply=4]D[1]%
{****.*****.*****}
- \dynkinFold{0}{1}
- \dynkinFold{1}{13}
- \dynkinFold{13}{14}
+\dynkinFold01
+\dynkinFold1{13}
+\dynkinFold{13}{14}
\end{dynkinDiagram}
\end{filecontents*}
\pgfkeys{/Dynkin diagram,fold radius=.35cm}
@@ -1135,162 +1202,119 @@ We have to be careful about the 4-ply foldings of \(D^{(1)}_{2\ell}\), for which
\multicolumn{1}{c}{continued \dots}\\
\endfoot
\endlastfoot
-\fold{A}{0}{3}{C}{0}{2}
-\foldingTable{A}{0}{2\ell-1}{\dynk[fold]{A}{**.*****.**}}%
-{C}{0}{\ell}{\dynk{C}{}}
-\fold*{B}{0}{3}{G}{0}{2}
-\foldingTable{D}{0}{4}{\dynk[ply=3,fold right]{D}{4}}%
-{G}{0}{2}{\dynk{G}{2}}
-\foldingTable{D}{0}{\ell+1}{\dynk[fold]{D}{}}%
-{B}{0}{\ell}{\dynk{B}{}}
-\fold*{E}{0}{6}{F}{0}{4}
-\foldingTable{A}{1}{3}{\dynk[ply=4]{A}[1]{3}}%
-{A}{1}{1}{\dynk{A}[1]{1}}
-\foldingTable{A}{1}{2\ell-1}{\dynk[fold]{A}[1]{**.*****.**}}%
-{C}{1}{\ell}{\dynk{C}[1]{}}
-\foldingTable{B}{1}{3}{\dynk[ply=3]{B}[1]{3}}%
-{A}{2}{2}{\dynk{A}[2]{2}}
-\foldingTable{B}{1}{3}{\dynk[ply=2]{B}[1]{3}}%
-{G}{1}{2}{\dynk{G}[1]{2}}
-\foldingTable{B}{1}{\ell}{\dynk[fold]{B}[1]{}}{D}{2}{\ell}{\dynk{D}[2]{}}
-\foldingTable{D}{1}{4}{\dynk[ply=3]{D}[1]{4}}%
-{B}{1}{3}{\dynk{B}[1]{3}}
-\foldingTable{D}{1}{4}{\dynk[ply=3]{D}[1]{4}}%
-{G}{1}{2}{\dynk{G}[1]{2}}
-\foldingTable{D}{1}{\ell+1}{\dynk[fold]{D}[1]{}}%
-{D}{2}{\ell}{\dynk{D}[2]{}}
-\foldingTable{D}{1}{\ell+1}{%
-\dynk[fold right]{D}[1]{}}%
-{B}{1}{\ell}{\dynk{B}[1]{}}
-\foldingTable{D}{1}{2\ell}{%
+\fold A03C02
+\foldingTable A0{2\ell-1}{\dynk[fold]A{**.*****.**}}%
+C0{\ell}{\dynk C{}}
+\fold*B03G02
+\foldingTable D04{\dynk[ply=3,fold right]D4}%
+G02{\dynk G2}
+\foldingTable D0{\ell+1}{\dynk[fold]D{}}%
+B0{\ell}{\dynk B{}}
+\fold* E06F04
+\foldingTable A13{\dynk[ply=4]A[1]3}%
+A11{\dynk A[1]1}
+\foldingTable A1{2\ell-1}{\dynk[fold]A[1]{**.*****.**}}%
+C1{\ell}{\dynk C[1]{}}
+\foldingTable B13{\dynk[ply=3]B[1]3}%
+A22{\dynk A[2]2}
+\foldingTable B13{\dynk[ply=2]B[1]3}%
+G12{\dynk G[1]2}
+\foldingTable B1{\ell}{\dynk[fold]B[1]{}}D2{\ell}{\dynk D[2]{}}
+\foldingTable D14{\dynk[ply=3]D[1]4}%
+B13{\dynk B[1]3}
+\foldingTable D14{\dynk[ply=3]D[1]4}%
+G12{\dynk G[1]2}
+\foldingTable D1{\ell+1}{\dynk[fold]D[1]{}}%
+D2{\ell}{\dynk D[2]{}}
+\foldingTable D1{\ell+1}{%
+\dynk[fold right]D[1]{}}%
+B1{\ell}{\dynk B[1]{}}
+\foldingTable D1{2\ell}{%
\input{DoneTwoElStraight.tex}
&
\VerbatimInput{DoneTwoElStraight.tex} \\
}%
-{A}{2}{\text{odd}}{\dynk{A}[2]{odd}}
-\foldingTable{D}{1}{2\ell}{%
+A2{\text{odd}}{\dynk A[2]{odd}}
+\foldingTable D1{2\ell}{%
\input{DoneTwoElBendy.tex}
&
\VerbatimInput{DoneTwoElBendy.tex} \\
}%
-{A}{2}{\text{even}}{\dynk{A}[2]{even}}
-\fold*{E}{1}{6}{F}{1}{4}
-\foldingTable{E}{1}{6}{\dynk[ply=3]{E}[1]{6}}%
-{D}{3}{4}{\dynk{D}[3]{4}}
-\fold{E}{1}{7}{E}{2}{6}
-\fold{F}{1}{4}{G}{1}{2}
-\foldingTable{A}{2}{\text{odd}}{%
-\dynk[odd,fold]{A}[2]{****.***}
+A2{\text{even}}{\dynk A[2]{even}}
+\fold* E16F14
+\foldingTable E16{\dynk[ply=3]E[1]6}%
+D34{\dynk D[3]4}
+\fold E17E26
+\fold F14G12
+\foldingTable A2{\text{odd}}{%
+\dynk[odd,fold]A[2]{****.***}
}%
-{A}{2}{\text{even}}{\dynk{A}[2]{even}}
-\foldingTable{D}{2}{3}{\dynk[fold]{D}[2]{3}}%
-{A}{2}{2}{\dynk{A}[2]{2}}
+A2{\text{even}}{\dynk A[2]{even}}
+\foldingTable D23{\dynk[fold]D[2]3}%
+A22{\dynk A[2]2}
\end{longtable}
\endgroup
\begingroup
\renewcommand{\wdtA}{.8cm}
\begin{dynkinTable}{Frobenius fixed point subgroups of finite simple groups of Lie type \cite{Carter:1995} p. 15}{3cm}{6cm}
-A_{\ell\ge 1} & \dynk{A}{}
-{}^2\!A_{\ell\ge 2} & \dynk[fold]{A}{}
-B_{\ell\ge 2} & \dynk{B}{}
-{}^2\!B_2 & \dynk[fold]{B}{2}
-C_{\ell\ge3} & \dynk{C}{}
-D_{\ell\ge4} & \dynk{D}{}
-{}^2\!D_{\ell\ge4} & \dynk[fold]{D}{}
-{}^3\!D_4 & \dynk[ply=3]{D}{4}
-E_6 & \dynk{E}{6}
-{}^2\!E_6 & \dynk[fold]{E}{6}
-E_7 & \dynk{E}{7}
-E_8 & \dynk{E}{8}
-F_4 & \dynk{F}{4}
-{}^2\!F_4 & \dynk[fold]{F}{4}
-G_2 & \dynk{G}{2}
-{}^2G_2 & \dynk[fold]{G}{2}
+A_{\ell\ge 1} & \dynk A{}
+{}^2\!A_{\ell\ge 2} & \dynk[fold]A{}
+B_{\ell\ge 2} & \dynk B{}
+{}^2\!B_2 & \dynk[fold]B2
+C_{\ell\ge3} & \dynk C{}
+D_{\ell\ge4} & \dynk D{}
+{}^2\!D_{\ell\ge4} & \dynk[fold]D{}
+{}^3\!D_4 & \dynk[ply=3]D4
+E_6 & \dynk E6
+{}^2\!E_6 & \dynk[fold]E6
+E_7 & \dynk E7
+E_8 & \dynk E8
+F_4 & \dynk F4
+{}^2\!F_4 & \dynk[fold]F4
+G_2 & \dynk G2
+{}^2G_2 & \dynk[fold]G2
\end{dynkinTable}
\endgroup
-\section{Root ordering}\label{section:order}
-\begin{tcblisting}{title={Root ordering}}
-\dynkin[label,ordering=Adams]{E}{6}
-\dynkin[label,ordering=Bourbaki]{E}{6}
-\dynkin[label,ordering=Carter]{E}{6}
-\dynkin[label,ordering=Dynkin]{E}{6}
-\dynkin[label,ordering=Kac]{E}{6}
-\end{tcblisting}
-Default is Bourbaki.
-Sources are Adams \cite{Adams:1996} p. 56--57, Bourbaki \cite{Bourbaki:2002} p. pp. 265--290 plates I-IX, Carter \cite{Carter:2005} p. 540--609, Dynkin \cite{Dynkin:1952}, Kac \cite{Kac:1990} p. 43.
-\NewDocumentCommand\tablerow{mm}%
-{%
-#1_{#2}&
-\dynkin[label,ordering=Adams]{#1}{#2}&
-\dynkin[label]{#1}{#2}&
-\dynkin[label,ordering=Carter]{#1}{#2}&
-\dynkin[label,ordering=Dynkin]{#1}{#2}&
-\dynkin[label,ordering=Kac]{#1}{#2}\\
-}%
-\begin{center}
-\renewcommand{\wdtA}{.7cm}
-\renewcommand{\wdtL}{2.2cm}
-\begin{longtable}{@{}ALLLLL@{}}
-\toprule
-& Adams & Bourbaki & Carter & Dynkin & Kac \\ \midrule
-\endfirsthead
-\toprule
-& Adams & Bourbaki & Carter & Dynkin & Kac \\ \midrule
-\endhead
-\bottomrule
-\endfoot
-\bottomrule
-\endlastfoot
-\tablerow{E}{6}\tablerow{E}{7}\tablerow{E}{8}\tablerow{F}{4}\tablerow{G}{2}
-\end{longtable}
-\end{center}
-The marks are set down in order according to the current root ordering:
-\begin{tcblisting}{}
-\dynkin[label]{E}{*otxXOt*}
-\dynkin[label,ordering=Carter]{E}{*otxXOt*}
-\dynkin[label,ordering=Kac]{E}{*otxXOt*}
-\end{tcblisting}
-
\section{Typesetting mathematical names of Dynkin diagrams}
The \verb!\dynkinName! command, with the same syntax as \verb!\dynkin!, typesets a default name of your diagram in \LaTeX.
It is perhaps only useful when automatically generating a large collection of Dynkin diagrams in a computer program.
\begin{tcblisting}{title={Name of a diagram}}
-\dynkinName[label,extended]{B}{7}
-\dynkinName{A}[2]{even}
-\dynkinName[Coxeter]{B}{7}
-\dynkinName[label,extended]{B}{*}
-\dynkinName{D}[3]{4}
+\dynkinName[label,extended]B7
+\dynkinName A[2]{even}
+\dynkinName[Coxeter]B7
+\dynkinName[label,extended]B*
+\dynkinName D[3]4
\end{tcblisting}
\section{Connecting Dynkin diagrams}\label{section:name}
We can make some sophisticated folded diagrams by drawing multiple diagrams, each with a name:
\begin{tcblisting}{title={Name a diagram}}
-\dynkin[name=Bob]{D}{6}
+\dynkin[name=Bob]D6
\end{tcblisting}
We can then connect the two with folding edges:
\begin{tcblisting}{title={Connect diagrams}}
-\begin{dynkinDiagram}[name=upper]{A}{3}
+\begin{dynkinDiagram}[name=upper]A3
\node (current) at ($(upper root 1)+(0,-.3cm)$) {};
- \dynkin[at=(current),name=lower]{A}{3}
- \begin{scope}[on background layer]
+ \dynkin[at=(current),name=lower]A3
+ \begin{pgfonlayer}{Dynkin behind}
\foreach \i in {1,...,3}%
{%
\draw[/Dynkin diagram/fold style]
($(upper root \i)$)
-- ($(lower root \i)$);%
}%
- \end{scope}
+ \end{pgfonlayer}
\end{dynkinDiagram}
\end{tcblisting}
The following diagrams arise in the Satake diagrams of the pseudo-Riemannian symmetric spaces \cite{Baba:2009}.
\begin{tcblisting}{}
\pgfkeys{/Dynkin diagram,edge length=.5cm,fold radius=.5cm}
\begin{tikzpicture}
- \dynkin[name=1]{A}{IIIb}
+ \dynkin[name=1]A{IIIb}
\node (a) at (-.3,-.4){};
- \dynkin[name=2,at=(a)]{A}{IIIb}
- \begin{scope}[on background layer]
+ \dynkin[name=2,at=(a)]A{IIIb}
+ \begin{pgfonlayer}{Dynkin behind}
\foreach \i in {1,...,7}%
{%
\draw[/Dynkin diagram/fold style]
@@ -1298,7 +1322,7 @@ The following diagrams arise in the Satake diagrams of the pseudo-Riemannian sym
--
($(2 root \i)$);%
}%
- \end{scope}
+ \end{pgfonlayer}
\end{tikzpicture}
\end{tcblisting}
\begin{tcblisting}{}
@@ -1309,16 +1333,16 @@ edge/.style={draw=example-color,double=black,very thick}}
\foreach \d in {1,...,4}
{
\node (current) at ($(\d*.05,\d*.3)$){};
- \dynkin[name=\d,at=(current)]{D}{oo.oooo}
+ \dynkin[name=\d,at=(current)]D{oo.oooo}
}
- \begin{scope}[on background layer]
+ \begin{pgfonlayer}{Dynkin behind}
\foreach \i in {1,...,6}%
{%
\draw[/Dynkin diagram/fold style] ($(1 root \i)$) -- ($(2 root \i)$);%
\draw[/Dynkin diagram/fold style] ($(2 root \i)$) -- ($(3 root \i)$);%
\draw[/Dynkin diagram/fold style] ($(3 root \i)$) -- ($(4 root \i)$);%
}%
- \end{scope}
+ \end{pgfonlayer}
\end{tikzpicture}
\end{tcblisting}
@@ -1327,19 +1351,19 @@ edge/.style={draw=example-color,double=black,very thick}}
\tikzset{/Dynkin diagram,edge length=1cm,fold radius=1cm}
\tikzset{/Dynkin diagram,label macro/.code={\alpha_{#1}},label macro*/.code={\beta_{#1}}}
\({}^1 D_4\) 4-ply tied straight:
-\begin{dynkinDiagram}[ply=4]{D}[1]%
+\begin{dynkinDiagram}[ply=4]D[1]%
{****.*****.*****}
- \dynkinFold{0}{1}
- \dynkinFold{1}{13}
+ \dynkinFold 01
+ \dynkinFold 1{13}
\dynkinFold{13}{14}
\dynkinLabelRoots{0,...,14}
\dynkinLabelRoots*{0,...,14}
\end{dynkinDiagram}
\({}^1 D_4\) 4-ply tied bending:
-\begin{dynkinDiagram}[ply=4]{D}[1]%
+\begin{dynkinDiagram}[ply=4]D[1]%
{****.*****.*****}
- \dynkinFold{1}{13}
- \dynkinFold[bend right=65]{0}{14}
+\dynkinFold1{13}
+\dynkinFold[bend right=65]0{14}
\dynkinLabelRoots{0,...,14}
\dynkinLabelRoots*{0,...,14}
\end{dynkinDiagram}
@@ -1349,6 +1373,8 @@ edge/.style={draw=example-color,double=black,very thick}}
Below we draw the Vogan diagrams of some affine Lie superalgebras \cite{Ransingh:2013,Ransingh:unpub}.
\begingroup
\tikzset{/Dynkin diagram,edge length=.35cm,fold radius=.3cm}
+\tikzset{/Dynkin diagram,label macro/.code=\labls{#1},label,root radius=.06cm}
+\tcbset{text width=10cm}
\NewDocumentCommand\labls{m}%
{%
\ifcase#1%
@@ -1361,7 +1387,11 @@ Below we draw the Vogan diagrams of some affine Lie superalgebras \cite{Ransingh
{2}\or%
{1}\or%
{1}\or%
- \else\typeout{What?}%
+ {1}\or%
+ {1}\or%
+ {1}\or%
+ {1}\or%
+ \else\typeout{What? `#1'}%
\fi%
}%
\NewDocumentCommand\lablIt{m}%
@@ -1372,9 +1402,6 @@ Below we draw the Vogan diagrams of some affine Lie superalgebras \cite{Ransingh
2%
\fi%
}%
-\begingroup
-\tikzset{/Dynkin diagram,label macro/.code=\labls{#1},label,root radius=.06cm}
-\tcbset{text width=10cm}
\renewcommand{\wdtA}{2cm}
\NewDocumentEnvironment{Category}{m}%
{%
@@ -1383,84 +1410,83 @@ Below we draw the Vogan diagrams of some affine Lie superalgebras \cite{Ransingh
{%
\end{tcolorbox}
}%
-
\begin{Category}{\mathfrak{sl}\left(2m|2n\right)^{(2)}}
\begin{tcblisting}{}
\begin{dynkinDiagram}[ply=2,label]{B}[1]{oo.oto.oo}
- \dynkinLabelRoot*{7}{1}
+ \dynkinLabelRoot*71
\end{dynkinDiagram}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[label]{B}[1]{oo.oto.oo}
+\dynkin[label]B[1]{oo.oto.oo}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[ply=2,label]{B}[1]{oo.Oto.Oo}
+\dynkin[ply=2,label]B[1]{oo.Oto.Oo}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[label]{B}[1]{oo.Oto.Oo}
+\dynkin[label]B[1]{oo.Oto.Oo}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[label]{D}[1]{oo.oto.ooo}
+\dynkin[label]D[1]{oo.oto.ooo}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[label]{D}[1]{oO.otO.ooo}
+\dynkin[label]D[1]{oO.otO.ooo}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[label,fold]{D}[1]{oo.oto.ooo}
+\dynkin[label,fold]D[1]{oo.oto.ooo}
\end{tcblisting}
\end{Category}
\begin{Category}{\mathfrak{sl}\left(2m+1|2n\right)^2}
\begin{tcblisting}{}
-\dynkin[label]{B}[1]{oo.oto.oo}
+\dynkin[label]B[1]{oo.oto.oo}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[label]{B}[1]{oO.oto.oO}
+\dynkin[label]B[1]{oO.oto.oO}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[label,fold]{B}[1]{oo.oto.oo}
+\dynkin[label,fold]B[1]{oo.oto.oo}
\end{tcblisting}
\end{Category}
\begin{Category}{\mathfrak{sl}\left(2m+1|2n+1\right)^2}
\begin{tcblisting}{}
-\dynkin[label]{D}[2]{o.oto.oo}
+\dynkin[label]D[2]{o.oto.oo}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[label]{D}[2]{o.OtO.oo}
+\dynkin[label]D[2]{o.OtO.oo}
\end{tcblisting}
\end{Category}
\begin{Category}{\mathfrak{sl}\left(2|2n+1\right)^{(2)}}
\begin{tcblisting}{}
-\dynkin[ply=2,label,double edges]{B}[1]{oo.Oto.Oo}
+\dynkin[ply=2,label,double edges]B[1]{oo.Oto.Oo}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[ply=2,label,double fold]{B}[1]{oo.Oto.Oo}
+\dynkin[ply=2,label,double fold]B[1]{oo.Oto.Oo}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[ply=2,label,double edges]{B}[1]{oo.OtO.oo}
+\dynkin[ply=2,label,double edges]B[1]{oo.OtO.oo}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[ply=2,label,double fold]{B}[1]{oo.OtO.oo}
+\dynkin[ply=2,label,double fold]B[1]{oo.OtO.oo}
\end{tcblisting}
\end{Category}
\begin{Category}{\mathfrak{sl}\left(2|2n\right)^{(2)}}
\begin{tcblisting}{}
-\dynkin[ply=2,label,double edges]{D}[1]{oo.oto.ooo}
+\dynkin[ply=2,label,double edges]D[1]{oo.oto.ooo}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[ply=2,label,double fold left]{D}[1]{oo.oto.ooo}
+\dynkin[ply=2,label,double fold left]D[1]{oo.oto.ooo}
\end{tcblisting}
\end{Category}
\begin{Category}{\mathfrak{osp}\left(2m|2n\right)^{(2)}}
\begin{tcblisting}{}
-\dynkin[label,label macro/.code={1}]{D}[2]{o.oto.oo}
+\dynkin[label,label macro/.code={1}]D[2]{o.oto.oo}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[label,label macro/.code={1}]{D}[2]{o.Oto.Oo}
+\dynkin[label,label macro/.code={1}]D[2]{o.Oto.Oo}
\end{tcblisting}
\end{Category}
@@ -1468,21 +1494,21 @@ Below we draw the Vogan diagrams of some affine Lie superalgebras \cite{Ransingh
\begin{tcblisting}{}
\dynkin[label,label macro/.code=\lablIt{#1},
affine mark=*]
- {D}[2]{o.o.o.o*}
+ D[2]{o.o.o.o*}
\end{tcblisting}
\begin{tcblisting}{}
\dynkin[label,label macro/.code=\lablIt{#1},
affine mark=*]
- {D}[2]{o.O.o.o*}
+ D[2]{o.O.o.o*}
\end{tcblisting}
\end{Category}
\begin{Category}{\mathfrak{sl}\left(1|2n+1\right)^{4}}
\begin{tcblisting}{}
-\dynkin[label,label macro/.code={1}]{D}[2]{o.o.o.o*}
+\dynkin[label,label macro/.code={1}]D[2]{o.o.o.o*}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[label,label macro/.code={1}]{D}[2]{o.o.O.o*}
+\dynkin[label,label macro/.code={1}]D[2]{o.o.O.o*}
\end{tcblisting}
\end{Category}
@@ -1490,113 +1516,114 @@ Below we draw the Vogan diagrams of some affine Lie superalgebras \cite{Ransingh
\begin{Category}{A^1}
\begin{tcblisting}{}
\begin{tikzpicture}
- \dynkin[name=upper]{A}{oo.t.oo}
+ \dynkin[name=upper]A{oo.t.oo}
\node (Dynkin current) at (upper root 1){};
\dynkinSouth
- \dynkin[at=(Dynkin current),name=lower]{A}{oo.t.oo}
- \begin{scope}[on background layer]
+ \dynkin[at=(Dynkin current),name=lower]A{oo.t.oo}
+ \begin{pgfonlayer}{Dynkin behind}
\foreach \i in {1,...,5}{
\draw[/Dynkin diagram/fold style]
($(upper root \i)$) -- ($(lower root \i)$);
}
- \end{scope}
+ \end{pgfonlayer}
\end{tikzpicture}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[fold]{A}[1]{oo.t.ooooo.t.oo}
+\dynkin[fold]A[1]{oo.t.ooooo.t.oo}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[fold,affine mark=t]{A}[1]{oo.o.ootoo.o.oo}
+\dynkin[fold,affine mark=t]A[1]{oo.o.ootoo.o.oo}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[affine mark=t]{A}[1]{o*.t.*o}
+\dynkin[affine mark=t]A[1]{o*.t.*o}
\end{tcblisting}
\end{Category}
\begin{Category}{B^1}
\begin{tcblisting}{}
-\dynkin[affine mark=*]{A}[2]{o.oto.o*}
+\dynkin[affine mark=*]A[2]{o.oto.o*}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[affine mark=*]{A}[2]{o.oto.o*}
+\dynkin[affine mark=*]A[2]{o.oto.o*}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[affine mark=*]{A}[2]{o.ooo.oo}
+\dynkin[affine mark=*]A[2]{o.ooo.oo}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[odd]{A}[2]{oo.*to.*o}
+\dynkin[odd]A[2]{oo.*to.*o}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[odd,fold]{A}[2]{oo.oto.oo}
+\dynkin[odd,fold]A[2]{oo.oto.oo}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[odd,fold]{A}[2]{o*.oto.o*}
+\dynkin[odd,fold]A[2]{o*.oto.o*}
\end{tcblisting}
\end{Category}
\begin{Category}{D^1}
\begin{tcblisting}{}
-\dynkin{D}{otoo}
+\dynkin D{otoo}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin{D}{ot*o}
+\dynkin D{ot*o}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[fold]{D}{otoo}
+\dynkin[fold]D{otoo}
\end{tcblisting}
\end{Category}
\begin{Category}{C^1}
\begin{tcblisting}{}
-\dynkin[double edges,fold,affine mark=t,odd]{A}[2]{to.o*}
+\dynkin[double edges,fold,affine mark=t,odd]A[2]{to.o*}
\end{tcblisting}
\begin{tcblisting}{}
-\dynkin[double edges,fold,affine mark=t,odd]{A}[2]{t*.oo}
+\dynkin[double edges,fold,affine mark=t,odd]A[2]{t*.oo}
\end{tcblisting}
\end{Category}
\begin{Category}{F^1}
\begin{tcblisting}{}
-\begin{dynkinDiagram}{A}{oto*}%
- \dynkinQuadrupleEdge{1}{2}%
- \dynkinTripleEdge{4}{3}%
+\begin{dynkinDiagram}A{oto*}%
+ \dynkinQuadrupleEdge 12%
+ \dynkinTripleEdge 43%
\end{dynkinDiagram}%
\end{tcblisting}
\begin{tcblisting}{}
-\begin{dynkinDiagram}{A}{*too}%
- \dynkinQuadrupleEdge{1}{2}%
- \dynkinTripleEdge{4}{3}%
+\begin{dynkinDiagram}A{*too}%
+ \dynkinQuadrupleEdge 12%
+ \dynkinTripleEdge 43%
\end{dynkinDiagram}%
\end{tcblisting}
\end{Category}
\begin{Category}{G^1}
\begin{tcblisting}{}
-\begin{dynkinDiagram}{A}{ot*oo}%
- \dynkinQuadrupleEdge{1}{2}%
- \dynkinDefiniteDoubleEdge{4}{3}%
+\begin{dynkinDiagram}A{ot*oo}%
+ \dynkinQuadrupleEdge 12%
+ \dynkinDefiniteDoubleEdge 43%
\end{dynkinDiagram}%
\end{tcblisting}
\begin{tcblisting}{}
-\begin{dynkinDiagram}{A}{oto*o}%
- \dynkinQuadrupleEdge{1}{2}%
- \dynkinDefiniteDoubleEdge{4}{3}%
+\begin{dynkinDiagram}A{oto*o}%
+ \dynkinQuadrupleEdge 12%
+ \dynkinDefiniteDoubleEdge 43%
\end{dynkinDiagram}%
\end{tcblisting}
\begin{tcblisting}{}
-\begin{dynkinDiagram}{A}{*too*}%
- \dynkinQuadrupleEdge{1}{2}%
- \dynkinDefiniteDoubleEdge{4}{3}%
+\begin{dynkinDiagram}A{*too*}%
+ \dynkinQuadrupleEdge 12%
+ \dynkinDefiniteDoubleEdge 43%
\end{dynkinDiagram}%
\end{tcblisting}
\begin{tcblisting}{}
-\begin{dynkinDiagram}{A}{*tooo}%
- \dynkinQuadrupleEdge{1}{2}%
- \dynkinDefiniteDoubleEdge{4}{3}%
+\begin{dynkinDiagram}A{*tooo}%
+ \dynkinQuadrupleEdge 12%
+ \dynkinDefiniteDoubleEdge 43%
\end{dynkinDiagram}%
\end{tcblisting}
\end{Category}
\endgroup
+\tikzset{/Dynkin diagram,label macro/.code={},label=false}
\section{Example: the complex simple Lie algebras}
\begin{filecontents*}{simple-lie-algebras.tex}
@@ -1612,24 +1639,24 @@ Below we draw the Vogan diagrams of some affine Lie superalgebras \cite{Ransingh
\begin{longtable}{@{}GDWRS@{}}
\LieG&\text{Diagram}&\text{Weights}&\text{Roots}&\text{Simple roots}\\ \midrule\endfirsthead
\LieG&\text{Diagram}&\text{Weights}&\text{Roots}&\text{Simple roots}\\ \midrule\endhead
-A_n&\dynkin{A}{}&\frac{1}{r+1}\W[\sum e_j]{n+1}&e_i-e_j&e_i-e_{i+1}\\
-B_n&\dynkin{B}{}&\frac{1}{2}\W{n}& \pm e_i, \pm e_i \pm e_j, i\ne j&e_i-e_{i+1}, e_n\\
-C_n&\dynkin{C}{}&\W{n}& \pm 2 e_i, \pm e_i \pm e_j, i\ne j&e_i-e_{i+1}, 2e_n\\
-D_n&\dynkin{D}{}&\frac{1}{2}\W{n}& \pm e_i \pm e_j, i\ne j &
+A_n&\dynkin A{}&\frac1{n+1}\W[\sum e_j]{n+1}&e_i-e_j&e_i-e_{i+1}\\
+B_n&\dynkin B{}&\frac12\W n& \pm e_i, \pm e_i \pm e_j, i\ne j&e_i-e_{i+1}, e_n\\
+C_n&\dynkin C{}&\W n& \pm 2 e_i, \pm e_i \pm e_j, i\ne j&e_i-e_{i+1}, 2e_n\\
+D_n&\dynkin D{}&\frac12\W n& \pm e_i \pm e_j, i\ne j &
\begin{bunch}e_i-e_{i+1},&i\le n-1\\e_{n-1}+e_n\end{bunch}\\
-E_8&\dynkin{E}{8}&\frac{1}{2}\W{8}&
+E_8&\dynkin E8&\frac12\W 8&
\begin{bunch}\pm2e_i\pm2e_j,&i\ne j,\\ \sum_i(-1)^{m_i}e_i,&\sum m_i \text{ even}\end{bunch}&
\begin{bunch}
2e_1-2e_2,\\2e_2-2e_3,\\2e_3-2e_4,\\2e_4-2e_5,\\2e_5-2e_6,\\2e_6+2e_7,\\
-\sum e_j,\\2e_6-2e_7
\end{bunch}\\
-E_7&\dynkin{E}{7}&\frac{1}{2}\W[e_1-e_2]{8}&\quo&\quo\\
-E_6&\dynkin{E}{6}&\frac{1}{3}\W[e_1-e_2,e_2-e_3]{8}&\quo&\quo\\
-F_4& \dynkin{F}{4}&\W{4}&
+E_7&\dynkin E7&\frac12\W[e_1-e_2]8&\quo&\quo\\
+E_6&\dynkin E6&\frac13\W[e_1-e_2,e_2-e_3]8&\quo&\quo\\
+F_4& \dynkin F4&\W4&
\begin{bunch}\pm 2e_i,\\ \pm 2e_i \pm 2e_j, \quad i \ne j,\\ \pm e_1 \pm e_2 \pm e_3 \pm e_4
\end{bunch}&
\begin{bunch}2e_2-2e_3,\\2e_3-2e_4,\\2e_4,\\e_1-e_2-e_3-e_4\end{bunch}\\
-G_2&\dynkin{G}{2}&\W[\sum e_j]{3}&
+G_2&\dynkin G2&\W[\sum e_j]3&
\begin{bunch}
\pm(1,-1,0),\\ \pm(-1,0,1),\\ \pm(0,-1,1),\\ \pm(2,-1,-1),\\ \pm(1,-2,1),\\ \pm(-1,-1,2)
\end{bunch}&
@@ -1644,8 +1671,8 @@ G_2&\dynkin{G}{2}&\W[\sum e_j]{3}&
\section{An example of Mikhail Borovoi}
\begin{filecontents*}{borovoi.tex}
\tikzset{big arrow/.style={
- -Stealth,line cap=round,line width=1mm,
- shorten <=1mm,shorten >=1mm}}
+-Stealth,line cap=round,line width=1mm,
+shorten <=1mm,shorten >=1mm}}
\newcommand\catholic[2]{\draw[big arrow,green!25!white]
(root #1) to (root #2);}
\newcommand\protestant[2]{
@@ -1654,9 +1681,9 @@ G_2&\dynkin{G}{2}&\W[\sum e_j]{3}&
\end{scope}}
\begin{dynkinDiagram}[edge length=1.2cm,
indefinite edge/.style={thick,loosely dotted},
-labels*={0,1,2,3,\ell-3,\ell-2,\ell-1,\ell}]{D}[1]{}
-\catholic{0}{6}\catholic{1}{7}
-\protestant{7}{0}\protestant{6}{1}
+labels*={0,1,2,3,\ell-3,\ell-2,\ell-1,\ell}]D[1]{}
+\catholic 06\catholic 17
+\protestant 70\protestant 61
\end{dynkinDiagram}
\end{filecontents*}
\begingroup
@@ -1764,9 +1791,9 @@ is computed as \(n=\sum 2^{i-1} a_i\), \(a_i=0\) or \(1\), to say that root \(i\
& when drawing folded diagrams, style for the fold indicators. \\
\optionLabel{*/.style}{\typ{TikZ style data}}{solid,draw=black,fill=black}
& style for roots like \dynkin{A}{*} \\
-\optionLabel{o/.style}{\typ{TikZ style data}}{solid,draw=black,fill=black}
+\optionLabel{o/.style}{\typ{TikZ style data}}{solid,draw=black,fill=white}
& style for roots like \dynkin{A}{o} \\
-\optionLabel{O/.style}{\typ{TikZ style data}}{solid,draw=black,fill=black}
+\optionLabel{O/.style}{\typ{TikZ style data}}{solid,draw=black,fill=white}
& style for roots like \dynkin{A}{O} \\
\optionLabel{t/.style}{\typ{TikZ style data}}{solid,draw=black,fill=black}
& style for roots like \dynkin{A}{t} \\
diff --git a/graphics/pgf/contrib/dynkin-diagrams/hermitian-symmetric-spaces.tex b/graphics/pgf/contrib/dynkin-diagrams/hermitian-symmetric-spaces.tex
deleted file mode 100644
index 4f688c7935..0000000000
--- a/graphics/pgf/contrib/dynkin-diagrams/hermitian-symmetric-spaces.tex
+++ /dev/null
@@ -1,19 +0,0 @@
-\NewDocumentCommand\HSS{mommm}
-{#1&\IfNoValueTF{#2}{\dynkin{#3}{#4}}{\dynkin[parabolic=#2]{#3}{#4}}&#5\\}
-\renewcommand*{\arraystretch}{1.5}
-\begin{longtable}
-{>{\columncolor[gray]{.9}}>$l<$>{\columncolor[gray]{.9}}>$l<$>{\columncolor[gray]{.9}}l}
-\caption{The Hermitian symmetric spaces}\endfirsthead
-\caption{\dots continued}\\ \endhead
-\caption{continued \dots}\\ \endfoot
-\endlastfoot
-\HSS{A_n}{A}{**.*x*.**}{Grassmannian of $k$-planes in $\C{n+1}$}
-\HSS{B_n}[1]{B}{}{$(2n-1)$-dimensional hyperquadric, i.e. the variety of null lines in $\C{2n+1}$}
-\HSS{C_n}[16]{C}{}{space of Lagrangian $n$-planes in $\C{2n}$}
-\HSS{D_n}[1]{D}{}{$(2n-2)$-dimensional hyperquadric, i.e. the variety of null lines in $\C{2n}$}
-\HSS{D_n}[32]{D}{}{one component of the variety of maximal dimension null subspaces of $\C{2n}$}
-\HSS{D_n}[16]{D}{}{the other component}
-\HSS{E_6}[1]{E}{6}{complexified octave projective plane}
-\HSS{E_6}[32]{E}{6}{its dual plane}
-\HSS{E_7}[64]{E}{7}{the space of null octave 3-planes in octave 6-space}
-\end{longtable}
diff --git a/graphics/pgf/contrib/dynkin-diagrams/simple-lie-algebras.tex b/graphics/pgf/contrib/dynkin-diagrams/simple-lie-algebras.tex
deleted file mode 100644
index f1dce2e3c3..0000000000
--- a/graphics/pgf/contrib/dynkin-diagrams/simple-lie-algebras.tex
+++ /dev/null
@@ -1,35 +0,0 @@
-\NewDocumentEnvironment{bunch}{}%
-{\renewcommand*{\arraystretch}{1}\begin{array}{@{}ll@{}}\\ \midrule}{\\ \midrule\end{array}}
-\small
-\NewDocumentCommand\nct{mm}{\newcolumntype{#1}{>{\columncolor[gray]{.9}}>{$}m{#2cm}<{$}}}
-\nct{G}{.3}\nct{D}{2.1}\nct{W}{3}\nct{R}{3.7}\nct{S}{3}
-\NewDocumentCommand\LieG{}{\mathfrak{g}}
-\NewDocumentCommand\W{om}{\ensuremath{\mathbb{Z}^{#2}\IfValueT{#1}{/\left<#1\right>}}}
-\renewcommand*{\arraystretch}{1.5}
-\NewDocumentCommand\quo{}{\text{quotient of } E_8}
-\begin{longtable}{@{}GDWRS@{}}
-\LieG&\text{Diagram}&\text{Weights}&\text{Roots}&\text{Simple roots}\\ \midrule\endfirsthead
-\LieG&\text{Diagram}&\text{Weights}&\text{Roots}&\text{Simple roots}\\ \midrule\endhead
-A_n&\dynkin{A}{}&\frac{1}{r+1}\W[\sum e_j]{n+1}&e_i-e_j&e_i-e_{i+1}\\
-B_n&\dynkin{B}{}&\frac{1}{2}\W{n}& \pm e_i, \pm e_i \pm e_j, i\ne j&e_i-e_{i+1}, e_n\\
-C_n&\dynkin{C}{}&\W{n}& \pm 2 e_i, \pm e_i \pm e_j, i\ne j&e_i-e_{i+1}, 2e_n\\
-D_n&\dynkin{D}{}&\frac{1}{2}\W{n}& \pm e_i \pm e_j, i\ne j &
-\begin{bunch}e_i-e_{i+1},&i\le n-1\\e_{n-1}+e_n\end{bunch}\\
-E_8&\dynkin{E}{8}&\frac{1}{2}\W{8}&
-\begin{bunch}\pm2e_i\pm2e_j,&i\ne j,\\ \sum_i(-1)^{m_i}e_i,&\sum m_i \text{ even}\end{bunch}&
-\begin{bunch}
-2e_1-2e_2,\\2e_2-2e_3,\\2e_3-2e_4,\\2e_4-2e_5,\\2e_5-2e_6,\\2e_6+2e_7,\\
--\sum e_j,\\2e_6-2e_7
-\end{bunch}\\
-E_7&\dynkin{E}{7}&\frac{1}{2}\W[e_1-e_2]{8}&\quo&\quo\\
-E_6&\dynkin{E}{6}&\frac{1}{3}\W[e_1-e_2,e_2-e_3]{8}&\quo&\quo\\
-F_4& \dynkin{F}{4}&\W{4}&
-\begin{bunch}\pm 2e_i,\\ \pm 2e_i \pm 2e_j, \quad i \ne j,\\ \pm e_1 \pm e_2 \pm e_3 \pm e_4
-\end{bunch}&
-\begin{bunch}2e_2-2e_3,\\2e_3-2e_4,\\2e_4,\\e_1-e_2-e_3-e_4\end{bunch}\\
-G_2&\dynkin{G}{2}&\W[\sum e_j]{3}&
-\begin{bunch}
-\pm(1,-1,0),\\ \pm(-1,0,1),\\ \pm(0,-1,1),\\ \pm(2,-1,-1),\\ \pm(1,-2,1),\\ \pm(-1,-1,2)
-\end{bunch}&
-\begin{bunch}(-1,0,1),\\(2,-1,-1)\end{bunch}
-\end{longtable}
diff --git a/graphics/pgf/contrib/tikz-trackschematic/README.md b/graphics/pgf/contrib/tikz-trackschematic/README.md
index 9148aebef5..9cc86f1872 100644
--- a/graphics/pgf/contrib/tikz-trackschematic/README.md
+++ b/graphics/pgf/contrib/tikz-trackschematic/README.md
@@ -40,6 +40,11 @@ These files should be copied wherever TeX can find it, for example in your TEXMF
# History
+## Version 0.5.1
+
+ * modified symbol "end of movement authority"
+ * added symbols "braking point" and "danger point"
+
## Version 0.5
* new improved syntax for topology
diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-documentation.sty b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-documentation.sty
index 46ddf742d0..66bc2065a9 100644
--- a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-documentation.sty
+++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-documentation.sty
@@ -81,7 +81,15 @@
\RequirePackage{longtable,tikz,siunitx,adjustbox,rotating}
\sisetup{math-rm=\mathsf}
-\usetikzlibrary{trackschematic}
+\IfFileExists{tikzlibrarytrackschematic-dev.code.tex}{%
+ \usetikzlibrary{trackschematic-dev.topology}%
+ \usetikzlibrary{trackschematic-dev.trafficcontrol}%
+ \usetikzlibrary{trackschematic-dev.vehicles}%
+ \usetikzlibrary{trackschematic-dev.constructions}%
+ \usetikzlibrary{trackschematic-dev.messures}%
+}{%
+ \usetikzlibrary{trackschematic}%
+}%
\def\rootTrackschematic{.}
diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets.pdf b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets.pdf
index 3b74c49beb..1ad9134121 100644
--- a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets.pdf
+++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets.tex b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets.tex
index 7ada4e00c3..7deb9f0c01 100644
--- a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets.tex
+++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets.tex
@@ -180,10 +180,6 @@
\hline
\No & train running over a junction & \symbol{bend_train.tikz} & \code{bend_train.tikz} & \texttt{vehicles} \\
\hline
- \No & view point (forward) & \symbol{view_point_forward.tikz} & \code{view_point_forward.tikz} & \texttt{trafficcontrol} \\
- \hline
- \No & view point (backward) & \symbol{view_point_backward.tikz} & \code{view_point_backward.tikz} & \texttt{trafficcontrol} \\
- \hline
\No & distant signal (forward) & \symbol{distant_signal_forward.tikz} & \code{distant_signal_forward.tikz} & \texttt{trafficcontrol} \\
\hline
\No & \parbox[c]{4cm}{distant signal\\with speed indicator}
@@ -221,9 +217,23 @@
\hline
\No & shunt limit (backward) & \symbol{shunt_limit_backward.tikz} & \code{shunt_limit_backward.tikz} & \texttt{trafficcontrol} \\
\hline
- \No & block end marker (forward) & \symbol{block_end_marker_forward.tikz} & \code{block_end_marker_forward.tikz} & \texttt{trafficcontrol} \\
+ \No & view point (forward) & \symbol{view_point_forward.tikz} & \code{view_point_forward.tikz} & \texttt{trafficcontrol} \\
+ \hline
+ \No & view point (backward) & \symbol{view_point_backward.tikz} & \code{view_point_backward.tikz} & \texttt{trafficcontrol} \\
+ \hline
+ \No & braking point (forward) & \symbol{braking_point_forward.tikz} & \code{braking_point_forward.tikz} & \texttt{trafficcontrol} \\
+ \hline
+ \No & braking point (backward) & \symbol{braking_point_backward.tikz} & \code{braking_point_backward.tikz} & \texttt{trafficcontrol} \\
+ \hline
+ \No & end of movement authority (forward)
+ & \symbol{end_of_movement_authority_forward.tikz} & \code{end_of_movement_authority_forward.tikz} & \texttt{trafficcontrol} \\
+ \hline
+ \No & end of movement authority (backward)
+ & \symbol{end_of_movement_authority_backward.tikz} & \code{end_of_movement_authority_backward.tikz} & \texttt{trafficcontrol} \\
+ \hline
+ \No & danger point (forward) & \symbol{danger_point_forward.tikz} & \code{danger_point_forward.tikz} & \texttt{trafficcontrol} \\
\hline
- \No & block end marker (backward) & \symbol{block_end_marker_backward.tikz} & \code{block_end_marker_backward.tikz} & \texttt{trafficcontrol} \\
+ \No & danger point (backward) & \symbol{danger_point_backward.tikz} & \code{danger_point_backward.tikz} & \texttt{trafficcontrol} \\
\hline
\No & route (forward \& backward) & \symbol{route.tikz} & \code{route.tikz} & \texttt{trafficcontrol} \\
\hline
diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/braking_point_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/braking_point_backward.tikz
new file mode 100644
index 0000000000..72803b2b45
--- /dev/null
+++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/braking_point_backward.tikz
@@ -0,0 +1,13 @@
+%!TEX TS-program = pdflatexmk
+%!TEX root = ../snippets.tex
+
+% Copyright (c) 2018 - 2020, Martin Scheidt (ISC license)
+% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
+
+\coordinate (A) at (0,0);
+\coordinate (B) at (6,0);
+\coordinate (S) at (3,0);
+
+\maintrack (A) -- (B);
+
+\brakingpoint[backward] at (S) label (); \ No newline at end of file
diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/braking_point_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/braking_point_forward.tikz
new file mode 100644
index 0000000000..da34026965
--- /dev/null
+++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/braking_point_forward.tikz
@@ -0,0 +1,13 @@
+%!TEX TS-program = pdflatexmk
+%!TEX root = ../snippets.tex
+
+% Copyright (c) 2018 - 2020, Martin Scheidt (ISC license)
+% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
+
+\coordinate (A) at (0,0);
+\coordinate (B) at (6,0);
+\coordinate (S) at (3,0);
+
+\maintrack (A) -- (B);
+
+\brakingpoint[forward] at (S) label (); \ No newline at end of file
diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/danger_point_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/danger_point_backward.tikz
new file mode 100644
index 0000000000..a8a4905ac6
--- /dev/null
+++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/danger_point_backward.tikz
@@ -0,0 +1,13 @@
+%!TEX TS-program = pdflatexmk
+%!TEX root = ../snippets.tex
+
+% Copyright (c) 2018 - 2020, Martin Scheidt (ISC license)
+% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
+
+\coordinate (A) at (0,0);
+\coordinate (B) at (6,0);
+\coordinate (S) at (3,0);
+
+\maintrack (A) -- (B);
+
+\dangerpoint[backward] at (S) label (); \ No newline at end of file
diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/danger_point_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/danger_point_forward.tikz
new file mode 100644
index 0000000000..73d2bbaed8
--- /dev/null
+++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/danger_point_forward.tikz
@@ -0,0 +1,13 @@
+%!TEX TS-program = pdflatexmk
+%!TEX root = ../snippets.tex
+
+% Copyright (c) 2018 - 2020, Martin Scheidt (ISC license)
+% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
+
+\coordinate (A) at (0,0);
+\coordinate (B) at (6,0);
+\coordinate (S) at (3,0);
+
+\maintrack (A) -- (B);
+
+\dangerpoint[forward] at (S) label (); \ No newline at end of file
diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_end_marker_backward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/end_of_movement_authority_backward.tikz
index 9e36abeadb..9e36abeadb 100644
--- a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_end_marker_backward.tikz
+++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/end_of_movement_authority_backward.tikz
diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_end_marker_forward.tikz b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/end_of_movement_authority_forward.tikz
index 81ec5fd65a..81ec5fd65a 100644
--- a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/block_end_marker_forward.tikz
+++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/end_of_movement_authority_forward.tikz
diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic.pdf b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic.pdf
index 53dda09131..16260b1689 100644
--- a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic.pdf
+++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic.tex b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic.tex
index 73d81f0b8a..d0a4936405 100644
--- a/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic.tex
+++ b/graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic.tex
@@ -519,7 +519,7 @@
An absolute \textit{(label-coord)} or \textit{(bend-coord)} can be specified with the Ti\emph{k}Z \textbackslash coordinate command.
\subsection{Traffic control}
- \subsubsection{Signals}\label{sec:signals}
+ \subsubsection{Stationary signals}\label{sec:signals}
\symboldescription{Generic signal command}
\begin{lstlisting}[gobble=10]
@@ -679,6 +679,59 @@
\signal[berth,options] at (coord) label (name);
\end{lstlisting}
+ \subsubsection{Non-stationary points}\label{sec:points}
+
+ \symboldescription{View point}
+ \symbol{view_point_forward.tikz}
+ \begin{lstlisting}[gobble=10]
+ \viewpoint[options] at (coord);
+ \end{lstlisting}
+ values for \texttt{options} (comma seperated):
+ \begin{itemize}[label={}]
+ \item \texttt{forward} or \texttt{backward} (mandatory)
+ \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice})
+ \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black})
+ \end{itemize}
+
+ \symboldescription{Braking point}
+ \symbol{braking_point_forward.tikz}
+ \begin{lstlisting}[gobble=10]
+ \brakingpoint[options] at (coord) label (name);
+ \end{lstlisting}
+ values for \texttt{options} (comma seperated):
+ \begin{itemize}[label={}]
+ \item \texttt{forward}, \texttt{backward} or \texttt{bidirectional} (mandatory)
+ \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice})
+ \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0))
+ \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black})
+ \end{itemize}
+
+ \symboldescription{End of movement authority}
+ \symbol{end_of_movement_authority_forward.tikz}
+ \begin{lstlisting}[gobble=10]
+ \movementauthority[options] at (coord) label (name);
+ \end{lstlisting}
+ values for \texttt{options} (comma seperated):
+ \begin{itemize}[label={}]
+ \item \texttt{forward}, \texttt{backward} or \texttt{bidirectional} (mandatory)
+ \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice})
+ \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0))
+ \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black})
+ \end{itemize}
+
+ \symboldescription{Danger point}
+ \symbol{danger_point_forward.tikz}
+ \begin{lstlisting}[gobble=10]
+ \dangerpoint[options] at (coord) label (name);
+ \end{lstlisting}
+ values for \texttt{options} (comma seperated):
+ \begin{itemize}[label={}]
+ \item \texttt{forward}, \texttt{backward} or \texttt{bidirectional} (mandatory)
+ \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice})
+ \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0))
+ \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black})
+ \end{itemize}
+
\subsubsection{Clearing points}\label{sec:clearingpoints}
\symboldescription{Generic clearing point}
@@ -800,32 +853,6 @@
\subsubsection{Miscellaneous}\label{sec:misc}
- \symboldescription{View point}
- \symbol{view_point_forward.tikz}
- \begin{lstlisting}[gobble=10]
- \viewpoint[options] at (coord);
- \end{lstlisting}
- values for \texttt{options} (comma seperated):
- \begin{itemize}[label={}]
- \item \texttt{forward} or \texttt{backward} (mandatory)
- \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice})
- \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black})
- \end{itemize}
-
- \symboldescription{End of movement authority}
- \symbol{block_end_marker_forward.tikz}
- \begin{lstlisting}[gobble=10]
- \movementauthority[options] at (coord) label (name);
- \end{lstlisting}
- values for \texttt{options} (comma seperated):
- \begin{itemize}[label={}]
- \item \texttt{forward}, \texttt{backward} or \texttt{bidirectional} (mandatory)
- \item \texttt{direction arrow=true} (default) or \texttt{direction arrow=false} (mandatory)
- \item \texttt{position=left} or \texttt{position=right} (optional, default: \textit{traffic practice})
- \item \texttt{shift label=\{\textit{(label-coord)}\}} (optional, default: (0,0))
- \item \texttt{foreground=\textit{color}} (optional, default: \texttt{black})
- \end{itemize}
-
\symboldescription{Route}
\symbol{route.tikz}
\begin{lstlisting}[gobble=10]
@@ -1035,6 +1062,14 @@
\hline
\No & train berth sign & \symbol{train_berth_sign_forward.tikz} & \ref{sec:signals} \\
\hline
+ \No & view point & \symbol{view_point_forward.tikz} & \ref{sec:points} \\
+ \hline
+ \No & braking point & \symbol{braking_point_forward.tikz} & \ref{sec:points} \\
+ \hline
+ \No & end of movement authority & \symbol{end_of_movement_authority_forward.tikz} & \ref{sec:points} \\
+ \hline
+ \No & danger point & \symbol{danger_point_forward.tikz} & \ref{sec:points} \\
+ \hline
\No & clearing point & \symbol{clearing_point.tikz} & \ref{sec:clearingpoints} \\
\hline
\No & block clearing point & \symbol{block_clearing_point_forward.tikz} & \ref{sec:clearingpoints} \\
@@ -1049,11 +1084,6 @@
\hline
\No & loop transmitter & \symbol{loop_transmitter.tikz} & \ref{sec:transmitters} \\
\hline
- \No & view point & \symbol{view_point_forward.tikz} & \ref{sec:misc} \\
- \hline
- \No & \parbox[c]{4.5cm}{block end marker\\(end of movement authority)}
- & \symbol{block_end_marker_forward.tikz} & \ref{sec:misc} \\
- \hline
\No & route & \symbol{route.tikz} & \ref{sec:misc} \\
\hline
\No & platform & \symbol{platform_left.tikz} & \ref{sec:constructions} \\
diff --git a/graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.trafficcontrol.code.tex b/graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.trafficcontrol.code.tex
index 4d32c178aa..d4a71850c6 100644
--- a/graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.trafficcontrol.code.tex
+++ b/graphics/pgf/contrib/tikz-trackschematic/tikzlibrarytrackschematic.trafficcontrol.code.tex
@@ -500,15 +500,6 @@
\def\movementauthority[#1]#2(#3)#4(#5){% \movementauthority[options] at (coord) label (name);
\pic[#1] at (#3) {movement_authority_marker={#2/#4/#5}}% symbol
}%
-% tikz keys
-\pgfkeys{%
- /tikz/trackschematic/trafficcontrol/EoA/.is family,%
- /tikz/trackschematic/trafficcontrol/EoA/.cd,%
- %% option \directionarrow
- direction arrow/.store in=\directionarrow,% true or false
- direction arrow=true,% true or false
- /tikz/direction arrow/.forward to=/tikz/trackschematic/trafficcontrol/EoA/direction arrow,%
-}%
% symbol definition
\tikzset{%
pics/movement_authority_marker/.default=,%
@@ -542,25 +533,15 @@
}% end \ifdefstring{\face}
\tikzset{every path/.style={draw=\foreground,line width=1pt}};%
%% marker
- \path (0,0) -- ++($\trafficfactor*\facefactor*(0,-0.5)$);% marker
- \path ($\trafficfactor*\facefactor*(0,-0.7) + \facefactor*(-0.1,0)$) rectangle%
- ++($\trafficfactor*\facefactor*(0, 0.2) + \facefactor*(0.2,0)$);% sign
+ \path ($\trafficfactor*\facefactor*(0,-0.55) + \facefactor*(0.3,0)$) rectangle%
+ ++($\trafficfactor*\facefactor*(0, 0.3) + \facefactor*(0.3,0)$);%
%% arrow
- \ifdefstring{\directionarrow}{true}{%
- \path[line width=0.5pt] ($\trafficfactor*\facefactor*(0,-0.2) + \facefactor*(-0.2,0)$) --%
- ++($\facefactor*(0.2,0)$);% arrow body
- \path[draw=none,fill=\foreground]% arrow tip
- ($\trafficfactor*\facefactor*(0,-0.2)$) --%
- ++($\trafficfactor*\facefactor*(0,-0.04) + \facefactor*(-0.1,0)$) -- ++($\trafficfactor*\facefactor*(0,0.08)$) -- cycle;%
- }{% error message
- \ifdefstring{\directionarrow}{false}{}{%
- \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/trafficcontrol/EoA/direction arrow}{'true' OR 'false' as key required}}%
- }%
- }%
+ \path[draw=\foreground,<-,>=latex,line width=1pt]%
+ ($\facefactor*\trafficfactor*(0,-0.1)$) -- ++($\facefactor*\trafficfactor*(0,-0.3)$) -- ++($\facefactor*(0.2,0)$);% arrow
%% label
\ifdefstring{\labelcontent}{}{}{% label NOT empty
\tikzset{every node/.style={font=\sffamily,text=\foreground}};%
- \coordinate (ts-ma-l) at ($\trafficfactor*\facefactor*(0,-0.6) + \facefactor*(-0.05,0)$);%
+ \coordinate (ts-ma-l) at ($\trafficfactor*\facefactor*(0,-0.6) + \facefactor*(0.3,0)$);%
\ifdefstring{\labelcoord}{(none)}{}{% initialize if NOT default
\gettikzxy{\labelcoord}{\labelcoordX}{\labelcoordY}%
\coordinate (ts-ma-l) at ($(ts-ma-l) + (\labelcoordX,\labelcoordY)$);%
@@ -571,6 +552,127 @@
}%
%
%%%%%%%%%%%%%%%
+% symbol braking point
+%%%%%%%%%%%%%%%
+% command
+\newcommand\brakingpoint{}% just for safety
+\def\brakingpoint[#1]#2(#3)#4(#5){% \brakingpoint[options] at (coord) label (name);
+ \pic[#1] at (#3) {braking_point_marker={#2/#4/#5}}% symbol
+}%
+% symbol definition
+\tikzset{%
+ pics/braking_point_marker/.default=,%
+ pics/braking_point_marker/.style args={#1/#2/#3}{code={%
+ %% settings
+ \def\coordcommand{#1}% beware of leading and tailing spaces!
+ \def\labelcommand{#2}% beware of leading and tailing spaces!
+ \def\labelcontent{#3}%
+ %
+ %% traffic practice setup
+ \ifdefstring{\trafficpractice}{left}{% branch
+ \pgfmathsetmacro{\trafficfactor}{-1}%
+ }{%
+ \ifdefstring{\trafficpractice}{right}{% branch
+ \pgfmathsetmacro{\trafficfactor}{1}%
+ }{% error message
+ \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/trafficcontrol/traffic practice}{“left“ OR “right“ as key required}}%
+ }%
+ }% end \ifdefstring{\trafficpractice}
+ %% face setup
+ \ifdefstring{\face}{forward}{% face
+ \pgfmathsetmacro{\facefactor}{1}%
+ \def\align{left}%
+ }{%
+ \ifdefstring{\face}{backward}{% face
+ \pgfmathsetmacro{\facefactor}{-1}%
+ \def\align{right}%
+ }{% error message
+ \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/face}{“forward“ OR “backward“ as key required}}%
+ }%
+ }% end \ifdefstring{\face}
+ \tikzset{every path/.style={draw=\foreground,line width=1pt}};%
+ %% marker
+ \path ($\trafficfactor*\facefactor*(0,-0.4) + \facefactor*(0.3,0)$) --%
+ ++($\trafficfactor*\facefactor*(0,-0.15) + \facefactor*(0.25,0)$) --%
+ ++($\trafficfactor*\facefactor*(0, 0.3)$) -- cycle;% signal marker
+ %% arrow
+ \path[draw=\foreground,<-,>=latex,line width=1pt]%
+ ($\facefactor*\trafficfactor*(0,-0.1)$) -- ++($\facefactor*\trafficfactor*(0,-0.3)$) -- ++($\facefactor*(0.2,0)$);% arrow
+ %% label
+ \ifdefstring{\labelcontent}{}{}{% label NOT empty
+ \tikzset{every node/.style={font=\sffamily,text=\foreground}};%
+ \coordinate (ts-bp-l) at ($\trafficfactor*\facefactor*(0,-0.6) + \facefactor*(0.3,0)$);%
+ \ifdefstring{\labelcoord}{(none)}{}{% initialize if NOT default
+ \gettikzxy{\labelcoord}{\labelcoordX}{\labelcoordY}%
+ \coordinate (ts-bp-l) at ($(ts-bp-l) + (\labelcoordX,\labelcoordY)$);%
+ }%
+ \node[\align] at (ts-bp-l) {\footnotesize \labelcontent};%
+ }%
+ }},% end pics/braking_point_marker/.style args={#1/#2/#3}
+}%
+%
+%%%%%%%%%%%%%%%
+% symbol danger point
+%%%%%%%%%%%%%%%
+% command
+\newcommand\dangerpoint{}% just for safety
+\def\dangerpoint[#1]#2(#3)#4(#5){% \dangerpoint[options] at (coord) label (name);
+ \pic[#1] at (#3) {danger_point_marker={#2/#4/#5}}% symbol
+}%
+% symbol definition
+\tikzset{%
+ pics/danger_point_marker/.default=,%
+ pics/danger_point_marker/.style args={#1/#2/#3}{code={%
+ %% settings
+ \def\coordcommand{#1}% beware of leading and tailing spaces!
+ \def\labelcommand{#2}% beware of leading and tailing spaces!
+ \def\labelcontent{#3}%
+ %
+ %% traffic practice setup
+ \ifdefstring{\trafficpractice}{left}{% branch
+ \pgfmathsetmacro{\trafficfactor}{-1}%
+ }{%
+ \ifdefstring{\trafficpractice}{right}{% branch
+ \pgfmathsetmacro{\trafficfactor}{1}%
+ }{% error message
+ \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/trafficcontrol/traffic practice}{“left“ OR “right“ as key required}}%
+ }%
+ }% end \ifdefstring{\trafficpractice}
+ %% face setup
+ \ifdefstring{\face}{forward}{% face
+ \pgfmathsetmacro{\facefactor}{1}%
+ \def\align{left}%
+ }{%
+ \ifdefstring{\face}{backward}{% face
+ \pgfmathsetmacro{\facefactor}{-1}%
+ \def\align{right}%
+ }{% error message
+ \pgfkeys{/errors/unknown choice value={/tikz/trackschematic/face}{“forward“ OR “backward“ as key required}}%
+ }%
+ }% end \ifdefstring{\face}
+ \tikzset{every path/.style={draw=\foreground,line width=1pt}};%
+ %% marker
+ \path ($\trafficfactor*\facefactor*(0,-0.4)$) --%
+ ++($\trafficfactor*\facefactor*(0,-0.1) + \facefactor*(-0.1,0)$) --%
+ ++($\trafficfactor*\facefactor*(0,-0.1) + \facefactor*( 0.1,0)$) --%
+ ++($\trafficfactor*\facefactor*(0, 0.1) + \facefactor*( 0.1,0)$) -- cycle;% sign
+ %% arrow
+ \path[draw=\foreground,<-,>=latex,line width=1pt]%
+ ($\facefactor*\trafficfactor*(0,-0.1)$) -- ++($\facefactor*\trafficfactor*(0,-0.25)$);% arrow
+ %% label
+ \ifdefstring{\labelcontent}{}{}{% label NOT empty
+ \tikzset{every node/.style={font=\sffamily,text=\foreground}};%
+ \coordinate (ts-dp-l) at ($\trafficfactor*\facefactor*(0,0.25)$);%
+ \ifdefstring{\labelcoord}{(none)}{}{% initialize if NOT default
+ \gettikzxy{\labelcoord}{\labelcoordX}{\labelcoordY}%
+ \coordinate (ts-dp-l) at ($(ts-dp-l)+(\labelcoordX,\labelcoordY)$);%
+ }%
+ \node at (ts-dp-l) {\footnotesize \labelcontent};%
+ }%
+ }},% end pics/danger_point_marker/.style args={#1/#2/#3}
+}%
+%
+%%%%%%%%%%%%%%%
% symbol route
%%%%%%%%%%%%%%%
% command