texlive[71751] Master/texmf-dist: lie-hasse (9jul24)
commits+karl at tug.org
commits+karl at tug.org
Tue Jul 9 22:04:21 CEST 2024
Revision: 71751
https://tug.org/svn/texlive?view=revision&revision=71751
Author: karl
Date: 2024-07-09 22:04:21 +0200 (Tue, 09 Jul 2024)
Log Message:
-----------
lie-hasse (9jul24)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/lie-hasse/README
trunk/Master/texmf-dist/doc/latex/lie-hasse/lie-hasse.pdf
trunk/Master/texmf-dist/doc/latex/lie-hasse/lie-hasse.tex
trunk/Master/texmf-dist/tex/latex/lie-hasse/lie-hasse.sty
Modified: trunk/Master/texmf-dist/doc/latex/lie-hasse/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lie-hasse/README 2024-07-08 23:42:35 UTC (rev 71750)
+++ trunk/Master/texmf-dist/doc/latex/lie-hasse/README 2024-07-09 20:04:21 UTC (rev 71751)
@@ -2,9 +2,9 @@
Lie Hasse
- v1.0
+ v1.01
- 3 February 2020
+ 9 July 2024
___________________________________
Authors : Ben McKay
Modified: trunk/Master/texmf-dist/doc/latex/lie-hasse/lie-hasse.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/lie-hasse/lie-hasse.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lie-hasse/lie-hasse.tex 2024-07-08 23:42:35 UTC (rev 71750)
+++ trunk/Master/texmf-dist/doc/latex/lie-hasse/lie-hasse.tex 2024-07-09 20:04:21 UTC (rev 71751)
@@ -1,5 +1,5 @@
\documentclass{amsart}
-\title[The Lie Hasse package]{The Lie Hasse package \\ Version 1.0}
+\title[The Lie Hasse package]{The Lie Hasse package \\ Version 1.01}
%% My name:
\makeatletter
\DeclareRobustCommand{\scotsMc}{\scotsMcx{c}}
@@ -19,8 +19,7 @@
\author{\authorsname}
\address{School of Mathematical Sciences, University College Cork, Cork, Ireland}
\email{b.mckay at ucc.ie}
-\date{3 February 2020}
-\usepackage{etex}
+\date{9 July 2024}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenx}
\usepackage{etoolbox}
@@ -87,7 +86,7 @@
root radius=.02cm,
edge length=.5cm,
edge quotes/.style={opacity=0}%
- ]{E}{8}%
+ ]E8%
\end{tikzpicture}%
\end{center}%
\begin{center}
@@ -106,7 +105,7 @@
\begin{document}
The Hasse diagram of \(F_4\) is
\begin{center}
-\hasse[edge length=1cm]{F}{4}
+\hasse F4
\end{center}
\end{document}
\end{Verbatim}
@@ -113,19 +112,19 @@
\end{tcolorbox}
\par\noindent{}The Hasse diagram of \(F_4\) is
\begin{center}
-\hasse[edge length=1cm]{F}{4}
+\hasse[edge length=1cm]F4
\end{center}
Each edge is labelled with the simple root by which vertices differ.
\begin{tcblisting}{title={Inside a \TikZ statement}}
-\(B_4\) has Dynkin diagram \tikz \dynkin[edge length=.35cm]{B}{4};, Hasse diagram
+\(B_4\) has Dynkin diagram \tikz \dynkin{B}{4};, Hasse diagram
\begin{center}
-\hasse[edge length=1cm]{B}{4}
+\hasse[edge length=1cm]B4
\end{center}
\end{tcblisting}
\begin{tcblisting}{title={Inside a Dynkin diagram environment, diagrams fit together}}
The Hasse diagram of \(B_4\) is
\begin{dynkinDiagram}[vertical shift=0,edge length=1cm]{B}{4}
-\hasse{B}{4}
+\hasse[edge length=1cm]B4
\end{dynkinDiagram}
\end{tcblisting}
We shut off the default vertical shift of the Dynkin diagram, so that it starts at the origin.
@@ -133,7 +132,7 @@
\begin{tcblisting}{title={Attaching the Dynkin diagram}}
The Hasse diagram of \(B_4\) is
\begin{center}
-\hasse[attach Dynkin diagram=true]{B}{4}
+\hasse[attach Dynkin diagram=true]B4
\end{center}
\end{tcblisting}
Unfortunately, attaching a Dynkin diagram looks terrible for \(D\) or \(E\) series, so a Dynkin diagram appears below.
@@ -140,12 +139,12 @@
\begin{tcblisting}{title={Attaching the Dynkin diagram}}
The Hasse diagram of \(D_5\) is
\begin{center}
-\hasse[attach Dynkin diagram=true]{D}{5}
+\hasse[attach Dynkin diagram=true]D5
\end{center}
\end{tcblisting}
\begin{tcblisting}{title={Inside a \TikZ environment}}
\begin{tikzpicture}
-\hasse{A}{4}
+\hasse A4
\draw (4;1) circle (5pt);
\draw[red] (2;3) circle (5pt);
\end{tikzpicture}
@@ -152,16 +151,7 @@
\end{tcblisting}
In this example, we see that the roots of the Hasse diagram are \TikZ{} nodes labelled \(g;i\) for grade \(g\) (i.e. \(g\) units up the page) and index \(i\) (i.e. \(i^{\text{th}}\) root of grade \(g\) drawn on the page, starting from the left).
-\section{Inherited options}
-The Lie Hasse package inherits options from the Dynkin diagrams package: the edge lengths are set with
-\begin{Verbatim}
-\tikzset{/Dynkin diagram/edge lengths=1.2cm}
-\end{Verbatim}
-and similarly the ordering of roots with
-\begin{Verbatim}
-\tikzset{/Dynkin diagram/ordering=Bourbaki}
-\end{Verbatim}
-
+\newpage
\section{Prettier}
The package includes a more elaborate \verb!\hasseDiagrams! command, taking a list of semicolon separated Dynkin diagram identfiers.
\begin{tcolorbox}[title={With some global options to make prettier diagrams}]
@@ -198,13 +188,22 @@
\endgroup
Global options:
\begin{verbatim}
- edge/.style={ultra thick},
- edge quotes/.style={/Dynkin diagram/text style,auto,inner sep=2pt},
+\tikzset{/Lie Hasse,
+ edge/.style={ultra thick},
+ edge quotes/.style={
+ /Dynkin diagram/text style,
+ auto,
+ inner sep=2pt},
\end{verbatim}
allow to change the edges, and to change the way that labels are printed, and how close labels are to the edges.
+To give even greater control, the user can define a command \verb!\edgeQuote! of one argument, which is applied to the label placed on every edge of the Hasse diagram.
+The default is
+\begin{verbatim}
+\NewDocumentCommand\edgeQuote{m}{\contour{white}{#1}}
+\end{verbatim}
+which ensures that every label, which is black text by default, has a slight white outline to make it easier to read against a coloured background.
-
\section{Root order}
We order the roots as in the Dynkin diagram package: with orderings Adams, Bourbaki, Carter, Dynkin and Kac.
\emph{Warning:} the default is Carter, \emph{not} Bourbaki; the default in the Dynkin diagram package is Bourbaki.
@@ -222,6 +221,10 @@
\hasseDiagrams{[ordering=Carter]E6;[ordering=Dynkin]E6}
\hasseDiagrams{[ordering=Kac]E6}
\endgroup
+The Lie Hasse package inherits the ordering of roots from the Dynkin diagrams package, so we can set it with
+\begin{Verbatim}
+\tikzset{/Dynkin diagram/ordering=Bourbaki}
+\end{Verbatim}
\section{Graph height and width}
The \emph{height} of a Hasse diagram is the number of grades.
@@ -238,7 +241,7 @@
\end{Verbatim}
to store the width of \(G_2\) at grade \(3\) in a counter called \verb!\w!.
-Once you use \verb!\dynkin{G}{2}! or \verb!\hasse{G}{2}! or the other commands, like
+Once you use \verb!\dynkin G2! or \verb!\hasse G2! or the other commands, like
\begin{Verbatim}
\rootSystemHeight[G][2]{\h}
\end{Verbatim}
@@ -260,7 +263,8 @@
\hasseDiagrams{G2}
\end{Verbatim}
\tikzset{/Lie Hasse diagram,show name=true,show height=true}
-\hasseDiagrams{G2}
+\hasse G2
+
The \verb!show widths! option:
\begin{Verbatim}
\tikzset{/Lie Hasse diagram/show widths=true}
@@ -293,11 +297,11 @@
Here is the same Dynkin diagram, except showing, at each simple root, the coefficient of that simple root in the highest root.
\begin{Verbatim}
\rootSum[E][8]{29}{1}{\rs}
-\dynkin[labels=\rs,ordering=Carter,edge length=.35cm]{E}{8}
+\dynkin[expand labels=\rs,ordering=Carter,edge length=.35cm]{E}{8}
\end{Verbatim}
\rootSum[E][8]{29}{1}{\rs}
\begin{center}
-\dynkin[labels=\rs,ordering=Carter,edge length=.35cm]{E}{8}
+\dynkin[expand labels=\rs,ordering=Carter,edge length=.35cm]{E}{8}
\end{center}
The option \verb!for all roots! allows execution of code once on every root.
@@ -312,7 +316,7 @@
root radius=.05cm
},
for all roots/.code 2 args={\drawRootAsDynkinSum{#1}{#2}}}
-\hasseDiagrams{D5}
+\hasse D5
\end{Verbatim}
\begingroup
\tikzset{/Lie Hasse diagram,
@@ -341,7 +345,7 @@
\end{Verbatim}
\newcommand{\foo}[2]%
{%
- \node[below,scale=.75] at (#1;#2) {\(#1,#2\)};%
+ \node[below,scale=.5] at (#1;#2) {\(#1,#2\)};%
}%
Inside a \TikZ{} or \verb!dynkinDiagram! environment:
\begin{Verbatim}
@@ -348,8 +352,8 @@
\tikzset{/Lie Hasse diagram/edge quotes/.style={opacity=0},
/Dynkin diagram/edge length=1.5cm}
\begin{tikzpicture}
- \hasse{D}{6}%
- \forAllPositiveRootsInHasseDiagram{\foo}%
+ \hasse D6%
+ \forAllPositiveRoots{\foo}%
\end{tikzpicture}
\end{Verbatim}
\begingroup
@@ -356,8 +360,8 @@
\tikzset{/Lie Hasse diagram/edge quotes/.style={opacity=0},
/Dynkin diagram/edge length=1.5cm}
\begin{tikzpicture}
- \hasse{D}{6}%
- \forAllPositiveRootsInHasseDiagram{\foo}%
+ \hasse D6%
+ \forAllPositiveRoots{\foo}%
\end{tikzpicture}
If you put this into the \verb!for all roots! option, it executes on its own:
@@ -378,19 +382,19 @@
Hence we don't need to see every edge perfectly.
The three dimensional effect is the default:
\begin{Verbatim}
-\hasse{D}{4}\hasse{E}{6}
+\hasse D4\hasse E6
\end{Verbatim}
\begin{center}
-\hasse{D}{4}\hasse{E}{6}
+\hasse D4\hasse E6
\end{center}
We can turn it off:
\begin{Verbatim}
-\hasse[three D=false]{D}{4}
-\hasse[three D=false]{E}{6}
+\hasse[three D=false] D4
+\hasse[three D=false] E6
\end{Verbatim}
\begin{center}
-\hasse[three D=false]{D}{4}
-\hasse[three D=false]{E}{6}
+\hasse[three D=false] D4
+\hasse[three D=false] E6
\end{center}
or globally with \verb!\tikzset{/Lie Hasse diagram/three D=false}!.
@@ -430,9 +434,9 @@
\section{Label the simple roots}
Ringel \cite{Ringel:2013} labels his edges like
\begin{Verbatim}
-\hasseDiagrams{[labels={f,e,d,c,u,b,a}]E7}
+\hasse[labels={f,e,d,c,u,b,a}]E7
\end{Verbatim}
-\hasseDiagrams{[labels={f,e,d,c,u,b,a}]E7}
+\hasse[labels={f,e,d,c,u,b,a}]E7
\section{Parabolic subgroups}
This package offers nothing over Ringel's original pictures, except that the user can pick some simple roots whose associated edges are drawn differently.
@@ -440,12 +444,13 @@
We let the reader explore the notation for parabolic subgroups in the Dynkin diagrams package, and use this to declare various roots compact.
\begin{Verbatim}
\tikzset{/Lie Hasse diagram,attach Dynkin diagram=true,three D=false}
-\hasseDiagrams{D{**x*x*x*}}
+\hasse D{**x*x*x*}
\end{Verbatim}
\begingroup
\tikzset{/Lie Hasse diagram,attach Dynkin diagram=true,three D=false}
-\hasseDiagrams{D{**x*x*x*}}
+\hasse D{**x*x*x*}
\endgroup
+
Our motivation comes from trying to identify the invariant vector subbundles of the tangent bundle of a rational homogeneous variety \cite{MathOverflow:123801}.
Such diagrams are often unreadable if we don't turn off the three dimensional graphics.
By default, noncompact root edges are not drawn.
@@ -452,35 +457,35 @@
\begingroup
\tikzset{/Lie Hasse diagram,attach Dynkin diagram=true,show name=false,three D=false}
\begin{Verbatim}
-\hasseDiagrams{E{*xx*x*}}
+\hasse E{*xx*x*}
\end{Verbatim}
-\hasseDiagrams{E{*xx*x*}}
+\hasse E{*xx*x*}
\begin{Verbatim}
-\hasseDiagrams{A{x*x*}}
+\hasse A{x*x*}
\end{Verbatim}
-\hasseDiagrams{A{x*x*}}
+\hasse A{x*x*}
\begin{Verbatim}
-\hasseDiagrams{[parabolic=113]B8}
+\hasse[parabolic=113]B8
\end{Verbatim}
-\hasseDiagrams{[parabolic=113]B8}
+\hasse[parabolic=113]B8
\begin{Verbatim}
-\hasseDiagrams{C{**xx*x**}}
+\hasse C{**xx*x**}
\end{Verbatim}
-\hasseDiagrams{C{**xx*x**}}
+\hasse C{**xx*x**}
\newpage
\begin{Verbatim}
-\hasseDiagrams{E{*x*x*x**}}
+\hasse E{*x*x*x**}
\end{Verbatim}
-\hasseDiagrams{E{*x*x*x**}}
+\hasse E{*x*x*x**}
\newpage
\begin{Verbatim}
-\hasseDiagrams{F{**xx}}
+\hasse F{**xx}
\end{Verbatim}
-\hasseDiagrams{F{**xx}}
+\hasse F{**xx}
\begin{Verbatim}
-\hasseDiagrams{G{*x}}
+\hasse G{*x}
\end{Verbatim}
-\hasseDiagrams{G{*x}}
+\hasse G{*x}
\endgroup
\section{Examples}
Modified: trunk/Master/texmf-dist/tex/latex/lie-hasse/lie-hasse.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lie-hasse/lie-hasse.sty 2024-07-08 23:42:35 UTC (rev 71750)
+++ trunk/Master/texmf-dist/tex/latex/lie-hasse/lie-hasse.sty 2024-07-09 20:04:21 UTC (rev 71751)
@@ -1,24 +1,20 @@
-% The Lie Hasse package.
+% The Lie Hasse package.
+% Version 1.01
%
-% Version 1.0
%
+% This package draws Hasse diagrams of root system posets of simple
+% Lie algebraS, in LaTeX documents, using the TikZ package.
%
-% This package draws Hasse diagrams of root system posets of simple
-% Lie algebraS, in LaTeX documents, using the TikZ package.
+% Benjamin McKay
+% b.mckay at ucc.ie
%
-% Benjamin McKay
-% b.mckay at ucc.ie
-%
-% Released under the LaTeX Project Public License v1.3c or later, see
+% 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{lie-hasse}[2020/02/02 Lie Hasse]
+\ProvidesPackage{lie-hasse}[2024/07/09 Lie Hasse]
\RequirePackage[rgb]{xcolor}
\RequirePackage{dynkin-diagrams}
+\RequirePackage[outline]{contour}
\usetikzlibrary{
positioning,
fadings,
@@ -26,7 +22,7 @@
%%%
%%% Application programming interface:
%%%
-
+\NewDocumentCommand\edgeQuote{m}{\contour{white}{\(#1\)}}
\newif\iflie at hasse@threeD
\lie at hasse@threeDtrue
\xdef\lie at hasse@three at D@shift{.3}%
@@ -40,14 +36,27 @@
\lie at hasse@show at heightfalse
\newif\iflie at hasse@attach at dynkin@diagram
\lie at hasse@attach at dynkin@diagramfalse
-
+\newif\iflie at hasse@show at levi
+\lie at hasse@show at levitrue
+\newif\iflie at hasse@show at unipotent@radical
+\lie at hasse@show at unipotent@radicaltrue
\pgfkeys{
/Lie Hasse diagram/.is family,
/Lie Hasse diagram,
- attach Dynkin diagram/.is if = lie at hasse@attach at dynkin@diagram,
+ attach Dynkin diagram/.is if
+ = lie at hasse@attach at dynkin@diagram,
attach Dynkin diagram/.default = false,
- edge/.style={ultra thick},
- edge quotes/.style={/Dynkin diagram/text style,auto,inner sep=2pt},
+ edge/.style = {
+ ultra thick
+ },
+ edge length/.estore in
+ = \lie at hasse@edge at length,
+ edge length = 1cm,
+ edge quotes/.style={
+ /Dynkin diagram/text style,
+ auto,
+ inner sep=2pt
+ },
compact edge/.style={},
noncompact edge/.style={opacity=0},
compact root/.code={\dynkinDrawSolidRootMark{#1}},
@@ -67,7 +76,13 @@
show widths/.default = false,
show height/.is if = lie at hasse@show at height,
show height/.default = false,
- z shift/.estore in = \lie at hasse@three at D@shift,
+ show Levi/.is if = lie at hasse@show at levi,
+ show Levi/.default = true,
+ show unipotent radical/.is if
+ = lie at hasse@show at unipotent@radical,
+ show unipotent radical/.default = true,
+ z shift/.estore in
+ = \lie at hasse@three at D@shift,
z shift/.default = .3,
top/.style={black!20,opacity=.4},
left/.style={black!20,opacity=.9},
@@ -90,13 +105,17 @@
\dynkin at integer@rank%
}%
{%
- % Turn Satake codes into Dynkin diagram expressions in \dynkin at string.
+ % Turn Satake codes into Dynkin diagram
+ % expressions in \dynkin at string.
\dynkin at grok@Satake at codes%
}%
- % Expand out any digits in \dynkin at string into multiples of the various root marks.
+ % Expand out any digits in \dynkin at string
+ % into multiples of the various root marks.
\expand at Dynkin@Roots at Digits%
- % Assign to \dynkin at roots the input string \dynkin at string with all . symbols removed,
- % so we only get the symbols representing the marks for the various roots.
+ % Assign to \dynkin at roots the input string
+ % \dynkin at string with all . symbols removed,
+ % so we only get the symbols representing
+ % the marks for the various roots.
\StrDel{\dynkin at string}{.}[\temp]%
\xdef\dynkin at roots{\temp}%
\StrLen{\dynkin at roots}[\temp]%
@@ -115,58 +134,33 @@
{%
\pgfkeys{/Lie Hasse diagram/for all roots={#1}{#2}}%
}%
+\newif\iflie at hasse@B
+\newcount\dynkin at rank@plus at one%
\NewDocumentCommand\hasse{O{}mm}%
{%
\ifdefined\filldraw%
- \IfStrEq{#1}{}%
- {%
+ \ifx#1\empty\relax%
\studyHasseDiagramOfRootSystem{#2}{#3}%
- }%
- {%
+ \else%
\studyHasseDiagramOfRootSystem[#1]{#2}{#3}%
- }%
+ \fi%
\label at item@count 0\relax%
\expandafter\forcsvlist%
- \expandafter\add at label%
+ \expandafter\lie at hasse@add at label%
\expandafter{\dynkin at label@list}%
\ifnum\dynkin at rank=1%
\dynkin{A}{1}%
\else%
+ \global\dynkin at rank@plus at one\the\dynkin at rank\relax%
+ \global\advance\dynkin at rank@plus at one by 1\relax%
\add at compact@simple at roots@to at compact@roots{}%
\IfStrEqCase{#2}%
{%%
{A}{\hasse at A}%
- {B}{\hasse at BC}%
- {C}{\hasse at BC*}%
+ {B}{\global\lie at hasse@Btrue\hasse at BC}%
+ {C}{\global\lie at hasse@Bfalse\hasse at BC}%
{D}{\hasse at D}%
- {E}%
- {%
- \ifnum\dynkin at rank=6%
- \hasse at E@six%
- \else%
- \ifnum\dynkin at rank=7%
- \hasse at E@seven%
- \else%
- \ifnum\dynkin at rank=8%
- \hasse at E@eight%
- \else
- \ifnum\dynkin at rank>8%
- \ClassError%
- {Lie Hasse}%
- {Rank of E series Hasse diagram: #3{}%
- exceeds 8; not defined yet}%
- {}%
- \fi%
- \ifnum\dynkin at rank<6%
- \ClassError%
- {Lie Hasse}%
- {Rank of E series Hasse diagram: #3{} less than 6}%
- {}%
- \fi%
- \fi%
- \fi%
- \fi%
- }%
+ {E}{\hasse at E@series}%
{F}%
{%
\ifnum\dynkin at rank=4%
@@ -194,10 +188,11 @@
{Lie Hasse}%
{Lie algebra series #2{} not A,B,C,D,E,F or G}%
{}]%
+ \forAllPositiveRoots{\draw at lie@hasse at root}%
\draw at simple@root at labels%
\fi%
\lie at hasse@write at widths{}%
- \forAllPositiveRootsInHasseDiagram{\doRootThing}%
+ \forAllPositiveRoots{\doRootThing}%
\iflie at hasse@attach at dynkin@diagram%
\attachDynkin%
\fi%
@@ -205,6 +200,35 @@
\begin{tikzpicture}\hasse[#1]{#2}{#3}\end{tikzpicture}%
\fi%
}%
+\NewDocumentCommand\hasse at E@series{}%
+{%
+ \ifnum\dynkin at rank=6%
+ \hasse at E@six%
+ \else%
+ \ifnum\dynkin at rank=7%
+ \hasse at E@seven%
+ \else%
+ \ifnum\dynkin at rank=8%
+ \hasse at E@eight%
+ \else%
+ \ifnum\dynkin at rank>8%
+ \ClassError%
+ {Lie Hasse}%
+ {Rank of E series Hasse diagram: \the\dynkin at rank{}%
+ exceeds 8; not defined yet}%
+ {}%
+ \fi%
+ \ifnum\dynkin at rank<6%
+ \ClassError%
+ {Lie Hasse}%
+ {Rank of E series Hasse diagram: \the\dynkin at rank{}%
+ less than 6; not define yet}%
+ {}%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+}%
\NewDocumentCommand\drawRootAsDynkinSum{mm}%
{%
\rootSum{#1}{#2}{\rs}%
@@ -211,7 +235,7 @@
\node at (#1;#2)
{%
\dynkin[%
- labels=\rs,%
+ expand labels=\rs,%
/Lie Hasse diagram/embedded Dynkin diagram]%
{\dynkin at series}{\the\dynkin at rank}%
};%
@@ -239,25 +263,38 @@
}%
\fi%
}%
-
-\NewDocumentCommand\backwardsGtwo{}%
+\NewDocumentCommand\hasseAttachGtwo{}%
{%
- \dynkin[label,backwards,x shift in edge lengths=-1]{G}{\dynkin at roots}%
+ \dynkin[vertical shift=0,%
+ edge length=\lie at hasse@edge at length,%
+% label,%
+% backwards,%
+% x shift in edge lengths=-1
+]{G}{\dynkin at roots}%
}%
-
\newcount\lie at hasse@E at shift%
\NewDocumentCommand\attachDynkin{}%
{%
\IfStrEqCase{\dynkin at series}{%
- {A}{\dynkin{A}{\dynkin at roots}}%
- {B}{\dynkin{B}{\dynkin at roots}}%
- {C}{\dynkin{C}{\dynkin at roots}}%
- {D}{\dynkin[y shift in edge lengths=-1.5,label]%
- {D}{\dynkin at roots}}%
+ {A}{\dynkin[vertical shift=0,%
+ edge length=\lie at hasse@edge at length]%
+ {A}{\dynkin at roots}}%
+ {B}{\dynkin[vertical shift=0,%
+ edge length=\lie at hasse@edge at length]%
+ {B}{\dynkin at roots}}%
+ {C}{\dynkin[vertical shift=0,%
+ edge length=\lie at hasse@edge at length]%
+ {C}{\dynkin at roots}}%
+ {D}{\dynkin[vertical shift=0,%
+ edge length=\lie at hasse@edge at length,%
+ y shift in edge lengths=-1.5,label]%
+ {D}{\dynkin at roots}}%
{E}%
{%%
\ifnum\dynkin at rank=6%
\dynkin[%
+ vertical shift=0,%
+ edge length=\lie at hasse@edge at length,%
upsidedown,%
labels*={1,...,6},%
y shift in edge lengths=.5]%
@@ -266,6 +303,8 @@
\lie at hasse@E at shift\the\dynkin at rank\relax%
\advance\lie at hasse@E at shift by -2\relax%
\dynkin[%
+ vertical shift=0,%
+ edge length=\lie at hasse@edge at length,%
backwards,%
upsidedown,%
label,%
@@ -274,16 +313,17 @@
{E}{\dynkin at roots}%
\fi%
}%%
- {F}{\dynkin{F}{\dynkin at roots}}%
- {G}{\backwardsGtwo{}}%
+ {F}{\dynkin[vertical shift=0,%
+ edge length=\lie at hasse@edge at length]%
+ {F}{\dynkin at roots}}%
+ {G}{\hasseAttachGtwo}%
}%
[\ClassError%
{Lie Hasse}%
- {Lie algebra series \dynkin at series{} not A,B,C,D,E,F or G when attaching Dynkin diagram}%
+ {Lie algebra series \dynkin at series{} %
+ not A,B,C,D,E,F or G when attaching Dynkin diagram}%
{}]%
}%
-
-
\newif\iflie at hasse@multiple at diagrams
\newcommand\doHasseDiagram[1]%%
{%
@@ -291,8 +331,7 @@
\ %
\fi%
\begin{tikzpicture}%
- [show background rectangle,%
- baseline=(current bounding box.east)]]%
+ [show background rectangle,baseline=(current bounding box.east)]%
\hasse#1%
\iflie at hasse@show at height%
\rootSystemHeight{\lie at hasse@height}%
@@ -327,33 +366,25 @@
}%
\begin{center}%
\expandafter\forscsvlist%
- \expandafter\doHasseDiagram%
- \expandafter{#1}%
+ \expandafter\doHasseDiagram\expandafter{#1}%
\end{center}%
}%
-
-
%%%
%%% Package internals:
%%%
-
-
\pgfdeclarelayer{Dynkin middle}
\pgfdeclarelayer{Dynkin above}
\pgfsetlayers{background,Dynkin behind,Dynkin middle,Dynkin above,main}
-
-
\newcommand*\label at list@at[1]{\csname FOOBAR-#1\endcsname}
\newcommand*\defn at label@list at entry[1]{\expandafter\def\csname FOOBAR-#1\endcsname}
\def\add at to@label at list#1#2{\global\defn at label@list at entry{#1}{#2}}%
\newcount\label at item@count%
\label at item@count 0\relax%
-\newcommand\add at label[1]%
+\newcommand\lie at hasse@add at label[1]%
{%
- \advance\label at item@count by 1\relax%
+ \global\advance\label at item@count by 1\relax%
\global\add at to@label at list{\the\label at item@count}{#1}%
}%
-
\xdef\lie at hasse@compact at roots{}%
\NewDocumentCommand\if at compact@root{mmm}%
{%
@@ -369,9 +400,8 @@
\dynkinOrder{\dynkin at series}{\the\dynkin at rank}.Carter::#1->\dynkin at ordering.%
{\current at simple@root}%
\StrChar{\dynkin at roots}{\current at simple@root}[\lie at hasse@root at marker]%
-\IfStrEq{*}{\lie at hasse@root at marker}{#2}{#3}%
+\IfStrEq{x}{\lie at hasse@root at marker}{#3}{#2}%
}%
-
\NewDocumentCommand\add at compact@root{m}%
{%
\if at compact@root{#1}%
@@ -382,53 +412,65 @@
\xdef\lie at hasse@compact at roots{\temp at lie@hasse at compact@roots{ }(#1)}%
}%
}%
-
\newcount\lie at hasse@sr%
-\newcount\drpo%
\NewDocumentCommand\add at compact@simple at roots@to at compact@roots{}%
{%
-\lie at hasse@sr 1\relax%
-\drpo\the\dynkin at rank\relax%
-\advance\drpo by 1\relax%
-\loop%
- \if at compact@simple at root{\the\lie at hasse@sr}%
- {%%
- \add at compact@root{1;\the\lie at hasse@sr}%
- }%%
- {%%
- }%%
- \advance\lie at hasse@sr by 1\relax%
-\ifnum\lie at hasse@sr<\the\drpo%
-\repeat%
+ \lie at hasse@sr 1\relax%
+ \loop%
+ \if at compact@simple at root{\the\lie at hasse@sr}%
+ {%%
+ \add at compact@root{1;\the\lie at hasse@sr}%
+ }%%
+ {%%
+ }%%
+ \advance\lie at hasse@sr by 1\relax%
+ \ifnum\lie at hasse@sr<\the\dynkin at rank@plus at one%
+ \repeat%
}%
-
-\newcount\drmo%
\newcount\lie at hasse@root at count%
\newcount\lie at hasse@root at count@b%
\newcount\max at lie@hasse at root@count%
\newcount\lie at hasse@reorder
-
\NewDocumentCommand\lie at hasse@fix at order{mm}%
{%
\dynkinOrder{\dynkin at series}{\dynkin at rank}.Carter::{#1}->\dynkin at ordering.{#2}%
}%
-
\NewDocumentCommand\draw at one@simple at root@label{mm}%
%% \draw at one@simple at root@label{r}{s}, draw at Carter number r
%% the root with text s.
{%
- \node[below,%
- label=%
- {%
- [below,%
- lie at hasse@color,%
- /Lie Hasse diagram/edge quotes]%
- \(\pgfkeys{/Dynkin diagram/label macro=#2}\)%
- }%
- ]%
- at%
- (1;#1)%
- {};%
+ \if at compact@simple at root{#1}%
+ {%
+ \iflie at hasse@show at levi%
+ \global\lie at hasse@ok at roottrue%
+ \else%
+ \global\lie at hasse@ok at rootfalse%
+ \fi%
+ }%
+ {%
+ \iflie at hasse@show at unipotent@radical%
+ \global\lie at hasse@ok at roottrue%
+ \else%
+ \global\lie at hasse@ok at rootfalse%
+ \fi%
+ }%
+ \iflie at hasse@ok at root%
+ \node[%
+ below,%
+ label=%
+ {%
+ [%
+ below,%
+ lie at hasse@color,%
+ /Lie Hasse diagram/edge quotes%
+ ]%
+ \(\pgfkeys{/Dynkin diagram/label macro={\edgeQuote{#2}}}\)%
+ }%
+ ]%
+ at%
+ (1;#1)%
+ {};%
+ \fi%
}%
\NewDocumentCommand\draw at simple@root at labels{}%
{%
@@ -471,27 +513,56 @@
\pgfmathsetmacro{\lie at hasse@huenum}{#1/\the\dynkin at rank}%
\global\definecolor{lie at hasse@color}{hsb}{\lie at hasse@huenum,1,.6}%
}%
-\NewDocumentCommand\draw at lie@hasse at root{m}%
+\NewDocumentCommand\draw at lie@hasse at root{mm}%
{%
-\if at compact@root{#1}%
-{%%
-\pgfkeys{/Lie Hasse diagram/compact root=#1}%
-}%%
-{%%
-\pgfkeys{/Lie Hasse diagram/noncompact root=#1}%
-}%%
+ \if at compact@root{#1;#2}%
+ {%%
+ \iflie at hasse@show at levi%
+ \pgfkeys{/Lie Hasse diagram/compact root={#1;#2}}%
+ \fi%
+ }%%
+ {%%
+ \iflie at hasse@show at unipotent@radical%
+ \pgfkeys{/Lie Hasse diagram/noncompact root={#1;#2}}%
+ \fi%
+ }%%
}%
-\xdef\lie at hasse@grade at a{}
-\xdef\lie at hasse@grade at b{}
-\xdef\lie at hasse@index at a{}
-\xdef\lie at hasse@index at b{}
\newcount\root at gpo%
\xdef\label at text{}%
+\newif\iflie at hasse@is at levi
+\newif\iflie at hasse@ok at root
\NewDocumentCommand\draw at lie@hasse at edge{O{}mmmm}%
%[edge label options]{from grade}{from index}{to index}{simple root}
{%
\root at gpo #2\relax%
\advance\root at gpo by 1\relax%
+ \if at compact@root{#2;#3}%
+ {%
+ \if at compact@simple at root{#5}%
+ {%
+ \global\lie at hasse@is at levitrue%
+ \add at compact@root{\the\root at gpo;#4}%
+ }%
+ {%
+ \global\lie at hasse@is at levifalse%
+ }%
+ }%
+ {%
+ \global\lie at hasse@is at levifalse%
+ }%
+ \iflie at hasse@is at levi%
+ \iflie at hasse@show at levi%
+ \global\lie at hasse@ok at roottrue%
+ \else%
+ \global\lie at hasse@ok at rootfalse%
+ \fi%
+ \else%
+ \iflie at hasse@show at unipotent@radical%
+ \global\lie at hasse@ok at roottrue%
+ \else%
+ \global\lie at hasse@ok at rootfalse%
+ \fi%
+ \fi%
\set at lie@hasse at color{#5}%
\lie at hasse@fix at order{#5}{\lie at hasse@root at count@b}%
\IfStrEq{\dynkin at label@list}{}%
@@ -505,31 +576,33 @@
}%
}%
\if at compact@simple at root{#5}%
- {%%% Compact
- \draw[%
- lie at hasse@color,%
- /Lie Hasse diagram/edge,%
- /Lie Hasse diagram/compact edge]%
- (#2;#3) --%
- node[lie at hasse@color,/Lie Hasse diagram/edge quotes,#1]%
- {\(\pgfkeys{/Dynkin diagram/label macro=\label at text}\)}%
- (\the\root at gpo;#4);%
- \IfSubStr{\lie at hasse@compact at roots}{#2;#3}%
- {%% adding to a compact
- \add at compact@root{\the\root at gpo;#4}%
- }%%
- {%%
- }%%
+ {%%% Compact simple root, i.e. edge
+ \iflie at hasse@ok at root%
+ \draw[%
+ lie at hasse@color,%
+ /Lie Hasse diagram/edge,%
+ /Lie Hasse diagram/compact edge]%
+ (#2;#3)--%
+ node[lie at hasse@color,/Lie Hasse diagram/edge quotes,#1]%
+ {\(\pgfkeys{/Dynkin diagram/label macro={\edgeQuote{\label at text}}}\)}%
+ (\the\root at gpo;#4);%
+ \fi%
+ \iflie at hasse@is at levi%
+ \fi%
}%%%
{%%% Noncompact
- \draw[%
- lie at hasse@color,%
- /Lie Hasse diagram/edge,%
- /Lie Hasse diagram/noncompact edge]%
- (#2;#3) --%
+ \iflie at hasse@ok at root%
+ \draw
+ [%
+ lie at hasse@color,%
+ /Lie Hasse diagram/edge,%
+ /Lie Hasse diagram/noncompact edge%
+ ]%
+ (#2;#3)--%
node[lie at hasse@color,/Lie Hasse diagram/edge quotes,#1]%
- {\(\pgfkeys{/Dynkin diagram/label macro=\label at text}\)}%
+ {\(\pgfkeys{/Dynkin diagram/label macro={\edgeQuote{\label at text}}}\)}%
(\the\root at gpo;#4);%
+ \fi%
}%%%
}%
\newcount\A at series@grade%
@@ -555,8 +628,8 @@
\coordinate
(\the\A at series@grade;\the\A at series@j)
at
- ({.5*\the\A at series@x*\dynkin at edge@length},
- {.25*\the\A at series@y*\dynkin at edge@length})
+ ({.5*\the\A at series@x*\lie at hasse@edge at length},
+ {.25*\the\A at series@y*\lie at hasse@edge at length})
{};%
\advance\A at series@j by 1\relax%
\advance\A at series@x by 2\relax%
@@ -569,59 +642,35 @@
\ifnum\A at series@grade<\the\max at A@series at grade%
\repeat%
}%
-\newcount\A at series@grade%
-\newcount\max at A@series at grade%
-\NewDocumentCommand\draw at A@roots{}%
-{%
- \A at series@grade 1\relax%
- \max at A@series at grade \the\dynkin at rank\relax%
- \advance\max at A@series at grade by 1\relax%
- \loop%
- \max at A@series at j\the\dynkin at rank\relax%
- \advance\max at A@series at j by -\the\A at series@grade\relax%
- \advance\max at A@series at j by 2\relax%
- \A at series@j 1\relax%
- {%
- \loop%
- \draw at lie@hasse at root%
- {\the\A at series@grade;\the\A at series@j}%
- \advance\A at series@j by 1\relax%
- \ifnum\A at series@j<\the\max at A@series at j%
- \repeat%
- }%
- \advance\A at series@grade by 1\relax%
- \ifnum\A at series@grade<\the\max at A@series at grade%
- \repeat%
-}%
\newcount\maxA at i%
\newcount\maxA at j%
\newcount\A at lbl%
-\newcount\A at i%
-\newcount\A at j%
-\newcount\A at ipo%
+\newcount\lie at hasse@i%
+\newcount\lie at hasse@j%
+\newcount\lie at hasse@ipo%
\newcount\A at rj%
\newcount\A at rjmo%
\NewDocumentCommand\draw at A@edges{}%
{%
\maxA at i\the\dynkin at rank\relax%
- \A at i 1\relax%
+ \lie at hasse@i 1\relax%
\loop%
\maxA at j \the\dynkin at rank\relax%
- \advance\maxA at j by -\the\A at i\relax%
+ \advance\maxA at j by -\the\lie at hasse@i\relax%
\advance\maxA at j by 1\relax%
\ifnum\maxA at j>-1%
- \A at j 1\relax%
+ \lie at hasse@j 1\relax%
{%
\loop%
- \A at lbl\the\A at i\relax%
- \advance\A at lbl by \the\A at j\relax%
- \A at ipo \A at i\relax%
- \advance\A at ipo by 1\relax%
+ \A at lbl\the\lie at hasse@i\relax%
+ \advance\A at lbl by \the\lie at hasse@j\relax%
+ \lie at hasse@ipo \lie at hasse@i\relax%
+ \advance\lie at hasse@ipo by 1\relax%
\draw at lie@hasse at edge[left]%
- {\the\A at i}{\the\A at j}%
- {\the\A at j}{\the\A at lbl}%
+ {\the\lie at hasse@i}{\the\lie at hasse@j}%
+ {\the\lie at hasse@j}{\the\A at lbl}%
\A at rj\the\maxA at j\relax%
- \advance\A at rj by -\the\A at j\relax%
+ \advance\A at rj by -\the\lie at hasse@j\relax%
\advance\A at rj by 1\relax%
\A at rjmo\the\A at rj\relax%
\advance\A at rjmo by -1\relax%
@@ -629,15 +678,15 @@
\advance\A at lbl by \the\dynkin at rank%
\advance\A at lbl by 1%
\draw at lie@hasse at edge[right]%
- {\the\A at i}{\the\A at rj}%
+ {\the\lie at hasse@i}{\the\A at rj}%
{\the\A at rjmo}{\the\A at lbl}%
- \advance\A at j by 1\relax%
- \ifnum\A at j<\the\maxA at j%
+ \advance\lie at hasse@j by 1\relax%
+ \ifnum\lie at hasse@j<\the\maxA at j%
\repeat%
}%
\fi%
- \advance\A at i by 1\relax%
- \ifnum\A at i<\the\maxA at i%
+ \advance\lie at hasse@i by 1\relax%
+ \ifnum\lie at hasse@i<\the\maxA at i%
\repeat%
}%
%% \hasse at A@width at at@grade{g}{\w} sets the counter \w to
@@ -653,7 +702,6 @@
{%
\place at A@roots%
\draw at A@edges%
- \draw at A@roots%
}%
%% \hasse at BC@width at at@grade{g}{\w} sets the counter \w to
%% the value of the width (number of roots) at grade g of
@@ -666,8 +714,7 @@
\global\advance#2 by 1\relax%
\global\divide#2 by 2\relax%
}%
-\newcount\tdrmt%
-\newcount\tdrmo%
+\newcount\twice at dynkin@rank at minus@one%
\newcount\max at BC@r%
\newcount\BC at r%
\newcount\BC at series@x%
@@ -674,131 +721,110 @@
\newcount\BC at series@y%
\NewDocumentCommand\place at BC@roots{}%
{%
-\drmo \the\dynkin at rank\relax%
-\advance\drmo by -1\relax%
-\tdrmt \the\drmo\relax%
-\advance\tdrmt by \the\drmo\relax%
-\tdrmo \the\tdrmt\relax%
-\advance\tdrmo 1\relax%
-\max at BC@r \the\dynkin at rank\relax%
-\advance\max at BC@r by 1\relax%
-\BC at r 1\relax%
-\loop%
- \BC at series@x \the\BC at r\relax%
- \advance\BC at series@x by -1\relax%
- \advance\BC at series@x by \the\BC at series@x\relax%
- \BC at series@y 1\relax%
- {%%
+ \twice at dynkin@rank at minus@one \the\dynkin at rank\relax%
+ \advance\twice at dynkin@rank at minus@one by \the\dynkin at rank\relax%
+ \advance\twice at dynkin@rank at minus@one by -1\relax%
+ \max at BC@r \the\dynkin at rank\relax%
+ \advance\max at BC@r by 1\relax%
+ \BC at r 1\relax%
\loop%
- \coordinate
- (\the\BC at series@y;\the\BC at r)
- at
- ({.5*\the\BC at series@x*\dynkin at edge@length},
- {.5*(\the\BC at series@y-1)*\dynkin at edge@length})
- {};%
- \advance\BC at series@y by 1\relax%
- \advance\BC at series@x by 1\relax%
- \ifnum\BC at series@x<\the\tdrmo\repeat%
- }%%
- \advance\BC at r by 1\relax%
- \ifnum\BC at r<\the\max at BC@r%
-\repeat%
+ \BC at series@x \the\BC at r\relax%
+ \advance\BC at series@x by -1\relax%
+ \advance\BC at series@x by \the\BC at series@x\relax%
+ \BC at series@y 1\relax%
+ {%%
+ \loop%
+ \coordinate
+ (\the\BC at series@y;\the\BC at r)
+ at
+ ({.5*\the\BC at series@x*\lie at hasse@edge at length},
+ {.5*(\the\BC at series@y-1)*\lie at hasse@edge at length})
+ {};%
+ \advance\BC at series@y by 1\relax%
+ \advance\BC at series@x by 1\relax%
+ \ifnum\BC at series@x<\the\twice at dynkin@rank at minus@one\repeat%
+ }%%
+ \advance\BC at r by 1\relax%
+ \ifnum\BC at r<\the\max at BC@r%
+ \repeat%
}%
-\newcount\max at BC@i%
+\newcount\BC at height%
+\newcount\BC at g%
+\NewDocumentCommand\draw at BC@edges{}%
+{%
+ \rootSystemHeight{\BC at height}%
+ \ifnum\BC at height>1%
+ \BC at g 1\relax%
+ \loop%
+ \draw at BC@edges at at@grade{\the\BC at g}%
+ \global\advance\BC at g by 1\relax%
+ \ifnum\BC at g<\BC at height%
+ \repeat%
+ \fi%
+}%
\newcount\BC at i%
-\newcount\BC at series@x%
-\newcount\BC at series@y%
+\newcount\BC at width%
+\newcount\BC at width@plus at one%
+\NewDocumentCommand\draw at BC@edges at at@grade{m}%
+{%
+ \rootSystemWidthAtGrade{#1}{\BC at width}%
+ \BC at width@plus at one \BC at width\relax%
+ \advance \BC at width@plus at one by 1\relax%
+ \BC at i 1\relax%
+ {%
+ \loop%
+ \draw at BC@edges at at@root{#1}{\the\BC at i}%
+ \global\advance\BC at i by 1\relax%
+ \ifnum\BC at i<\BC at width@plus at one\repeat%
+ }%
+}%
+\newcount\BC at height%
\newcount\BC at ii%
-\newcount\BC at series@yy%
-\newcount\BC at series@yy%
-\newcount\lbl%
+\newif\ifBC at draw%
+\newcount\lie at hasse@lbl%
\newcount\temp at lbl%
-\NewDocumentCommand\draw at BC@edges{s}%
+\NewDocumentCommand\draw at BC@edges at at@root{mm}%
{%
-\tdrmo \the\dynkin at rank\relax%
-\advance\tdrmo by \the\dynkin at rank\relax%
-\advance\tdrmo by -1\relax%
-\max at BC@i \the\dynkin at rank\relax%
-\advance\max at BC@i by 1\relax%
-\BC at i 1\relax%
-\loop%
- \BC at series@x \the\BC at i\relax%
- \advance\BC at series@x by \the\BC at i\relax%
- \advance\BC at series@x by -2\relax%
- \BC at series@y 1\relax%
- {%%
- \loop%
- \ifnum\BC at i>1%
- % draw an edge upward to the left
- \BC at ii \the\BC at i\relax%
- \advance\BC at ii by -1\relax%
- \BC at series@yy \the\BC at series@y\relax%
- \advance\BC at series@yy by 1\relax%
- \draw at lie@hasse at edge[right]%
- {\the\BC at series@y}{\the\BC at i}%
- {\the\BC at ii}%
- {\the\BC at ii}%
+ \ifnum#2>1%
+ % draw an edge upward to the left
+ \BC at ii #2\relax%
+ \advance\BC at ii by -1\relax%
+ \draw at lie@hasse at edge[right]%
+ {#1}{#2}%
+ {\the\BC at ii}
+ {\the\BC at ii}%
+ \fi%
+ \BC at drawtrue%
+ \ifodd#1
+ \ifnum#2=\the\BC at width%
+ \global\BC at drawfalse%
\fi%
- \ifnum\BC at series@y>1%
- % draw an edge downward to the left
- \BC at series@yy \the\BC at series@y\relax%
- \advance\BC at series@yy by -1\relax%
- \lbl \the\BC at i\relax%
- \advance\lbl by \the\BC at series@y\relax%
- \advance\lbl by -1\relax%
- \ifnum\dynkin at rank<\the\lbl%
- \temp at lbl \the\lbl\relax%
- \lbl \the\dynkin at rank\relax%
- \advance\lbl by \the\dynkin at rank%
- \advance\lbl by -\the\temp at lbl%
+ \fi%
+ \ifBC at draw%
+ % draw an edge upward to the right
+ \lie at hasse@lbl #2\relax%
+ \advance\lie at hasse@lbl by #1\relax%
+ \ifnum\dynkin at rank<\the\lie at hasse@lbl%
+ \temp at lbl \the\lie at hasse@lbl\relax%
+ \lie at hasse@lbl \the\dynkin at rank\relax%
+ \advance\lie at hasse@lbl by \the\dynkin at rank%
+ \advance\lie at hasse@lbl by -\the\temp at lbl%
%% For the B series:
- \IfBooleanF{#1}{\global\advance\lbl by 1\relax}%
- \draw at lie@hasse at edge[left]%
- {\the\BC at series@yy}{\the\BC at i}%
- {\the\BC at i}%
- {\the\lbl}%
- \else%
- \draw at lie@hasse at edge[left]%
- {\the\BC at series@yy}{\the\BC at i}%
- {\the\BC at i}%
- {\the\lbl}%
+ \iflie at hasse@B%
+ \global\advance\lie at hasse@lbl by 1\relax%
\fi%
+ \draw at lie@hasse at edge[left]%
+ {#1}{#2}%
+ {#2}%
+ {\the\lie at hasse@lbl}%
+ \else%
+ \draw at lie@hasse at edge[left]%
+ {#1}{#2}%
+ {#2}%
+ {\the\lie at hasse@lbl}%
\fi%
- \advance\BC at series@y by 1\relax%
- \advance\BC at series@x by 1\relax%
- \ifnum\BC at series@x<\the\tdrmo\repeat%
- }%%
- \advance\BC at i by 1\relax%
- \ifnum\BC at i<\the\max at BC@i%
-\repeat%
+ \fi%
}%
-\newcount\tdrpt%
-\newcount\BC at r%
-\newcount\BC at series@y%
-\newcount\maxy%
-\NewDocumentCommand\draw at BC@roots{}%
-{%
-\tdrpt \the\dynkin at rank\relax%
-\advance\tdrpt by \the\dynkin at rank\relax%
-\advance\tdrpt by 2\relax%
-\max at BC@r \the\dynkin at rank\relax%
-\advance\max at BC@r by 1\relax%
-\BC at r 1\relax%
-\loop%
- \BC at series@y 1\relax%
- \maxy \tdrpt\relax%
- \advance\maxy -\the\BC at r\relax%
- \advance\maxy -\the\BC at r\relax%
- {%%
- \loop%
- \draw at lie@hasse at root{\the\BC at series@y;\the\BC at r}%
- \advance\BC at series@y by 1\relax%
- \ifnum\BC at series@y<\the\maxy\repeat%
- }%%
- \advance\BC at r by 1\relax%
- \ifnum\BC at r<\the\max at BC@r%
-\repeat%
-}%
\NewDocumentCommand\hasse at BC{s}% star for C:
{%
\place at BC@roots%
@@ -809,7 +835,6 @@
{%
\draw at BC@edges%
}%
- \draw at BC@roots%
}%
\NewDocumentCommand\hasse at D{}%
{%
@@ -818,51 +843,45 @@
\iflie at hasse@threeD%
\draw at D@hasse at three@D%
\fi%
- \draw at D@roots%
}%
-\newcount\drmt%
\NewDocumentCommand\draw at D@hasse at three@D{}%
{%
- \drmo \the\dynkin at rank\relax%
- \advance\drmo by -1\relax%
- \drmt \the\dynkin at rank\relax%
- \advance\drmt by -2\relax%
\begin{pgfonlayer}{Dynkin middle}%
\fill[/Lie Hasse diagram/left]
- (\the\drmt;1) --
- (\the\drmo;1) --
+ (\the\dynkin at rank@minus at two;1) --
+ (\the\dynkin at rank@minus at one;1) --
(\the\dynkin at rank;1) --
- (\the\drmo;2) --
+ (\the\dynkin at rank@minus at one;2) --
cycle;%
\fill[/Lie Hasse diagram/top]
- (\the\drmt;1) --
- (1;\the\drmt) --
- (2;\the\drmo) --
- (\the\drmo;2) --
+ (\the\dynkin at rank@minus at two;1) --
+ (1;\the\dynkin at rank@minus at two) --
+ (2;\the\dynkin at rank@minus at one) --
+ (\the\dynkin at rank@minus at one;2) --
cycle;%
\fill[/Lie Hasse diagram/top]
- (\the\drmo;2) --
+ (\the\dynkin at rank@minus at one;2) --
(\the\dynkin at rank;1) --
- (3;\the\drmo) --
- (2;\the\drmo) --
+ (3;\the\dynkin at rank@minus at one) --
+ (2;\the\dynkin at rank@minus at one) --
cycle;%
\fill[/Lie Hasse diagram/top]
- (\the\drmo;1) --
+ (\the\dynkin at rank@minus at one;1) --
(\the\dynkin at rank;1) --
- (3;\the\drmo) --
- (2;\the\drmt) --
+ (3;\the\dynkin at rank@minus at one) --
+ (2;\the\dynkin at rank@minus at two) --
cycle;%
\fill[/Lie Hasse diagram/top]
- (\the\drmt;1) --
- (\the\drmo;1) --
- (2;\the\drmt) --
- (1;\the\drmt) --
+ (\the\dynkin at rank@minus at two;1) --
+ (\the\dynkin at rank@minus at one;1) --
+ (2;\the\dynkin at rank@minus at two) --
+ (1;\the\dynkin at rank@minus at two) --
cycle;%
\fill[/Lie Hasse diagram/left]
- (1;\the\drmt) --
- (2;\the\drmt) --
- (3;\the\drmo) --
- (2;\the\drmo) --
+ (1;\the\dynkin at rank@minus at two) --
+ (2;\the\dynkin at rank@minus at two) --
+ (3;\the\dynkin at rank@minus at one) --
+ (2;\the\dynkin at rank@minus at one) --
cycle;%
\end{pgfonlayer}%
}%
@@ -883,9 +902,7 @@
\newcount\D at g%
\newcount\maxD at grd%
\newcount\D at grd%
-\newcount\maxxD%
-\newcount\iD%
-\newcount\xxD%
+\newcount\lie at hasse@D at x%
\newcount\sum at D%
\NewDocumentCommand\place at D@roots{}%
{%
@@ -918,37 +935,34 @@
\repeat%
}%
}%
-\newcount\drpo%
\NewDocumentCommand\place at D@root at at{mm}%
{%
- \xxD #1\relax%
- \advance\xxD by #2\relax%
- \advance\xxD by #2\relax%
- \advance\xxD by -3\relax%
- \drpo \the\dynkin at rank\relax%
- \advance\drpo by 1\relax%
+ \lie at hasse@D at x #1\relax%
+ \advance\lie at hasse@D at x by #2\relax%
+ \advance\lie at hasse@D at x by #2\relax%
+ \advance\lie at hasse@D at x by -3\relax%
\sum at D #1\relax%
\advance\sum at D by #2\relax%
\ifnum\sum at D=\the\dynkin at rank%
\global\def\D at root@x%
- {\the\xxD-\lie at hasse@three at D@shift}%
+ {\the\lie at hasse@D at x-\lie at hasse@three at D@shift}%
\else%
- \ifnum\sum at D=\the\drpo%
+ \ifnum\sum at D=\the\dynkin at rank@plus at one%
\ifnum#1<\the\dynkin at rank%
\global\def\D at root@x%
- {\the\xxD-2+\lie at hasse@three at D@shift}%
+ {\the\lie at hasse@D at x-2+\lie at hasse@three at D@shift}%
\else%
- \global\def\D at root@x{\the\xxD}%
+ \global\def\D at root@x{\the\lie at hasse@D at x}%
\fi%
\else%
\ifnum\sum at D<\the\dynkin at rank%
- \global\def\D at root@x{\the\xxD}%
+ \global\def\D at root@x{\the\lie at hasse@D at x}%
\else%
% if \sum at D exceeds rank+1
\ifnum#1<\the\dynkin at rank%
- \global\def\D at root@x{\the\xxD-2}%
+ \global\def\D at root@x{\the\lie at hasse@D at x-2}%
\else%
- \global\def\D at root@x{\the\xxD}%
+ \global\def\D at root@x{\the\lie at hasse@D at x}%
\fi%
\fi%
\fi%
@@ -956,7 +970,7 @@
\coordinate
(#1;#2)
at
- ({(\D at root@x)*\dynkin at edge@length/2},{(#1-1)*\dynkin at edge@length/2})
+ ({(\D at root@x)*\lie at hasse@edge at length/2},{(#1-1)*\lie at hasse@edge at length/2})
{};%
}%
\NewDocumentCommand\draw at D@edges{}%
@@ -983,7 +997,8 @@
\D at r 1\relax%
{%
\loop%
- \draw at D@edges at at{#1}{\the\D at r}{\the\max at D@roots}%
+%%% \draw at D@edges at at{#1}{\the\D at r}{\the\max at D@roots}%
+ \draw at D@edges at at{#1}{\the\D at r}%
\advance\D at r by 1\relax%
\ifnum\D at r<\the\max at D@roots at plus@one%
\repeat%
@@ -1000,10 +1015,6 @@
\newcount\hasse at D@label%
\NewDocumentCommand\draw at D@edges at at{mm}%
{%
- \drmo\the\dynkin at rank\relax%
- \advance\drmo by -1\relax%
- \drpo \the\dynkin at rank\relax%
- \advance\drpo by 1\relax%
\hasse at D@gpo#1\relax%
\advance\hasse at D@gpo by 1\relax%
\hasse at D@gpi#1\relax%
@@ -1035,7 +1046,7 @@
\xdef\hasse at D@layer{Dynkin above}%
\else%
% below or middle.
- \ifnum\hasse at D@gpi=\the\drpo%
+ \ifnum\hasse at D@gpi=\the\dynkin at rank@plus at one%
\xdef\hasse at D@layer{Dynkin behind}%
\fi%
\fi%
@@ -1045,7 +1056,7 @@
\fi%
\fi%
\ifnum\dynkin at rank>#1%
- \ifnum\hasse at D@gpi<\the\drpo%
+ \ifnum\hasse at D@gpi<\the\dynkin at rank@plus at one%
\else%
\global\advance\hasse at D@label -1\relax%
\fi%
@@ -1069,7 +1080,7 @@
\fi%
\fi%
\ifnum#1=1%
- \ifnum\drmo=#2%
+ \ifnum\dynkin at rank@minus at one=#2%
\global\hasse at Dfalse\relax%
\else%
\xdef\hasse at D@LR{right}%
@@ -1080,13 +1091,13 @@
\ifnum\hasse at D@label>\the\dynkin at rank%
\hasse at D@label -\hasse at D@label\relax%
\advance\hasse at D@label \the\dynkin at rank\relax%
- \advance\hasse at D@label \the\drmo\relax%
+ \advance\hasse at D@label \the\dynkin at rank@minus at one\relax%
\fi%
- \ifnum\drmo<#1%
+ \ifnum\dynkin at rank@minus at one<#1%
\else%
\ifnum#2=1%
\else%
- \ifnum\hasse at D@gpi<\the\drpo%
+ \ifnum\hasse at D@gpi<\the\dynkin at rank@plus at one%
\else%
\advance\hasse at D@label 1\relax%
\fi%
@@ -1099,11 +1110,11 @@
\global\advance\hasse at D@target by 1\relax%
\fi%
\else%
- \ifnum\drmo=#1%
+ \ifnum\dynkin at rank@minus at one=#1%
\global\advance\hasse at D@target by -1\relax%
\fi%
\fi%
- \ifnum\hasse at D@gpi=\the\drpo%
+ \ifnum\hasse at D@gpi=\the\dynkin at rank@plus at one%
\ifnum#2>1%
\xdef\hasse at D@layer{Dynkin behind}%
\xdef\hasse at D@LR{right}%
@@ -1112,7 +1123,7 @@
\ifnum\hasse at D@gpi=\the\dynkin at rank%
\xdef\hasse at D@layer{Dynkin above}%
\else%
- \ifnum\hasse at D@gpi=\the\drmo%
+ \ifnum\hasse at D@gpi=\the\dynkin at rank@minus at one%
\xdef\hasse at D@layer{Dynkin above}%
\else%
\xdef\hasse at D@layer{Dynkin middle}%
@@ -1129,7 +1140,7 @@
\end{pgfonlayer}%
\fi%
% % Draw any other edges.
- \ifnum\hasse at D@gpi=\the\drmo%
+ \ifnum\hasse at D@gpi=\the\dynkin at rank@minus at one%
\hasse at D@target#2\relax%
\advance\hasse at D@target by 1\relax%
\begin{pgfonlayer}{Dynkin behind}
@@ -1142,38 +1153,7 @@
}%
\newcount\maxD at grd%
\newcount\D at grd%
-\newcount\maxxD%
\newcount\sum at D%
-\NewDocumentCommand\draw at D@roots{}%
-{%
- \drmo \the\dynkin at rank\relax%
- \advance\drmo by -1\relax%
- \maxD at grd \the\dynkin at rank\relax%
- \advance\maxD at grd by \the\dynkin at rank\relax%
- \advance\maxD at grd by -2\relax%
- \D at grd 1\relax%
- \loop%
- % Construct the roots at grade \D at grd.
- \draw at D@roots at at@grade{\D at grd}%
- \advance\D at grd by 1\relax%
- \ifnum\D at grd<\the\maxD at grd%
- \repeat%
-}%
-\NewDocumentCommand\draw at D@roots at at@grade{m}%
-{%
- \hasse at D@width at at@grade{#1}{\max at D@roots}%
- \max at D@roots at plus@one \the\max at D@roots\relax%
- \advance\max at D@roots at plus@one 1\relax%
- \D at r 1\relax%
- {%
- \loop%
- \draw at lie@hasse at root{\the\D at grd;\the\D at r}%
- \advance\D at r by 1\relax%
- \ifnum\D at r<\the\max at D@roots at plus@one%
- \repeat%
- }%
-}%
-%}%
\newcount\lie at hasse@grade at no
\newcount\lie at hasse@root at no
\def\lie at hasse@XX{}
@@ -1205,14 +1185,14 @@
\coordinate
(\the\lie at hasse@grade at no;\the\lie at hasse@root at no)
at
- ({\lie at hasse@XX*\dynkin at edge@length/2},
- {(\the\lie at hasse@grade at no-1)*\dynkin at edge@length/2}) {};%
+ ({\lie at hasse@XX*\lie at hasse@edge at length/2},
+ {(\the\lie at hasse@grade at no-1)*\lie at hasse@edge at length/2}) {};%
\global\advance\lie at hasse@root at no by 1%
}%
\NewDocumentCommand\lie at hasse@place at root@list{m}%
{%
\global\lie at hasse@root at no 1\relax%
- \expandafter\forcsvlist\expandafter{\lie at hasse@place at root}{#1}%
+ \expandafter\forcsvlist\expandafter\lie at hasse@place at root{#1}%
\global\advance\lie at hasse@grade at no by 1%
}%
\NewDocumentCommand\lie at hasse@place at roots{m}%
@@ -1224,26 +1204,6 @@
}%
\expandafter\docsvlist\expandafter{#1}%
}%
-\NewDocumentCommand\lie at hasse@draw at root{m}%
-{%
- \draw at lie@hasse at root{\the\lie at hasse@grade at no;\the\lie at hasse@root at no}%
- \global\advance\lie at hasse@root at no by 1%
-}%
-\NewDocumentCommand\lie at hasse@root at draw@list{m}%
-{%
- \global\lie at hasse@root at no 1\relax%
- \expandafter\forcsvlist\expandafter{\lie at hasse@draw at root}{#1}%
- \global\advance\lie at hasse@grade at no by 1%
-}%
-\NewDocumentCommand\lie at hasse@draw at roots{m}%
-{%
- \global\lie at hasse@grade at no 1\relax%
- \renewcommand*{\do}[1]%
- {%
- \lie at hasse@root at draw@list{##1}%
- }%
- \expandafter\docsvlist\expandafter{#1}%
-}%
\newcount\lie at hasse@grade at no@plus at one%
\newcount\lie at hasse@edge at count%
\def\lie at hasse@edge at go{%
@@ -1256,7 +1216,8 @@
{%
\global\advance\lie at hasse@edge at count by 1\relax%
\begin{pgfonlayer}{Dynkin above}%
- \lie at hasse@finish at edge#1!%
+%%? \lie at hasse@finish at edge#1!%
+ \lie at hasse@finish at edge#1\relax%
\end{pgfonlayer}%
}%
\def\lie at hasse@process at edge@behind#1!%
@@ -1289,13 +1250,12 @@
\NewDocumentCommand\lie at hasse@process at edge@lists{m}%
{%
\global\lie at hasse@grade at no 1\relax%
- \expandafter\forcsvlist\expandafter{\lie at hasse@process at edge@list}{#1}%
+ \expandafter\forcsvlist\expandafter\lie at hasse@process at edge@list{#1}%
}%
\NewDocumentCommand\hasse at X{mm}%
{%
\lie at hasse@place at roots{#1}%
\lie at hasse@process at edge@lists{#2}%
- \lie at hasse@draw at roots{#1}%
}%
\NewDocumentCommand\hasse at E@six at width@at at grade{mm}%
{%
@@ -1323,7 +1283,11 @@
#2 1%
\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
}%
-% In the following code, edges are described by grade: in grade g, the expression i+r<j. means an edge from g;i to (g+1);j labelled by root r, with a label on the left; use > instead of < to get the right. Use a star in front to get this edge on the higher layer.
+% In the following code, edges are described by grade:
+% in grade g, the expression i+r<j. means an edge from
+% g;i to (g+1);j labelled by root r, with a label on
+% the left; use > instead of < to get the right. Use a
+% star in front to get this edge on the higher layer.
\NewDocumentCommand\hasse at E@six{}%
{%
\hasse at X%
@@ -1353,13 +1317,45 @@
}%%%
\iflie at hasse@threeD%
\begin{pgfonlayer}{Dynkin middle}%
-\fill[/Lie Hasse diagram/top] (2;1) -- (5;3) -- (2;5) -- (1;5) -- (2;4) -- (1;3) -- (2;2) -- (1;2) -- cycle;%
-\fill[/Lie Hasse diagram/top] (2;3) -- (4;1) -- (6;2) -- (4;5) -- cycle;%
-\fill[/Lie Hasse diagram/right] (1;3) -- (2;3) -- (4;5) -- (3;5) -- cycle;%
-\fill[/Lie Hasse diagram/left] (3;1) -- (4;1) -- (2;3) -- (1;3) -- cycle;%
-\fill[/Lie Hasse diagram/left] (4;3) -- (5;1) -- (6;1) -- (5;2) -- cycle;%
-\fill[/Lie Hasse diagram/right] (4;3) -- (5;2) -- (6;3) -- (5;4) -- cycle;%
-\fill[/Lie Hasse diagram/top] (5;2) -- (7;1) -- (9;1) -- (7;3) -- cycle;%
+ \fill[/Lie Hasse diagram/top]
+ (2;1) --
+ (5;3) --
+ (2;5) --
+ (1;5) --
+ (2;4) --
+ (1;3) --
+ (2;2) --
+ (1;2) -- cycle;%
+ \fill[/Lie Hasse diagram/top]
+ (2;3) --
+ (4;1) --
+ (6;2) --
+ (4;5) -- cycle;%
+ \fill[/Lie Hasse diagram/right]
+ (1;3) --
+ (2;3) --
+ (4;5) --
+ (3;5) -- cycle;%
+ \fill[/Lie Hasse diagram/left]
+ (3;1) --
+ (4;1) --
+ (2;3) --
+ (1;3) -- cycle;%
+ \fill[/Lie Hasse diagram/left]
+ (4;3) --
+ (5;1) --
+ (6;1) --
+ (5;2) -- cycle;%
+ \fill[/Lie Hasse diagram/right]
+ (4;3) --
+ (5;2) --
+ (6;3) --
+ (5;4) -- cycle;%
+ \fill[/Lie Hasse diagram/top]
+ (5;2) --
+ (7;1) --
+ (9;1) --
+ (7;3) -- cycle;%
\end{pgfonlayer}%
\fi%
}%
@@ -1399,7 +1395,6 @@
#2 1%
\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
}%
-
\NewDocumentCommand\hasse at E@seven{}%
{%
\hasse at X%
@@ -1457,20 +1452,64 @@
}%%%
\iflie at hasse@threeD%
\begin{pgfonlayer}{Dynkin middle}%
-\fill[/Lie Hasse diagram/top] (2;1) -- (6;3) -- (2;6) -- (1;6) -- (2;5) -- (1;4) -- (2;3) -- (1;3) --
- (2;2) -- (1;2) -- cycle;%
-\fill[/Lie Hasse diagram/top] (5;1) -- (7;3) -- (4;6) -- (2;4) -- cycle;%
-\fill[/Lie Hasse diagram/top] (7;1) -- (9;3) -- (7;5) -- (5;4) -- cycle;%
-\fill[/Lie Hasse diagram/top] (9;1) -- (12;1) -- (13;1) -- (14;1) -- (11;3) -- (7;2) -- cycle;%
-\fill[/Lie Hasse diagram/right] (1;4) -- (2;4) -- (4;6) -- (3;6) -- cycle;%
-\fill[/Lie Hasse diagram/left] (4;1) -- (5;1) -- (2;4) -- (1;4) -- cycle;%
-\fill[/Lie Hasse diagram/left] (4;4) -- (6;1) -- (8;1) -- (7;2) -- (6;2) -- (5;4) -- cycle;%
-\fill[/Lie Hasse diagram/right] (4;4) -- (5;4) -- (6;5) -- (5;6) -- cycle;%
-\fill[/Lie Hasse diagram/right] (6;2) -- (7;2) -- (9;4) -- (8;4) -- cycle;%
+ \fill[/Lie Hasse diagram/top]
+ (2;1) --
+ (6;3) --
+ (2;6) --
+ (1;6) --
+ (2;5) --
+ (1;4) --
+ (2;3) --
+ (1;3) --
+ (2;2) --
+ (1;2) -- cycle;%
+ \fill[/Lie Hasse diagram/top]
+ (5;1) --
+ (7;3) --
+ (4;6) --
+ (2;4) -- cycle;%
+ \fill[/Lie Hasse diagram/top]
+ (7;1) --
+ (9;3) --
+ (7;5) --
+ (5;4) -- cycle;%
+ \fill[/Lie Hasse diagram/top]
+ (9;1) --
+ (12;1) --
+ (13;1) --
+ (14;1) --
+ (11;3) --
+ (7;2) -- cycle;%
+ \fill[/Lie Hasse diagram/right]
+ (1;4) --
+ (2;4) --
+ (4;6) --
+ (3;6) -- cycle;%
+ \fill[/Lie Hasse diagram/left]
+ (4;1) --
+ (5;1) --
+ (2;4) --
+ (1;4) -- cycle;%
+ \fill[/Lie Hasse diagram/left]
+ (4;4) --
+ (6;1) --
+ (8;1) --
+ (7;2) --
+ (6;2) --
+ (5;4) -- cycle;%
+ \fill[/Lie Hasse diagram/right]
+ (4;4) --
+ (5;4) --
+ (6;5) --
+ (5;6) -- cycle;%
+ \fill[/Lie Hasse diagram/right]
+ (6;2) --
+ (7;2) --
+ (9;4) --
+ (8;4) -- cycle;%
\end{pgfonlayer}%
\fi%
}%
-
\NewDocumentCommand\hasse at E@eight at width@at at grade{mm}%
{%
\ifnum#1=1%
@@ -1527,7 +1566,6 @@
#2 1%
\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
}%
-
\NewDocumentCommand\hasse at E@eight{}%
{%
\hasse at X{%
@@ -1754,11 +1792,11 @@
{{0,2,4,6},{1,3,5},{2,3:1,4},{2:1,3,4:1},{1:1,3:1,5:1},{2:1,4:1},{1:1,3:1},{2:1},{2:2},{2:3},{2:4}}%
{% grades:
{% 1
-1+2<1,*2+3<2,*3+4<3,*2+1>1,*3+2>2,4+3>3},
+1+2<1,*2+3>2,*3+4>3,*2+1<1,*3+2<2,4+3>3},
{% 2
-*1+3<1,*2+4<3,*2+3<2,*2+1<1,3+2>3},
+*1+3<1,*2+4>3,*2+1<1,*2+3>2,3+2>3},
{% 3
-*1+3<1,1+4<2,*2+4<3,*2+1<1,3+1>2,*3+3>3},
+*1+3<1,1+4>2,*2+4>3,*2+1<1,3+1>2,*3+3>3},
{% 4
*1+2<1,*1+4<2,2+3<2,*3+1>2,*3+4>3},
{% 5
@@ -2026,8 +2064,8 @@
}%
\global\root at sum@resetfalse%
}%
-\xdef\my at root@sum{}%
-\xdef\my at fixed@root at sum{}%
+\xdef\lie at hasse@root at sum{}%
+\xdef\lie at hasse@fixed at root@sum{}%
\NewDocumentCommand\rootSum{oommm}%
{%
\IfValueT{#1}%
@@ -2053,15 +2091,15 @@
\fi%
\IfStrEqCase{\dynkin at series}%
{%
- {A}{\hasse at A@root at sum{#3}{#4}{\my at root@sum}}%
- {B}{\hasse at B@root at sum{#3}{#4}{\my at root@sum}}%
- {C}{\hasse at C@root at sum{#3}{#4}{\my at root@sum}}%
- {D}{\hasse at D@root at sum{#3}{#4}{\my at root@sum}}%
- {E}{\xdef\my at root@sum{\exceptional at root@sum{#3;#4}}}%
- {F}{\xdef\my at root@sum{\exceptional at root@sum{#3;#4}}}%
- {G}{\xdef\my at root@sum{\exceptional at root@sum{#3;#4}}}%
+ {A}{\hasse at A@root at sum{#3}{#4}{\lie at hasse@root at sum}}%
+ {B}{\hasse at B@root at sum{#3}{#4}{\lie at hasse@root at sum}}%
+ {C}{\hasse at C@root at sum{#3}{#4}{\lie at hasse@root at sum}}%
+ {D}{\hasse at D@root at sum{#3}{#4}{\lie at hasse@root at sum}}%
+ {E}{\xdef\lie at hasse@root at sum{\exceptional at root@sum{#3;#4}}}%
+ {F}{\xdef\lie at hasse@root at sum{\exceptional at root@sum{#3;#4}}}%
+ {G}{\xdef\lie at hasse@root at sum{\exceptional at root@sum{#3;#4}}}%
}%
- \StrSubstitute{\my at root@sum}{.}{,}[#5]%
+ \StrSubstitute{\lie at hasse@root at sum}{.}{,}[#5]%
}%
%% \rootSystemHeight[G][2]{\h} sets the counter \h to the height of the poset
%% of the root system G2. \rootSystemHeight{\h} uses the current root system.
@@ -2451,7 +2489,7 @@
4;1=3.1,%
5;1=3.2}%
}%
-\NewDocumentCommand\forAllPositiveRootsInHasseDiagram{m}%
+\NewDocumentCommand\forAllPositiveRoots{m}%
{%
\rootSystemHeight{\lie at hasse@height}%
\foreach \root at grady in {1,...,\the\lie at hasse@height}%
More information about the tex-live-commits
mailing list.