diff options
author | Norbert Preining <norbert@preining.info> | 2023-09-01 03:01:08 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2023-09-01 03:01:08 +0000 |
commit | a6340ee3ba0294ecd24259d39642d27d804187b2 (patch) | |
tree | cc82e5c3e6d1b796a6f2a530aea279ff238b556c /graphics/pgf/contrib/rank-2-roots | |
parent | 7cda3a1cc32bd43dab837e2b73046dab2aeaec98 (diff) |
CTAN sync 202309010301
Diffstat (limited to 'graphics/pgf/contrib/rank-2-roots')
-rw-r--r-- | graphics/pgf/contrib/rank-2-roots/README | 4 | ||||
-rw-r--r-- | graphics/pgf/contrib/rank-2-roots/rank-2-roots.pdf | bin | 396098 -> 448699 bytes | |||
-rw-r--r-- | graphics/pgf/contrib/rank-2-roots/rank-2-roots.sty | 59 | ||||
-rw-r--r-- | graphics/pgf/contrib/rank-2-roots/rank-2-roots.tex | 402 |
4 files changed, 231 insertions, 234 deletions
diff --git a/graphics/pgf/contrib/rank-2-roots/README b/graphics/pgf/contrib/rank-2-roots/README index 66d307c001..91a7c6417b 100644 --- a/graphics/pgf/contrib/rank-2-roots/README +++ b/graphics/pgf/contrib/rank-2-roots/README @@ -2,9 +2,9 @@ ___________________________________ Rank 2 roots - v1.0 + v1.1 - 30 August 2018 + 31 August 2023 ___________________________________ Authors : Ben McKay diff --git a/graphics/pgf/contrib/rank-2-roots/rank-2-roots.pdf b/graphics/pgf/contrib/rank-2-roots/rank-2-roots.pdf Binary files differindex b152c8360e..c9049e354f 100644 --- a/graphics/pgf/contrib/rank-2-roots/rank-2-roots.pdf +++ b/graphics/pgf/contrib/rank-2-roots/rank-2-roots.pdf diff --git a/graphics/pgf/contrib/rank-2-roots/rank-2-roots.sty b/graphics/pgf/contrib/rank-2-roots/rank-2-roots.sty index d129df7847..bc492919e4 100644 --- a/graphics/pgf/contrib/rank-2-roots/rank-2-roots.sty +++ b/graphics/pgf/contrib/rank-2-roots/rank-2-roots.sty @@ -2,12 +2,12 @@ % % The Rank 2 Roots package. % -% Version 1.0 +% Version 1.1 % % % 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. +% Please see the file rank-2-roots.tex for examples of use of this package. % % Benjamin McKay % b.mckay@ucc.ie @@ -19,7 +19,7 @@ % % \NeedsTeXFormat{LaTeX2e}[1994/06/01] -\ProvidesPackage{rank-2-roots}[2018/08/30 Rank 2 roots] +\ProvidesPackage{rank-2-roots}[2023/08/31 Rank 2 roots] \RequirePackage{tikz} \RequirePackage{xstring} \RequirePackage{xparse} @@ -100,6 +100,7 @@ fadings \xdef\root@system{#1}% \check@root@system{}% \choose@weight@lattice{}% +\choose@root@lattice{}% }% {% \IfStrEq{\weight@lattice@size}{0}%% @@ -111,6 +112,57 @@ fadings \xdef\root@system{?}% \xdef\parabolic@subalgebra{?}% \xdef\weight@lattice@size{\defaultWeightLatticeSize}% +\xdef\Root{?}% +}% + +\NewDocumentCommand\simpleroots{}% +{\rt[black]{1}{0}\rt[black]{0}{1}} + +\NewDocumentCommand\choose@root@lattice{} +{% +\IfStrEqCase{\root@system}% +{%% +{A}{\global\let\Root=\A@root}% +{B}{\global\let\Root=\B@root}% +{C}{\global\let\Root=\C@root}% +{G}{\global\let\Root=\G@root}% +}%% +[\check@root@system]% +}% + +\NewDocumentCommand\A@root{mm}% x,y in units of simple roots +{% +(hex cs:x={(2*(#1)-(#2))},y={(-(#1)+2*(#2))})% +}% + +\NewDocumentCommand\B@root{mm}% x,y in units of simple roots +{% +(square cs:x={((#1)-(#2))},y=#2)% +}% + +\NewDocumentCommand\C@root{mm}% x,y in units of simple roots +{% +(square cs:x={(2*(#1)-(#2))},y={#2})% +}% + +\NewDocumentCommand\G@root{mm}% x,y in units of simple roots +{% +(hex cs:x={(-(#1)+(#2))},y={(2*(#1)-(#2))})% +}% + +\NewDocumentCommand\rt{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] \Root{#2}{#3} circle ({\i*\weightRadius});% +}% +}%%% +\fill[/weight,weight,#1] \Root{#2}{#3} circle (\weightRadius);% +%}%% }% \NewDocumentCommand\unrecognized@root@system{m}% @@ -517,7 +569,6 @@ cycle;% (C weight cs:x=#1,y=#2) }% - \NewDocumentCommand\G@weight{mm}% {% (hex cs:x={(#1+#2)},y=#2) diff --git a/graphics/pgf/contrib/rank-2-roots/rank-2-roots.tex b/graphics/pgf/contrib/rank-2-roots/rank-2-roots.tex index 742682aece..25b9b585f0 100644 --- a/graphics/pgf/contrib/rank-2-roots/rank-2-roots.tex +++ b/graphics/pgf/contrib/rank-2-roots/rank-2-roots.tex @@ -1,11 +1,28 @@ \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} +\title{The Rank 2 Roots Package \\ Version 1.1} + +\makeatletter +\DeclareRobustCommand{\scotsMc}{\scotsMcx{c}} +\DeclareRobustCommand{\scotsMC}{\scotsMcx{\textsc{c}}} +\DeclareRobustCommand{\scotsMcx}[1]{% + M% + \raisebox{\dimexpr\fontcharht\font`M-\height}{% + \check@mathfonts\fontsize{\sf@size}{0}\selectfont + \kern.3ex\underline{\kern-.3ex #1\kern-.3ex}\kern.3ex + }% +} +\expandafter\def\expandafter\@uclclist\expandafter{% + \@uclclist\scotsMc\scotsMC +} +\makeatother + +\author{Benjamin \scotsMc{}Kay} +\address{School of Mathematical Sciences, University College Cork, Cork, Ireland} +\email{b.mckay@ucc.ie} +\date{31 August 2023} \usepackage{etoolbox} \usepackage{lmodern} @@ -36,11 +53,9 @@ before upper={\widowpenalties=3 10000 10000 150}} \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} @@ -53,15 +68,6 @@ before upper={\widowpenalties=3 10000 10000 150}} \rulecolor{white} \makeatother - - - - -\NewDocumentCommand\todo{m}% -{% -\textcolor{blue}{\textit{#1}} -}% - \begin{document} \maketitle \tableofcontents @@ -71,6 +77,22 @@ 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. +\begin{tcolorbox}[title={Load the \texttt{rank-2-roots} package}] +\begin{verbatim} +\documentclass{amsart} +\usepackage{rank-2-roots} +\begin{document} +The root system \(G_2\): +\begin{tikzpicture}[baseline=-.5] +\begin{rootSystem}{G} +\roots +\end{rootSystem} +\end{tikzpicture} +\end{document} +\end{verbatim} +\end{tcolorbox} + + \section{Root systems} \NewDocumentCommand\drawroots{m}% @@ -90,6 +112,8 @@ We use definitions of root systems and weight lattices as in Carter \cite{Carter \par\noindent% \texttt{\detokenize{\roots}}% \par\noindent% +\texttt{\detokenize{\roots}}% +\par\noindent% \texttt{\detokenize{\end{rootSystem}}}% \par\noindent% \texttt{\detokenize{\end{tikzpicture}}}% @@ -113,12 +137,48 @@ We use definitions of root systems and weight lattices as in Carter \cite{Carter \mytablecontents \end{longtable} +\RenewDocumentCommand\drawroots{m}% +{% +\begin{tikzpicture}[baseline=-.5] +\begin{rootSystem}{#1} +\roots +\simpleroots +\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{\simpleroots}}% +\par\noindent% +\texttt{\detokenize{\end{rootSystem}}}% +\par\noindent% +\texttt{\detokenize{\end{tikzpicture}}}% +}% + +\begin{longtable}{rcm{8cm}} +\caption{The root systems with the simple roots marked}\\ +\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. - +Add an option: \verb!\wt[Z]{x}{y}! to get \verb!Z! passed to TikZ. \RenewDocumentCommand\drawroots{m}% {% @@ -177,7 +237,6 @@ Add an option: \verb!\wt[Z]{x}{y}{m}! to get \verb!Z! passed to TikZ. - \RenewDocumentCommand\drawroots{m}% {% \begin{tikzpicture}[baseline=-.5] @@ -223,24 +282,6 @@ Add an option: \verb!\wt[Z]{x}{y}{m}! to get \verb!Z! passed to TikZ. - - - - - - - - - - - - - - - - - - \RenewDocumentCommand\drawroots{m}% {% \begin{tikzpicture}[baseline=-.5] @@ -285,24 +326,6 @@ Add an option: \verb!\wt[Z]{x}{y}{m}! to get \verb!Z! passed to TikZ. \end{longtable} - - - - - - - - - - - - - - - - - - \section{Parabolic subgroups} \RenewDocumentCommand\drawroots{m}% @@ -349,28 +372,6 @@ Add an option: \verb!\wt[Z]{x}{y}{m}! to get \verb!Z! passed to TikZ. \end{longtable} - - - - - - - - - - - - - - - - - - - - - - \RenewDocumentCommand\drawroots{mm}% {% \begin{tikzpicture}[baseline=-.5] @@ -416,32 +417,6 @@ Add an option: \verb!\wt[Z]{x}{y}{m}! to get \verb!Z! passed to TikZ. \mytablecontents \end{longtable} - - - - - - - - - - - - - - - - - - - - - - - - - - \RenewDocumentCommand\drawroots{mm}% {% \begin{tikzpicture}[baseline=-.5] @@ -491,8 +466,6 @@ Add an option: \verb!\wt[Z]{x}{y}{m}! to get \verb!Z! passed to TikZ. \end{longtable} - - \NewDocumentCommand{\labelWt}{mmmm}% {% \node[#1,black] at \weight{#2}{#3} {\(#4\)}; @@ -584,13 +557,36 @@ Add an option: \verb!\wt[Z]{x}{y}{m}! to get \verb!Z! passed to TikZ. \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};! \] +\begin{tcblisting}{title={Drawing weights as linear combinations of fundamental weights}} +\begin{tikzpicture} +\begin{rootSystem}{C} +\roots +\positiveRootHyperplane +\fill[thick,brown] \weight{1}{0} circle (1.7pt); +\fill[thick,blue] \weight{0}{1} circle (1.7pt); +\fill[thick,red] \weight{2}{-1} circle (1.7pt); +\end{rootSystem} +\end{tikzpicture} +\end{tcblisting} +We can also specify roots in linear combinations of the simple roots: +\begin{tcblisting}{title={Drawing roots as linear combinations of simple roots}} +\begin{tikzpicture} +\begin{rootSystem}{C} +\roots +\positiveRootHyperplane +\fill[thick,brown] \Root{1}{0} circle (1.7pt); +\fill[thick,blue] \Root{0}{1} circle (1.7pt); +\fill[thick,red] \Root{2}{-1} circle (1.7pt); +\end{rootSystem} +\end{tikzpicture} +\end{tcblisting} + 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. @@ -685,8 +681,6 @@ We can use the hex system in drawing on the \(A_2\) or \(G_2\) weight lattices, \end{rootSystem} \end{tikzpicture} \end{tcblisting} - - \begin{tcblisting}{} \setlength{\weightRadius}{2pt} \setlength\weightLength{.75cm} @@ -699,7 +693,6 @@ We can use the hex system in drawing on the \(A_2\) or \(G_2\) weight lattices, \end{rootSystem} \end{tikzpicture} \end{tcblisting} - \begin{tcblisting}{title={Changing the weight length rescales}} \begin{tikzpicture} \setlength\weightLength{.3cm} @@ -709,7 +702,6 @@ We can use the hex system in drawing on the \(A_2\) or \(G_2\) weight lattices, \end{rootSystem} \end{tikzpicture} \end{tcblisting} - \begin{tcblisting}{} \begin{tikzpicture} \setlength\weightLength{.3cm} @@ -718,7 +710,6 @@ We can use the hex system in drawing on the \(A_2\) or \(G_2\) weight lattices, \end{rootSystem} \end{tikzpicture} \end{tcblisting} - \begin{tcblisting}{} \begin{tikzpicture} \setlength\weightLength{.3cm} @@ -727,33 +718,21 @@ We can use the hex system in drawing on the \(A_2\) or \(G_2\) weight lattices, \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} +\wt[blue]{1}{0} +\wt[red]{0}{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] @@ -797,8 +776,8 @@ Without automatic stretching of the weight lattice to fit the picture, you won't -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. +Type \verb!\wt{x}{y}! to get a weight at position \((x,y)\) (as measured in a basis of \emph{fundamental weights}). +Add an option: \verb!\wt[Z]{x}{y}! to get \verb!Z! passed to TikZ, or with option \verb!multiplicity=!\texttt{n} to get multiplicity $n$. \RenewDocumentCommand\drawroots{m}% @@ -806,11 +785,11 @@ Add an option: \verb!\wt[Z]{x}{y}{m}! to get \verb!Z! passed to TikZ. \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} +\wt[brown]{1}{0} +\wt[red]{0}{1} +\wt[blue,multiplicity=4]{1}{3} +\wt[blue,multiplicity=2]{2}{2} +\wt[blue]{-1}{3} \end{rootSystem} \end{tikzpicture} }% @@ -823,15 +802,15 @@ Add an option: \verb!\wt[Z]{x}{y}{m}! to get \verb!Z! passed to TikZ. \par\noindent% \texttt{\detokenize{\roots}}% \par\noindent% -\texttt{\detokenize{\wt[brown]{1}{0}{1}}}% +\texttt{\detokenize{\wt[brown]{1}{0}}}% \par\noindent% -\texttt{\detokenize{\wt[red]{0}{1}{1}}}% +\texttt{\detokenize{\wt[red]{0}{1}}}% \par\noindent% -\texttt{\detokenize{\wt[blue]{1}{3}{4}}}% +\texttt{\detokenize{\wt[blue,multiplicity=4]{1}{3}}}% \par\noindent% -\texttt{\detokenize{\wt[blue]{2}{2}{2}}}% +\texttt{\detokenize{\wt[blue,multiplicity=2]{2}{2}}}% \par\noindent% -\texttt{\detokenize{\wt[blue]{-1}{3}{1}}}% +\texttt{\detokenize{\wt[blue]{-1}{3}}}% \par\noindent% \texttt{\detokenize{\end{rootSystem}}}% \par\noindent% @@ -856,9 +835,6 @@ Add an option: \verb!\wt[Z]{x}{y}{m}! to get \verb!Z! passed to TikZ. \mytablecontents \end{longtable} - - - \RenewDocumentCommand\drawroots{m}% {% \begin{tikzpicture}[baseline=-.5] @@ -904,24 +880,6 @@ Add an option: \verb!\wt[Z]{x}{y}{m}! to get \verb!Z! passed to TikZ. - - - - - - - - - - - - - - - - - - \RenewDocumentCommand\drawroots{m}% {% \begin{tikzpicture}[baseline=-.5] @@ -966,31 +924,6 @@ Add an option: \verb!\wt[Z]{x}{y}{m}! to get \verb!Z! passed to TikZ. \end{longtable} - - - - - - - - - - - - - - - - - - - - - - - - - \RenewDocumentCommand\drawroots{m}% {% \begin{tikzpicture}[baseline=-.5] @@ -1035,28 +968,6 @@ Add an option: \verb!\wt[Z]{x}{y}{m}! to get \verb!Z! passed to TikZ. \end{longtable} - - - - - - - - - - - - - - - - - - - - - - \RenewDocumentCommand\drawroots{mm}% {% \begin{tikzpicture}[baseline=-.5] @@ -1104,30 +1015,6 @@ Add an option: \verb!\wt[Z]{x}{y}{m}! to get \verb!Z! passed to TikZ. - - - - - - - - - - - - - - - - - - - - - - - - \RenewDocumentCommand\drawroots{mm}% {% \begin{tikzpicture}[baseline=-.5] @@ -1237,6 +1124,65 @@ Henceforth assume \verb!\AutoSizeWeightLatticetrue! (the default). \end{tcblisting} + +\newpage + +\section{More options} + +\newcommand*{\typ}[1]{#1} +\newcommand*{\optionLabel}[3]{%% +\multicolumn{2}{l}{\(\texttt{#1}\!: \text{#2}\),} \\ +\multicolumn{2}{l}{\(\textrm{default}= \texttt{#3}\)} \\ +}%% +\newcommand*{\commandLabel}[3]{%% +\multicolumn{2}{l}{\(\texttt{\textbackslash #1}\!: \text{#2}\),} \\ +\multicolumn{2}{l}{\(\textrm{default}= \texttt{#3}\)} \\ +}%% + +\renewcommand*{\arraystretch}{1} +\par\noindent% +\begin{longtable}{p{1cm}p{10cm}} +\endfirsthead +\caption{\dots continued}\\ +\endhead +\multicolumn{2}{c}{continued \dots}\\ +\endfoot +\endlastfoot +\commandLabel{weightRadius}{\typ{length}}{1.2pt} +& Radius of dots used when marking specified weights. \\ +\commandLabel{weightLength}{\typ{length}}{.5cm} +& Minimum distance between distinct weights. \\ +\commandLabel{gradingDot}{\typ{length}}{2pt} +& Size of dot around a root using to indicate a grading of a parabolic subalgebra which only contains one root. \\ +\optionLabel{weight lattice}{\typ{TikZ style data}}{gray!40} +& Style for drawing weight lattice lines. \\ +\optionLabel{root}{\typ{TikZ style data}}{gray} +& Style for drawing roots. \\ +\optionLabel{root polygon}{\typ{TikZ style data}}{gray!40,opacity=.5} +& Style for drawing a polygon which indicates the locations of the roots. \\ +\optionLabel{hyperplane}{\typ{TikZ style data}}{gray!50,fill opacity=.5} +& Style for drawing a hyperplane in a root system which contains either the positive roots, or (more generally) the positive height roots of a parabolic subgroup. \\ +\optionLabel{Weyl chamber}{\typ{TikZ style data}}{gray!60,fill opacity=.5} +& Style for drawing a wedge indicating the Weyl chamber of a root system. \\ +\optionLabel{grading}{\typ{TikZ style data}}{line width=3pt,gray,opacity=0.5,line cap=round} +& Style for drawing a thick line over top of some roots to indicate that they lie in the same grading associated to a parabolic subgroup. \\ +\end{longtable} + +\begin{verbatim} +\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] +\end{verbatim} + \bibliographystyle{amsplain} \bibliography{rank-2-roots} |