diff options
author | Karl Berry <karl@freefriends.org> | 2018-02-11 22:49:52 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-02-11 22:49:52 +0000 |
commit | 4f8d8a303ae1f3c7a2a6b1eb4624a4c6a3b31d07 (patch) | |
tree | 56b5144f0c924f54113eb22f3ac0321ea1cecedf /Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.tex | |
parent | 0809c1dc616f1408e77f3ba4d87205a20cc98154 (diff) |
dynkin-diagrams (11feb18)
git-svn-id: svn://tug.org/texlive/trunk@46600 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.tex | 1711 |
1 files changed, 1163 insertions, 548 deletions
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 f6566c0be0e..afe3a99eea5 100644 --- a/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.tex +++ b/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.tex @@ -1,688 +1,1303 @@ \documentclass{amsart} -\title{The Dynkin diagrams package} +\title{The Dynkin diagrams package \\ Version 3.1} \author{Ben McKay} -\date{\today} +\date{11 February 2018} +\usepackage{etex} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenx} +\usepackage{etoolbox} +\usepackage{lmodern} +\usepackage[kerning=true,tracking=true]{microtype} \usepackage{amsmath} \usepackage{amsfonts} \usepackage{array} \usepackage{xstring} -\usepackage{etoolbox} \usepackage{longtable} -\usepackage{showexpl} +\usepackage[listings]{tcolorbox} +\tcbuselibrary{breakable} +\tcbuselibrary{skins} +\usepackage[pdftex]{hyperref} +\hypersetup{ + colorlinks = true, %Colours links instead of ugly boxes + urlcolor = black, %Colour for external hyperlinks + linkcolor = black, %Colour of internal links + citecolor = black %Colour of citations +} \usepackage{booktabs} +\usepackage{colortbl} +\usepackage{varwidth} \usepackage{dynkin-diagrams} +\usepackage{fancyvrb} +\usepackage{xspace} +\newcommand{\TikZ}{Ti\textit{k}Z\xspace} +\usepackage{filecontents} \usetikzlibrary{backgrounds} \usetikzlibrary{decorations.markings} +\arrayrulecolor{white} +\makeatletter + \def\rulecolor#1#{\CT@arc{#1}} + \def\CT@arc#1#2{% + \ifdim\baselineskip=\z@\noalign\fi + {\gdef\CT@arc@{\color#1{#2}}}} + \let\CT@arc@\relax +\rulecolor{white} +\makeatother \newcommand{\C}[1]{\mathbb{C}^{#1}} \renewcommand*{\arraystretch}{1.5} -\renewcommand\ResultBox{\fcolorbox{gray!50}{gray!30}} +\NewDocumentCommand\wdtA{}{.7cm} +\NewDocumentCommand\wdtD{}{3cm} +\NewDocumentCommand\wdtL{}{3cm} +\newcolumntype{A}{@{}>{\columncolor[gray]{.9}$}m{\wdtA}<{$}} +\newcolumntype{D}{>{\columncolor[gray]{.9}}m{\wdtD}} +\newcolumntype{L}{>{\columncolor[gray]{.9}}p{\wdtL}} +\newcolumntype{P}{>{\columncolor[gray]{.9}}p{10cm}} +\NewDocumentCommand\textleftcurly{}{\texttt{\char'173}}% +\NewDocumentCommand\textrightcurly{}{\texttt{\char'175}}% +\NewDocumentCommand\csDynkin{omom}% +{% + \texttt{\detokenize{\dynkin}\!\!\!% + \IfNoValueTF{#1}{}{[#1]}% + \textleftcurly#2\textrightcurly% + \IfNoValueTF{#3}{}{[#3]}% + \textleftcurly#4\textrightcurly% + }% +}% + +\NewDocumentCommand\dynk{omom}% +{% + \dynkin[#1]{#2}[#3]{#4}&\csDynkin[#1]{#2}[#3]{#4}\\ +}% + +\NewDocumentCommand\typesetSubseries{m}% +{% + \IfInteger{#1}{#1}{\IfStrEq{#1}{}{n}{#1}} +}% + +\NewDocumentCommand\dyn{omom}% +{% + {#2}_{\typesetSubseries{#4}}^{\IfInteger{#3}{#3}{}} & \dynk[#1]{#2}[#3]{#4}% +}% + +\NewDocumentEnvironment{dynkinTable}{mmm}% +{% +\RenewDocumentCommand\wdtD{}{#2} +\RenewDocumentCommand\wdtL{}{#3} +\begin{longtable}{ADL} +\caption{#1}\\ +\endfirsthead +\caption{\dots continued}\\ +\endhead +\multicolumn{2}{c}{continued \dots}\\ +\endfoot +\endlastfoot +}% +{% +\end{longtable} +}% + + +\definecolor{example-color}{gray}{1} +\definecolor{example-border-color}{gray}{.7} + +\tcbset{coltitle=black,colback=example-color,colframe=example-border-color,enhanced,breakable,pad at break*=1mm, +toprule=1.2mm,bottomrule=1.2mm,leftrule=1mm,rightrule=1mm,toprule at break=-1mm,bottomrule at break=-1mm, +before upper={\widowpenalties=3 10000 10000 150}} + +\makeatletter +\def\@tocline#1#2#3#4#5#6#7{\relax + \ifnum #1>\c@tocdepth% + \else + \par \addpenalty\@secpenalty\addvspace{#2}% + \begingroup \hyphenpenalty\@M + \@ifempty{#4}{% + \@tempdima\csname r@tocindent\number#1\endcsname\relax + }{% + \@tempdima#4\relax + }% + \parindent\z@ \leftskip#3\relax \advance\leftskip\@tempdima\relax + #5\leavevmode\hskip-\@tempdima #6\nobreak\relax + ,~#7\par + \endgroup + \fi} +\makeatother \begin{document} \maketitle +\begin{center} +\begin{varwidth}{\textwidth} \tableofcontents +\end{varwidth} +\end{center} + + +\setlength{\arrayrulewidth}{1.5pt} + \section{Quick introduction} -This is a test of the Dynkin diagram package. -Load the package via + + +\begin{tcolorbox}[title={Load the Dynkin diagram package (see options below)}] \begin{verbatim} \usepackage{dynkin-diagrams} \end{verbatim} -(see below for options) and invoke it directly: +\end{tcolorbox} +\begin{tcblisting}{title={Invoke it}} +The Dynkin diagram of \(B_3\) is \dynkin{B}{3}. +\end{tcblisting} +\begin{tcblisting}{title={Inside a \TikZ statement}} +\tikz \dynkin{B}{3}; +\end{tcblisting} +\begin{tcblisting}{title={Inside a \TikZ environment}} +\begin{tikzpicture} + \dynkin{B}{3} +\end{tikzpicture} +\end{tcblisting} +\begin{tcblisting}{title={Indefinite rank Dynkin diagrams}} +\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} +\end{dynkinTable} + + +\section{Set options globally} + +\begin{tcolorbox}[title={Most options set globally \dots}] +\begin{verbatim} +\pgfkeys{/Dynkin diagram,edgeLength=.5cm,foldradius=.5cm} +\end{verbatim} +\end{tcolorbox} +\begin{tcolorbox}[title={\dots or pass to the package}] +\begin{verbatim} +\usepackage[ + ordering=Kac, + edge/.style=blue, + mark=o, + radius=.06cm] + {dynkin-diagrams} +\end{verbatim} +\end{tcolorbox} -\begin{LTXexample} -The flag variety of pointed lines in -projective 3-space is associated to -the Dynkin diagram \dynkin[parabolic=3]{A}{3}. -\end{LTXexample} -or use the long form inside a \verb!\tikz! statement: -\begin{LTXexample} -\tikz \dynkin[parabolic=3]{A}{3}; -\end{LTXexample} +\section{Coxeter diagrams} -or a TikZ environment: -\begin{LTXexample} -\begin{tikzpicture} -\dynkin[parabolic=3,label]{A}{3} -\end{tikzpicture} -\end{LTXexample} -With labels for the roots: -\begin{LTXexample} -\dynkin[parabolic=3,label]{A}{3} -\end{LTXexample} -\newpage\noindent% -Make up your own labels for the roots: -\begin{LTXexample} -\begin{tikzpicture} -\dynkin[parabolic=3]{A}{3} -\rootlabel{2}{\alpha_2} -\end{tikzpicture} -\end{LTXexample} -Use any text scale you like: -\begin{LTXexample} +\begin{tcblisting}{title={Coxeter diagram option}} +\dynkin[Coxeter]{F}{4} +\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}{}\) +\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}{} +\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. + +\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} +\end{dynkinTable} + +\section{Labels for the roots} + +\begin{tcblisting}{title={Label the roots by root number}} +\dynkin[label]{B}{3} +\end{tcblisting} +\begin{tcblisting}{title={Make a macro to assign labels to roots}} +\dynkin[label,labelMacro/.code={\alpha_{#1}}]{D}{5} +\end{tcblisting} +\begin{tcblisting}{title={Label a single root}} \begin{tikzpicture} -\dynkin[parabolic=3,textscale=1.2]{A}{3}; -\rootlabel{2}{\alpha_2} + \dynkin{B}{3} + \dynkinLabelRoot{2}{\alpha_2} \end{tikzpicture} -\end{LTXexample} -and access root labels via TikZ: -\begin{LTXexample} +\end{tcblisting} +\begin{tcblisting}{title={Use a text style}} \begin{tikzpicture} -\dynkin[parabolic=3]{A}{3}; -\node at (root label 2) {\(\alpha_2\)}; + \dynkin[text/.style={scale=1.2}]{B}{3}; + \dynkinLabelRoot{2}{\alpha_2} \end{tikzpicture} -\end{LTXexample} -The labels have default locations: -\begin{LTXexample} +\end{tcblisting} +\begin{tcblisting}{title={Access root labels via TikZ}} \begin{tikzpicture} -\dynkin{E}{8}; -\rootlabel{1}{\alpha_1} -\rootlabel{2}{\alpha_2} -\rootlabel{3}{\alpha_3} + \dynkin{B}{3}; + \node[below] at (root 2) {\(\alpha_2\)}; \end{tikzpicture} -\end{LTXexample} -You can use a starred form to flip labels to alternate locations: -\begin{LTXexample} +\end{tcblisting} +\begin{tcblisting}{title={The labels have default locations}} \begin{tikzpicture} -\dynkin{E}{8}; -\rootlabel*{1}{\alpha_1} -\rootlabel*{2}{\alpha_2} -\rootlabel*{3}{\alpha_3} + \dynkin{E}{8}; + \dynkinLabelRoot{1}{\alpha_1} + \dynkinLabelRoot{2}{\alpha_2} + \dynkinLabelRoot{3}{\alpha_3} \end{tikzpicture} -\end{LTXexample} -TikZ can access the roots themselves: -\typeout{AAAAAAA} -\begin{LTXexample} +\end{tcblisting} +\begin{tcblisting}{title={The starred form flips labels to alternate locations}} \begin{tikzpicture} -\dynkin{A}{4}; -\fill[white,draw=black] (root 2) circle (.1cm); -\draw[black] (root 2) circle (.05cm); + \dynkin{E}{8}; + \dynkinLabelRoot*{1}{\alpha_1} + \dynkinLabelRoot*{2}{\alpha_2} + \dynkinLabelRoot*{3}{\alpha_3} \end{tikzpicture} -\end{LTXexample} -Some diagrams will have double edges: -\begin{LTXexample} +\end{tcblisting} + +\section{Style} + +\begin{tcblisting}{title={Colours}} +\dynkin[edge/.style={blue!50,thick},*/.style=blue!50!red]{F}{4} +\end{tcblisting} +\begin{tcblisting}{title={Edge lengths}} +\dynkin[edgeLength=1.2,parabolic=3]{A}{3} +\end{tcblisting} +\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} +\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 +\end{tabular} +\begin{tcblisting}{title={Mark styles}} +\dynkin[parabolic=124,x/.style={brown,very thick}]{E}{8} +\end{tcblisting} +\begin{tcblisting}{title={Sizes of root marks}} +\dynkin[radius=.08cm,parabolic=3]{A}{3} +\end{tcblisting} + + +\section{Suppress or reverse arrows} + +\begin{tcblisting}{title={Some diagrams have double or triple edges}} \dynkin{F}{4} -\end{LTXexample} -or triple edges: -\begin{LTXexample} \dynkin{G}{2} -\end{LTXexample} -\newpage\noindent% -Draw curves between the roots: -\begin{LTXexample} +\end{tcblisting} +\begin{tcblisting}{title={Suppress arrows}} +\dynkin[arrows=false]{F}{4} +\dynkin[arrows=false]{G}{2} +\end{tcblisting} +\begin{tcblisting}{title={Reverse arrows}} +\dynkin[reverseArrows]{F}{4} +\dynkin[reverseArrows]{G}{2} +\end{tcblisting} + + +\section{Drawing on top of a Dynkin diagram} + +\begin{tcblisting}{title={TikZ can access the roots themselves}} \begin{tikzpicture} -\dynkin[parabolic=429]{E}{8} -\draw[very thick, black!50,-latex] (root 3.south) to [out=-45, in=-135] (root 6.south); + \dynkin{A}{4}; + \fill[white,draw=black] (root 2) circle (.15cm); + \fill[white,draw=black] (root 2) circle (.1cm); + \draw[black] (root 2) circle (.05cm); \end{tikzpicture} -\end{LTXexample} -Draw dots on the roots: -\begin{LTXexample} +\end{tcblisting} +\begin{tcblisting}{title={Draw curves between the roots}} \begin{tikzpicture} -\dynkin[label]{C}{8} -\dynkinopendot{3} -\dynkinopendot{7} + \dynkin[label]{E}{8} + \draw[very thick, black!50,-latex] + (root 3.south) to [out=-45, in=-135] (root 6.south); \end{tikzpicture} -\end{LTXexample} -Colours: -\begin{LTXexample} -\dynkin[color=blue!50,backgroundcolor=red!20]{G}{2} -\end{LTXexample} -Edge lengths: -\begin{LTXexample} -\dynkin[edgelength=1.2,parabolic=3]{A}{3} -\end{LTXexample} -Sizes of dots and crosses: -\begin{LTXexample} -\dynkin[dotradius=.08cm,parabolic=3]{A}{3} -\end{LTXexample} -Edge styles: -\begin{LTXexample} -\dynkin[edge=very thick,parabolic=3]{A}{3} -\end{LTXexample} -Open circles instead of closed dots: -\begin{LTXexample} -\dynkin[open]{E}{8} -\end{LTXexample} -Add closed dots to the open circles, at roots in the current ordering: -\begin{LTXexample} +\end{tcblisting} +\begin{tcblisting}{title={Change marks}} \begin{tikzpicture} -\dynkin[open]{E}{8}; -\dynkincloseddot{5} -\dynkincloseddot{8} -\end{tikzpicture} -\end{LTXexample} -More colouring: -\begin{LTXexample} -\begin{tikzpicture}[show background rectangle, - background rectangle/.style={fill=red!10}] -\dynkin[parabolic=1,backgroundcolor=blue!20]{G}{2} + \dynkin[mark=o,label]{E}{8}; + \dynkinRootMark{*}{5} + \dynkinRootMark{*}{8} \end{tikzpicture} -\end{LTXexample} -Cross styles: -\begin{LTXexample} -\dynkin[parabolic=124,cross=thin]{E}{8} -\end{LTXexample} -\newpage\noindent{} -Suppress arrows: -\begin{LTXexample} -\dynkin[arrows=false]{F}{4} -\end{LTXexample} -\begin{LTXexample} -\dynkin[arrows=false]{G}{2} -\end{LTXexample} - -\section{Syntax} - -The syntax is \verb!\dynkin[<options>]{<letter>}{<rank>}! where \verb!<letter>! is \(A,B,C,D,E,F\) or \(G\), the family of root system for the Dynkin diagram, and \verb!<rank>! is an integer representing the rank, or is the symbol \verb!*! to represent an indefinite rank: -\begin{LTXexample} -\dynkin[edge=thick,edgelength=.5cm]{A}{*} -\end{LTXexample} -\begin{LTXexample} -\dynkin[edge=thick,edgelength=.5cm]{B}{*} -\end{LTXexample} -\begin{LTXexample} -\dynkin[edge=thick,edgelength=.5cm]{C}{*} -\end{LTXexample} -\begin{LTXexample} -\dynkin[edge=thick,edgelength=.5cm]{D}{*} -\end{LTXexample} -Outside a TikZ environment, the command builds its own TikZ environment. - +\end{tcblisting} -\newcommand*{\typ}[1]{\(\left<\texttt{#1}\right>\)} -\newcommand*{\optionLabel}[3]{%% -\multicolumn{2}{l}{\(\texttt{#1}=\texttt{#2}, \texttt{default}=\texttt{#3}\)} \\ -}%% -\section{Options} -\par\noindent{}All \verb!\dynkin! options (except \texttt{affine}, \texttt{folded}, \texttt{label} and \texttt{parabolic} ) can also be passed to the package to force a global default option: -\par\noindent% -\begin{verbatim} -\usepackage[ - ordering=Kac, - color=blue, - open, - dotradius=.06cm, - backgroundcolor=red] - {dynkin-diagrams} -\end{verbatim} -\par\noindent% -\begin{tabular}{p{1cm}p{10cm}} -\optionLabel{parabolic}{\typ{integer}}{0} -& A parabolic subgroup with specified integer, where the integer -is computed as \(n=\sum 2^i a_i\), \(a_i=0\) or \(1\), to say that root \(i\) is crossed, i.e. a noncompact root. \\ -\optionLabel{color}{\typ{color name}}{black} \\ -\optionLabel{backgroundcolor}{\typ{color name}}{white} -& This only says what color you have already set for the background rectangle. It is needed precisely for the \(G_2\) root system, to draw the triple line correctly, and only when your background color is not white. \\ -\optionLabel{dotradius}{\typ{number}cm}{.05cm} -& size of the dots and of the crosses in the Dynkin diagram \\ -\optionLabel{edgelength}{\typ{number}cm}{.35cm} -& distance between nodes in the Dynkin diagram \\ -\optionLabel{edge}{\typ{TikZ style data}}{thin} -& style of edges in the Dynkin diagram \\ -\optionLabel{open}{\typ{true or false}}{false} -& use open circles rather than solid dots as default \\ -\optionLabel{label}{true or false}{false} -& whether to label the roots by their root numbers. \\ -\optionLabel{arrows}{\typ{true or false}}{true} -& whether to draw the arrows that arise along the edges. \\ -\optionLabel{folded}{\typ{true or false}}{true} -& whether, when drawing \(A\), \(D\) or \(E_6\) diagrams, to draw them folded. \\ -\optionLabel{foldarrowstyle}{\typ{TikZ style}}{stealth-stealth} -& when drawing folded diagrams, style for the fold arrows. \\ -\optionLabel{foldarrowcolor}{\typ{colour}}{black!50} -& when drawing folded diagrams, colour for the fold arrows. \\ -\optionLabel{Coxeter}{\typ{true or false}}{false} -& whether to draw a Coxeter diagram, rather than a Dynkin diagram. \\ +\section{Mark lists} -\optionLabel{ordering}{\typ{Adams, Bourbaki, Carter, Dynkin, Kac}}{Bourbaki} -& which ordering of the roots to use in exceptional root systems as follows: -\end{tabular} +The package allows a list of root marks instead of a rank: -\newpage +\begin{tcblisting}{title={A mark list}} +\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. +(Careful: in an affine root system, a mark list will \emph{not} contain a mark for root zero.) -\NewDocumentCommand\tablerow{mm}% +\NewDocumentCommand\ClassicalLieSuperalgebras{m}% {% -\(#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{dynkinTable}{Classical Lie superalgebras \cite{Frappat/Sciarrino/Sorba:1989}. #1}{3.5cm}{6.5cm} +A_{mn} & \dynk{A}{ooo.oto.oo} +B_{mn} & \dynk{B}{ooo.oto.oo} +B_{0n} & \dynk{B}{ooo.ooo.o*} +C_{n} & \dynk{C}{too.oto.oo} +D_{mn} & \dynk{D}{ooo.oto.oooo} +D_{21\alpha} & \dynk{A}{oto} +F_4 & \dynk{F}{ooot} +G_3 & \dynk[extended,affineMark=t]{G}{2} +\end{dynkinTable} }% -\begin{center} -\begin{longtable}{@{}llllll@{}} -\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} +\begingroup +\tikzset{/Dynkin diagram,radius=.07cm} +\ClassicalLieSuperalgebras{We need a slightly larger radius parameter to distinguish the tensor product symbols from the solid dots.} +\endgroup +\ClassicalLieSuperalgebras{Here we see the problem with using the default radius parameter, which is too small for tensor product symbols.} -\par\noindent{}All other options are passed to TikZ. -\section{Finding the roots} -The roots are labelled from \(1\) to \(r\), where \(r\) is the rank. -The command sets up TikZ nodes \texttt{(root 1)}, \texttt{(root 2)}, and so on. -Affine extended Dynkin diagrams have affine root are at \texttt{(root 0)}. -Use these tikz nodes to draw on the Dynkin diagram, as above. -It also sets up TikZ nodes \texttt{(root label 0)}, \texttt{(root label 1)}, and so on for the labels, and TikZ nodes \texttt{(root label swap 0)}, \texttt{(root label swap 1)}, and so on as alternative label locations, in case you want two labels on the same root, or the default choice doesn't look the way you like. -\begin{LTXexample} -\begin{tikzpicture} -\dynkin{E}{6}; -\rootlabel{2}{\alpha_2} -\rootlabel{5}{\alpha_5} -\end{tikzpicture} -\end{LTXexample} +\section{Indefinite edges} -\section{Example: some parabolic subgroups} +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} +\end{tcblisting} -\newcommand{\drawparabolic}[3]{#1_{#2,#3} & \tikz \dynkin[parabolic=#3]{#1}{#2}; \\} +In certain diagrams, roots may have an edge between them even though they are not subsequent in the ordering. +For such rare situations, there is an option: +\begin{tcblisting}{title={Indefinite edge option}} +\dynkin[makeIndefiniteEdge={3-5},label]{D}{5} +\end{tcblisting} +\begin{tcblisting}{title={Give a list of edges to become indefinite}} +\dynkin[makeIndefiniteEdge/.list={1-2,3-5},label]{D}{5} +\end{tcblisting} -\begin{center} -\begin{longtable}{@{}>{$}r<{$}m{2cm}m{2cm}@{}} -\endfirsthead -\endhead -\endfoot -\endlastfoot -\drawparabolic{A}{1}{0} -\drawparabolic{A}{1}{2} -\drawparabolic{A}{2}{0} -\drawparabolic{A}{2}{2} -\drawparabolic{A}{2}{4} -\drawparabolic{A}{2}{6} -\drawparabolic{B}{2}{6} -\drawparabolic{C}{3}{10} -\drawparabolic{D}{5}{8} -\drawparabolic{E}{6}{10} -\drawparabolic{E}{7}{202} -\drawparabolic{E}{8}{246} -\drawparabolic{F}{4}{26} -\drawparabolic{G}{2}{0} -\drawparabolic{G}{2}{2} -\drawparabolic{G}{2}{4} -\drawparabolic{G}{2}{6} -\end{longtable} -\end{center} +\begin{tcblisting}{title={Indefinite edge style}} +\dynkin[indefiniteEdge/.style={draw=black,fill=white,thin,densely dashed},% + edgeLength=1cm,% + makeIndefiniteEdge={3-5}] + {D}{5} +\end{tcblisting} +\begin{tcblisting}{title={The ratio of the lengths of indefinite edges to those of other edges}} +\dynkin[edgeLength = .5cm,% + indefiniteEdgeRatio=3,% + makeIndefiniteEdge={3-5}] + {D}{5} +\end{tcblisting} -\section{Example: the Hermitian symmetric spaces} +\section{Parabolic subgroups} - \renewcommand*{\arraystretch}{1.5} -\begin{center} -\begin{longtable}{@{}>{$}r<{$}m{2.2cm}m{5cm}@{}} +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}. +\end{tcblisting} + +\NewDocumentCommand\HSS{mommm}% +{% + \begingroup + \renewcommand*{\arraystretch}{1.2} + \begin{tabular}{@{}>{$}r<{$}@{}m{6cm}@{}} + \\ + \IfNoValueTF{#2}% + {% + #1 & \dynkin{#3}{#4} \\ + & \csDynkin{#3}{#4} \\ + }% + {% + #1 & \dynkin[#2]{#3}{#4} \\ + & \csDynkin[#2]{#3}{#4} \\ + }% + & #5% + \\[.75em] + \end{tabular} + \endgroup + \\ +}% + +\renewcommand*{\arraystretch}{1} +\begin{longtable}{>{\columncolor[gray]{.9}}p{7cm}} +\caption{The Hermitian symmetric spaces} \endfirsthead +\caption{\dots continued}\\ \endhead +\caption{continued \dots}\\ \endfoot \endlastfoot - A_n & - \dynkin[parabolic=16]{A}{*} & - Grassmannian of $k$-planes in $\C{n+1}$ - \\ - B_n & - \dynkin[parabolic=2]{B}{*} & - $(2n-1)$-dimensional hyperquadric, i.e. the variety of null lines in $\C{2n+1}$ - \\ - C_n & - \dynkin[parabolic=32]{C}{*} & - space of Lagrangian $n$-planes in $\C{2n}$ - \\ - D_n & - \dynkin[parabolic=2]{D}{*} & - $(2n-2)$-dimensional hyperquadric, i.e. the variety of null lines in $\C{2n}$ - \\ - D_n & - \dynkin[parabolic=64]{D}{*} & - one component of the variety of maximal dimension null subspaces of $\C{2n}$ \\ - D_n & - \dynkin[parabolic=32]{D}{*} & - the other component\\ - E_6 & - \dynkin[parabolic=2]{E}{6} & - complexified octave projective plane\\ - E_6 & - \dynkin[parabolic=64]{E}{6}&its dual plane\\ - E_7 & - \dynkin[parabolic=128]{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}[parabolic=1]{B}{}{$(2n-1)$-dimensional hyperquadric, i.e. the variety of null lines in $\C{2n+1}$} +\HSS{C_n}[parabolic=16]{C}{}{space of Lagrangian $n$-planes in $\C{2n}$} +\HSS{D_n}[parabolic=1]{D}{}{$(2n-2)$-dimensional hyperquadric, i.e. the variety of null lines in $\C{2n}$} +\HSS{D_n}[parabolic=32]{D}{}{one component of the variety of maximal dimension null subspaces of $\C{2n}$} +\HSS{D_n}[parabolic=16]{D}{}{the other component} +\HSS{E_6}[parabolic=1]{E}{6}{complexified octave projective plane} +\HSS{E_6}[parabolic=32]{E}{6}{its dual plane} +\HSS{E_7}[parabolic=64]{E}{7}{the space of null octave 3-planes in octave 6-space} \end{longtable} -\end{center} - - -\section{Affine extended Dynkin diagrams} - -\begin{LTXexample} -\dynkin[affine,edge=thick]{A}{*} -\end{LTXexample} - -\begin{LTXexample} -\dynkin[edgelength=1cm,edge=thick,affine]{A}{*} -\end{LTXexample} - -\begin{LTXexample} -\dynkin[scale=1.5,edge=thick,affine]{A}{*} -\end{LTXexample} - - -\begin{LTXexample} -\begin{tikzpicture} -\dynkin[affine,label]{A}{8}; -\end{tikzpicture} -\end{LTXexample} - - -\begin{LTXexample} -\begin{tikzpicture} -\dynkin[affine]{A}{*}; -\node at (root label 0) {\(\alpha_0\)}; -\end{tikzpicture} -\end{LTXexample} -\begin{LTXexample} -\begin{tikzpicture} -\dynkin[affine]{A}{9} -\node at (root label 0) {\(\alpha_0\)}; -\end{tikzpicture} -\end{LTXexample} -You can use TikZ to put in labels: -\begin{LTXexample} -\begin{tikzpicture} -\dynkin[affine]{A}{9}; -\node at (root label 0) {\(\alpha_0\)}; -\node at (root label 1) {\(\alpha_1\)}; -\node at (root label 2) {\(\alpha_2\)}; -\node at (root label 3) {\(\alpha_3\)}; -\end{tikzpicture} -\end{LTXexample} -\begin{LTXexample} -\dynkin[affine,label]{A}{1} -\end{LTXexample} +\section{Extended Dynkin diagrams} -\begin{LTXexample} -\dynkin[affine,label]{B}{8} -\end{LTXexample} +\begin{tcblisting}{title={Extended Dynkin diagrams}} +\dynkin[extended]{A}{7} +\end{tcblisting} -\begin{LTXexample} -\dynkin[affine,label]{B}{*} -\end{LTXexample} -\begin{LTXexample} -\dynkin[affine,label]{C}{8} -\end{LTXexample} +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} +\end{tcblisting} -\begin{LTXexample} -\dynkin[affine,label]{C}{*} -\end{LTXexample} -\begin{LTXexample} -\dynkin[affine,label]{D}{8} -\end{LTXexample} +\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} +\end{dynkinTable} + + +\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}\) +\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} +\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} +\end{dynkinTable} + + + + +\section{Extended Coxeter diagrams} + +\begin{tcblisting}{title={Extended and Coxeter options together}} +\dynkin[extended,Coxeter]{F}{4} +\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} +\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} +\end{tcblisting} + + + +\begingroup +\pgfkeys{/Dynkin diagram,Kac} +\newcolumntype{D}{>{\columncolor[gray]{1}}m{\wdtD}} +\begin{dynkinTable}{The Dynkin diagrams of the extended simple root systems in Kac style. At the moment, it only works on a white background.}{5cm}{4.5cm} +\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} +\end{dynkinTable} +\endgroup -\begin{LTXexample} -\dynkin[affine,label]{D}{*} -\end{LTXexample} -\begin{LTXexample} -\dynkin[affine,label]{E}{6} -\end{LTXexample} -\begin{LTXexample} -\dynkin[affine,label]{E}{7} -\end{LTXexample} +\section{Folded Dynkin diagrams} -\begin{LTXexample} -\dynkin[affine,label]{E}{8} -\end{LTXexample} +The Dynkin diagrams package has limited support for folding Dynkin diagrams. -Open circles instead of closed dots: -\begin{LTXexample} -\dynkin[affine,open,label]{E}{8} -\end{LTXexample} +\begin{tcblisting}{title={Folding}} +\dynkin[fold]{A}{13} +\end{tcblisting} -\begin{LTXexample} -\dynkin[affine,label]{F}{4} -\end{LTXexample} +\begin{tcblisting}{title={Big fold radius}} +\dynkin[fold,foldradius=1cm]{A}{13} +\end{tcblisting} -\begin{LTXexample} -\dynkin[affine,label]{G}{2} -\end{LTXexample} +\begin{tcblisting}{title={Small fold radius}} +\dynkin[fold,foldradius=.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 form \verb!ply=2!. -\section{Coxeter diagrams} +\begin{tcblisting}{title={3-ply}} +\dynkin[ply=3]{D}{4} +\dynkin[ply=3]{D}[1]{4} +\end{tcblisting} -\begin{LTXexample} -\dynkin[Coxeter]{B}{7} -\end{LTXexample} +\begin{tcblisting}{title={4-ply}} +\dynkin[ply=4]{D}[1]{4} +\end{tcblisting} -\begin{LTXexample} -\dynkin[Coxeter]{F}{4} -\end{LTXexample} +The \(D^{(1)}_{\ell}\) diagrams can be folded on their left end and separately on their right end: +\begin{tcblisting}{title={Left, right and both}} +\dynkin{D}[1]{} \ +\dynkin[foldleft]{D}[1]{} \ +\dynkin[foldright]{D}[1]{} \ +\dynkin[fold]{D}[1]{} +\end{tcblisting} -\begin{LTXexample} -\dynkin[Coxeter]{G}{2} -\end{LTXexample} +We have to be careful about the 4-ply foldings of \(D^{(1)}_{2\ell}\), for which we can have two different patterns, so by default, the package only draws as much as it can without distinguishing the two: +\begin{tcblisting}{title={Default \(D^{(1)}_{2\ell}\) and the two ways to finish it}} +\begin{tikzpicture} + \dynkin[ply=4]{D}[1]{****.*****.*****}% +\end{tikzpicture} \ +\begin{tikzpicture} + \dynkin[ply=4]{D}[1]{****.*****.*****}% + \dynkinFold[bend right=65]{1}{13}% + \dynkinFold[bend right=65]{0}{14}% +\end{tikzpicture} \ +\begin{tikzpicture} + \dynkin[ply=4]{D}[1]{****.*****.*****}% + \dynkinFold{0}{1}% + \dynkinFold{1}{13}% + \dynkinFold{13}{14}% +\end{tikzpicture} +\end{tcblisting} -\begin{LTXexample} -\dynkin[Coxeter]{H}{7} -\end{LTXexample} -\begin{LTXexample} -\dynkin[Coxeter]{I}{7} -\end{LTXexample} +\begingroup +\RenewDocumentCommand\wdtD{}{3.5cm} +\RenewDocumentCommand\wdtL{}{7cm} +\NewDocumentCommand\seriesName{mmm}% +{% + \IfStrEq{#2}{0}{#1_{#3}}{#1^{#2}_{#3}}% +}% -\section{Folded Dynkin diagrams} +\NewDocumentCommand\foldingTable{smmmmmmmm}% +{% +\begin{tabular}{ADL}% +\seriesName{#2}{#3}{#4} +\seriesName{#6}{#7}{#8}&\IfBooleanTF{#1}{\reflectbox{#9}}{#9}% +\end{tabular}% +\\ \hline +}% -\begin{LTXexample} -\dynkin[folded]{E}{6} -\end{LTXexample} -\begin{LTXexample} -\dynkin[folded,label]{E}{6} -\end{LTXexample} +\NewDocumentCommand\fold{smmmmmm}% +{% + \IfBooleanTF{#1}% + {% + \foldingTable% + {#2}{#3}{#4}{\dynk[fold]{#2}[#3]{#4}}% + {#5}{#6}{#7}{\dynk[reverseArrows]{#5}[#6]{#7}}% + }% + {% + \foldingTable% + {#2}{#3}{#4}{\dynk[fold]{#2}[#3]{#4}}% + {#5}{#6}{#7}{\dynk{#5}[#6]{#7}}% + }% +}% -\begin{LTXexample} -\dynkin[folded]{A}{*} -\end{LTXexample} +\begin{filecontents*}{DoneTwoElBendy.tex} +\begin{tikzpicture} + \dynkin[ply=4]{D}[1]{****.*****.*****} + \dynkinFold[bend right=65]{1}{13} + \dynkinFold[bend right=65]{0}{14} +\end{tikzpicture} +\end{filecontents*} -\begin{LTXexample} -\dynkin[folded,label]{A}{1} -\end{LTXexample} -\begin{LTXexample} -\dynkin[folded,label]{A}{2} -\end{LTXexample} +\begin{filecontents*}{DoneTwoElStraight.tex} +\begin{tikzpicture} + \dynkin[ply=4]{D}[1]{****.*****.*****} + \dynkinFold{0}{1} + \dynkinFold{1}{13} + \dynkinFold{13}{14} +\end{tikzpicture} +\end{filecontents*} -\begin{LTXexample} -\dynkin[folded,label]{A}{3} -\end{LTXexample} +\pgfkeys{/Dynkin diagram,foldradius=.35cm} +\begin{longtable}{@{}p{15cm}@{}} +\caption{Some foldings of Dynkin diagrams}\\ +\endfirsthead +\caption{\dots continued}\\ +\endhead +\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]{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[foldright]{D}[1]{}}% +{B}{1}{\ell}{\dynk{B}[1]{}} +\foldingTable{D}{1}{2\ell}{% +\input{DoneTwoElStraight.tex} +& +\VerbatimInput{DoneTwoElStraight.tex} \\ +}% +{A}{2}{\text{odd}}{\dynk{A}[2]{odd}} +\foldingTable{D}{1}{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]{****.***} +}% +{A}{2}{\text{even}}{\dynk{A}[2]{even}} +\foldingTable{D}{2}{3}{\dynk[fold]{D}[2]{3}}% +{A}{2}{2}{\dynk{A}[2]{2}} +\end{longtable} +\endgroup -\begin{LTXexample} -\dynkin[folded,label]{A}{4} -\end{LTXexample} -\begin{LTXexample} -\dynkin[folded,label]{A}{10} -\end{LTXexample} -\begin{LTXexample} -\dynkin[folded,label]{A}{11} -\end{LTXexample} +\section{Root ordering}\label{section:order} -\begin{LTXexample} -\dynkin[folded,label,arrows=false]{A}{11} -\end{LTXexample} +\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. -\begin{LTXexample} -\dynkin[folded]{D}{*} -\end{LTXexample} +\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{LTXexample} -\dynkin[folded,label]{D}{1} -\end{LTXexample} +\begin{center} +\RenewDocumentCommand\wdtA{}{.7cm} +\RenewDocumentCommand\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} -\begin{LTXexample} -\dynkin[folded,label]{D}{2} -\end{LTXexample} -\begin{LTXexample} -\dynkin[folded,label]{D}{3} -\end{LTXexample} +\section{Connecting Dynkin diagrams}\label{section:name} -\begin{LTXexample} -\dynkin[folded,label]{D}{4} -\end{LTXexample} +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} +\end{tcblisting} +We can then connect the two with folding edges: +\begin{tcblisting}{title={Connect diagrams}} +\begin{tikzpicture} + \dynkin[name=upper]{A}{3} + \node (current) at ($(upper root 1)+(0,-.3cm)$) {}; + \dynkin[at=(current),name=lower]{A}{3} + \begin{scope}[on background layer] + \foreach \i in {1,...,3}% + {% + \draw[/Dynkin diagram/foldStyle] + ($(upper root \i)$) -- ($(lower root \i)$);% + }% + \end{scope} +\end{tikzpicture} +\end{tcblisting} -\begin{LTXexample} -\dynkin[folded,label]{D}{10} -\end{LTXexample} +The following diagrams arise in the Satake diagrams of the pseudo-Riemannian symmetric spaces \cite{Baba:2009}. -\begin{LTXexample} -\dynkin[folded,label]{D}{11} -\end{LTXexample} +\begin{tcblisting}{} +\pgfkeys{/Dynkin diagram,edgeLength=.5cm,foldradius=.5cm} +\begin{tikzpicture} + \dynkin[name=1]{A}{IIIb} + \node (a) at (.3,.4){}; + \dynkin[name=2,at=(a)]{A}{IIIb} + \begin{scope}[on background layer] + \foreach \i in {1,...,7}% + {% + \draw[/Dynkin diagram/foldStyle] + ($(1 root \i)$) + -- + ($(2 root \i)$);% + }% + \end{scope} +\end{tikzpicture} +\end{tcblisting} +\begin{tcblisting}{} +\pgfkeys{/Dynkin diagram/edgeLength=.75cm,/Dynkin diagram/edge/.style={draw=white,double=black,very thick}, +} +\begin{tikzpicture} + \foreach \d in {1,...,4} + { + \node (current) at ($(\d*.05,\d*.3)$){}; + \dynkin[name=\d,at=(current)]{D}{oo.oooo} + } + \begin{scope}[on background layer] + \foreach \i in {1,...,6}% + {% + \draw[/Dynkin diagram/foldStyle] ($(1 root \i)$) -- ($(2 root \i)$);% + \draw[/Dynkin diagram/foldStyle] ($(2 root \i)$) -- ($(3 root \i)$);% + \draw[/Dynkin diagram/foldStyle] ($(3 root \i)$) -- ($(4 root \i)$);% + }% + \end{scope} +\end{tikzpicture} +\end{tcblisting} -\section{Satake diagrams} +\section{Other examples} -We have incomplete support for Satake diagrams as yet, following the conventions of \cite{Helgason:2001}. +Below we draw the Vogan diagrams of some affine Lie superalgebras \cite{Ransingh:2013,Ransingh:unpub}. -\begin{LTXexample} -\dynkin{A}{I} -\end{LTXexample} +\begingroup -\begin{LTXexample} -\dynkin{A}{II} -\end{LTXexample} +\NewDocumentCommand\labls{m}% +{% + \ifcase#1% + {1}\or% + {1}\or% + {2}\or% + {2}\or% + {2}\or% + {2}\or% + {2}\or% + {1}\or% + {1}\or% + \else\typeout{What?}% + \fi% +}% +\NewDocumentCommand\lablIt{m}% +{% + \ifnum#1=0\relax% + 1% + \else + 2% + \fi% +}% -\begin{LTXexample} -\dynkin{E}{I} -\end{LTXexample} +\tikzset{/Dynkin diagram,labelMacro/.code=\labls{#1},label,radius=.06cm} -\begin{LTXexample} -\dynkin{E}{II} -\end{LTXexample} -\begin{LTXexample} -\dynkin{E}{III} -\end{LTXexample} +\tcbset{text width=10cm} +\RenewDocumentCommand\wdtA{}{2cm} -\begin{LTXexample} -\dynkin{E}{IV} -\end{LTXexample} +\NewDocumentEnvironment{Category}{m}% +{% +\begin{tcolorbox}[title={\(#1\)},breakable]{} +}% +{% +\end{tcolorbox} +}% -\begin{LTXexample} -\dynkin{E}{V} -\end{LTXexample} +\begin{Category}{\mathfrak{sl}\left(2m|2n\right)^{(2)}} +\begin{tcblisting}{} +\begin{tikzpicture} + \dynkin[ply=2,label]{B}[1]{oo.oto.oo} + \dynkinLabelRoot*{7}{1} +\end{tikzpicture} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin[label]{B}[1]{oo.oto.oo} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin[ply=2,label]{B}[1]{oo.Oto.Oo} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin[label]{B}[1]{oo.Oto.Oo} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin[label]{D}[1]{oo.oto.ooo} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin[label]{D}[1]{oO.otO.ooo} +\end{tcblisting} +\begin{tcblisting}{} +\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} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin[label]{B}[1]{oO.oto.oO} +\end{tcblisting} +\begin{tcblisting}{} +\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} +\end{tcblisting} +\begin{tcblisting}{} +\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,doubleEdges]{B}[1]{oo.Oto.Oo} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin[ply=2,label,doubleFold]{B}[1]{oo.Oto.Oo} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin[ply=2,label,doubleEdges]{B}[1]{oo.OtO.oo} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin[ply=2,label,doubleFold]{B}[1]{oo.OtO.oo} +\end{tcblisting} +\end{Category} + +\begin{Category}{\mathfrak{sl}\left(2|2n\right)^{(2)}} +\begin{tcblisting}{} +\dynkin[ply=2,label,doubleEdges]{D}[1]{oo.oto.ooo} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin[ply=2,label,doubleFoldLeft]{D}[1]{oo.oto.ooo} +\end{tcblisting} +\end{Category} + +\begin{Category}{\mathfrak{osp}\left(2m|2n\right)^{(2)}} +\begin{tcblisting}{} +\dynkin[label,labelMacro/.code={1}]{D}[2]{o.oto.oo} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin[label,labelMacro/.code={1}]{D}[2]{o.Oto.Oo} +\end{tcblisting} +\end{Category} + +\begin{Category}{\mathfrak{osp}\left(2|2n\right)^{(2)}} +\begin{tcblisting}{} +\dynkin[label,labelMacro/.code=\lablIt{#1}, + affineMark=*] + {D}[2]{o.o.o.o*} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin[label,labelMacro/.code=\lablIt{#1}, + affineMark=*] + {D}[2]{o.O.o.o*} +\end{tcblisting} +\end{Category} + +\begin{Category}{\mathfrak{sl}\left(1|2n+1\right)^{4}} +\begin{tcblisting}{} +\dynkin[label,labelMacro/.code={1}]{D}[2]{o.o.o.o*} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin[label,labelMacro/.code={1}]{D}[2]{o.o.O.o*} +\end{tcblisting} +\end{Category} + + +\begin{Category}{A^1} +\begin{tcblisting}{} +\begin{tikzpicture} + \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] + \foreach \i in {1,...,5}{ + \draw[/Dynkin diagram/foldStyle] + ($(upper root \i)$) -- ($(lower root \i)$); + } + \end{scope} +\end{tikzpicture} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin[fold]{A}[1]{oo.t.ooooo.t.oo} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin[fold,affineMark=t]{A}[1]{oo.o.ootoo.o.oo} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin[affineMark=t]{A}[1]{o*.t.*o} +\end{tcblisting} +\end{Category} + +\begin{Category}{B^1} +\begin{tcblisting}{} +\dynkin[affineMark=*]{A}[2]{o.oto.o*} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin[affineMark=*]{A}[2]{o.oto.o*} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin[affineMark=*]{A}[2]{o.ooo.oo} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin[odd]{A}[2]{oo.*to.*o} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin[odd,fold]{A}[2]{oo.oto.oo} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin[odd,fold]{A}[2]{o*.oto.o*} +\end{tcblisting} +\end{Category} + +\begin{Category}{D^1} +\begin{tcblisting}{} +\dynkin{D}{otoo} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin{D}{ot*o} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin[fold]{D}{otoo} +\end{tcblisting} +\end{Category} + +\begin{Category}{C^1} +\begin{tcblisting}{} +\dynkin[doubleEdges,fold,affineMark=t,odd]{A}[2]{to.o*} +\end{tcblisting} +\begin{tcblisting}{} +\dynkin[doubleEdges,fold,affineMark=t,odd]{A}[2]{t*.oo} +\end{tcblisting} +\end{Category} + +\begin{Category}{F^1} +\begin{tcblisting}{} +\begin{tikzpicture}% + \dynkin{A}{oto*}% + \dynkinQuadrupleEdge{1}{2}% + \dynkinTripleEdge{4}{3}% +\end{tikzpicture}% +\end{tcblisting} +\begin{tcblisting}{} +\begin{tikzpicture}% + \dynkin{A}{*too}% + \dynkinQuadrupleEdge{1}{2}% + \dynkinTripleEdge{4}{3}% +\end{tikzpicture}% +\end{tcblisting} +\end{Category} + +\begin{Category}{G^1} +\begin{tcblisting}{} +\begin{tikzpicture}% + \dynkin{A}{ot*oo}% + \dynkinQuadrupleEdge{1}{2}% + \dynkinDefiniteDoubleEdge{4}{3}% +\end{tikzpicture}% +\end{tcblisting} +\begin{tcblisting}{} +\begin{tikzpicture}% + \dynkin{A}{oto*o}% + \dynkinQuadrupleEdge{1}{2}% + \dynkinDefiniteDoubleEdge{4}{3}% +\end{tikzpicture}% +\end{tcblisting} +\begin{tcblisting}{} +\begin{tikzpicture}% + \dynkin{A}{*too*}% + \dynkinQuadrupleEdge{1}{2}% + \dynkinDefiniteDoubleEdge{4}{3}% +\end{tikzpicture}% +\end{tcblisting} +\begin{tcblisting}{} +\begin{tikzpicture}% + \dynkin{A}{*tooo}% + \dynkinQuadrupleEdge{1}{2}% + \dynkinDefiniteDoubleEdge{4}{3}% +\end{tikzpicture}% +\end{tcblisting} +\end{Category} -\begin{LTXexample} -\dynkin{E}{VI} -\end{LTXexample} -\begin{LTXexample} -\dynkin{E}{VII} -\end{LTXexample} -\begin{LTXexample} -\dynkin{E}{VIII} -\end{LTXexample} -\begin{LTXexample} -\dynkin{E}{XI} -\end{LTXexample} -\begin{LTXexample} -\dynkin{F}{I} -\end{LTXexample} +\section{Syntax} -\begin{LTXexample} -\dynkin{F}{II} -\end{LTXexample} +The syntax is \verb!\dynkin[<options>]{<letter>}[<twisted rank>]{<rank>}! where \verb!<letter>! is \verb!A!, \verb!B!, \verb!C!, \verb!D!, \verb!E!, \verb!F! or \verb!G!, the family of root system for the Dynkin diagram, \verb!<twisted rank>! is \verb!0!, \verb!1!, \verb!2!, \verb!3! (default is \verb!0!) representing: +\[ +\renewcommand*{\arraystretch}{1} +\begin{array}{rp{8cm}} +0 & finite root system \\ \hline +1 & affine extended root system, i.e. of type \({}^{(1)}\) \\ +2 & affine twisted root system of type \({}^{(2)}\) \\ +3 & affine twisted root system of type \({}^{(3)}\) \\ +\end{array} +\] +and \verb!<rank>! is +\begin{enumerate} +\item +an integer representing the rank or +\item +blank to represent an indefinite rank or +\item +the name of a Satake diagram as in section~\ref{section:Satake}. +\end{enumerate} -\begin{LTXexample} -\dynkin{G}{I} -\end{LTXexample} -\begin{LTXexample} -\begin{tikzpicture} -\dynkin[open]{E}{6} -\draw[\dynkinfoldarrowstyle,\dynkinfoldarrowcolor] - (root 1.south) to [out=-45, in=-135] (root 6.south); -\draw[\dynkinfoldarrowstyle,\dynkinfoldarrowcolor] - (root 3.south) to [out=-45, in=-135] (root 5.south); -\end{tikzpicture} -\end{LTXexample} -\begin{LTXexample} -\begin{tikzpicture} -\dynkin[open]{E}{6} -\dynkincloseddot{3} -\dynkincloseddot{4} -\dynkincloseddot{5} -\draw[\dynkinfoldarrowstyle,\dynkinfoldarrowcolor] - (root 1.south) to [out=-45, in=-135] (root 6.south); -\end{tikzpicture} -\end{LTXexample} +\section{Options} -\section{Other stuff} +\newcommand*{\typ}[1]{\(\left<\texttt{#1}\right>\)} +\newcommand*{\optionLabel}[3]{%% +\multicolumn{2}{l}{\(\texttt{#1}=\texttt{#2}\),} \\ +\multicolumn{2}{l}{\(\textrm{default}: \texttt{#3}\)} \\ +}%% -Some sophisticated diagrams: -\begin{center} -\begin{tikzpicture} -\dynkin[folded]{D}{9} -\foreach \i in {2,6,8,9} { - \dynkinopendot{\i} -} -\dynkinline[white]{4}{5} -\dynkindots{4}{5} -\dynkinopendot{4} -\dynkincloseddot{5} -\end{tikzpicture} -\end{center} -can be drawn using sending TikZ options to \verb!\dynkinline! to erase the old edge, \verb!\dynkindots! to make indefinite edges, and then redrawing the roots next to any edge we draw: -\begin{LTXexample} -\begin{tikzpicture}[show background rectangle, - background rectangle/.style={fill=red!10}] -\dynkin[folded]{D}{9}; -\foreach \i in {2,6,8,9} { - \dynkinopendot{\i} -} -\dynkinline[red!10]{4}{5} -\dynkindots{4}{5} -\dynkinopendot{4} -\dynkincloseddot{5} -\end{tikzpicture} -\end{LTXexample} +\renewcommand*{\arraystretch}{1} +\par\noindent% +\begin{longtable}{p{1cm}p{10cm}} +\endfirsthead +\caption{\dots continued}\\ +\endhead +\multicolumn{2}{c}{continued \dots}\\ +\endfoot +\endlastfoot +\optionLabel{text/.style}{\typ{TikZ style data}}{scale=.7} +& Style for any labels on the roots. \\ +\optionLabel{name}{\typ{string}}{anonymous} +& A name for the Dynkin diagram, with \texttt{anonymous} treated as a blank; see section~\ref{section:name}. \\ +\optionLabel{parabolic}{\typ{integer}}{0} +& A parabolic subgroup with specified integer, where the integer +is computed as \(n=\sum 2^{i-1} a_i\), \(a_i=0\) or \(1\), to say that root \(i\) is crossed, i.e. a noncompact root. \\ +\optionLabel{radius}{\typ{number}cm}{.05cm} +& size of the dots and of the crosses in the Dynkin diagram \\ +\optionLabel{edgeLength}{\typ{number}cm}{.35cm} +& distance between nodes in the Dynkin diagram \\ +\optionLabel{edge/.style}{TikZ style data}{thin} +& style of edges in the Dynkin diagram \\ +\optionLabel{mark}{\typ{o,O,t,x,X,*}}{*} +& default root mark \\ +\optionLabel{affineMark}{o,O,t,x,X,*}{*} +& default root mark for root zero in an affine Dynkin diagram \\ +\optionLabel{label}{true or false}{false} +& whether to label the roots according to the current labelling scheme. \\ +\optionLabel{labelMacro}{\typ{1-parameter \TeX{} macro}}{\texttt{\#1}} +& the current labelling scheme. \\ +\optionLabel{makeIndefiniteEdge}{\typ{edge pair \(i\)-\(j\) or list of such}}{\{\}} +& edge pair or list of edge pairs to treat as having indefinitely many roots on them. \\ +\optionLabel{indefiniteEdgeRatio}{\typ{float}}{1.6} +& ratio of indefinite edge lengths to other edge lengths. \\ +\optionLabel{indefiniteEdge/.style}{\typ{TikZ style data}}{draw=black,fill=white,thin,densely dotted} +& style of the dotted or dashed middle third of each indefinite edge. \\ +\optionLabel{arrows}{\typ{true or false}}{true} +& whether to draw the arrows that arise along the edges. \\ +\optionLabel{reverseArrows}{\typ{true or false}}{true} +& whether to reverse the direction of the arrows that arise along the edges. \\ +\optionLabel{fold}{\typ{true or false}}{true} +& whether, when drawing Dynkin diagrams, to draw them 2-ply. \\ +\optionLabel{ply}{\typ{0,1,2,3,4}}{0} +& how many roots get folded together, at most. \\ +\optionLabel{foldleft}{\typ{true or false}}{true} +& whether to fold the roots on the left side of a Dynkin diagram. \\ +\optionLabel{foldright}{\typ{true or false}}{true} +& whether to fold the roots on the right side of a Dynkin diagram. \\ +\optionLabel{foldradius}{\typ{length}}{.3cm} +& the radius of circular arcs used in curved edges of folded Dynkin diagrams. \\ +\optionLabel{foldStyle}{\typ{TikZ style data}}{draw=black!40,fill=none,line width=radius} +& when drawing folded diagrams, style for the fold indicators. \\ +\optionLabel{*/.style}{\typ{TikZ style data}}{draw=black,fill=black} +& style for roots like \dynkin{A}{*} \\ +\optionLabel{o/.style}{\typ{TikZ style data}}{draw=black,fill=black} +& style for roots like \dynkin{A}{o} \\ +\optionLabel{O/.style}{\typ{TikZ style data}}{draw=black,fill=black} +& style for roots like \dynkin{A}{O} \\ +\optionLabel{t/.style}{\typ{TikZ style data}}{draw=black,fill=black} +& style for roots like \dynkin{A}{t} \\ +\optionLabel{x/.style}{\typ{TikZ style data}}{draw=black} +& style for roots like \dynkin{A}{x} \\ +\optionLabel{X/.style}{\typ{TikZ style data}}{draw=black,thick} +& style for roots like \dynkin{A}{X} \\ +\optionLabel{leftFold/.style}{\typ{TikZ style data}}{} +& style to override the \texttt{fold} style when folding roots together on the left half of a Dynkin diagram \\ +\optionLabel{rightFold/.style}{\typ{TikZ style data}}{} +& style to override the \texttt{fold} style when folding roots together on the right half of a Dynkin diagram \\ +\optionLabel{doubleEdges}{\typ{}}{not set} +& set to override the \texttt{fold} style when folding roots together in a Dynkin diagram, so that the foldings +are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows). \\ +\optionLabel{doubleFold}{\typ{}}{not set} +& set to override the \texttt{fold} style when folding roots together in a Dynkin diagram, so that the foldings +are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows), but filled in solidly. \\ +\optionLabel{doubleLeft}{\typ{}}{not set} +& set to override the \texttt{fold} style when folding roots together at the left side of a Dynkin diagram, so that the foldings are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows). \\ +\optionLabel{doubleFoldLeft}{\typ{}}{not set} +& set to override the \texttt{fold} style when folding roots together at the left side of a Dynkin diagram, so that the foldings are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows), but filled in solidly. \\ +\optionLabel{doubleRight}{\typ{}}{not set} +& set to override the \texttt{fold} style when folding roots together at the right side of a Dynkin diagram, so that the foldings are indicated with double edges (like those of an \(F_4\) Dynkin diagram without arrows). \\ +\optionLabel{doubleFoldRight}{\typ{}}{not set} +& 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{Coxeter}{\typ{true or false}}{false} +& whether to draw a Coxeter diagram, rather than a Dynkin diagram. \\ +\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}. \\ +\end{longtable} +\par\noindent{}All other options are passed to TikZ. -Always draw roots after edges. \nocite{*} \bibliographystyle{amsplain} |