diff options
author | Karl Berry <karl@freefriends.org> | 2020-03-16 21:04:53 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-03-16 21:04:53 +0000 |
commit | ce5ba87a3ebf3e7be87b156c6dd498c7b8e5bfbf (patch) | |
tree | 2148eeffd0f09fb98c9688ce2def361e8f649d25 | |
parent | 09f3fa991f1d6ead1a1fc5b0ec70570e22e61a64 (diff) |
dynkin-diagrams (16mar20)
git-svn-id: svn://tug.org/texlive/trunk@54360 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/doc/latex/dynkin-diagrams/README | 25 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.pdf | bin | 754077 -> 769277 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.tex | 604 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/dynkin-diagrams/dynkin-diagrams.sty | 218 |
4 files changed, 515 insertions, 332 deletions
diff --git a/Master/texmf-dist/doc/latex/dynkin-diagrams/README b/Master/texmf-dist/doc/latex/dynkin-diagrams/README index f9466ebdab2..b039749108c 100644 --- a/Master/texmf-dist/doc/latex/dynkin-diagrams/README +++ b/Master/texmf-dist/doc/latex/dynkin-diagrams/README @@ -1,13 +1,20 @@ Dynkin diagrams -v3.14159265358 -18 February 2020 +v3.141592653589 +16 March 2020 -Authors : Ben McKay -Maintainer: Ben McKay -E-mail : b.mckay@ucc.ie -Licence : Released under the LaTeX Project Public License v1.3c or - later, see http://www.latex-project.org/lppl.txt +Authors: +Ben McKay -Draws Dynkin, Coxeter, and Satake diagrams in LaTeX documents, using -the TikZ package. +Maintainer: +Ben McKay + +E-mail: +b.mckay@ucc.ie + +Licence: +Released under the LaTeX Project Public License v1.3c or later. +See http://www.latex-project.org/lppl.txt + +Draws Dynkin, Coxeter, and Satake diagrams in LaTeX documents, +using the TikZ package. diff --git a/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.pdf b/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.pdf Binary files differindex c6b4dd5ee4d..52ab511acf9 100644 --- a/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.pdf +++ b/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.pdf diff --git a/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.tex b/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.tex index f8809d567d4..ea2a02553e3 100644 --- a/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.tex +++ b/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.tex @@ -1,7 +1,7 @@ \documentclass{amsart} \title[The Dynkin diagrams package]% {The Dynkin diagrams package \\ -Version 3.14159265358} +Version 3.141592653589} %% My name: \makeatletter \DeclareRobustCommand{\scotsMc}{\scotsMcx{c}} @@ -20,7 +20,7 @@ Version 3.14159265358} \author{Ben \scotsMc{}Kay} \address{School of Mathematical Sciences, University College Cork, Cork, Ireland} \email{b.mckay@ucc.ie} -\date{18 February 2020} +\date{16 March 2020} \usepackage{etex} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenx} @@ -218,26 +218,22 @@ In a TikZ picture, you might need to kill the default vertical shift (needed to \dynkin B{} \end{tcblisting} + +\renewcommand\do[1]{\dyn#1} \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 E6 -\dyn E7 -\dyn E8 -\dyn F4 -\dyn G2 +\docsvlist{A{},C{},D{},E6,E7,E8,F4,G2} \end{dynkinTable} - \section{Set options globally} \begin{tcolorbox}[title={Most options set globally \dots}] \begin{verbatim} -\pgfkeys{/Dynkin diagram,edge length=.5cm,fold radius=.5cm, -indefinite edge/.style={ - draw=black,fill=white,thin,densely dashed}} +\pgfkeys{/Dynkin diagram, + edge length=.5cm, + fold radius=.5cm, + indefinite edge/.style={ + draw=black,fill=white,thin,densely dashed}} \end{verbatim} \end{tcolorbox} You can also pass options to the package in \verb!\usepackage!. @@ -247,8 +243,8 @@ You can also pass options to the package in \verb!\usepackage!. \usepackage[ ordering=Kac, edge/.style=blue, - indefinite-edge={draw=green,fill=white,densely dashed}, - indefinite-edge-ratio=5, + indefinite-edge={draw=green,fill=white,densely dashed}, + indefinite-edge-ratio=5, mark=o, root-radius=.06cm] {dynkin-diagrams} @@ -269,73 +265,82 @@ You can also pass options to the package in \verb!\usepackage!. \(I_n=\dynkin[Coxeter,gonality=n]I{}\) \end{tcblisting} +\renewcommand\do[1]{\dyn#1} \begin{dynkinTable}{The Coxeter diagrams of the simple reflection groups}{2.25cm}{6cm} -\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{} +\forDynkinSemicolonsvlist{\do}{ +[Coxeter]A{}; +[Coxeter]B{}; +[Coxeter]C{}; +[Coxeter]E6; +[Coxeter]E7; +[Coxeter]E8; +[Coxeter]F4; +[Coxeter,gonality=n]G2; +[Coxeter]H3; +[Coxeter]H4; +[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}\) \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. +\renewcommand\do[1]{\dyn#1} \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 GI +\docsvlist{A{I},A{II},A{IIIa},A{IIIb},A{IV},B{I},B{II},C{I},C{IIa},C{IIb}, +D{Ia},D{Ib},D{Ic},D{II},D{IIIa},D{IIIb}, +E{I},E{II},E{III},E{IV},E{V},E{VI},E{VII},E{VIII},E{IX},F{I},F{II},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}]E6 -\invol 16\invol 35 -\end{dynkinDiagram} +\dynkin[% + edge length=.75cm, + labels*={1,...,6}, + involutions={16;35}]E6 \end{tcblisting} + +\newpage + \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 29\invol 38\invol 47\invol 56 -\end{dynkinDiagram} +\dynkin[edge length=.75cm, + involutions={1{10};29;38;47;56}]{A}{oo.o**.**o.oo} +\end{tcblisting} + +\begin{tcblisting}{title={We can add labels}} +\dynkin[edge length=.75cm, + involutions={ + 1<below>[\sigma]{10}; + 2<below>[\sigma]9; + 3<below>[\sigma]8; + 4<below>[\sigma]7; + 5<below>[\sigma]6} +]{A}{oo.o**.**o.oo} +\end{tcblisting} + +\begin{tcblisting}{title={Style options}} +\dynkin[% + edge length=.75cm, + involution/.style={blue!50,stealth-stealth,thick}, + involutions={1{10};29;38;47;56} + ]{A}{oo.o**.**o.oo} +\end{tcblisting} + +\newpage + +\begin{tcblisting}{title={Arrow angles}} +\dynkin[% + edge length=.75cm, + involutions={[in=-120,out=-60,relative]1{10};29;38;47;56} + ]{A}{oo.o**.**o.oo} +\end{tcblisting} + +\begin{tcblisting}{title={Control over arrow angles}} +\dynkin[involutions={16;60;01}]E[1]{6} +\dynkin[involutions={[out=-80,in=-100,relative]16;60;01}]E[1]{6} \end{tcblisting} \begin{tcblisting}{title={If you don't like the solid gray ``folding bar'', most people use arrows \dots}} @@ -380,27 +385,18 @@ segment length=1mm,amplitude=.6mm}}} \begin{tcblisting}{title={Label the roots individually by root number}} \dynkin[label]B3 \end{tcblisting} -\begin{tcblisting}{title={Label a single root}} -\begin{dynkinDiagram}B3 -\dynkinLabelRoot 2{\alpha_{\drlap{2}}} -\end{dynkinDiagram} -\end{tcblisting} \begin{tcblisting}{title={Access root labels via TikZ}} \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}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}]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}]E8 \end{tcblisting} +\newpage \begin{tcblisting}{title={Labelling several roots and alternates}} \dynkin[% label macro/.code={\alpha_{\drlap{#1}}}, @@ -408,12 +404,6 @@ label macro*/.code={\gamma_{\drlap{#1}}}, labels={,2,...,5,,7}, labels*={1,3,4,5,6}]A7 \end{tcblisting} -\begin{tcblisting}{title={Commands to label several roots}} -\begin{dynkinDiagram}A7 -\dynkinLabelRoots{,\alpha_2,\alpha_3,\alpha_4,\alpha_5,,\alpha_7} -\dynkinLabelRoots*{a,b,c,d,e,f,g} -\end{dynkinDiagram} -\end{tcblisting} \section{Label subscripts} Note the slight improvement that \verb!\drlap! makes: the labels are centered on the middle of the letter \(\alpha\), ignoring the space taken up by the subscripts, using the \verb!mathtools! command \verb!\mathrlap!, but only for labels which are \emph{not} placed to the left or right of a root. @@ -424,6 +414,7 @@ Note the slight improvement that \verb!\drlap! makes: the labels are centered on \dynkin[label,label macro/.code={\alpha_{\drlap{#1}}}, edge length=.75cm]D{15} \end{tcblisting} +\newpage \begin{tcblisting}{title={Label subscript spacing}} \dynkin[label,label macro/.code={\alpha_{#1}}, edge length=.75cm]E8 @@ -502,6 +493,32 @@ label macro/.code={\mathbb{A}_{\drlap{#1}}}]A{} \end{dynkinDiagram} \end{tcblisting} +\newpage +\section{Label placement} +Take a \(D_8\): +\begin{tcblisting}{} +\dynkin[label,edge length=.75cm]D8 +\end{tcblisting} +\noindent{}If you want to fold this diagram, +\begin{tcblisting}{} +\dynkin[fold right=true,label,edge length=.75cm]D8 +\end{tcblisting} +\noindent{}you will be glad that the \(6\) sits where it does, under and to the left. +If you don't want to fold, you might prefer instead to put the \(6\) on the right side. +\begin{tcblisting}{} +\dynkin[label,edge length=.75cm,label directions={,,,,,right,,}]D8 +\end{tcblisting} +\noindent{}The default locations are overridden by the \verb!label directions!. +For extended diagrams, this list starts at \(0\)-offset. +\begin{tcblisting}{} +\dynkin[% + label, + label directions={above,,,,,,}, + involutions={[out=-60,in=-120,relative]16;60;01} + ]E[1]{6} +\end{tcblisting} + + \begin{filecontents*}{EulerProducts.tex} \tikzset{/Dynkin diagram,ordering=Dynkin,label macro/.code={\alpha_{\drlap{#1}}}} \newcounter{EPNo} @@ -568,12 +585,14 @@ E6{1,1,1,1,1,1}{1,2,3,5,,4}, \end{filecontents*} {\input{EulerProducts}}\VerbatimInput{EulerProducts.tex} +\newpage + \section{Style} \begin{tcblisting}{title={Colours}} \dynkin[ edge/.style={blue!50,thick}, */.style=blue!50!red, - arrow style=red]{F}{4} + arrow style={red,width=2mm,line width=1pt}]{F}{4} \end{tcblisting} \begin{tcblisting}{title={Arrow shapes}} \dynkin[arrow shape/.style={-{Stealth[blue,width=3mm]}}] F4 @@ -581,7 +600,6 @@ E6{1,1,1,1,1,1}{1,2,3,5,,4}, \begin{tcblisting}{title={Edge lengths}} The Dynkin diagram of \(A_3\) is \dynkin[edge length=1.2]A3 \end{tcblisting} -\newpage \begin{tcblisting}{title={Root marks}} \dynkin E8 \dynkin[mark=*]E8 @@ -616,6 +634,7 @@ The parabolic subgroup \(E_{8,124}\) is \dynkin[parabolic=124,x/.style={brown,ve \dynkin[arrows=false]F4 \dynkin[arrows=false]G2 \end{tcblisting} +\newpage \begin{tcblisting}{title={Reverse arrows}} \dynkin[reverse arrows]F4 \dynkin[reverse arrows]G2 @@ -655,7 +674,6 @@ The parabolic subgroup \(E_{8,124}\) is \dynkin[parabolic=124,x/.style={brown,ve \draw[black] (root 2) circle (.05cm); \end{dynkinDiagram} \end{tcblisting} -\newpage \begin{tcblisting}{title={Draw curves between the roots}} \begin{dynkinDiagram}[label]E8 \draw[very thick, black!50,-latex] @@ -706,6 +724,8 @@ reverse arrows]G2 \ClassicalLieSuperalgebras[.07cm]{We need a slightly larger root radius parameter to distinguish the tensor product symbols from the solid dots.} +\newpage + \ClassicalLieSuperalgebras{Here we see the problem with using the default root radius parameter, which is too small for tensor product symbols.} @@ -855,6 +875,7 @@ D_4 & \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. +\newpage \NewDocumentCommand\tablerow{mm}% {% #1_{#2}& @@ -936,19 +957,19 @@ The extended Dynkin diagrams are also described in the notation of Kac \cite{Kac \begin{tcblisting}{title={Extended Dynkin diagrams}} \dynkin A[1]7 \end{tcblisting} +\renewcommand{\do}[1]{\dyn[extended]#1} \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]E6 -\dyn[extended]E7 -\dyn[extended]E8 -\dyn[extended]F4 -\dyn[extended]G2 +\docsvlist{A{1},A{},B{},C{},D{},E6,E7,E8,F4,G2} \end{dynkinTable} +\begin{tcblisting}{title={Directed edges}} +\dynkin[% + edge length=.75cm, + edge/.style={-{stealth[sep=2pt]}}, + labels={,1,2,\ell-1,\ell}, + labels*={0}] +A[1]{} +\end{tcblisting} \newpage @@ -959,72 +980,33 @@ The affine Dynkin diagrams are described in the notation of Kac \cite{Kac:1990} E^{(2)}_6=\dynkin E[2]6, \ D^{(3)}_4=\dynkin D[3]4\) \end{tcblisting} +\renewcommand{\do}[1]{\dyn#1} \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 +\docsvlist{A[1]1,A[1]{},B[1]{},C[1]{},D[1]{},E[1]6,E[1]7,E[1]8,F[1]4,G[1]2, +A[2]2,A[2]{even},A[2]{odd},D[2]{},E[2]6,D[3]4} \end{dynkinTable} +\newpage + \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 +\docsvlist{A[2]4,A[2]5,A[2]6,A[2]7,A[2]8,D[2]3,D[2]4,D[2]5,D[2]6,D[2]7,D[2]8, +D[3]4,E[2]6} \end{dynkinTable} +\renewcommand{\do}[1]{\dyn[ordering=Kac,label]#1} \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} +\docsvlist{E6,E7,E8,E9,E{10},E{11}} \end{dynkinTable} - - \section{Extended Coxeter diagrams} \begin{tcblisting}{title={Extended and Coxeter options together}} \dynkin[extended,Coxeter]F4 \end{tcblisting} - +\renewcommand{\do}[1]{\dyn[extended,Coxeter]#1} \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]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 +\docsvlist{A{},B{},C{},D{},E6,E7,E8,F4,G2,H3,H4,I1} \end{dynkinTable} \section{Kac style} @@ -1032,39 +1014,19 @@ We include a style called \verb!Kac! which tries to imitate the style of \cite{K \begin{tcblisting}{title={Kac style}} \dynkin[Kac]F4 \end{tcblisting} +\newpage \begingroup \pgfkeys{/Dynkin diagram,Kac} +\renewcommand{\do}[1]{\dyn#1} \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 E6 -\dyn E7 -\dyn E8 -\dyn F4 -\dyn G2 +\docsvlist{A{},B{},C{},D{},E6,E7,E8,F4,G2} \end{dynkinTable} +\renewcommand{\do}[1]{\dyn[extended]#1} \begin{dynkinTable}{The Dynkin diagrams of the extended simple root systems in Kac style}{5cm}{4.5cm} -\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 +\docsvlist{A1,A{},B{},C{},D{},E6,E7,E8,F4,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 +\docsvlist{A[2]2,A[2]{even},A[2]{odd},D[2]{},E[2]6,D[3]4} \end{dynkinTable} \endgroup \section{Ceref style} @@ -1074,37 +1036,17 @@ The word ``ceref'' is an old form of the word ``serif''. \dynkin[ceref]F4 \end{tcblisting} \begingroup +\renewcommand{\do}[1]{\dyn#1} \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 E6 -\dyn E7 -\dyn E8 -\dyn F4 -\dyn G2 +\docsvlist{A{},B{},C{},D{},E6,E7,E8,F4,G2} \end{dynkinTable} +\renewcommand{\do}[1]{\dyn[extended]#1} \begin{dynkinTable}{The Dynkin diagrams of the extended simple root systems in ceref style}{5cm}{4.5cm} -\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 +\docsvlist{A1,A{},B{},C{},D{},E6,E7,E8,F4,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 +\docsvlist{A[2]2,A[2]{even},A[2]{odd},D[2]{},E[2]6,D[3]4} \end{dynkinTable} \endgroup @@ -1127,6 +1069,7 @@ Most diagrams can only allow a 2-ply folding, so \verb!fold! is a synonym for \v \dynkin[ply=3,fold right]D4 \dynkin[ply=3]D[1]4 \end{tcblisting} +\newpage \begin{tcblisting}{title={4-ply}} \dynkin[ply=4]D[1]4 \end{tcblisting} @@ -1352,32 +1295,38 @@ edge/.style={draw=example-color,double=black,very thick}} \section{Other examples} \begin{filecontents*}{d44.tex} -\tikzset{/Dynkin diagram,edge length=1cm,fold radius=1cm} -\tikzset{/Dynkin diagram,label macro/.code={\alpha_{#1}},label macro*/.code={\beta_{#1}}} +\tikzset{/Dynkin diagram, + edge length=1cm, + fold radius=1cm, + label, + label*=true, + label macro/.code={\alpha_{#1}}, + label macro*/.code={\beta_{#1}}} \({}^1 D_4\) 4-ply tied straight: \begin{dynkinDiagram}[ply=4]D[1]% {****.*****.*****} \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,label]D[1]% {****.*****.*****} \dynkinFold1{13} \dynkinFold[bend right=65]0{14} -\dynkinLabelRoots{0,...,14} -\dynkinLabelRoots*{0,...,14} \end{dynkinDiagram} \end{filecontents*} \begingroup\input{d44}\endgroup \VerbatimInput{d44.tex} Below we draw the Vogan diagrams of some affine Lie superalgebras \cite{Ransingh:2013,Ransingh:unpub}. \begingroup -\tikzset{/Dynkin diagram,edge length=.35cm,fold radius=.3cm} -\tikzset{/Dynkin diagram,label macro/.code=\labls{#1},label,root radius=.06cm} +\tikzset{/Dynkin diagram, + edge length=.35cm, + fold radius=.3cm, + label macro/.code=\labls{#1}, + label, + label*=false, + root radius=.06cm} \tcbset{text width=10cm} \NewDocumentCommand\labls{m}% {% @@ -1632,39 +1581,125 @@ Below we draw the Vogan diagrams of some affine Lie superalgebras \cite{Ransingh \section{Example: the complex simple Lie algebras} \begin{filecontents*}{simple-lie-algebras.tex} \NewDocumentEnvironment{bunch}{}% -{\renewcommand*{\arraystretch}{1}\begin{array}{@{}ll@{}}\\ \midrule}{\\ \midrule\end{array}} +{ + \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\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>}}} +\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{}&\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 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 +\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{}& + \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 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 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 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}& -\begin{bunch}(-1,0,1),\\(2,-1,-1)\end{bunch} +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 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} +& + \begin{bunch} + (-1,0,1),\\ + (2,-1,-1) + \end{bunch} \end{longtable} \end{filecontents*} \begingroup @@ -1674,20 +1709,32 @@ G_2&\dynkin G2&\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}} -\newcommand\catholic[2]{\draw[big arrow,green!25!white] -(root #1) to (root #2);} +\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 06\catholic 17 -\protestant 70\protestant 61 + \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 06\catholic 17 + \protestant 70\protestant 61 \end{dynkinDiagram} \end{filecontents*} \begingroup @@ -1749,32 +1796,31 @@ The environment syntax is \verb!\begin{dynkinDiagram}! followed by the same para \optionLabel{affine mark}{o,O,t,x,X,*}{*} & default root mark for root zero in an affine Dynkin diagram \\ \optionLabel{arrow shape/.style}{TikZ style data}{-\{Computer Modern Rightarrow[black]\}} -& shape of arrow heads for most Dynkin diagrams that have arrows.\\ +& shape of arrow heads for most Dynkin diagrams that have arrows\\ \optionLabel{arrow style}{TikZ style data}{black} & set to override the default style for the arrows in nonsimply laced Dynkin diagrams, including length, width, line width and color \\ \optionLabel{arrows}{\typ{true or false}}{true} -& whether to draw the arrows that arise along the edges. \\ +& whether to draw the arrows that arise along the edges \\ \optionLabel{backwards}{\typ{true or false}}{false} -& whether to reverse right to left. \\ +& whether to reverse right to left \\ \optionLabel{ceref}{\typ{true or false}}{false} -& whether to draw roots in a ``ceref'' style. \\ +& whether to draw roots in a ``ceref'' style \\ \optionLabel{Coxeter}{\typ{true or false}}{false} -& whether to draw a Coxeter diagram, rather than a Dynkin diagram. \\ +& whether to draw a Coxeter diagram, rather than a Dynkin diagram \\ \optionLabel{double edges}{\typ{}}{not set} & set to override the \texttt{fold} style when folding roots together in a Dynkin diagram, so that the foldings -are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows). \\ +are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows) \\ \optionLabel{double fold}{\typ{}}{not set} & set to override the \texttt{fold} style when folding roots together in a Dynkin diagram, so that the foldings -are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows), but filled in solidly. \\ +are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows), but filled in solidly \\ \optionLabel{double left}{\typ{}}{not set} -& set to override the \texttt{fold} style when folding roots together at the left side of a Dynkin diagram, so that the foldings are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows). \\ +& set to override the \texttt{fold} style when folding roots together at the left side of a Dynkin diagram, so that the foldings are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows) \\ \optionLabel{double fold left}{\typ{}}{not set} -& set to override the \texttt{fold} style when folding roots together at the left side of a Dynkin diagram, so that the foldings are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows), but filled in solidly. \\ +& set to override the \texttt{fold} style when folding roots together at the left side of a Dynkin diagram, so that the foldings are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows), but filled in solidly \\ \optionLabel{double right}{\typ{}}{not set} -& set to override the \texttt{fold} style when folding roots together at the right side of a Dynkin diagram, so that the foldings are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows). \\ +& set to override the \texttt{fold} style when folding roots together at the right side of a Dynkin diagram, so that the foldings are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows) \\ \optionLabel{double fold right}{\typ{}}{not set} -& set to override the \texttt{fold} style when folding roots together at the right side of a Dynkin diagram, so that the foldings are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows), but filled in solidly. -\\ +& set to override the \texttt{fold} style when folding roots together at the right side of a Dynkin diagram, so that the foldings are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows), but filled in solidly\\ \optionLabel{edge label/.style}{TikZ style data}{text height=0,text depth=0,label distance=-2pt} & style of edge labels in the Dynkin diagram, as found, for example, on some Coxeter diagrams \\ \optionLabel{edge length}{\typ{number}cm}{.35cm} @@ -1782,56 +1828,60 @@ are indicated with double edges (like those of an \(F_4\) Dynkin diagram without \optionLabel{edge/.style}{TikZ style data}{solid,draw=black,fill=white,thin} & style of edges in the Dynkin diagram \\ \optionLabel{fold}{\typ{true or false}}{true} -& whether, when drawing Dynkin diagrams, to draw them 2-ply. \\ +& whether, when drawing Dynkin diagrams, to draw them 2-ply\\ \optionLabel{fold left}{\typ{true or false}}{true} -& whether to fold the roots on the left side of a Dynkin diagram. \\ +& whether to fold the roots on the left side of a Dynkin diagram\\ \optionLabel{fold radius}{\typ{length}}{.3cm} -& the radius of circular arcs used in curved edges of folded Dynkin diagrams. \\ +& the radius of circular arcs used in curved edges of folded Dynkin diagrams\\ \optionLabel{fold right}{\typ{true or false}}{true} -& whether to fold the roots on the right side of a Dynkin diagram. \\ +& whether to fold the roots on the right side of a Dynkin diagram\\ \optionLabel{fold left style/.style}{\typ{TikZ style data}}{} & style to override the \texttt{fold} style when folding roots together on the left half of a Dynkin diagram \\ \optionLabel{fold right style/.style}{\typ{TikZ style data}}{} & style to override the \texttt{fold} style when folding roots together on the right half of a Dynkin diagram \\ \optionLabel{fold style/.style}{\typ{TikZ style data}}{solid,draw=black!40,fill=none,line width=radius} -& when drawing folded diagrams, style for the fold indicators. \\ +& when drawing folded diagrams, style for the fold indicators\\ \optionLabel{indefinite edge ratio}{\typ{float}}{1.6} -& ratio of indefinite edge lengths to other edge lengths. \\ +& ratio of indefinite edge lengths to other edge lengths\\ \optionLabel{indefinite edge/.style}{\typ{TikZ style data}}{solid,draw=black,fill=white,thin,densely dotted} -& style of the dotted or dashed middle third of each indefinite edge. \\ +& style of the dotted or dashed middle third of each indefinite edge\\ +\optionLabel{involutions}{\typ{semicolon separated list of pairs}} +{} & involution double arrows to draw\\ \optionLabel{Kac}{\typ{true or false}}{false} & whether to draw in the style of \cite{Kac:1990} \\ \optionLabel{label}{true or false}{false} -& whether to label the roots according to the current labelling scheme. \\ +& whether to label the roots according to the current labelling scheme\\ +\optionLabel{label*}{\typ{true or false}}{false} +& whether to label the roots at alterative label locations according to the current labelling scheme\\ \optionLabel{label macro}{\typ{1-parameter \TeX{} macro}}{\texttt{\#1}} -& the current labelling scheme for roots. \\ +& the current labelling scheme for roots\\ \optionLabel{label macro*}{\typ{1-parameter \TeX{} macro}}{\texttt{\#1}} -& the current labelling scheme for alternate roots. \\ +& the current labelling scheme for alternate roots\\ \optionLabel{label height}{\typ{1-parameter \TeX{} macro}}{b} -& the current maximal height of text labels for the roots, set by giving mathematics text of that height. \\ +& the current maximal height of text labels for the roots, set by giving mathematics text of that height\\ \optionLabel{label depth}{\typ{1-parameter \TeX{} macro}}{g} -& the current maximal depth of text labels for the roots, set by giving mathematics text of that depth. \\ +& the current maximal depth of text labels for the roots, set by giving mathematics text of that depth\\ \optionLabel{make indefinite edge}{\typ{edge pair \(i\)-\(j\) or list of such}}{\{\}} -& edge pair or list of edge pairs to treat as having indefinitely many roots on them. \\ +& edge pair or list of edge pairs to treat as having indefinitely many roots on them\\ \optionLabel{mark}{\typ{o,O,t,x,X,*}}{*} & default root mark \\ \optionLabel{name}{\typ{string}}{anonymous} -& A name for the Dynkin diagram, with \texttt{anonymous} treated as a blank; see section~\ref{section:name}. \\ +& A name for the Dynkin diagram, with \texttt{anonymous} treated as a blank; see section~\ref{section:name}\\ \optionLabel{ordering}{\typ{Adams, Bourbaki, Carter, Dynkin, Kac}}{Bourbaki} -& which ordering of the roots to use in exceptional root systems as in section~\ref{section:order}. \\ +& which ordering of the roots to use in exceptional root systems as in section~\ref{section:order}\\ \optionLabel{parabolic}{\typ{integer}}{0} & A parabolic subgroup with specified integer, where the integer -is computed as \(n=\sum 2^{i-1} a_i\), \(a_i=0\) or \(1\), to say that root \(i\) is crossed, i.e. a noncompact root. \\ +is computed as \(n=\sum 2^{i-1} a_i\), \(a_i=0\) or \(1\), to say that root \(i\) is crossed, i.e. a noncompact root\\ \optionLabel{ply}{\typ{0,1,2,3,4}}{0} -& how many roots get folded together, at most. \\ +& how many roots get folded together, at most\\ \optionLabel{reverse arrows}{\typ{true or false}}{true} -& whether to reverse the direction of the arrows that arise along the edges. \\ +& whether to reverse the direction of the arrows that arise along the edges\\ \optionLabel{root radius}{\typ{number}cm}{.05cm} & size of the dots and of the crosses in the Dynkin diagram \\ \optionLabel{text style}{\typ{TikZ style data}}{scale=.7} -& Style for any labels on the roots. \\ +& Style for any labels on the roots\\ \optionLabel{upside down}{\typ{true or false}}{false} -& whether to reverse up to down. \\ +& whether to reverse up to down\\ \end{longtable} \par\noindent{}All other options are passed to TikZ. diff --git a/Master/texmf-dist/tex/latex/dynkin-diagrams/dynkin-diagrams.sty b/Master/texmf-dist/tex/latex/dynkin-diagrams/dynkin-diagrams.sty index f408a1658e8..19b873760de 100644 --- a/Master/texmf-dist/tex/latex/dynkin-diagrams/dynkin-diagrams.sty +++ b/Master/texmf-dist/tex/latex/dynkin-diagrams/dynkin-diagrams.sty @@ -1,6 +1,6 @@ % The Dynkin Diagrams package. % -% Version 3.14159265358 +% Version 3.141592653589 % % This package draws Dynkin diagrams in LaTeX % documents, using the TikZ package. @@ -13,7 +13,7 @@ % Released under the LaTeX Project Public License v1.3c or later, see % http://www.latex-project.org/lppl.txt \NeedsTeXFormat{LaTeX2e}[1994/06/01] -\ProvidesPackage{dynkin-diagrams}[2020/02/18 Dynkin diagrams] +\ProvidesPackage{dynkin-diagrams}[2020/03/16 Dynkin diagrams] \RequirePackage{etex} \RequirePackage{tikz} \RequirePackage{xstring} @@ -48,6 +48,7 @@ \newif\ifold@dynkin@is@upsidedown \newif\ifold@dynkin@is@extended \newif\ifold@dynkin@label@the@roots +\newif\ifold@dynkin@label@star@the@roots \NewDocumentCommand\dynkin@save{}% {% \xdef\dynkin@ply@value{1}% @@ -56,6 +57,7 @@ \ifdynkin@is@extended\global\old@dynkin@is@extendedtrue\else\global\old@dynkin@is@extendedfalse\fi% {\global\dynkin@is@twistedfalse}% \ifdynkin@label@the@roots\global\old@dynkin@label@the@rootstrue\else\global\old@dynkin@label@the@rootsfalse\fi% +\ifdynkin@label@star@the@roots\global\old@dynkin@label@star@the@rootstrue\else\global\old@dynkin@label@star@the@rootsfalse\fi% }% \NewDocumentCommand\dynkin@restore{}% {% @@ -63,6 +65,7 @@ \ifold@dynkin@is@upsidedown\global\dynkin@is@upsidedowntrue\else\global\dynkin@is@upsidedownfalse\fi% \ifold@dynkin@is@extended\global\dynkin@is@extendedtrue\else\global\dynkin@is@extendedfalse\fi% \ifold@dynkin@label@the@roots\global\dynkin@label@the@rootstrue\else\global\dynkin@label@the@rootsfalse\fi% +\ifold@dynkin@label@star@the@roots\global\dynkin@label@star@the@rootstrue\else\global\dynkin@label@star@the@rootsfalse\fi% }% \NewDocumentEnvironment{dynkinDiagram}{O{}mO{0}m}% {% @@ -168,11 +171,36 @@ \dynkin@ordering% }% +\newcount\dynkinOverrideRoot +\NewDocumentCommand\dynkin@override@label@directions{}% +{% + \dynkinOverrideRoot1\relax% + \ifdynkin@is@extended% + \global\dynkinOverrideRoot0\relax% + \fi% + \foreach \overRide in \dynkin@label@directions@override + {% + \IfStrEq{\overRide}{}% + {% + }% + {% + \dynkinPutLabelInDirection{\the\dynkinOverrideRoot}{\overRide}% + }% + \global\advance\dynkinOverrideRoot by 1\relax% + }% +}% + \NewDocumentCommand\dynkinRefreshRoots{}% {% \ifdefined\filldraw\else\dynkin@error@not@in@tikz\fi% + \dynkin@override@label@directions{}% \dynkin@draw@all@roots{}% - \ifdynkin@label@the@roots\dynkinPrintLabels{}\fi% + \ifdynkin@label@the@roots% + \dynkinPrintLabels{}% + \fi% + \ifdynkin@label@star@the@roots% + \dynkinPrintLabelsStar{}% + \fi% }% @@ -298,34 +326,6 @@ \stepcounter{dynkinRootNo}% \dynkinLabelRoot*{\arabic{dynkinRootNo}}{#1}% }% -\NewDocumentCommand\dynkinLabelRoots{sm}% -{% - \ifdefined\filldraw\else\dynkin@error@not@in@tikz\fi% - \setcounter{dynkinRootNo}{0}% - \ifdynkin@is@extended% - \setcounter{dynkinRootNo}{-1}% - \else% - \ifdynkin@is@twisted% - \setcounter{dynkinRootNo}{-1}% - \else% - \setcounter{dynkinRootNo}{0}% - \fi% - \fi% - \edef\dynkin@labelies{#2}% - \IfBooleanTF{#1}% - {% - \foreach \i in \dynkin@labelies% - {% - \@dynkinLabelThisRootStar{\i}% - }% - }% - {% - \foreach \i in \dynkin@labelies% - {% - \@dynkinLabelThisRoot{\i}% - }% - }% -}% \NewDocumentCommand\dynkinBrace{somm}%[text]{start}{end} {% @@ -366,13 +366,84 @@ {\IfValueT{#2}{\(#2\)}};% }% +\NewDocumentCommand\dynkin@involution{somD<>{}om}% +{% + \begin{pgfonlayer}{Dynkin behind}% + \IfValueTF{#2}% + {% + \IfValueTF{#5}% + {% + \draw[/Dynkin diagram/involution,#2] + (root #3) to + node[% + midway, + /Dynkin diagram/text style, + #4] + {$#5$} + (root #6);% + }% + {% + \draw[/Dynkin diagram/involution,#2] + (root #3) to (root #6);% + }% + }% + {% + \IfBooleanTF{#1} + {% + \IfValueTF{#5}% + {% + \draw[/Dynkin diagram/involution] + (root #3) + to + node[% + midway, + /Dynkin diagram/text style, + #4] + {$#5$} + (root #6);% + }% + {% + \draw[/Dynkin diagram/involution] + (root #3) to[bend left] (root #6);% + }% + }% + {% + \IfValueTF{#5}% + {% + \draw[/Dynkin diagram/involution] + (root #3) + to[bend right] + node[% + midway, + /Dynkin diagram/text style, + #4] + {$#5$} + (root #6);% + }% + {% + \draw[/Dynkin diagram/involution] + (root #3) to[bend right] (root #6);% + }% + }% + }% + \end{pgfonlayer}% +}% + +\DeclareListParser*{\forDynkinSemicolonsvlist}{;} +\def\dynkin@involution@input@splitter#1{\dynkin@involution#1} +\NewDocumentCommand\dynkin@draw@involutions{}% +{% + \expandafter\forDynkinSemicolonsvlist% + \expandafter\dynkin@involution@input@splitter% + \expandafter{\dynkin@involution@list}% +}% %% \dynkinPrintLabels %% Prints the labels on the Dynkin diagram,in the given ordering. Uses the default labels if ``label'' is set without a list of ``labels'' being set. \newcommand{\dynkinPrintLabels}% {% \ifdefined\filldraw\else\dynkin@error@not@in@tikz\fi% - \IfStrEq{\dynkin@label@list\dynkin@label@list@star}{}{% + \IfStrEq{\dynkin@label@list}{}{% \foreach \i in {1,...,\the\dynkin@nodes}{\dynkinLabelRoot{\i}{\i}}% \ifdynkin@is@extended% \dynkinLabelRoot{0}{0}% @@ -406,11 +477,47 @@ \setcounter{dynkinRootNo}{0}% \fi% \fi% + }% +}% + +% Print alternate location labels. +\newcommand{\dynkinPrintLabelsStar}% +{% + \ifdefined\filldraw\else\dynkin@error@not@in@tikz\fi% + \IfStrEq{\dynkin@label@list@star}{}{% + \foreach \i in {1,...,\the\dynkin@nodes}{\dynkinLabelRoot*{\i}{\i}}% + \ifdynkin@is@extended% + \dynkinLabelRoot*{0}{0}% + \else% + \ifdynkin@is@twisted% + \dynkinLabelRoot*{0}{0}% + \fi% + \fi% + }% + {% + \ifdynkin@is@extended% + \setcounter{dynkinRootNo}{-1}% + \else% + \ifdynkin@is@twisted% + \setcounter{dynkinRootNo}{-1}% + \else% + \setcounter{dynkinRootNo}{0}% + \fi% + \fi% \edef\XXX{\dynkin@label@list@star}% \foreach \i in \XXX% {% \@dynkinLabelThisRootStar{\i}% }% + \ifdynkin@is@extended% + \setcounter{dynkinRootNo}{-1}% + \else% + \ifdynkin@is@twisted% + \setcounter{dynkinRootNo}{-1}% + \else% + \setcounter{dynkinRootNo}{0}% + \fi% + \fi% }% }% @@ -1837,16 +1944,12 @@ \def\dynkin@diagram@name{anonymous} % Default diagram name - \def\dynkin@root@mark{*} % Default mark - \def\dynkin@affine@root@mark{o} % Default affine root mark - \def\dynkin@roots{} % List of marks for each root. - \def\dynkin@user@series{} % Series string passed from user. % For example: @@ -1863,6 +1966,8 @@ % \dynkin@user@string{} with some modifications to it to expand it out. \def\dynkin@series{A} % Which series of root system: A,B,C,D,E,F,G +\def\dynkin@involution@list{} +% List of involutions among roots to draw. \def\dynkin@label@list{} % List of labels for the roots. \def\dynkin@label@list@star{} @@ -1886,6 +1991,8 @@ % Which Kac series? 0=finite, 1,2,3->infinite \newif\ifdynkin@label@the@roots % Should we label the roots by the current root ordering convention? +\newif\ifdynkin@label@star@the@roots +% Should we label the roots by the current root ordering convention? \newif\ifdynkin@reverse@arrows % Should we reverse the directions of all arrows? \newif\ifdynkin@arrows @@ -1906,6 +2013,8 @@ % Default maximum number of nodes arranged vertically in the folding of the Dynkin diagram \def\dynkin@label@directions{} % List of directions in which to draw the labels attached to the roots. +\def\dynkin@label@directions@override{} +% List of directions in which to draw the labels attached to the roots, as overridden by the user. \def\dynkin@label@directions@star{} % List of directions in which to draw the labels attached to the roots, for alternate labels. \def\dynkin@current@location{(0,0)} @@ -2055,6 +2164,9 @@ }, indefinite-edge/.forward to=/Dynkin diagram/indefinite edge/.style, indefiniteedge/.forward to=/Dynkin diagram/indefinite edge/.style, + involution/.style={latex-latex,black}, + involutions/.default = {}, + involutions/.store in = \dynkin@involution@list, Kac arrows/.is if = dynkin@Kac@arrows, Kac-arrows/.forward to = /Dynkin diagram/Kac arrows, Kacarrows/.forward to = /Dynkin diagram/Kac arrows, @@ -2092,6 +2204,9 @@ }, label/.is if = dynkin@label@the@roots, label = false, + label*/.is if = dynkin@label@star@the@roots, + label*/.default=false, + label*=false, label depth/.style={ /tikz/every label/.append style={ text depth={depth("#1"} @@ -2101,20 +2216,24 @@ label depth, label-depth/.forward to = /Dynkin diagram/label depth, labeldepth/.forward to = /Dynkin diagram/label depth, + label directions/.default = {}, + label directions/.store in = \dynkin@label@directions@override, + label* directions/.default = {}, + label* directions/.store in = \dynkin@label@star@directions@override, 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/.default = {}, labels/.store in = \dynkin@label@list, + labels*/.default = {}, 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, @@ -2142,7 +2261,7 @@ rootradius/.forward to=/Dynkin diagram/root radius, root radius=.05cm, text style/.style={#1}, - text style/.default={scale=.7}, + text style/.default={black,scale=.7}, text-style/.forward to=text style/.style, textstyle/.forward to=text style/.style, twisted/.is if = dynkin@is@twisted, @@ -2268,9 +2387,9 @@ \ProcessPgfPackageOptions{/Dynkin diagram}\relax \newcount\dynkin@drpo% \newcount\dynkin@where% -%% \dynkin@put@direction{<r>}{<d>}{<d*>} +%% \dynkinPutLabelInDirection{<r>}{<d>} %% Assigns to \dynkin@label@directions or \dynkin@label@directions@star the direction that the label of root <r> (in default ordering) should sit from the root node location, <d>=0,1,2,3,4,5,6,7 to indicate direction in multiples of 45 degrees -\NewDocumentCommand\dynkin@put@direction{smm}% +\NewDocumentCommand\dynkinPutLabelInDirection{smm}% {% \dynkin@drpo=\the\dynkin@nodes\relax% \advance\dynkin@drpo by 1\relax% @@ -2587,12 +2706,18 @@ \ifdynkin@is@upsidedown% \tikzset{yscale=-1}% \fi% - \IfStrEq{\dynkin@label@list\dynkin@label@list@star}{}% + \IfStrEq{\dynkin@label@list}{}% {% }% {% \global\dynkin@label@the@rootstrue% }% + \IfStrEq{\dynkin@label@list@star}{}% + {% + }% + {% + \global\dynkin@label@star@the@rootstrue% + }% \xdef\dynkin@user@series{#2}% \xdef\dynkin@twisted@series{#3}% \xdef\dynkin@user@string{#4}% @@ -2653,6 +2778,7 @@ \csname\dynkin@series dynkin\endcsname% \fi% \fi% + \dynkin@draw@involutions% \dynkinRefreshRoots% }% % @@ -3724,8 +3850,8 @@ \global\dynkin@Root@Number=#2\relax% }% \node (\dynkin@root@name \the\dynkin@Root@Number) at (Dynkin current) {};% - \dynkin@put@direction{\the\dynkin@Root@Number}{#3}% - \dynkin@put@direction*{\the\dynkin@Root@Number}{#4}% + \dynkinPutLabelInDirection{\the\dynkin@Root@Number}{#3}% + \dynkinPutLabelInDirection*{\the\dynkin@Root@Number}{#4}% }% \newif\ifdynkin@hex@grid \dynkin@hex@gridtrue @@ -4052,7 +4178,7 @@ \foreach \bpipe in {\the\pipefpo,...,\the\pipe@end}% {% \dynkinPlaceRootRelativeTo*{\bpipe}{\the\pipebmo}{#3}{#4}{#5}% - \dynkinEdge*{SingleEdge}{\bpipe}{\the\pipebmo}% + \dynkinEdge*{SingleEdge}{\the\pipebmo}{\bpipe}% \global\advance\pipebmo by 1\relax% }% \fi% @@ -4876,7 +5002,7 @@ \dynkinNorth% \dynkinPlaceRootHere*{0}{below}{above}% \dynkinEdge*{SingleEdge}{0}{1}% - \dynkinEdge*{SingleEdge}{0}{\the\dynkin@rank}% + \dynkinEdge*{SingleEdge}{\the\dynkin@rank}{0}% \fi% \dynkinRootMark*{}{0}% \fi% |