summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-08-30 19:37:17 +0000
committerKarl Berry <karl@freefriends.org>2018-08-30 19:37:17 +0000
commitabc9ed45a0d2c3a799e4a66f9426b25c6ff3c9d1 (patch)
treedac5d06102a18ed81e818b4a85835a4aab3ba9c7
parentd4cf033feb056550f3e87f9a1cdf8c993df4e4f8 (diff)
rank-2-roots (30aug18)
git-svn-id: svn://tug.org/texlive/trunk@48515 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/rank-2-roots/README18
-rw-r--r--Master/texmf-dist/doc/latex/rank-2-roots/rank-2-roots.bib451
-rw-r--r--Master/texmf-dist/doc/latex/rank-2-roots/rank-2-roots.pdfbin0 -> 396098 bytes
-rw-r--r--Master/texmf-dist/doc/latex/rank-2-roots/rank-2-roots.tex1243
-rw-r--r--Master/texmf-dist/tex/latex/rank-2-roots/rank-2-roots.sty762
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rw-r--r--Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/rank-2-roots.tlpsrc0
8 files changed, 2476 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/rank-2-roots/README b/Master/texmf-dist/doc/latex/rank-2-roots/README
new file mode 100644
index 00000000000..66d307c0010
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/rank-2-roots/README
@@ -0,0 +1,18 @@
+___________________________________
+
+ Rank 2 roots
+
+ v1.0
+
+ 30 August 2018
+___________________________________
+
+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
+
+----------------------------------------------------------------------
+
+For mathematicians. Draws rank 2 root systems, with Weyl chambers, weight lattices, and parabolic subgroups.
diff --git a/Master/texmf-dist/doc/latex/rank-2-roots/rank-2-roots.bib b/Master/texmf-dist/doc/latex/rank-2-roots/rank-2-roots.bib
new file mode 100644
index 00000000000..38a25a6466e
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/rank-2-roots/rank-2-roots.bib
@@ -0,0 +1,451 @@
+% Encoding: ISO-8859-1
+
+
+@Book{Adams:1996,
+ Title = {Lectures on exceptional {L}ie groups},
+ Author = {Adams, J. F.},
+ Publisher = {University of Chicago Press, Chicago, IL},
+ Year = {1996},
+ Note = {With a foreword by J. Peter May,
+ Edited by Zafer Mahmud and Mamoru Mimura},
+ Series = {Chicago Lectures in Mathematics},
+
+ ISBN = {0-226-00526-7; 0-226-00527-5},
+ Mrclass = {22-01 (22E10)},
+ Mrnumber = {1428422},
+ Mrreviewer = {William M. McGovern},
+ Owner = {user},
+ Pages = {xiv+122},
+ Timestamp = {2018.07.22}
+}
+
+@Article{Baba:2009,
+ Title = {Satake diagrams and restricted root systems of semisimple pseudo-{R}iemannian symmetric spaces},
+ Author = {Baba, Kurando},
+ Journal = {Tokyo J. Math.},
+ Year = {2009},
+ Number = {1},
+ Pages = {127--158},
+ Volume = {32},
+
+ Fjournal = {Tokyo Journal of Mathematics},
+ ISSN = {0387-3870},
+ Mrclass = {17B20 (17B22 53C35)},
+ Mrnumber = {2541161},
+ Mrreviewer = {Oksana S. Yakimova},
+ Owner = {user},
+ Timestamp = {2017.12.04},
+ Url = {https://doi.org/10.3836/tjm/1249648414}
+}
+
+@Book{Bourbaki:2002,
+ Title = {Lie groups and {L}ie algebras. {C}hapters 4--6},
+ Author = {Bourbaki, Nicolas},
+ Publisher = {Springer-Verlag, Berlin},
+ Year = {2002},
+ Note = {Translated from the 1968 French original by Andrew Pressley},
+ Series = {Elements of Mathematics (Berlin)},
+
+ ISBN = {3-540-42650-7},
+ Mrclass = {17-01 (00A05 20E42 20F55 22-01)},
+ Mrnumber = {1890629},
+ Owner = {user},
+ Pages = {xii+300},
+ Timestamp = {2017.11.15},
+ Url = {https://doi.org/10.1007/978-3-540-89394-3}
+}
+
+@Book{Carter:2005,
+ Title = {Lie algebras of finite and affine type},
+ Author = {Carter, R. W.},
+ Publisher = {Cambridge University Press, Cambridge},
+ Year = {2005},
+ Series = {Cambridge Studies in Advanced Mathematics},
+ Volume = {96},
+
+ ISBN = {978-0-521-85138-1; 0-521-85138-6},
+ Mrclass = {17-02 (17B67)},
+ Mrnumber = {2188930},
+ Mrreviewer = {Stephen Slebarski},
+ Owner = {user},
+ Pages = {xviii+632},
+ Timestamp = {2017.11.15},
+ Url = {https://doi.org/10.1017/CBO9780511614910}
+}
+
+@InCollection{Carter:1995,
+ Title = {On the representation theory of the finite groups of {L}ie
+ type over an algebraically closed field of characteristic 0 [
+ {MR}1170353 (93j:20034)]},
+ Author = {Carter, R. W.},
+ Booktitle = {Algebra, {IX}},
+ Publisher = {Springer, Berlin},
+ Year = {1995},
+ Pages = {1--120, 235--239},
+ Series = {Encyclopaedia Math. Sci.},
+ Volume = {77},
+
+ Doi = {10.1007/978-3-662-03235-0_1},
+ Mrclass = {20C33 (20-02 20G05)},
+ Mrnumber = {1392478},
+ Owner = {user},
+ Timestamp = {2018.05.19},
+ Url = {https://doi.org/10.1007/978-3-662-03235-0_1}
+}
+
+@Article{Chuah:2013,
+ Title = {Cartan automorphisms and {V}ogan superdiagrams},
+ Author = {Chuah, Meng-Kiat},
+ Journal = {Math. Z.},
+ Year = {2013},
+ Number = {3-4},
+ Pages = {793--800},
+ Volume = {273},
+
+ Fjournal = {Mathematische Zeitschrift},
+ ISSN = {0025-5874},
+ Mrclass = {17B20 (17B40)},
+ Mrnumber = {3030677},
+ Mrreviewer = {Zi-Xin Hou},
+ Owner = {user},
+ Timestamp = {2017.12.04},
+ Url = {https://doi.org/10.1007/s00209-012-1030-z}
+}
+
+@InCollection{Draper/Guido:2016,
+ Title = {On the real forms of the exceptional {L}ie algebra {$\mathfrak
+ e_6$} and their {S}atake diagrams},
+ Author = {Draper Fontanals, Cristina and Guido, Valerio},
+ Booktitle = {Non-associative and non-commutative algebra and operator
+ theory},
+ Publisher = {Springer, Cham},
+ Year = {2016},
+ Pages = {211--226},
+ Series = {Springer Proc. Math. Stat.},
+ Volume = {160},
+
+ Mrclass = {17B20 (17A75 17B25 17B60)},
+ Mrnumber = {3613831},
+ Mrreviewer = {Alberto Elduque},
+ Owner = {user},
+ Timestamp = {2018.04.30}
+}
+
+@Book{Dynkin:2000,
+ Title = {Selected papers of {E}. {B}. {D}ynkin with commentary},
+ Author = {Dynkin, E. B.},
+ Publisher = {American Mathematical Society, Providence, RI; International Press, Cambridge, MA},
+ Year = {2000},
+ Note = {Edited by A. A. Yushkevich, G. M. Seitz and A. L. Onishchik},
+
+ ISBN = {0-8218-1065-0},
+ Mrclass = {01A75 (60Jxx)},
+ Mrnumber = {1757976},
+ Mrreviewer = {William M. McGovern},
+ Owner = {user},
+ Pages = {xxviii+796},
+ Timestamp = {2017.11.15}
+}
+
+@Article{Dynkin:1952,
+ Title = {Semisimple subalgebras of semisimple {L}ie algebras},
+ Author = {Dynkin, E. B.},
+ Journal = {Mat. Sbornik N.S.},
+ Year = {1952},
+ Note = {Reprinted in English translation in \cite{Dynkin:2000}.},
+ Pages = {349--462 (3 plates)},
+ Volume = {30(72)},
+
+ Mrclass = {09.1X},
+ Mrnumber = {0047629},
+ Mrreviewer = {I. Kaplansky},
+ Owner = {user},
+ Timestamp = {2017.11.15}
+}
+
+@Article{Frappat/Sciarrino/Sorba:1989,
+ Title = {Structure of basic {L}ie superalgebras and of their affine extensions},
+ Author = {Frappat, L. and Sciarrino, A. and Sorba, P.},
+ Journal = {Comm. Math. Phys.},
+ Year = {1989},
+ Number = {3},
+ Pages = {457--500},
+ Volume = {121},
+
+ Fjournal = {Communications in Mathematical Physics},
+ ISSN = {0010-3616},
+ Mrclass = {17B70 (17A70 17B40)},
+ Mrnumber = {990776},
+ Mrreviewer = {A. Pianzola},
+ Owner = {user},
+ Timestamp = {2017.12.18},
+ Url = {http://0-projecteuclid.org.library.ucc.ie/euclid.cmp/1104178142}
+}
+
+@Book{Grove/Benson:1985,
+ Title = {Finite reflection groups},
+ Author = {Grove, L. C. and Benson, C. T.},
+ Publisher = {Springer-Verlag, New York},
+ Year = {1985},
+ Edition = {Second},
+ Series = {Graduate Texts in Mathematics},
+ Volume = {99},
+
+ ISBN = {0-387-96082-1},
+ Mrclass = {20-01 (20B25 20H15)},
+ Mrnumber = {777684},
+ Owner = {user},
+ Pages = {x+133},
+ Timestamp = {2017.11.15},
+ Url = {https://doi.org/10.1007/978-1-4757-1869-0}
+}
+
+@Book{Helgason:2001,
+ Title = {Differential geometry, {L}ie groups, and symmetric spaces},
+ Author = {Helgason, Sigurdur},
+ Publisher = {American Mathematical Society, Providence, RI},
+ Year = {2001},
+ Note = {Corrected reprint of the 1978 original},
+ Series = {Graduate Studies in Mathematics},
+ Volume = {34},
+
+ ISBN = {0-8218-2848-7},
+ Mrclass = {53C35 (22E10 22E46 22E60)},
+ Mrnumber = {1834454},
+ Owner = {user},
+ Pages = {xxvi+641},
+ Timestamp = {2017.11.15},
+ Url = {https://doi.org/10.1090/gsm/034}
+}
+
+@Book{Humphreys:1990,
+ Title = {Reflection groups and {C}oxeter groups},
+ Author = {Humphreys, James E.},
+ Publisher = {Cambridge University Press, Cambridge},
+ Year = {1990},
+ Series = {Cambridge Studies in Advanced Mathematics},
+ Volume = {29},
+
+ ISBN = {0-521-37510-X},
+ Mrclass = {20-02 (20F32 20F55 20G15 20H15)},
+ Mrnumber = {1066460},
+ Mrreviewer = {Louis Solomon},
+ Owner = {user},
+ Pages = {xii+204},
+ Timestamp = {2017.11.15},
+ Url = {https://doi.org/10.1017/CBO9780511623646}
+}
+
+@Book{Kac:1990,
+ Title = {Infinite-dimensional {L}ie algebras},
+ Author = {Kac, Victor G.},
+ Publisher = {Cambridge University Press, Cambridge},
+ Year = {1990},
+ Edition = {Third},
+
+ ISBN = {0-521-37215-1; 0-521-46693-8},
+ Mrclass = {17B65 (17B67 17B68 58F07)},
+ Mrnumber = {1104219},
+ Owner = {user},
+ Pages = {xxii+400},
+ Timestamp = {2017.11.15},
+ Url = {https://doi.org/10.1017/CBO9780511626234}
+}
+
+@Article{Khastgir/Sasaki:1996,
+ Title = {Non-canonical folding of {D}ynkin diagrams and reduction of affine {T}oda theories},
+ Author = {Khastgir, S. Pratik and Sasaki, Ryu},
+ Journal = {Progr. Theoret. Phys.},
+ Year = {1996},
+ Number = {3},
+ Pages = {503--518},
+ Volume = {95},
+
+ Fjournal = {Progress of Theoretical Physics},
+ ISSN = {0033-068X},
+ Mrclass = {81T10 (17B81 58F07 81R10)},
+ Mrnumber = {1388245},
+ Mrreviewer = {Mehmet Koca},
+ Owner = {user},
+ Timestamp = {2017.12.18},
+ Url = {https://doi.org/10.1143/PTP.95.503}
+}
+
+@Book{OnishchikVinberg:1990,
+ Title = {Lie groups and algebraic groups},
+ Author = {Onishchik, A. L. and Vinberg, {\`E}. B.},
+ Publisher = {Springer-Verlag},
+ Year = {1990},
+
+ Address = {Berlin},
+ Note = {Translated from the Russian and with a preface by D. A. Leites},
+ Series = {Springer Series in Soviet Mathematics},
+
+ ISBN = {3-540-50614-4},
+ Mrclass = {22-01 (17B20 20G20 22E10 22E15)},
+ Mrnumber = {91g:22001},
+ Mrreviewer = {James E. Humphreys},
+ Owner = {user},
+ Pages = {xx+328},
+ Timestamp = {2017.11.15}
+}
+
+@Book{Onishchik/Vinberg:1990,
+ Title = {Lie groups and algebraic groups},
+ Author = {Onishchik, A. L. and Vinberg, \`E. B.},
+ Publisher = {Springer-Verlag, Berlin},
+ Year = {1990},
+ Note = {Translated from the Russian and with a preface by D. A. Leites},
+ Series = {Springer Series in Soviet Mathematics},
+
+ ISBN = {3-540-50614-4},
+ Mrclass = {22-01 (17B20 20G20 22E10 22E15)},
+ Mrnumber = {1064110},
+ Mrreviewer = {James E. Humphreys},
+ Owner = {user},
+ Pages = {xx+328},
+ Timestamp = {2017.11.15},
+ Url = {https://doi.org/10.1007/978-3-642-74334-4}
+}
+
+@Article{Ransingh:2013,
+ Title = {Vogan diagrams of untwisted affine {K}ac-{M}oody superalgebras},
+ Author = {Ransingh, Biswajit},
+ Journal = {Asian-Eur. J. Math.},
+ Year = {2013},
+ Number = {4},
+ Pages = {1350062, 10},
+ Volume = {6},
+
+ Fjournal = {Asian-European Journal of Mathematics},
+ ISSN = {1793-5571},
+ Mrclass = {17B67 (17B05 17B22 17B40)},
+ Mrnumber = {3149279},
+ Mrreviewer = {Xiangqian Guo},
+ Owner = {user},
+ Timestamp = {2018.01.11}
+}
+
+@Article{Ransingh:unpub,
+ Title = {{Vogan diagrams of affine twisted Lie superalgebras}},
+ Author = {Ransingh, B.},
+ Journal = {ArXiv e-prints},
+ Year = {2013},
+
+ Month = mar,
+ Pages = {1--9},
+
+ Adsnote = {Provided by the SAO/NASA Astrophysics Data System},
+ Adsurl = {http://adsabs.harvard.edu/abs/2013arXiv1303.0092R},
+ Archiveprefix = {arXiv},
+ Eprint = {1303.0092},
+ Keywords = {Mathematical Physics, Mathematics - Representation Theory},
+ Owner = {user},
+ Primaryclass = {math-ph},
+ Timestamp = {2018.01.11}
+}
+
+@Article{Regelskis/Vlaar:2016,
+ Title = {{Reflection matrices, coideal subalgebras and generalized Satake diagrams of affine type}},
+ Author = {{Regelskis}, V. and {Vlaar}, B.},
+ Journal = {ArXiv e-prints},
+ Year = {2016},
+
+ Month = feb,
+ Pages = {1--118},
+
+ Adsnote = {Provided by the SAO/NASA Astrophysics Data System},
+ Adsurl = {http://adsabs.harvard.edu/abs/2016arXiv160208471R},
+ Archiveprefix = {arXiv},
+ Eprint = {1602.08471},
+ Keywords = {Mathematical Physics, Mathematics - Quantum Algebra, Mathematics - Representation Theory, Nonlinear Sciences - Exactly Solvable and Integrable Systems},
+ Owner = {user},
+ Primaryclass = {math-ph},
+ Timestamp = {2017.12.04}
+}
+
+@Book{Satake:1980,
+ Title = {Algebraic structures of symmetric domains},
+ Author = {Satake, Ichir\^o},
+ Publisher = {Iwanami Shoten, Tokyo; Princeton University Press, Princeton, N.J.},
+ Year = {1980},
+ Series = {Kan\^o Memorial Lectures},
+ Volume = {4},
+
+ Mrclass = {32-02 (17C35 32Mxx 53C35)},
+ Mrnumber = {591460},
+ Mrreviewer = {S. Murakami},
+ Owner = {user},
+ Pages = {xvi+321},
+ Timestamp = {2017.11.15}
+}
+
+@Book{Springer:2009,
+ Title = {Linear algebraic groups},
+ Author = {Springer, T. A.},
+ Publisher = {Birkh\"auser Boston, Inc., Boston, MA},
+ Year = {2009},
+ Edition = {second},
+ Series = {Modern Birkh\"auser Classics},
+
+ ISBN = {978-0-8176-4839-8},
+ Mrclass = {20G15 (14L10)},
+ Mrnumber = {2458469},
+ Owner = {user},
+ Pages = {xvi+334},
+ Timestamp = {2018.03.31}
+}
+
+@InCollection{Zuber:1998,
+ Title = {Generalized {D}ynkin diagrams and root systems and their folding},
+ Author = {Zuber, Jean-Bernard},
+ Booktitle = {Topological field theory, primitive forms and related topics ({K}yoto, 1996)},
+ Publisher = {Birkh\"auser Boston, Boston, MA},
+ Year = {1998},
+ Pages = {453--493},
+ Series = {Progr. Math.},
+ Volume = {160},
+
+ Mrclass = {17B20 (05C25 20F55)},
+ Mrnumber = {1653035},
+ Mrreviewer = {Saeid Azam},
+ Owner = {user},
+ Timestamp = {2017.12.18}
+}
+
+@Book{Vinberg:1994,
+ Title = {Lie groups and {L}ie algebras, {III}},
+ Editor = {Vinberg, \`E. B.},
+ Publisher = {Springer-Verlag, Berlin},
+ Year = {1994},
+ Note = {Structure of Lie groups and Lie algebras, A translation of {{\i}t Current problems in mathematics. Fundamental directions. Vol. 41} (Russian), Akad. Nauk SSSR, Vsesoyuz. Inst. Nauchn. i Tekhn. Inform., Moscow, 1990 [ MR1056485 (91b:22001)], Translation by V. Minachin [V. V. Minakhin], Translation edited by A. L. Onishchik and \`E. B. Vinberg},
+ Series = {Encyclopaedia of Mathematical Sciences},
+ Volume = {41},
+
+ ISBN = {3-540-54683-9},
+ Mrclass = {22-06 (17-06 22Exx)},
+ Mrnumber = {1349140},
+ Owner = {user},
+ Pages = {iv+248},
+ Timestamp = {2017.11.15},
+ Url = {https://doi.org/10.1007/978-3-662-03066-0}
+}
+
+@Book{Fulton.Harris:1991,
+ title = {Representation theory},
+ publisher = {Springer-Verlag, New York},
+ year = {1991},
+ author = {Fulton, William and Harris, Joe},
+ volume = {129},
+ series = {Graduate Texts in Mathematics},
+ isbn = {0-387-97527-6; 0-387-97495-4},
+ note = {A first course, Readings in Mathematics},
+ doi = {10.1007/978-1-4612-0979-9},
+ mrclass = {20G05 (17B10 20G20 22E46)},
+ mrnumber = {1153249},
+ mrreviewer = {James E. Humphreys},
+ pages = {xvi+551},
+ url = {https://doi.org/10.1007/978-1-4612-0979-9},
+}
+
+@Comment{jabref-meta: databaseType:bibtex;}
diff --git a/Master/texmf-dist/doc/latex/rank-2-roots/rank-2-roots.pdf b/Master/texmf-dist/doc/latex/rank-2-roots/rank-2-roots.pdf
new file mode 100644
index 00000000000..b152c8360e3
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/rank-2-roots/rank-2-roots.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/rank-2-roots/rank-2-roots.tex b/Master/texmf-dist/doc/latex/rank-2-roots/rank-2-roots.tex
new file mode 100644
index 00000000000..742682aecef
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/rank-2-roots/rank-2-roots.tex
@@ -0,0 +1,1243 @@
+\documentclass{amsart}
+\usepackage{etex}
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenx}
+
+\title{The Rank 2 Roots Package \\ Version 1.0}
+\author{Ben McKay}
+\date{30 August 2018}
+
+\usepackage{etoolbox}
+\usepackage{lmodern}
+\usepackage[kerning=true,tracking=true]{microtype}
+\usepackage{amsmath}
+\usepackage{amsfonts}
+\usepackage{array}
+\usepackage{xparse}
+\usepackage{xstring}
+\usepackage{longtable}
+\usepackage{rank-2-roots}
+\usepackage{tikz}
+\usepackage[listings]{tcolorbox}
+\tcbuselibrary{breakable}
+\tcbuselibrary{skins}
+\definecolor{example-color}{gray}{.85}
+\definecolor{example-border-color}{gray}{.7}
+\tcbset{coltitle=black,colback=white,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}}
+\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{decorations.markings}
+\usetikzlibrary{arrows,decorations.pathmorphing,backgrounds,positioning,fit}
+\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
+
+
+
+
+
+\NewDocumentCommand\todo{m}%
+{%
+\textcolor{blue}{\textit{#1}}
+}%
+
+\begin{document}
+\maketitle
+\tableofcontents
+
+\section{Introduction}
+This package concerns mathematical drawings arising in representation theory.
+The purpose of this package is to ease drawing of rank 2 root systems, with Weyl chambers, weight lattices, and parabolic subgroups, mostly imitating the drawings of Fulton and Harris \cite{Fulton.Harris:1991}.
+We use definitions of root systems and weight lattices as in Carter \cite{Carter:2005} p. 540--609.
+
+
+\section{Root systems}
+\NewDocumentCommand\drawroots{m}%
+{%
+\begin{tikzpicture}[baseline=-.5]
+\begin{rootSystem}{#1}
+\roots
+\end{rootSystem}
+\end{tikzpicture}
+}%
+
+\NewDocumentCommand\csdrawroots{m}%
+{%
+\texttt{\detokenize{\begin{tikzpicture}[baseline=-.5]}}%
+\par\noindent%
+\texttt{\detokenize{\begin{rootSystem}}\{#1\}}%
+\par\noindent%
+\texttt{\detokenize{\roots}}%
+\par\noindent%
+\texttt{\detokenize{\end{rootSystem}}}%
+\par\noindent%
+\texttt{\detokenize{\end{tikzpicture}}}%
+}%
+
+\newcommand*\mytablecontents{}
+\foreach \i in {A,B,C,G}{
+ \xappto\mytablecontents{$\i_2$ & \drawroots{\i} & \csdrawroots{\i}
+}
+ \gappto\mytablecontents{\\ \\}
+}
+
+\begin{longtable}{rcm{8cm}}
+\caption{The root systems}\\
+\endfirsthead
+\caption{\dots continued}\\
+\endhead
+\multicolumn{3}{c}{continued \dots}\\
+\endfoot
+\endlastfoot
+\mytablecontents
+\end{longtable}
+
+
+\section{Weights}
+Type \verb!\wt{x}{y}! to get a weight at position \((x,y)\) (as measured in a basis of \emph{fundamental weights}).
+Type \verb!\wt[multiplicity=n]{x}{y}! to get multiplicity \(m\).
+Add an option: \verb!\wt[Z]{x}{y}{m}! to get \verb!Z! passed to TikZ.
+
+
+\RenewDocumentCommand\drawroots{m}%
+{%
+\begin{tikzpicture}[baseline=-.5]
+\begin{rootSystem}{#1}
+\roots
+\wt[brown]{1}{0}
+\wt[red]{0}{1}
+\wt[multiplicity=4,blue]{1}{3}
+\wt[blue,multiplicity=2]{2}{2}
+\wt[blue]{-1}{3}
+\end{rootSystem}
+\end{tikzpicture}
+}%
+
+\RenewDocumentCommand\csdrawroots{m}%
+{%
+\texttt{\detokenize{\begin{tikzpicture}[baseline=-.5]}}%
+\par\noindent%
+\texttt{\detokenize{\begin{rootSystem}}\{#1\}}%
+\par\noindent%
+\texttt{\detokenize{\roots}}%
+\par\noindent%
+\texttt{\detokenize{\wt[brown]{1}{0}}}%
+\par\noindent%
+\texttt{\detokenize{\wt[red]{0}{1}}}%
+\par\noindent%
+\texttt{\detokenize{\wt[multiplicity=4,blue]{1}{3}}}%
+\par\noindent%
+\texttt{\detokenize{\wt[blue,multiplicity=2]{2}{2}}}%
+\par\noindent%
+\texttt{\detokenize{\wt[blue]{-1}{3}}}%
+\par\noindent%
+\texttt{\detokenize{\end{rootSystem}}}%
+\par\noindent%
+\texttt{\detokenize{\end{tikzpicture}}}%
+}%
+
+\renewcommand*\mytablecontents{}
+\foreach \i in {A,B,C,G}{
+ \xappto\mytablecontents{$\i_2$ & \drawroots{\i} & \csdrawroots{\i}
+}
+ \gappto\mytablecontents{\\ \\}
+}
+
+\begin{longtable}{rcm{8cm}}
+\caption{Some weights drawn with multiplicities}\\
+\endfirsthead
+\caption{\dots continued}\\
+\endhead
+\multicolumn{3}{c}{continued \dots}\\
+\endfoot
+\endlastfoot
+\mytablecontents
+\end{longtable}
+
+
+
+
+\RenewDocumentCommand\drawroots{m}%
+{%
+\begin{tikzpicture}[baseline=-.5]
+\begin{rootSystem}{#1}
+\roots
+\wt[multiplicity=2,root]{0}{0}
+\end{rootSystem}
+\end{tikzpicture}
+}%
+
+\RenewDocumentCommand\csdrawroots{m}%
+{%
+\texttt{\detokenize{\begin{tikzpicture}[baseline=-.5]}}%
+\par\noindent%
+\texttt{\detokenize{\begin{rootSystem}}\{#1\}}%
+\par\noindent%
+\texttt{\detokenize{\roots}}%
+\par\noindent%
+\texttt{\detokenize{\wt[multiplicity=2,root]{0}{0}}}%
+\par\noindent%
+\texttt{\detokenize{\end{rootSystem}}}%
+\par\noindent%
+\texttt{\detokenize{\end{tikzpicture}}}%
+}%
+
+\renewcommand*\mytablecontents{}
+\foreach \i in {A,B,C,G}{
+ \xappto\mytablecontents{$\i_2$ & \drawroots{\i} & \csdrawroots{\i}
+}
+ \gappto\mytablecontents{\\ \\}
+}
+
+\begin{longtable}{rcm{8cm}}
+\caption{The root systems with all multiplicities of the adjoint representation, like Fulton and Harris}\\
+\endfirsthead
+\caption{\dots continued}\\
+\endhead
+\multicolumn{3}{c}{continued \dots}\\
+\endfoot
+\endlastfoot
+\mytablecontents
+\end{longtable}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\RenewDocumentCommand\drawroots{m}%
+{%
+\begin{tikzpicture}[baseline=-.5]
+\begin{rootSystem}{#1}
+\roots
+\WeylChamber
+\end{rootSystem}
+\end{tikzpicture}
+}%
+
+\RenewDocumentCommand\csdrawroots{m}%
+{%
+\texttt{\detokenize{\begin{tikzpicture}[baseline=-.5]}}%
+\par\noindent%
+\texttt{\detokenize{\begin{rootSystem}}\{#1\}}%
+\par\noindent%
+\texttt{\detokenize{\roots}}%
+\par\noindent%
+\texttt{\detokenize{\WeylChamber}}%
+\par\noindent%
+\texttt{\detokenize{\end{rootSystem}}}%
+\par\noindent%
+\texttt{\detokenize{\end{tikzpicture}}}%
+}%
+
+\renewcommand*\mytablecontents{}
+\foreach \i in {A,B,C,G}{
+ \xappto\mytablecontents{$\i_2$ & \drawroots{\i} & \csdrawroots{\i}
+}
+ \gappto\mytablecontents{\\ \\}
+}
+
+\begin{longtable}{rcm{8cm}}
+\caption{Weyl chambers}\\
+\endfirsthead
+\caption{\dots continued}\\
+\endhead
+\multicolumn{3}{c}{continued \dots}\\
+\endfoot
+\endlastfoot
+\mytablecontents
+\end{longtable}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\section{Parabolic subgroups}
+
+\RenewDocumentCommand\drawroots{m}%
+{%
+\begin{tikzpicture}[baseline=-.5]
+\begin{rootSystem}{#1}
+\roots
+\positiveRootHyperplane
+\end{rootSystem}
+\end{tikzpicture}
+}%
+
+\RenewDocumentCommand\csdrawroots{m}%
+{%
+\texttt{\detokenize{\begin{tikzpicture}[baseline=-.5]}}%
+\par\noindent%
+\texttt{\detokenize{\begin{rootSystem}}\{#1\}}%
+\par\noindent%
+\texttt{\detokenize{\roots}}%
+\par\noindent%
+\texttt{\detokenize{\positiveRootHyperplane}}%
+\par\noindent%
+\texttt{\detokenize{\end{rootSystem}}}%
+\par\noindent%
+\texttt{\detokenize{\end{tikzpicture}}}%
+}%
+
+\renewcommand*\mytablecontents{}
+\foreach \i in {A,B,C,G}{
+ \xappto\mytablecontents{$\i_2$ & \drawroots{\i} & \csdrawroots{\i}
+}
+ \gappto\mytablecontents{\\ \\}
+}
+
+\begin{longtable}{rcm{8cm}}
+\caption{The positive root hyperplane}\\
+\endfirsthead
+\caption{\dots continued}\\
+\endhead
+\multicolumn{3}{c}{continued \dots}\\
+\endfoot
+\endlastfoot
+\mytablecontents
+\end{longtable}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\RenewDocumentCommand\drawroots{mm}%
+{%
+\begin{tikzpicture}[baseline=-.5]
+\begin{rootSystem}{#1}
+\roots
+\parabolic{#2}
+\end{rootSystem}
+\end{tikzpicture}
+}%
+
+\RenewDocumentCommand\csdrawroots{mm}%
+{%
+\texttt{\detokenize{\begin{tikzpicture}[baseline=-.5]}}%
+\par\noindent%
+\texttt{\detokenize{\begin{rootSystem}}\{#1\}}%
+\par\noindent%
+\texttt{\detokenize{\roots}}%
+\par\noindent%
+\texttt{\detokenize{\parabolic}\{#2\}}%
+\par\noindent%
+\texttt{\detokenize{\end{rootSystem}}}%
+\par\noindent%
+\texttt{\detokenize{\end{tikzpicture}}}%
+}%
+
+\renewcommand*\mytablecontents{}
+\foreach \i in {A,B,C,G}{
+ \foreach \j in {1,2,3}{
+ \xappto\mytablecontents{$\i_{2,\j}$ & \drawroots{\i}{\j} & \csdrawroots{\i}{\j}
+ }
+ \gappto\mytablecontents{\\ \\}
+}
+}
+
+\begin{longtable}{rcm{8cm}}
+\caption{Parabolic subgroups. Each set of roots is assigned a number, with each binary digit zero or one to say whether the corresponding root is crossed or not: \(A_{5,37}\) means the parabolic subgroup of \(A_5\) so that the binary digits of \(37=2^5+2^2+2^0\) give us roots \(0,2,5\) in Bourbaki ordering being compact roots, i.e. having the root vectors of both that root and its negative inside the parabolic subgroup. }\\
+\endfirsthead
+\caption{\dots continued}\\
+\endhead
+\multicolumn{3}{c}{continued \dots}\\
+\endfoot
+\endlastfoot
+\mytablecontents
+\end{longtable}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\RenewDocumentCommand\drawroots{mm}%
+{%
+\begin{tikzpicture}[baseline=-.5]
+\begin{rootSystem}{#1}
+\roots
+\parabolic{#2}
+\parabolicgrading
+\end{rootSystem}
+\end{tikzpicture}
+}%
+
+\RenewDocumentCommand\csdrawroots{mm}%
+{%
+\texttt{\detokenize{\begin{tikzpicture}[baseline=-.5]}}%
+\par\noindent%
+\texttt{\detokenize{\begin{rootSystem}}\{#1\}}%
+\par\noindent%
+\texttt{\detokenize{\roots}}%
+\par\noindent%
+\texttt{\detokenize{\parabolic}\{#2\}}%
+\par\noindent%
+\texttt{\detokenize{\parabolicgrading}}%
+\par\noindent%
+\texttt{\detokenize{\end{rootSystem}}}%
+\par\noindent%
+\texttt{\detokenize{\end{tikzpicture}}}%
+}%
+
+\renewcommand*\mytablecontents{}
+\foreach \i in {A,B,C,G}{
+ \foreach \j in {1,2,3}{
+ \xappto\mytablecontents{$\i_{2,\j}$ & \drawroots{\i}{\j} & \csdrawroots{\i}{\j}
+ }
+ \gappto\mytablecontents{\\ \\}
+}
+}
+
+\begin{longtable}{rcm{8cm}}
+\caption{Parabolic subgroups with grading of the positive roots}\\
+\endfirsthead
+\caption{\dots continued}\\
+\endhead
+\multicolumn{3}{c}{continued \dots}\\
+\endfoot
+\endlastfoot
+\mytablecontents
+\end{longtable}
+
+
+
+
+\NewDocumentCommand{\labelWt}{mmmm}%
+{%
+\node[#1,black] at \weight{#2}{#3} {\(#4\)};
+}%
+
+
+{
+\NewDocumentCommand\labelRoots{}%
+{%
+\labelWt{above right}{0}{0}{0}%
+\labelWt{right}{1}{1}{e_1-e_3}%
+\labelWt{right}{2}{-1}{e_1-e_2}%
+\labelWt{below}{1}{-2}{e_3-e_2}%
+\labelWt{left}{-1}{-1}{e_3-e_1}%
+\labelWt{left}{-2}{1}{e_2-e_1}%
+\labelWt{above}{-1}{2}{e_2-e_3}%
+}%
+\setlength{\weightLength}{1cm}
+\begin{tikzpicture}
+\begin{rootSystem}{A}
+\roots
+\wt{0}{0}
+\labelRoots
+\end{rootSystem}
+\end{tikzpicture}
+}
+
+
+\tikzstyle{weight arrow}=[black,-stealth,shorten <=.25cm,shorten >=.25cm]
+
+{
+\NewDocumentCommand\wa{O{}mm}%
+{%
+\IfStrEq{#1}{0}%
+{%
+\draw[weight arrow] \weight{#2}{#3} -- \weight{#2+1}{#3+1} node[right=-4pt]{\(0\)};%
+}%
+{%
+\draw[weight arrow] \weight{#2}{#3} -- \weight{#2+1}{#3+1};%
+}%
+}%
+\setlength{\weightLength}{.75cm}
+\begin{tikzpicture}
+\begin{rootSystem}{A}
+\setlength{\weightRadius}{1.5pt}
+\roots
+\wt{0}{0}
+\labelWt{above left}{0}{0}{0}
+\labelWt{right}{1}{1}{e_1-e_3}
+\labelWt{right}{2}{-1}{e_1-e_2}
+\labelWt{below}{1}{-2}{e_3-e_2}
+\labelWt{left}{-1}{-1}{e_3-e_1}
+\labelWt{left}{-2}{1}{e_2-e_1}
+\labelWt{above left}{-1}{2}{e_2-e_3}
+\wa{0}{0}
+\wa[0]{1}{1}
+\wa[0]{2}{-1}
+\wa[0]{-1}{2}
+\wa{1}{-2}
+\wa{-1}{-1}
+\wa{-2}{1}
+\end{rootSystem}
+\end{tikzpicture}
+}
+
+
+
+\begin{tcblisting}{title={Drawing the \(A_2\) root system and a weight at the origin. The option \texttt{root} indicates that this weight is to be coloured like a root.}}
+\begin{tikzpicture}
+\begin{rootSystem}{A}
+\roots
+\wt[root]{0}{0}
+\end{rootSystem}
+\end{tikzpicture}
+\end{tcblisting}
+
+
+\begin{tcblisting}{title={Drawing the \(A_2\) root system and a weight at the origin and the positive root hyperplane}}
+\begin{tikzpicture}
+\begin{rootSystem}{A}
+\roots
+\wt[root]{0}{0}
+\positiveRootHyperplane
+\end{rootSystem}
+\end{tikzpicture}
+\end{tcblisting}
+
+
+
+
+\section{Coordinate systems}
+
+The package provides three coordinate systems: hex, square and weight.
+Above we have seen the weight coordinates: a basis of fundamental weights.
+We can also use weight coordinates like
+\[
+\verb!\draw \weight{0}{1} -- \weight{1}{0};!
+\]
+The square system, used like \verb!\draw (square cs:x=1,y=2) circle (2pt);!, is simply the standard Cartesian coordinate system measured so that the minimum distance between weights is one unit.
+The hex coordinate system has basis precisely the fundamental weights of the \(A_2\) lattice.
+We can use the hex system in drawing on the \(A_2\) or \(G_2\) weight lattices, as below, as they are the same lattices.
+
+\begin{tcblisting}{title={Automatic sizing of the weight lattice (the default) \dots}}
+\begin{tikzpicture}
+\begin{rootSystem}{A}
+\wt{0}{0}
+\fill[gray!50,opacity=.2] (hex cs:x=5,y=-7) -- (hex cs:x=1,y=1) -- (hex cs:x=-7,y=5) arc (150:270:{7*\weightLength});
+\draw[black,very thick] (hex cs:x=5,y=-7) -- (hex cs:x=1,y=1) -- (hex cs:x=-7,y=5);
+\node[above right=-2pt] at (hex cs:x=1,y=1) {\small\(\alpha\)};
+\end{rootSystem}
+\end{tikzpicture}
+\end{tcblisting}
+
+\begin{tcblisting}{title={\dots and here with manual sizing, setting the weight lattice to include 3 steps to the right of the origin}}
+\begin{tikzpicture}
+\AutoSizeWeightLatticefalse
+\begin{rootSystem}{A}
+\wt{0}{0}
+\weightLattice{3}
+\fill[gray!50,opacity=.2] (hex cs:x=5,y=-7) -- (hex cs:x=1,y=1) -- (hex cs:x=-7,y=5) arc (150:270:{7*\weightLength});
+\draw[black,very thick] (hex cs:x=5,y=-7) -- (hex cs:x=1,y=1) -- (hex cs:x=-7,y=5);
+\node[above right=-2pt] at (hex cs:x=1,y=1) {\small\(\alpha\)};
+\end{rootSystem}
+\end{tikzpicture}
+\end{tcblisting}
+
+\begin{tcblisting}{title={Fulton and Harris p. 170}}
+\begin{tikzpicture}
+\begin{rootSystem}{A}
+\draw \weight{3}{1} -- \weight{-4}{4.5};
+\foreach \i in {1,...,4}{\wt{5-2*\i}{\i}}
+\node[above right=-2pt] at (hex cs:x=3,y=1){\small\(\alpha\)};
+\end{rootSystem}
+\end{tikzpicture}
+\end{tcblisting}
+
+
+
+
+
+\begin{tcblisting}{title={Automatic sizing of the weight lattice (the default) \dots}}
+\begin{tikzpicture}
+\begin{rootSystem}{A}
+\setlength{\weightRadius}{2pt}
+\draw \weight{3}{1} -- \weight{-3}{4};
+\draw \weight{3}{1} -- \weight{4}{-1};
+\wt{4}{-1}
+\foreach \i in {1,...,4}{\wt{5-2*\i}{\i}}
+\node[above right=-2pt] at (hex cs:x=3,y=1){\small\(\alpha\)};
+\draw[very thick] \weight{0}{-4} -- \weight{0}{4.5} node[above]{\small\(\left<H_{12},L\right>=0\)};
+\draw[very thick] \weight{-4}{0} -- \weight{4.5}{0} node[right]{\small\(\left<H_{23},L\right>=0\)};
+\end{rootSystem}
+\end{tikzpicture}
+\end{tcblisting}
+
+
+\begin{tcblisting}{title={\dots and manual sizing}}
+\begin{tikzpicture}
+\AutoSizeWeightLatticefalse
+\begin{rootSystem}{A}
+\setlength{\weightRadius}{2pt}
+\weightLattice{4}
+\draw \weight{3}{1} -- \weight{-3}{4};
+\draw \weight{3}{1} -- \weight{4}{-1};
+\wt{4}{-1}
+\foreach \i in {1,...,4}{\wt{5-2*\i}{\i}}
+\node[above right=-2pt] at (hex cs:x=3,y=1){\small\(\alpha\)};
+\draw[very thick] \weight{0}{-4} -- \weight{0}{4.5} node[above]{\small\(\left<H_{12},L\right>=0\)};
+\draw[very thick] \weight{-4}{0} -- \weight{4.5}{0} node[right]{\small\(\left<H_{23},L\right>=0\)};
+\end{rootSystem}
+\end{tikzpicture}
+\end{tcblisting}
+
+\begin{tcblisting}{}
+\begin{tikzpicture}
+\AutoSizeWeightLatticefalse
+\begin{rootSystem}{A}
+\setlength{\weightRadius}{2pt}
+\weightLattice{4}
+\draw \weight{3}{1} -- \weight{-3}{4};
+\draw \weight{3}{1} -- \weight{4}{-1};
+\draw \weight{-3}{4} -- \weight{-4}{3};
+\wt{4}{-1}
+\wt{-4}{3}
+\foreach \i in {1,...,4}{\wt{5-2*\i}{\i}}
+\node[above right=-2pt] at (hex cs:x=3,y=1){\small\(\alpha\)};
+\draw[very thick] \weight{0}{-4} -- \weight{0}{4.5} node[above]{\small\(\left<H_{12},L\right>=0\)};
+\draw[very thick] \weight{-4}{0} -- \weight{4.5}{0} node[right]{\small\(\left<H_{23},L\right>=0\)};
+\draw[very thick] \weight{4}{-4} -- \weight{-4.5}{4.5} node[above]{\small\(\left<H_{13},L\right>=0\)};
+\end{rootSystem}
+\end{tikzpicture}
+\end{tcblisting}
+
+
+\begin{tcblisting}{}
+\setlength{\weightRadius}{2pt}
+\setlength\weightLength{.75cm}
+\begin{tikzpicture}
+\begin{rootSystem}{A}
+\foreach \x/\y in {1/0, -1/1, 0/-1, -2/0, 0/2, 2/-2}{\wt{\x}{\y}}
+\node[above] at \weight{1}{0} {\small\(L_1\)};
+\node[above] at \weight{-1}{1} {\small\(L_2\)};
+\node[above] at \weight{0}{-1} {\small\(L_3\)};
+\end{rootSystem}
+\end{tikzpicture}
+\end{tcblisting}
+
+\begin{tcblisting}{title={Changing the weight length rescales}}
+\begin{tikzpicture}
+\setlength\weightLength{.3cm}
+\begin{rootSystem}{A}
+\wt[multiplicity=2]{0}{0}
+\foreach \x/\y in {1/1, 2/-1, 1/-2, -1/-1, -2/1, -1/2}{\wt{\x}{\y}}
+\end{rootSystem}
+\end{tikzpicture}
+\end{tcblisting}
+
+\begin{tcblisting}{}
+\begin{tikzpicture}
+\setlength\weightLength{.3cm}
+\begin{rootSystem}{A}
+\foreach \x/\y in {0/0, 3/0, 2/-1, 1/-2, 0/-3, 1/1, -1/-1, -1/2, -2/1, -3/3}{\wt{\x}{\y}}
+\end{rootSystem}
+\end{tikzpicture}
+\end{tcblisting}
+
+\begin{tcblisting}{}
+\begin{tikzpicture}
+\setlength\weightLength{.3cm}
+\begin{rootSystem}{A}
+\foreach \x/\y in {0/0, -3/0, 2/-1, 1/-2, 3/-3, 1/1, -1/-1, -1/2, -2/1, 0/3}{\wt{\x}{\y}}
+\end{rootSystem}
+\end{tikzpicture}
+\end{tcblisting}
+
+\begin{tcblisting}{title={We use a basis of fundamental weights, as given in Carter's book \cite{Carter:2005} p. 540--609}}
+\begin{tikzpicture}
+\begin{rootSystem}{B}
+\roots
+\draw[green!50!black,very thick] \weight{0}{1} -- \weight{1}{0};
+\weightLattice{3}
+\wt[blue]{1}{0}{1}
+\wt[red]{0}{1}{1}
+\end{rootSystem}
+\end{tikzpicture}
+\end{tcblisting}
+
+
+
+
+
+
+Without automatic stretching of the weight lattice to fit the picture, you won't see the weight lattice at all unless you ask for it.
+
+\AutoSizeWeightLatticefalse
+
+
+
+
+
+
+\RenewDocumentCommand\drawroots{m}%
+{%
+\begin{tikzpicture}[baseline=-.5]
+\begin{rootSystem}{#1}
+\roots
+\end{rootSystem}
+\end{tikzpicture}
+}%
+
+\RenewDocumentCommand\csdrawroots{m}%
+{%
+\texttt{\detokenize{\begin{tikzpicture}[baseline=-.5]}}%
+\par\noindent%
+\texttt{\detokenize{\begin{rootSystem}}\{#1\}}%
+\par\noindent%
+\texttt{\detokenize{\roots}}%
+\par\noindent%
+\texttt{\detokenize{\end{rootSystem}}}%
+\par\noindent%
+\texttt{\detokenize{\end{tikzpicture}}}%
+}%
+
+\renewcommand*\mytablecontents{}
+\foreach \i in {A,B,C,G}{
+ \xappto\mytablecontents{$\i_2$ & \drawroots{\i} & \csdrawroots{\i}
+}
+ \gappto\mytablecontents{\\ \\}
+}
+
+\begin{longtable}{rcm{8cm}}
+\caption{The root systems}\\
+\endfirsthead
+\caption{\dots continued}\\
+\endhead
+\multicolumn{3}{c}{continued \dots}\\
+\endfoot
+\endlastfoot
+\mytablecontents
+\end{longtable}
+
+
+
+
+Type \verb!\wt{x}{y}{m}! to get a weight at position \((x,y)\) (as measured in a basis of \emph{fundamental weights}) with multiplicity \(m\).
+Add an option: \verb!\wt[Z]{x}{y}{m}! to get \verb!Z! passed to TikZ.
+
+
+\RenewDocumentCommand\drawroots{m}%
+{%
+\begin{tikzpicture}[baseline=-.5]
+\begin{rootSystem}{#1}
+\roots
+\wt[brown]{1}{0}{1}
+\wt[red]{0}{1}{1}
+\wt[blue]{1}{3}{4}
+\wt[blue]{2}{2}{2}
+\wt[blue]{-1}{3}{1}
+\end{rootSystem}
+\end{tikzpicture}
+}%
+
+\RenewDocumentCommand\csdrawroots{m}%
+{%
+\texttt{\detokenize{\begin{tikzpicture}[baseline=-.5]}}%
+\par\noindent%
+\texttt{\detokenize{\begin{rootSystem}}\{#1\}}%
+\par\noindent%
+\texttt{\detokenize{\roots}}%
+\par\noindent%
+\texttt{\detokenize{\wt[brown]{1}{0}{1}}}%
+\par\noindent%
+\texttt{\detokenize{\wt[red]{0}{1}{1}}}%
+\par\noindent%
+\texttt{\detokenize{\wt[blue]{1}{3}{4}}}%
+\par\noindent%
+\texttt{\detokenize{\wt[blue]{2}{2}{2}}}%
+\par\noindent%
+\texttt{\detokenize{\wt[blue]{-1}{3}{1}}}%
+\par\noindent%
+\texttt{\detokenize{\end{rootSystem}}}%
+\par\noindent%
+\texttt{\detokenize{\end{tikzpicture}}}%
+}%
+
+\renewcommand*\mytablecontents{}
+\foreach \i in {A,B,C,G}{
+ \xappto\mytablecontents{$\i_2$ & \drawroots{\i} & \csdrawroots{\i}
+}
+ \gappto\mytablecontents{\\ \\}
+}
+
+\begin{longtable}{rcm{8cm}}
+\caption{Some weights drawn with multiplicities}\\
+\endfirsthead
+\caption{\dots continued}\\
+\endhead
+\multicolumn{3}{c}{continued \dots}\\
+\endfoot
+\endlastfoot
+\mytablecontents
+\end{longtable}
+
+
+
+
+\RenewDocumentCommand\drawroots{m}%
+{%
+\begin{tikzpicture}[baseline=-.5]
+\begin{rootSystem}{#1}
+\roots
+\wt[multiplicity=2]{0}{0}
+\end{rootSystem}
+\end{tikzpicture}
+}%
+
+\RenewDocumentCommand\csdrawroots{m}%
+{%
+\texttt{\detokenize{\begin{tikzpicture}[baseline=-.5]}}%
+\par\noindent%
+\texttt{\detokenize{\begin{rootSystem}}\{#1\}}%
+\par\noindent%
+\texttt{\detokenize{\roots}}%
+\par\noindent%
+\texttt{\detokenize{\wt[multiplicity=2]{0}{0}}}%
+\par\noindent%
+\texttt{\detokenize{\end{rootSystem}}}%
+\par\noindent%
+\texttt{\detokenize{\end{tikzpicture}}}%
+}%
+
+\renewcommand*\mytablecontents{}
+\foreach \i in {A,B,C,G}{
+ \xappto\mytablecontents{$\i_2$ & \drawroots{\i} & \csdrawroots{\i}
+}
+ \gappto\mytablecontents{\\ \\}
+}
+
+\begin{longtable}{rcm{8cm}}
+\caption{The root systems with all multiplicities of the adjoint representation, like Fulton and Harris}\\
+\endfirsthead
+\caption{\dots continued}\\
+\endhead
+\multicolumn{3}{c}{continued \dots}\\
+\endfoot
+\endlastfoot
+\mytablecontents
+\end{longtable}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\RenewDocumentCommand\drawroots{m}%
+{%
+\begin{tikzpicture}[baseline=-.5]
+\begin{rootSystem}{#1}
+\roots
+\WeylChamber
+\end{rootSystem}
+\end{tikzpicture}
+}%
+
+\RenewDocumentCommand\csdrawroots{m}%
+{%
+\texttt{\detokenize{\begin{tikzpicture}[baseline=-.5]}}%
+\par\noindent%
+\texttt{\detokenize{\begin{rootSystem}}\{#1\}}%
+\par\noindent%
+\texttt{\detokenize{\roots}}%
+\par\noindent%
+\texttt{\detokenize{\WeylChamber}}%
+\par\noindent%
+\texttt{\detokenize{\end{rootSystem}}}%
+\par\noindent%
+\texttt{\detokenize{\end{tikzpicture}}}%
+}%
+
+\renewcommand*\mytablecontents{}
+\foreach \i in {A,B,C,G}{
+ \xappto\mytablecontents{$\i_2$ & \drawroots{\i} & \csdrawroots{\i}
+}
+ \gappto\mytablecontents{\\ \\}
+}
+
+\begin{longtable}{rcm{8cm}}
+\caption{Weyl chambers}\\
+\endfirsthead
+\caption{\dots continued}\\
+\endhead
+\multicolumn{3}{c}{continued \dots}\\
+\endfoot
+\endlastfoot
+\mytablecontents
+\end{longtable}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\RenewDocumentCommand\drawroots{m}%
+{%
+\begin{tikzpicture}[baseline=-.5]
+\begin{rootSystem}{#1}
+\roots
+\positiveRootHyperplane
+\end{rootSystem}
+\end{tikzpicture}
+}%
+
+\RenewDocumentCommand\csdrawroots{m}%
+{%
+\texttt{\detokenize{\begin{tikzpicture}[baseline=-.5]}}%
+\par\noindent%
+\texttt{\detokenize{\begin{rootSystem}}\{#1\}}%
+\par\noindent%
+\texttt{\detokenize{\roots}}%
+\par\noindent%
+\texttt{\detokenize{\positiveRootHyperplane}}%
+\par\noindent%
+\texttt{\detokenize{\end{rootSystem}}}%
+\par\noindent%
+\texttt{\detokenize{\end{tikzpicture}}}%
+}%
+
+\renewcommand*\mytablecontents{}
+\foreach \i in {A,B,C,G}{
+ \xappto\mytablecontents{$\i_2$ & \drawroots{\i} & \csdrawroots{\i}
+}
+ \gappto\mytablecontents{\\ \\}
+}
+
+\begin{longtable}{rcm{8cm}}
+\caption{The positive root hyperplane}\\
+\endfirsthead
+\caption{\dots continued}\\
+\endhead
+\multicolumn{3}{c}{continued \dots}\\
+\endfoot
+\endlastfoot
+\mytablecontents
+\end{longtable}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\RenewDocumentCommand\drawroots{mm}%
+{%
+\begin{tikzpicture}[baseline=-.5]
+\begin{rootSystem}{#1}
+\roots
+\parabolic{#2}
+\end{rootSystem}
+\end{tikzpicture}
+}%
+
+\RenewDocumentCommand\csdrawroots{mm}%
+{%
+\texttt{\detokenize{\begin{tikzpicture}[baseline=-.5]}}%
+\par\noindent%
+\texttt{\detokenize{\begin{rootSystem}}\{#1\}}%
+\par\noindent%
+\texttt{\detokenize{\roots}}%
+\par\noindent%
+\texttt{\detokenize{\parabolic}\{#2\}}%
+\par\noindent%
+\texttt{\detokenize{\end{rootSystem}}}%
+\par\noindent%
+\texttt{\detokenize{\end{tikzpicture}}}%
+}%
+
+\renewcommand*\mytablecontents{}
+\foreach \i in {A,B,C,G}{
+ \foreach \j in {1,2,3}{
+ \xappto\mytablecontents{$\i_{2,\j}$ & \drawroots{\i}{\j} & \csdrawroots{\i}{\j}
+ }
+ \gappto\mytablecontents{\\ \\}
+}
+}
+
+\begin{longtable}{rcm{8cm}}
+\caption{Parabolic subgroups}\\
+\endfirsthead
+\caption{\dots continued}\\
+\endhead
+\multicolumn{3}{c}{continued \dots}\\
+\endfoot
+\endlastfoot
+\mytablecontents
+\end{longtable}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\RenewDocumentCommand\drawroots{mm}%
+{%
+\begin{tikzpicture}[baseline=-.5]
+\begin{rootSystem}{#1}
+\roots
+\parabolic{#2}
+\parabolicgrading
+\end{rootSystem}
+\end{tikzpicture}
+}%
+
+\RenewDocumentCommand\csdrawroots{mm}%
+{%
+\texttt{\detokenize{\begin{tikzpicture}[baseline=-.5]}}%
+\par\noindent%
+\texttt{\detokenize{\begin{rootSystem}}\{#1\}}%
+\par\noindent%
+\texttt{\detokenize{\roots}}%
+\par\noindent%
+\texttt{\detokenize{\parabolic}\{#2\}}%
+\par\noindent%
+\texttt{\detokenize{\parabolicgrading}}%
+\par\noindent%
+\texttt{\detokenize{\end{rootSystem}}}%
+\par\noindent%
+\texttt{\detokenize{\end{tikzpicture}}}%
+}%
+
+\renewcommand*\mytablecontents{}
+\foreach \i in {A,B,C,G}{
+ \foreach \j in {1,2,3}{
+ \xappto\mytablecontents{$\i_{2,\j}$ & \drawroots{\i}{\j} & \csdrawroots{\i}{\j}
+ }
+ \gappto\mytablecontents{\\ \\}
+}
+}
+
+\begin{longtable}{rcm{8cm}}
+\caption{Parabolic subgroups with grading of the positive roots}\\
+\endfirsthead
+\caption{\dots continued}\\
+\endhead
+\multicolumn{3}{c}{continued \dots}\\
+\endfoot
+\endlastfoot
+\mytablecontents
+\end{longtable}
+
+
+
+
+
+\section{Examples of weights of various representations}
+
+Henceforth assume \verb!\AutoSizeWeightLatticetrue! (the default).
+
+\AutoSizeWeightLatticetrue
+
+
+\begin{tcblisting}{title={Fulton and Harris, p. 186}}
+\begin{tikzpicture}
+\begin{rootSystem}{A}
+\foreach \x/\y/\m in
+{0/ 1/5, -1/0/5, 1/-1/5, 2/ 0/4, -2/ 2/4, 0/-2/4,
+ 1/ 2/2, -1/3/2, 3/-2/2, 2/-3/2, -2/-1/2, -3/ 1/2,
+ 4/-1/1, 3/1/1, -3/ 4/1, -4/ 3/1, -1/-3/1, 1/-4/1}
+{\wt[multiplicity=\m]{\x}{\y}}
+\end{rootSystem}
+\end{tikzpicture}
+\end{tcblisting}
+
+
+\begin{tcblisting}{title={A representation of \(G_2\)}}
+\setlength\weightLength{1cm}
+\begin{tikzpicture}
+\begin{rootSystem}{G}
+\roots
+\foreach \m/\x/\y in {
+1/1/1, 1/4/-1, 1/-1/2, 2/2/0, 1/5/-2,
+2/0/1, 2/3/-1, 2/-2/2, 4/1/0, 1/-4/3,
+2/4/-2, 4/-1/1, 4/2/-1, 2/-3/2, 1/5/-3,
+4/0/0, 1/-5/3, 2/3/-2, 4/-2/1, 4/1/-1,
+2/-4/2, 1/4/-3, 4/-1/0, 2/2/-2, 2/-3/1,
+2/0/-1, 1/-5/2, 2/-2/0, 1/1/-2, 1/-4/1,
+1/-1/-1}{\wt[multiplicity=\m]{\x}{\y}}
+\positiveRootHyperplane
+\WeylChamber
+\end{rootSystem}
+\end{tikzpicture}
+\end{tcblisting}
+
+
+\begin{tcblisting}{title={Dimensions of representations of \(G_2\), parameterized by highest weight}}
+\setlength\weightLength{1cm}
+\begin{tikzpicture}
+\begin{rootSystem}{G}
+\roots
+\foreach \x/\y/\d in {
+0/1/14, 0/2/77, 0/3/273, 1/0/7, 1/1/64,
+1/2/286, 2/0/27, 2/1/189, 2/2/729, 3/0/77,
+4/0/182, 5/0/318, 6/0/714, 3/1/448, 4/1/924}
+{\wt{\x}{\y}\node[black,above] at \weight{\x}{\y} {\(\d\)};}
+\positiveRootHyperplane
+\WeylChamber
+\end{rootSystem}
+\end{tikzpicture}
+\end{tcblisting}
+
+
+\bibliographystyle{amsplain}
+\bibliography{rank-2-roots}
+
+\end{document}
diff --git a/Master/texmf-dist/tex/latex/rank-2-roots/rank-2-roots.sty b/Master/texmf-dist/tex/latex/rank-2-roots/rank-2-roots.sty
new file mode 100644
index 00000000000..d129df7847f
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/rank-2-roots/rank-2-roots.sty
@@ -0,0 +1,762 @@
+%
+%
+% The Rank 2 Roots package.
+%
+% Version 1.0
+%
+%
+% This package draws root and weight lattices for rank 2 root systems in LaTeX documents,
+% using the TikZ package.
+% Please see the file ranktworoots.tex for examples of use of this package.
+%
+% Benjamin McKay
+% b.mckay@ucc.ie
+%
+% Released under the LaTeX Project Public License v1.3c or later, see
+% http://www.latex-project.org/lppl.txt
+%
+%
+%
+%
+\NeedsTeXFormat{LaTeX2e}[1994/06/01]
+\ProvidesPackage{rank-2-roots}[2018/08/30 Rank 2 roots]
+\RequirePackage{tikz}
+\RequirePackage{xstring}
+\RequirePackage{xparse}
+\RequirePackage{etoolbox}
+\RequirePackage{expl3}
+\RequirePackage{pgfkeys}
+\RequirePackage{pgfopts}
+\usetikzlibrary{
+calc,
+arrows,
+arrows.meta,
+decorations.markings,
+positioning,
+fadings,
+backgrounds,
+decorations.pathreplacing,
+shadings,
+fadings
+}
+
+%% Style options; user can change them.
+\newlength\weightRadius
+\setlength\weightRadius{1.2pt}
+\newlength\weightLength
+\setlength\weightLength{.5cm}
+\newlength\gradingDot
+\setlength\gradingDot{2pt}
+\tikzstyle{weight lattice}=[gray!40]
+\tikzstyle{root}=[gray]
+\tikzstyle{root polygon}=[gray!40,opacity=.5]
+\tikzstyle{hyperplane}=[gray!50,fill opacity=.5]
+\tikzstyle{Weyl chamber}=[gray!60,fill opacity=.5]
+\tikzstyle{grading}=[line width=3pt,gray,opacity=0.5,line cap=round]
+
+\def\defaultWeightLatticeSize{0}
+\newif\ifAutoSizeWeightLattice
+\AutoSizeWeightLatticetrue
+
+\makeatletter
+\def\root@system{?}
+\def\parabolic@subalgebra{?}
+\def\weight@lattice@size{0}
+
+\def\sqrt@three{1.732050808}
+\def\sqrt@threeOverTwo{0.8660254038}
+\def\sqrt@threeOverFour{0.4330127019}
+
+
+% hexagonal coordinate system
+\define@key{hexkeys}{x}{\def\myx{#1}}
+\define@key{hexkeys}{y}{\def\myy{#1}}
+\tikzdeclarecoordinatesystem{hex}%
+{%
+\setkeys{hexkeys}{#1}%
+\ifAutoSizeWeightLattice\auto@stretch@hex{\myx}{\myy}\fi%
+\pgfmathparse{((\myx)+0.5*(\myy))*\weightLength}%
+\pgf@x=\pgfmathresult pt%
+\pgfmathparse{\sqrt@threeOverTwo*(\myy)*\weightLength}%
+\pgf@y=\pgfmathresult pt%
+}
+% square coordinate system
+\define@key{squarekeys}{x}{\def\myx{#1}}
+\define@key{squarekeys}{y}{\def\myy{#1}}
+\tikzdeclarecoordinatesystem{square}%
+{%
+\setkeys{squarekeys}{#1}%
+\ifAutoSizeWeightLattice\auto@stretch@square{\myx}{\myy}\fi%
+\pgfmathparse{\myx*\weightLength}%
+\pgf@x=\pgfmathresult pt%
+\pgfmathparse{\myy*\weightLength}%
+\pgf@y=\pgfmathresult pt%
+}
+
+\NewDocumentEnvironment{rootSystem}{m}%
+{%
+\xdef\weight@lattice@size{\defaultWeightLatticeSize}%
+\IfSubStr{ABCG}{#1}{}{\unrecognized@root@system{#1}}%
+\xdef\root@system{#1}%
+\check@root@system{}%
+\choose@weight@lattice{}%
+}%
+{%
+\IfStrEq{\weight@lattice@size}{0}%%
+{%%
+}%%
+{%%
+\weightLattice{\weight@lattice@size}%
+}%%
+\xdef\root@system{?}%
+\xdef\parabolic@subalgebra{?}%
+\xdef\weight@lattice@size{\defaultWeightLatticeSize}%
+}%
+
+\NewDocumentCommand\unrecognized@root@system{m}%
+{%
+\ClassError{Rank 2 roots}{Unrecognized root system: ``#1''. Allowed values are A,B,C,G}{}%
+}%
+
+\NewDocumentCommand\root@system@not@set{}%
+{%
+\ClassError{Rank 2 roots}{Error: root system not specified.}{}%
+}%
+
+\NewDocumentCommand\check@root@system{}%
+{%
+\IfSubStr{ABCG}{\root@system}{}{\root@system@not@set}%
+}%
+
+\NewDocumentCommand\A@weight@lattice{O{}}%
+{%
+\check@root@system%
+\hexgrid[#1]{\weight@lattice@size}%
+}%
+
+\NewDocumentCommand\G@weight@lattice{O{}}%
+{%
+\check@root@system%
+\hexgrid[#1]{\weight@lattice@size}%
+}%
+
+\NewDocumentCommand\B@weight@lattice{O{}}%
+{%
+\check@root@system%
+\begin{scope}[on background layer]%
+\draw[weight lattice,step=\weightLength,#1]
+ ({-\weight@lattice@size*\weightLength},{-\weight@lattice@size*\weightLength})
+ grid
+ ({\weight@lattice@size*\weightLength},{\weight@lattice@size*\weightLength});%
+\foreach \i in {-\weight@lattice@size,...,\weight@lattice@size}%
+{%
+\draw[weight lattice,#1] ({\weightLength*\i},{\weightLength*\weight@lattice@size})
+ -- ({\weightLength*\weight@lattice@size},{\weightLength*\i});%
+\draw[weight lattice,#1] ({-\weightLength*\weight@lattice@size},{\weightLength*\i})
+ -- ({\weightLength*\i},{-\weightLength*\weight@lattice@size});%
+\draw[weight lattice,#1] ({-\weightLength*\i},{\weightLength*\weight@lattice@size})
+ -- ({-\weightLength*\weight@lattice@size},{\weightLength*\i});%
+\draw[weight lattice,#1] ({\weightLength*\weight@lattice@size},{\weightLength*\i})
+ -- ({-\weightLength*\i},{-\weightLength*\weight@lattice@size});%
+}%
+\end{scope}%
+}%
+
+\NewDocumentCommand\C@weight@lattice{O{}}%
+{%
+\B@weight@lattice[#1]%
+}%
+
+
+\NewDocumentCommand\weightLattice{O{}m}%
+{%
+\check@root@system%
+\xdef\weight@lattice@size{#2}%
+\IfStrEqCase{\root@system}%
+{%%
+{A}{\A@weight@lattice[#1]}%
+{B}{\B@weight@lattice[#1]}%
+{C}{\C@weight@lattice[#1]}%
+{G}{\G@weight@lattice[#1]}%
+{?}{\root@system@not@set}%
+}%%
+[\check@root@system]%
+}%
+
+\NewDocumentCommand\hexwt{O{}mm}%
+{%
+\check@root@system%
+\pgfkeys{/weight, default, #1}%
+\IfStrEq{\weight@multiplicity}{1}{}%
+{%%%
+\foreach \i in {2,...,\weight@multiplicity}%
+{%
+\draw[/weight,weight,#1,fill=none] (hex cs:x=#2,y=#3) circle ({\i*\weightRadius});%
+}%
+}%%%
+\fill[/weight,weight,#1] (hex cs:x=#2,y=#3) circle (\weightRadius);%
+}%
+
+\NewDocumentCommand\squarewt{O{}mm}%
+{%
+\check@root@system%
+\pgfkeys{/weight, default, #1}%
+\IfStrEq{\weight@multiplicity}{1}{}%
+{%%%
+\foreach \i in {2,...,\weight@multiplicity}%
+{%
+\draw[/weight,weight,#1,fill=none] (square cs:x=#2,y=#3) circle ({\i*\weightRadius});%
+}%
+}%%%
+\fill[/weight,weight,#1] (square cs:x=#2,y=#3) circle (\weightRadius);%
+}%
+
+\newif\if@decimals
+
+\NewDocumentCommand\make@weight@lattice@at@least{m}%
+{%
+\pgfmathless{\weight@lattice@size}{#1}%
+\IfStrEq{1}{\pgfmathresult}{\xdef\weight@lattice@size{#1}}{}
+}%
+
+\NewDocumentCommand\auto@stretch@hex{mm}%
+{%
+%% Can we fit this weight? If not, draw a bigger background.
+\@decimalsfalse
+\IfSubStr{#1}{.}{\global\@decimalstrue}{}%
+\IfSubStr{#2}{.}{\global\@decimalstrue}{}%
+\xdef\min@wls{0}
+\if@decimals%
+\IfStrEqCase{\root@system}%
+{%%
+{A}{\pgfmathint{ceil(max(abs(#1),abs(#2),abs(#1+#2)))}\xdef\min@wls{\pgfmathresult}}%
+{B}{\pgfmathint{ceil(max(abs((#1)+(#2)/2),abs(#2)))}\xdef\min@wls{\pgfmathresult}}%
+{C}{\pgfmathint{ceil(max(abs((#1)+(#2)),abs(#2)))}\xdef\min@wls{\pgfmathresult}}%
+{G}{\pgfmathint{ceil(max(abs(#1),abs(#2),abs(#1+#2)))}\xdef\min@wls{\pgfmathresult}}%
+{?}{\root@system@not@set}%
+}%%
+\else
+\IfStrEqCase{\root@system}%
+{%%
+{A}{\pgfmathint{max(abs(#1),abs(#2),abs(#1+#2))}\xdef\min@wls{\pgfmathresult}}%
+{B}{\pgfmathint{max(abs((#1)+(#2)/2),abs(#2))}\xdef\min@wls{\pgfmathresult}}%
+{C}{\pgfmathint{max(abs((#1)+(#2)),abs(#2))}\xdef\min@wls{\pgfmathresult}}%
+{G}{\pgfmathint{max(abs(#1),abs(#2),abs(#1+#2))}\xdef\min@wls{\pgfmathresult}}%
+{?}{\root@system@not@set}%
+}%%
+\fi%
+\make@weight@lattice@at@least{\min@wls}%
+}%
+
+
+\NewDocumentCommand\auto@stretch@square{mm}%
+{%
+%% Can we fit this weight? If not, draw a bigger background.
+\@decimalsfalse
+\IfSubStr{#1}{.}{\global\@decimalstrue}{}%
+\IfSubStr{#2}{.}{\global\@decimalstrue}{}%
+\if@decimals%
+\pgfmathint{ceil(max(abs(#1),abs(#2)))}\xdef\wls{\pgfmathresult}%
+\else
+\pgfmathint{max(abs(#1),abs(#2))}\xdef\wls{\pgfmathresult}%
+\fi
+\pgfmathless{\weight@lattice@size}{\wls}%
+\IfStrEq{1}{\pgfmathresult}%{}%
+{%%
+%\weightLattice{\wls}%
+\xdef\weight@lattice@size{\wls}%
+}%%
+{%%
+}%%
+}%
+
+
+\def\weight@multiplicity{1}
+\pgfkeys{
+/weight/.is family,
+/weight,
+weight/.style = {fill=gray,draw=gray},
+ default/.style = {
+ multiplicity/.estore in = \weight@multiplicity,
+ multiplicity = 1,
+ },
+ .search also={/tikz},
+}
+
+\NewDocumentCommand\wt{O{}mm}%[tikz options,multiplicity=???]{x}{y}
+{%
+\check@root@system%
+\pgfkeys{/weight, default, #1}%
+\IfStrEq{\weight@multiplicity}{1}{}%
+{%%%
+\foreach \i in {2,...,\weight@multiplicity}%
+{%
+\draw[/weight,weight,#1,fill=none] \weight{#2}{#3} circle ({\i*\weightRadius});%
+}%
+}%%%
+\fill[/weight,weight,#1] \weight{#2}{#3} circle (\weightRadius);%
+%}%%
+}%
+
+\NewDocumentCommand\A@roots{O{}}%
+{%
+\begin{scope}[on background layer]%
+\fill[root polygon]
+(hex cs:x=1,y=1) --
+(hex cs:x=-1,y=2) --
+(hex cs:x=-2,y=1) --
+(hex cs:x=-1,y=-1) --
+(hex cs:x=1,y=-2) --
+(hex cs:x=2,y=-1) --
+cycle;%
+\end{scope}%
+\wt[root,#1]{1}{1}%
+\wt[root,#1]{-1}{2}%
+\wt[root,#1]{-2}{1}%
+\wt[root,#1]{-1}{-1}%
+\wt[root,#1]{1}{-2}%
+\wt[root,#1]{2}{-1}%
+}%
+
+\NewDocumentCommand\B@roots{O{}}%
+{%
+\begin{scope}[on background layer]%
+\fill[root polygon]
+(square cs:x=-1,y=-1) --
+(square cs:x=-1,y=1) --
+(square cs:x=1,y=1) --
+(square cs:x=1,y=-1) --
+cycle;%
+\end{scope}
+\foreach \i in {-1,0,1}%
+{%
+\foreach \j in {-1,0,1}%
+{%%
+\IfStrEq{\i}{0}%
+{%%%
+\IfStrEq{\j}{0}{}%
+{%%%%
+\squarewt[root,#1]{\i}{\j}%
+}%%%%
+}%%%
+{%%%
+\squarewt[root,#1]{\i}{\j}%
+}%%%
+}%%
+}%
+}%
+
+\NewDocumentCommand\C@roots{O{}}%
+{%
+\begin{scope}[on background layer]%
+\fill[root polygon]
+(square cs:x=2,y=0) --
+(square cs:x=0,y=2) --
+(square cs:x=-2,y=0) --
+(square cs:x=0,y=-2) --
+cycle;%
+\end{scope}
+\squarewt[root,#1]{2}{0}
+\squarewt[root,#1]{1}{1}
+\squarewt[root,#1]{0}{2}
+\squarewt[root,#1]{-1}{1}
+\squarewt[root,#1]{-2}{0}
+\squarewt[root,#1]{-1}{-1}
+\squarewt[root,#1]{0}{-2}
+\squarewt[root,#1]{1}{-1}
+}%
+
+\NewDocumentCommand\G@roots{O{}}%
+{%
+\begin{scope}[on background layer]%
+\fill[root polygon]
+(hex cs:x=1,y=0) --
+(hex cs:x=1,y=1) --
+(hex cs:x=0,y=1) --
+(hex cs:x=-1,y=2) --
+(hex cs:x=-1,y=1) --
+(hex cs:x=-2,y=1) --
+(hex cs:x=-1,y=0) --
+(hex cs:x=-1,y=-1) --
+(hex cs:x=0,y=-1) --
+(hex cs:x=1,y=-2) --
+(hex cs:x=1,y=-1) --
+(hex cs:x=2,y=-1) --
+cycle;%
+\end{scope}%
+\hexwt[root,#1]{1}{0}%
+\hexwt[root,#1]{0}{1}%
+\hexwt[root,#1]{-1}{0}%
+\hexwt[root,#1]{0}{-1}%
+\hexwt[root,#1]{1}{-1}%
+\hexwt[root,#1]{-1}{1}%
+\hexwt[root,#1]{1}{1}%
+\hexwt[root,#1]{2}{-1}%
+\hexwt[root,#1]{-1}{2}%
+\hexwt[root,#1]{1}{-2}%
+\hexwt[root,#1]{-2}{1}%
+\hexwt[root,#1]{-1}{-1}%
+}%
+
+\NewDocumentCommand\choose@weight@lattice{}%
+{%
+\IfStrEqCase{\root@system}%
+{%%
+{A}{\global\let\weight=\A@weight}%
+{B}{\global\let\weight=\B@weight}%
+{C}{\global\let\weight=\C@weight}%
+{G}{\global\let\weight=\G@weight}%
+}%%
+[\check@root@system]%
+}%
+
+\NewDocumentCommand\check@weight@lattice{}%
+{%
+\IfInteger{\weight@lattice@size}%
+{}%
+{\ClassError{Rank 2 roots}{Error in weight lattice size \weight@lattice@size.}{}}%
+}%
+
+\NewDocumentCommand\roots{O{}}%
+{%
+\check@root@system%
+\check@weight@lattice%
+\IfStrEqCase{\root@system}%
+{%%
+{A}{\A@roots[#1]}%
+{B}{\B@roots[#1]}%
+{C}{\C@roots[#1]}%
+{G}{\G@roots[#1]}%
+}%%
+[\check@root@system]%
+}%
+
+\NewDocumentCommand\Weyl@chamber{O{}m}%
+{%
+\begin{scope}[on background layer]
+\IfStrEqCase{\root@system}%
+{%%
+{A}{\fill[Weyl chamber,#1] \weight{0}{#2} -- \weight{0}{0} -- \weight{#2}{0} --cycle;}%
+{B}{\fill[Weyl chamber,#1] (square cs:x=#2,y=#2) -- (square cs:x=0,y=0) --(square cs:x=#2,y=0) --cycle;}%
+{C}{\fill[Weyl chamber,#1] (square cs:x=#2,y=#2) -- (square cs:x=0,y=0) --(square cs:x=#2,y=0) --cycle;}%
+{G}{\fill[Weyl chamber,#1] (hex cs:x={(.5*#2)},y={(.5*#2)}) -- (hex cs:x=0,y=0) --(hex cs:x=#2,y=0) --cycle;}%
+}%%
+[\check@root@system]%
+\end{scope}
+}%
+
+\NewDocumentCommand\Weyl@chamber@to@root@polygon{O{}}%
+{%
+\begin{scope}[on background layer]
+\IfStrEqCase{\root@system}%
+{%%
+{A}{\fill[Weyl chamber,#1] (hex cs:x=0,y=1.5) -- (hex cs:x=0,y=0) -- (hex cs:x=1.5,y=0) -- (hex cs:x=1,y=1) -- cycle;}%
+{B}{\fill[Weyl chamber,#1] (square cs:x=1,y=1) -- (square cs:x=0,y=0) --(square cs:x=1,y=0) --cycle;}%
+{C}{\fill[Weyl chamber,#1] (square cs:x=1,y=1) -- (square cs:x=0,y=0) --(square cs:x=2,y=0) --cycle;}%
+{G}{\fill[Weyl chamber,#1] (hex cs:x=1,y=1) -- (hex cs:x=0,y=0) --(hex cs:x=1,y=0) --cycle;}%
+}%%
+[\check@root@system]%
+\end{scope}
+}%
+
+
+\NewDocumentCommand\WeylChamber{O{}}%
+{%
+\check@root@system%
+\ifAutoSizeWeightLattice
+\Weyl@chamber[#1]{\weight@lattice@size}%
+\else
+\IfStrEq{\weight@lattice@size}{0}%
+{%%
+\Weyl@chamber@to@root@polygon[#1]%
+}%%
+{%%
+\Weyl@chamber[#1]{\weight@lattice@size}%
+}%%
+\fi
+}%
+
+\NewDocumentCommand\A@weight{mm}%
+{%
+(hex cs:x=#1,y=#2)%
+}%
+
+% B weight coordinate system
+\define@key{Bkeys}{x}{\def\myx{#1}}
+\define@key{Bkeys}{y}{\def\myy{#1}}
+\tikzdeclarecoordinatesystem{B weight}%
+{%
+\setkeys{Bkeys}{#1}%
+\ifAutoSizeWeightLattice\auto@stretch@square{(\myx+.5*(\myy))}{(.5*(\myy))}\fi%
+\pgfmathparse{((\myx)+.5*(\myy))*\weightLength}%
+\pgf@x=\pgfmathresult pt%
+\pgfmathparse{.5*(\myy)*\weightLength}%
+\pgf@y=\pgfmathresult pt%
+}
+
+\NewDocumentCommand\B@weight{mm}%
+{%
+(B weight cs:x=#1,y=#2)
+}%
+
+% C weight coordinate system
+\define@key{Ckeys}{x}{\def\myx{#1}}
+\define@key{Ckeys}{y}{\def\myy{#1}}
+\tikzdeclarecoordinatesystem{C weight}%
+{%
+\setkeys{Ckeys}{#1}%
+\ifAutoSizeWeightLattice\auto@stretch@square{(\myx+\myy)}{(\myy)}\fi%
+\pgfmathparse{(\myx+\myy)*\weightLength}%
+\pgf@x=\pgfmathresult pt%
+\pgfmathparse{\myy*\weightLength}%
+\pgf@y=\pgfmathresult pt%
+}
+
+\NewDocumentCommand\C@weight{mm}%
+{%
+(C weight cs:x=#1,y=#2)
+}%
+
+
+\NewDocumentCommand\G@weight{mm}%
+{%
+(hex cs:x={(#1+#2)},y=#2)
+}%
+
+\NewDocumentCommand\draw@hex@grid@line{O{}mmmm}%
+{%
+\draw[weight lattice,#1] (hex cs:x=#2,y=#3) -- (hex cs:x=#4,y=#5);%
+}%
+
+\NewDocumentCommand\hexgrid{O{}m}%
+{%
+\begin{scope}[on background layer]
+\foreach \i [evaluate=\i as \nsubi using #2-\i] in {0,...,#2}%
+{%
+\draw@hex@grid@line[#1]{\nsubi}{\i}{-\i-\nsubi}{\i}%
+}%
+\foreach \i [evaluate=\i as \nsubi using #2-\i] in {1,...,#2}%
+{%
+\draw@hex@grid@line[#1]{\i+\nsubi}{-\i}{-\nsubi}{-\i}%
+}%
+\foreach \i [evaluate=\i as \nsubi using #2-\i] in {0,...,#2}%
+{%
+\draw@hex@grid@line[#1]{\nsubi}{\i}{\nsubi}{-#2}%
+}%
+\foreach \i [evaluate=\i as \nsubi using #2-\i] in {1,...,#2}%
+{%
+\draw@hex@grid@line[#1]{-\i}{#2}{-\i}{-\nsubi}%
+}%
+\foreach \i [evaluate=\i as \nsubi using #2-\i] in {0,...,#2}%
+{%
+\draw@hex@grid@line[#1]{#2}{-\i}{-\i}{#2}%
+}%
+\foreach \i [evaluate=\i as \nsubi using #2-\i] in {0,...,#2}%
+{%
+\draw@hex@grid@line[#1]{\i}{-#2}{-#2}{\i}%
+}%
+\end{scope}
+}%
+
+\NewDocumentCommand\hexclip{}%
+{%
+\clip
+ (hex cs:x=\weight@lattice@size,y=0) --
+ (hex cs:x=0,y=\weight@lattice@size) --
+ (hex cs:x=-\weight@lattice@size,y=\weight@lattice@size) --
+ (hex cs:x=-\weight@lattice@size,y=0) --
+ (hex cs:x=0,y=-\weight@lattice@size) --
+ (hex cs:x=\weight@lattice@size,y=-\weight@lattice@size) --
+ cycle;
+}%
+
+\NewDocumentCommand\A@positive@root@hyperplane{O{}}%
+{%
+\begin{scope}[on background layer]
+\fill[hyperplane,#1] (hex cs:x=-1.5,y=1.5) --(hex cs:x=-1,y=2) --(hex cs:x=1,y=1) --(hex cs:x=2,y=-1) --(hex cs:x=1.5,y=-1.5) --cycle;%
+\end{scope}
+}%
+
+
+\NewDocumentCommand\B@positive@root@hyperplane{O{}}%
+{%
+\begin{scope}[on background layer]%
+\fill[hyperplane,#1] (square cs:x=-1,y=.5) -- (square cs:x=-1,y=1) -- (square cs:x=1,y=1) -- (square cs:x=1,y=-.5) -- cycle;%
+\end{scope}%
+}%
+
+
+\NewDocumentCommand\C@positive@root@hyperplane{O{}}%
+{%
+\begin{scope}[on background layer]%
+\fill[hyperplane,#1] (square cs:x=-1.5,y=.5) -- (square cs:x=0,y=2) -- (square cs:x=2,y=0) -- (square cs:x=1.5,y=-.5) -- cycle;%
+\end{scope}%
+}%
+
+
+\NewDocumentCommand\G@positive@root@hyperplane{O{}}%
+{%
+\begin{scope}[on background layer]%
+\fill[hyperplane,#1]
+ (hex cs:x=-1,y=1.5) --
+ (hex cs:x=-1,y=2) --
+ (hex cs:x=0,y=1) --
+ (hex cs:x=1,y=1) --
+ (hex cs:x=1,y=0) --
+ (hex cs:x=2,y=-1) --
+ (hex cs:x=1,y=-1) --
+ (hex cs:x=1,y=-1.5) -- cycle;%
+\end{scope}%
+}%
+
+\NewDocumentCommand\positiveRootHyperplane{O{}}%
+{%
+\IfStrEqCase{\root@system}%
+{%%
+{A}{\A@positive@root@hyperplane[#1]}%
+{B}{\B@positive@root@hyperplane[#1]}%
+{C}{\C@positive@root@hyperplane[#1]}%
+{G}{\G@positive@root@hyperplane[#1]}%
+}%%
+[\check@root@system]%
+}%
+
+\NewDocumentCommand\A@parabolic@one{O{}}%
+{%
+\begin{scope}[on background layer]%
+\fill[hyperplane,#1] (hex cs:x=-2,y=1) -- (hex cs:x=-1,y=2) -- (hex cs:x=1,y=1) -- (hex cs:x=2,y=-1) -- cycle;%
+\end{scope}%
+}%
+
+\NewDocumentCommand\A@parabolic@two{O{}}%
+{%
+\begin{scope}[on background layer]%
+\fill[hyperplane,#1] (hex cs:x=-1,y=2) -- (hex cs:x=1,y=1) -- (hex cs:x=2,y=-1) -- (hex cs:x=1,y=-2) -- cycle;%
+\end{scope}%
+}%
+
+\NewDocumentCommand\B@parabolic@one{O{}}%
+{%
+\begin{scope}[on background layer]%
+\fill[hyperplane,#1] (square cs:x=-1,y=0) --(square cs:x=-1,y=1) --(square cs:x=1,y=1) --(square cs:x=1,y=0) --cycle;%
+\end{scope}%
+}%
+
+\NewDocumentCommand\B@parabolic@two{O{}}%
+{%
+\begin{scope}[on background layer]%
+\fill[hyperplane,#1] (square cs:x=-1,y=1) --(square cs:x=1,y=-1) --(square cs:x=1,y=1) --cycle;%
+\end{scope}%
+}%
+
+
+\NewDocumentCommand\C@parabolic@one{O{}}%
+{%
+\begin{scope}[on background layer]%
+\fill[hyperplane,#1] (square cs:x=-2,y=0) -- (square cs:x=0,y=2) -- (square cs:x=2,y=0) -- cycle;%
+\end{scope}%
+}%
+
+
+\NewDocumentCommand\C@parabolic@two{O{}}%
+{%
+\begin{scope}[on background layer]%
+\fill[hyperplane,#1] (square cs:x=-1,y=1) -- (square cs:x=0,y=2) -- (square cs:x=2,y=0) -- (square cs:x=1,y=-1) -- cycle;%
+\end{scope}%
+}%
+
+
+\NewDocumentCommand\G@parabolic@one{O{}}%
+{%
+\begin{scope}[on background layer]%
+\fill[hyperplane,#1] (hex cs:x=-1,y=1) -- (hex cs:x=-1,y=2) -- (hex cs:x=0,y=1) -- (hex cs:x=1,y=1) -- (hex cs:x=1,y=0) -- (hex cs:x=2,y=-1) -- (hex cs:x=1,y=-1) -- cycle;%
+\end{scope}%
+}%
+
+
+\NewDocumentCommand\G@parabolic@two{O{}}%
+{%
+\begin{scope}[on background layer]%
+\fill[hyperplane,#1] (hex cs:x=-1,y=2) --(hex cs:x=0,y=1) --(hex cs:x=1,y=1) --(hex cs:x=1,y=0) --(hex cs:x=2,y=-1) --(hex cs:x=1,y=-1) --(hex cs:x=1,y=-2) --cycle;%
+\end{scope}%
+}%
+
+\NewDocumentCommand\parabolic{O{}m}%
+{%
+\xdef\parabolic@subalgebra{#2}%
+\IfStrEq{#2}{3}{\positiveRootHyperplane}%
+{%
+\IfStrEqCase{\root@system#2}%
+{%%
+{A1}{\A@parabolic@one[#1]}%
+{A2}{\A@parabolic@two[#1]}%
+{B1}{\B@parabolic@one[#1]}%
+{B2}{\B@parabolic@two[#1]}%
+{C1}{\C@parabolic@one[#1]}%
+{C2}{\C@parabolic@two[#1]}%
+{G1}{\G@parabolic@one[#1]}%
+{G2}{\G@parabolic@two[#1]}%
+}%%
+[\check@root@system%
+\ClassError{Rank 2 roots}{Parabolic subalgebra ``#2'' not recognized. Allowed values are 1,2,3.}{}]%
+}%
+}%
+
+\NewDocumentCommand\parabolicgrading{}%
+{%
+\IfStrEqCase{\root@system\parabolic@subalgebra}%
+{%%
+{A1}{\draw[grading] (hex cs:x=-1,y=2) -- (hex cs:x=1,y=1);}%
+{A2}{\draw[grading] (hex cs:x=1,y=1) -- (hex cs:x=2,y=-1);}%
+{A3}{\draw[grading] (hex cs:x=-1,y=2) -- (hex cs:x=2,y=-1);\draw[grading] (hex cs:x=0,y=2) -- (hex cs:x=2,y=0);}%
+{B1}{\draw[grading] (square cs:x=-1,y=1) -- (square cs:x=1,y=1);}%
+{B2}{\draw[grading] (square cs:x=0,y=1) -- (square cs:x=1,y=0);\draw[grading] (square cs:x=1,y=1) circle (\gradingDot);}%
+{B3}{\draw[grading] (square cs:x=-1,y=1) -- (square cs:x=1,y=0);%
+\draw[grading] (square cs:x=0,y=1) -- (square cs:x=1,y=.5);%
+\draw[grading] (square cs:x=1,y=1) circle (\gradingDot);}%
+{C1}{\draw[grading] (square cs:x=-2,y=1) -- (square cs:x=2,y=1);%
+\draw[grading] (square cs:x=-2,y=2) -- (square cs:x=2,y=2);}%
+{C2}{\draw[grading] (square cs:x=0,y=2) -- (square cs:x=2,y=0);}%
+{C3}{
+\begin{scope}
+\clip
+ (square cs:x=-2,y=2) --
+ (square cs:x=2,y=2) --
+ (square cs:x=2,y=-2) --
+ (square cs:x=-2,y=-2) --
+ cycle;
+\draw[grading] (square cs:x=0,y=2) -- (square cs:x=2,y=1.333333);
+\draw[grading] (square cs:x=-2,y=1.3333333) -- (square cs:x=2,y=0);
+\draw[grading] (square cs:x=-2,y=2) -- (square cs:x=2,y=.666666);
+\end{scope}
+}%
+{G1}{\draw[grading] (hex cs:x=-1,y=2) -- (hex cs:x=2,y=-1);\draw[grading] (hex cs:x=0,y=2) -- (hex cs:x=2,y=0);}%
+{G2}{\begin{scope}[on background layer]
+\IfStrEq{\weight@lattice@size}{0}%
+{%
+\draw[grading] (square cs:x=1.5,y=\sqrt@three) -- (square cs:x=1.5,y=-\sqrt@three);
+\draw[grading] (hex cs:x=0,y=2) -- (hex cs:x=2,y=-2);
+\draw[grading] (hex cs:x=-.5,y=2) -- (hex cs:x=1.5,y=-2);
+}%
+{%
+\hexclip
+\draw[grading] (hex cs:x=1,y=1) -- (hex cs:x=2,y=-1);
+\draw[grading] (hex cs:x=0,y=2) -- (hex cs:x=2,y=-2);
+\draw[grading] (hex cs:x=-.5,y=2) -- (hex cs:x=1.5,y=-2);
+}%
+\end{scope}}%
+{G3}{\begin{scope}[on background layer]
+\IfStrEq{\weight@lattice@size}{0}{}{\hexclip}%
+\foreach \i in {1,...,5}%
+{%
+\draw[grading]
+ (square cs:x={.333333333*(\i-1)},y=\sqrt@three) --
+ (square cs:x={.333333333*(\i+1)},y=-\sqrt@three);
+}%
+\end{scope}}%
+}%%
+}%
+
+
+\makeatother
+\endinput
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index e13cc562d8f..56a9495b7a4 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -550,7 +550,7 @@ my @TLP_working = qw(
qcircuit qcm qobitree qrcode qstest qsymbols qtree
quattrocento quicktype quotchap quoting quotmark quran
r_und_s raleway ran_toks randbild randomlist randomwalk randtext
- rccol rcs rcs-multi rcsinfo
+ rank-2-roots rccol rcs rcs-multi rcsinfo
readarray realboxes realscripts rec-thy
recipe recipebook recipecard recycle rectopma
refcheck refenums reflectgraphics refman refstyle
diff --git a/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc b/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc
index c9b4992b42f..47b9f8d60de 100644
--- a/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc
@@ -130,6 +130,7 @@ depend proba
depend prooftrees
depend pseudocode
depend pythonhighlight
+depend rank-2-roots
depend rec-thy
depend revquantum
depend ribbonproofs
diff --git a/Master/tlpkg/tlpsrc/rank-2-roots.tlpsrc b/Master/tlpkg/tlpsrc/rank-2-roots.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/rank-2-roots.tlpsrc