texlive[53018] Master/texmf-dist: dynkin-diagrams (4dec19)

commits+karl at tug.org commits+karl at tug.org
Wed Dec 4 23:18:08 CET 2019


Revision: 53018
          http://tug.org/svn/texlive?view=revision&revision=53018
Author:   karl
Date:     2019-12-04 23:18:08 +0100 (Wed, 04 Dec 2019)
Log Message:
-----------
dynkin-diagrams (4dec19)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/README
    trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.pdf
    trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.tex
    trunk/Master/texmf-dist/tex/latex/dynkin-diagrams/dynkin-diagrams.sty

Modified: trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/README	2019-12-04 00:54:01 UTC (rev 53017)
+++ trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/README	2019-12-04 22:18:08 UTC (rev 53018)
@@ -2,9 +2,9 @@
 
             Dynkin diagrams
                
-                v3.14159265
+                v3.141592653
 
-            26 November 2019
+            4 December 2019
 ___________________________________
 
 Authors   : Ben McKay
@@ -16,7 +16,7 @@
 ----------------------------------------------------------------------
 
 Draws Dynkin Coxeter, and Satake diagrams in LaTeX doc­u­ments, us­ing the TikZ pack­age.
-Version 3.14159265 fixes problems with text styles being ignored in Coxeter diagrams.
+Version 3.141592653 fixes problems with Coxeter diagram edge labels being too far away, adds a macro to draw general edge labels, and a macro to typeset a name for a Dynkin diagram.
 
 
 

Modified: trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.tex	2019-12-04 00:54:01 UTC (rev 53017)
+++ trunk/Master/texmf-dist/doc/latex/dynkin-diagrams/dynkin-diagrams.tex	2019-12-04 22:18:08 UTC (rev 53018)
@@ -1,6 +1,6 @@
 \documentclass{amsart}
 
-\title{The Dynkin diagrams package \\ Version 3.14159265}
+\title{The Dynkin diagrams package \\ Version 3.141592653}
 
 \makeatletter
 \DeclareRobustCommand{\scotsMc}{\scotsMcx{c}}
@@ -20,7 +20,7 @@
 \author{Ben \scotsMc{}Kay}
 \address{School of Mathematical Sciences,  University College Cork, Cork, Ireland}
 \email{b.mckay at ucc.ie}
-\date{26 November 2019}
+\date{4 December 2019}
  
 \usepackage{etex}
 \usepackage[T1]{fontenc}
@@ -261,8 +261,6 @@
 \dyn[Coxeter,gonality=n]{I}{}
 \end{dynkinTable}
 
-
-\newpage
 \section{Satake diagrams}\label{section:Satake}
 
 \begin{tcblisting}{title={Satake diagrams use the standard name instead of a rank}}
@@ -310,9 +308,6 @@
 \invol{1}{6}\invol{3}{5}
 \end{dynkinDiagram}
 \end{tcblisting}
-
-\newpage
-
 \begin{tcblisting}{title={The double arrows for \(A_{IIIa}\) are big}}
 \newcommand{\invol}[2]{\draw[latex-latex] (root #1) to 
 [out=-60,in=-120] node[midway,below]{$\sigma$} (root #2);}
@@ -332,8 +327,6 @@
 \end{dynkinDiagram}
 \end{tcblisting}
 
-\newpage
-
 \begin{tcblisting}{title={\dots but you could try springs pulling roots together}}
 \tikzset{/Dynkin diagram/fold style/.style=
 {decorate,decoration={name=coil,aspect=0.5,
@@ -350,10 +343,10 @@
 \section{Labels for the roots}
 
 \begin{tcblisting}{title={Make a macro to assign labels to roots}}
-\dynkin[label,label macro/.code={\alpha_{\mathrlap{#1}}},edge length=.75cm]{D}{5}
+\dynkin[label,label macro/.code={\alpha_{\drlap{#1}}},edge length=.75cm]{D}{5}
 \end{tcblisting}
 \begin{tcblisting}{title={Labelling several roots}}
-\dynkin[labels={,2,...,5,,7},label macro/.code={\alpha_{\mathrlap#1}}]{A}{7}
+\dynkin[labels={,2,...,5,,7},label macro/.code={\alpha_{\drlap#1}}]{A}{7}
 \end{tcblisting}
 \begin{tcblisting}{title={The \texttt{foreach} notation I}}
 \dynkin[labels={1,3,...,7},]{A}{9}
@@ -362,7 +355,7 @@
 \dynkin[labels={,\alpha_2,\alpha_...,\alpha_7},]{A}{7}
 \end{tcblisting}
 \begin{tcblisting}{title={The \texttt{foreach} notation III}}
-\dynkin[label macro/.code={\beta_{\mathrlap{#1}}},labels={,2,...,7},]{A}{7}
+\dynkin[label macro/.code={\beta_{\drlap{#1}}},labels={,2,...,7},]{A}{7}
 \end{tcblisting}
 \begin{tcblisting}{title={Label the roots individually by root number}}
 \dynkin[label]{B}{3}
@@ -369,15 +362,14 @@
 \end{tcblisting}
 \begin{tcblisting}{title={Label a single root}}
 \begin{dynkinDiagram}{B}{3}
-\dynkinLabelRoot{2}{\alpha_2}
+\dynkinLabelRoot{2}{\alpha_{\drlap{2}}}
 \end{dynkinDiagram}
 \end{tcblisting}
 \begin{tcblisting}{title={Access root labels via TikZ}}
 \begin{dynkinDiagram}{B}{3}
-\node[below] at (root 2) {\(\alpha_{\mathrlap{2}}\)};
+\node[below] at (root 2) {\(\alpha_{\drlap{2}}\)};
 \end{dynkinDiagram}
 \end{tcblisting}
-\newpage
 \begin{tcblisting}{title={Commands to label several roots}}
 \begin{dynkinDiagram}{A}{7} 
 \dynkinLabelRoots{,\alpha_2,\alpha_3,\alpha_4,\alpha_5,,\alpha_7}
@@ -391,12 +383,11 @@
 \end{tcblisting}
 \begin{tcblisting}{title={Labelling several roots and alternates}}
 \dynkin[%
-label macro/.code={\alpha_{\mathrlap{#1}}},
-label macro*/.code={\gamma_{\mathrlap{#1}}},
+label macro/.code={\alpha_{\drlap{#1}}},
+label macro*/.code={\gamma_{\drlap{#1}}},
 labels={,2,...,5,,7},
 labels*={1,3,4,5,6}]{A}{7}
 \end{tcblisting}
-\newpage
 \begin{tcblisting}{title={Commands to label several roots}}
 \begin{dynkinDiagram}{A}{7} 
 \dynkinLabelRoots{,\alpha_2,\alpha_3,\alpha_4,\alpha_5,,\alpha_7}
@@ -405,12 +396,30 @@
 \end{tcblisting}
 
 \section{Label subscripts}
-Note the slight improvement that \verb!\mathrlap! makes: the labels are centered on the middle of the letter \(\alpha\), ignoring the space taken up by the subscripts.
-\begin{tcblisting}{title={Label spacing improvement}}
-\dynkin[label,label macro/.code={\alpha_{#1}},edge length=.75cm]{D}{15}
+Note the slight improvement that \verb!\drlap! makes: the labels are centered on the middle of the letter \(\alpha\), ignoring the space taken up by the subscripts, using the \verb!mathtools! command \verb!\mathrlap!, but only for labels which are \emph{not} placed to the left or right of a root.
+\begin{tcblisting}{title={Label subscript spacing}}
+\dynkin[label,label macro/.code={\alpha_{#1}},
+	edge length=.75cm]{D}{15}
 \par\noindent{}%
-\dynkin[label,label macro/.code={\alpha_{\mathrlap{#1}}},edge length=.75cm]{D}{15}
+\dynkin[label,label macro/.code={\alpha_{\drlap{#1}}},
+	edge length=.75cm]{D}{15}
 \end{tcblisting}
+\begin{tcblisting}{title={Label subscript spacing}}
+\dynkin[label,label macro/.code={\alpha_{#1}},
+	edge length=.75cm]{E}{8}
+\dynkin[label,label macro/.code={\alpha_{#1}},backwards,
+	edge length=.75cm]{E}{8}
+\par\noindent{}%
+\dynkin[label,label macro/.code={\alpha_{\mathrlap{#1}}},
+	edge length=.75cm]{E}{8}
+\dynkin[label,label macro/.code={\alpha_{\mathrlap{#1}}},backwards,
+	edge length=.75cm]{E}{8}
+\par\noindent{}%
+\dynkin[label,label macro/.code={\alpha_{\drlap{#1}}},
+	edge length=.75cm]{E}{8}
+\dynkin[label,label macro/.code={\alpha_{\drlap{#1}}},backwards,
+	edge length=.75cm]{E}{8}
+\end{tcblisting}
 
 \newpage
 \section{Height and depth of labels}
@@ -420,8 +429,8 @@
 \dynkin[labels={a,b,c,d}]{F}{4}
 \dynkin[labels*={a,b,c,d}]{F}{4}
 \dynkin[%
-label macro/.code={\alpha_{\mathrlap{#1}}},
-label macro*/.code={\gamma_{\mathrlap{#1}}},
+label macro/.code={\alpha_{\drlap{#1}}},
+label macro*/.code={\gamma_{\drlap{#1}}},
 label height=$\alpha_1$,
 label depth=$\alpha_1$,
 labels={,2,...,5,,7},
@@ -435,7 +444,7 @@
 \begin{dynkinDiagram}[text style={scale=1.2,blue},
 edge length=.75cm,
 labels={1,2,n-1,n},
-label macro/.code={\alpha_{\mathrlap{#1}}}
+label macro/.code={\alpha_{\drlap{#1}}}
 ]{A}{}
 \end{dynkinDiagram}
 \end{tcblisting}
@@ -443,7 +452,7 @@
 \begin{dynkinDiagram}[text style={scale=1.2,blue},
 edge length=.75cm,
 labels={1,2,n-1,n},
-label macro/.code={\mathbb{A}_{\mathrlap{#1}}}]{A}{}
+label macro/.code={\mathbb{A}_{\drlap{#1}}}]{A}{}
 \end{dynkinDiagram}
 \end{tcblisting}
 
@@ -474,7 +483,7 @@
 \end{tcblisting}
 
 \begin{filecontents*}{EulerProducts.tex}
-\tikzset{/Dynkin diagram,ordering=Dynkin,label macro/.code={\alpha_{#1}}}
+\tikzset{/Dynkin diagram,ordering=Dynkin,label macro/.code={\alpha_{\drlap{#1}}}}
 \newcounter{EPNo}
 \setcounter{EPNo}{0}
 \NewDocumentCommand\EP{smmmm}%
@@ -820,11 +829,7 @@
 \end{longtable}
 \endgroup
 
-
-
-\newpage
 \section{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:
 \begin{tcblisting}{}
 The flag variety of pointed lines in 
@@ -858,29 +863,15 @@
 \endgroup
 \VerbatimInput{hermitian-symmetric-spaces.tex}
 
-\begin{tcblisting}{title={Folded parabolics look bad (zoom in on a root)}}
-\dynkin[fold,parabolic=3]{C}{2}
-\dynkin[fold,parabolic=3]{G}{2}
-\end{tcblisting}
-\begin{tcblisting}{title={Folded parabolics: you can try using thicker crosses}}
-\dynkin[fold,x/.style={very thick,line cap=round},parabolic=3]{C}{2}
-\dynkin[fold,x/.style={ultra thick,line cap=round},parabolic=3]{G}{2}
-\end{tcblisting}
 
-
 \section{Extended Dynkin diagrams}
-
 \begin{tcblisting}{title={Extended Dynkin diagrams}}
 \dynkin[extended]{A}{7}
 \end{tcblisting}
-
-
 The extended Dynkin diagrams are also described in the notation of Kac \cite{Kac:1990} p. 55 as affine untwisted Dynkin diagrams: we extend \verb!\dynkin{A}{7}! to become \verb!\dynkin{A}[1]{7}!:
 \begin{tcblisting}{title={Extended Dynkin diagrams}}
 \dynkin{A}[1]{7}
 \end{tcblisting}
-
-
 \renewcommand*{\arraystretch}{1.5}
 \begin{dynkinTable}{The Dynkin diagrams of the extended simple root systems}{3cm}{5cm}
 \dyn[extended]{A}{1}
@@ -895,12 +886,9 @@
 \dyn[extended]{G}{2}
 \end{dynkinTable}
 
+\newpage
 
-
-
-
 \section{Affine twisted and untwisted Dynkin diagrams}
-
 The affine Dynkin diagrams are described in the notation of Kac \cite{Kac:1990} p. 55:
 \begin{tcblisting}{title={Affine Dynkin diagrams}}
 \(A^{(1)}_7=\dynkin{A}[1]{7}, \ 
@@ -907,9 +895,6 @@
 E^{(2)}_6=\dynkin{E}[2]{6}, \ 
 D^{(3)}_4=\dynkin{D}[3]{4}\)
 \end{tcblisting}
-
-
-
 \begin{dynkinTable}{The affine Dynkin diagrams}{3cm}{3.75cm}
 \dyn{A}[1]{1}
 \dyn{A}[1]{}
@@ -988,6 +973,7 @@
 \dyn{F}{4}
 \dyn{G}{2}
 \end{dynkinTable}
+\newpage
 \begin{dynkinTable}{The Dynkin diagrams of the extended simple root systems in Kac style}{5cm}{4.5cm}
 \dyn[extended]{A}{1}
 \dyn[extended]{A}{}
@@ -1000,7 +986,6 @@
 \dyn[extended]{F}{4}
 \dyn[extended]{G}{2}
 \end{dynkinTable}
-\newpage
 \begin{dynkinTable}{The Dynkin diagrams of the twisted simple root systems in Kac style}{6cm}{4.5cm}
 \dyn{A}[2]{2}
 \dyn{A}[2]{even}
@@ -1010,7 +995,7 @@
 \dyn{D}[3]{4}
 \end{dynkinTable}
 \endgroup
-
+\newpage
 \section{Ceref style}
 We include a style called \verb!ceref! which paints oblong root markers with shadows.
 The word ``ceref'' is an old form of the word ``serif''.
@@ -1267,6 +1252,17 @@
 \dynkin[label,ordering=Kac]{E}{*otxXOt*}
 \end{tcblisting}
 
+\section{Typesetting mathematical names of Dynkin diagrams}
+The \verb!\dynkinName! command, with the same syntax as \verb!\dynkin!, typesets a default name of your diagram in \LaTeX.
+It is perhaps only useful when automatically generating a large collection of Dynkin diagrams in a computer program.
+\begin{tcblisting}{title={Name of a diagram}}
+\dynkinName[label,extended]{B}{7}
+\dynkinName{A}[2]{even}
+\dynkinName[Coxeter]{B}{7}
+\dynkinName[label,extended]{B}{*}
+\dynkinName{D}[3]{4}
+\end{tcblisting}
+
 \section{Connecting Dynkin diagrams}\label{section:name}
 We can make some sophisticated folded diagrams by drawing multiple diagrams, each with a name:
 \begin{tcblisting}{title={Name a diagram}}
@@ -1669,9 +1665,7 @@
 \end{center}
 \endgroup
 \VerbatimInput{borovoi.tex}
-\newpage
 
-
 \section{Syntax}
 The syntax is \verb!\dynkin[<options>]{<letter>}[<twisted rank>]{<rank>}! where \verb!<letter>! is \verb!A!, \verb!B!, \verb!C!, \verb!D!, \verb!E!, \verb!F! or \verb!G!, the family of root system for the Dynkin diagram, \verb!<twisted rank>! is \verb!0!, \verb!1!, \verb!2!, \verb!3! (default is \verb!0!) representing:
 \[
@@ -1715,6 +1709,8 @@
 &      distance between nodes in the Dynkin diagram \\
 \optionLabel{edge/.style}{TikZ style data}{solid,draw=black,fill=white,thin}
 &      style of edges in the Dynkin diagram \\
+\optionLabel{edge label/.style}{TikZ style data}{text height=0,text depth=0,label distance=-2pt}
+&      style of edge labels in the Dynkin diagram, as found, for example, on some Coxeter diagrams \\
 \optionLabel{Kac}{\typ{true or false}}{false}
 & whether to draw in the style of \cite{Kac:1990} \\
 \optionLabel{name}{\typ{string}}{anonymous}

Modified: trunk/Master/texmf-dist/tex/latex/dynkin-diagrams/dynkin-diagrams.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/dynkin-diagrams/dynkin-diagrams.sty	2019-12-04 00:54:01 UTC (rev 53017)
+++ trunk/Master/texmf-dist/tex/latex/dynkin-diagrams/dynkin-diagrams.sty	2019-12-04 22:18:08 UTC (rev 53018)
@@ -2,7 +2,7 @@
 %
 %                                  The Dynkin Diagrams package.
 %
-%                                            Version 3.14159265
+%                                            Version 3.141592653
 %
 %
 %               This package draws Dynkin diagrams in LaTeX documents, using the TikZ package.
@@ -18,7 +18,7 @@
 %
 %
 \NeedsTeXFormat{LaTeX2e}[1994/06/01]
-\ProvidesPackage{dynkin-diagrams}[2019/11/25 Dynkin diagrams]
+\ProvidesPackage{dynkin-diagrams}[2019/12/04 Dynkin diagrams]
 \RequirePackage{tikz}
 \RequirePackage{xstring}
 \RequirePackage{xparse}
@@ -44,24 +44,98 @@
 %%% See dynkin-diagrams.tex file for examples of use.
 %%%
 
-\NewDocumentCommand\dynkin{O{}mO{0}m}%
+\newif\ifold at dynkin@is at backwards
+\newif\ifold at dynkin@is at upsidedown
+\newif\ifold at dynkin@is at extended
+\newif\ifold at dynkin@label at the@roots
+
+\NewDocumentCommand\dynkin at save{}%
 {%
-	\ifdefined\filldraw%
-		\@dynkin[#1]{#2}[#3]{#4}%
-	\else%
-		\tikz[baseline=(origin.base)]{\@dynkin[#1]{#2}[#3]{#4}}%
-	\fi%
+\xdef\dynkin at ply@value{1}%
+\ifdynkin at is@backwards\global\old at dynkin@is at backwardstrue\else\global\old at dynkin@is at backwardsfalse\fi%
+\ifdynkin at is@upsidedown\global\old at dynkin@is at upsidedowntrue\else\global\old at dynkin@is at upsidedownfalse\fi%
+\ifdynkin at is@extended\global\old at dynkin@is at extendedtrue\else\global\old at dynkin@is at extendedfalse\fi%
+{\global\dynkin at is@twistedfalse}%
+\ifdynkin at label@the at roots\global\old at dynkin@label at the@rootstrue\else\global\old at dynkin@label at the@rootsfalse\fi%
 }%
 
+\NewDocumentCommand\dynkin at restore{}%
+{%
+\ifold at dynkin@is at backwards\global\dynkin at is@backwardstrue\else\global\dynkin at is@backwardsfalse\fi%
+\ifold at dynkin@is at upsidedown\global\dynkin at is@upsidedowntrue\else\global\dynkin at is@upsidedownfalse\fi%
+\ifold at dynkin@is at extended\global\dynkin at is@extendedtrue\else\global\dynkin at is@extendedfalse\fi%
+\ifold at dynkin@label at the@roots\global\dynkin at label@the at rootstrue\else\global\dynkin at label@the at rootsfalse\fi%
+}%
+
 \NewDocumentEnvironment{dynkinDiagram}{O{}mO{0}m}%
 {%
-\begin{tikzpicture}[baseline=(origin.base)]%
-\dynkin[#1]{#2}[#3]{#4}%
+\dynkin at save{}%
+\begin{tikzpicture}%
+\@dynkin[#1]{#2}[#3]{#4}%
 }%
 {%
 \end{tikzpicture}%
+\dynkin at restore{}%
 }%
 
+\NewDocumentCommand\dynkin{O{}mO{0}m}%
+{%
+\dynkin at save{}%
+\ifdefined\filldraw%
+\@dynkin[#1]{#2}[#3]{#4}%
+\else%
+\tikz[baseline=(origin.base)]{\@dynkin[#1]{#2}[#3]{#4}}%
+\fi%
+\dynkin at restore{}%
+}%
+
+
+%% Names for Dynkin diagrams.
+\xdef\dynkin at indefinite@number at symbol{n}
+\NewDocumentCommand\dynkinIndefiniteSymbol{m}%
+{%
+\xdef\dynkin at indefinite@number at symbol{#1}%
+}%
+\NewDocumentCommand\dynkinName{O{}mO{0}m}%
+{%
+\dynkin at save{}%
+\xdef\dynkin at ply@value{1}%
+\xdef\dynkin at label@directions{}%
+\xdef\dynkin at label@directions at star{}%
+	\setcounter{dynkinRootNo}{0}%
+	\dynkin at clear@indefinite at edge@list%
+	\xdef\dynkin at parabolic{0}%
+	\pgfkeys{/Dynkin diagram, #1}%
+	\xdef\dynkin at user@series{#2}%
+	\xdef\dynkin at twisted@series{#3}%
+	\xdef\dynkin at user@string{#4}%
+	\xdef\dynkin at series{#2}%
+	\dynkin at grok@series%
+	\IfSubStr{ABCDEFGHI}{\dynkin at series}{}{\dynkin at error@series}%
+	\ensuremath{%
+		\dynkin at series^{%
+			\ifdynkin at is@extended{1}%
+			\else{%
+				\IfStrEq{\dynkin at twisted@series}{0}%
+				{}%
+				{\dynkin at twisted@series}%
+				}%
+			\fi%
+		}%
+		_%
+		{%
+			\IfStrEq{\dynkin at user@string}{}%
+				{\dynkin at indefinite@number at symbol}%
+				{\dynkin at user@string}%
+			\IfStrEq{\dynkin at parabolic}{0}%
+				{}%
+				{,\dynkin at parabolic}
+		}%
+	}%
+\dynkin at restore{}%
+}%
+
+
 \NewDocumentCommand\dynkinRefreshRoots{}%
 {%
 	\ifdefined\filldraw\else\dynkin at error@not at in@tikz\fi%
@@ -116,6 +190,24 @@
 
 \newcount\rpo%
 
+\NewDocumentCommand\drlap{m}%
+{%
+\IfStrEq{\dynkin at label@direction}{left}%
+{%
+	#1%
+}%
+{%
+	\IfStrEq{\dynkin at label@direction}{right}%
+	{%
+	#1%
+	}%
+	{%
+	\mathrlap{#1}%
+	}%
+}%
+}%
+
+
 %% \dynkinLabelRoot{<r>}{<s>} or \dynkinLabelRoot*{<r>}{<s>}
 %% Prints the label string <s> on the Dynkin diagram at root number <r>, in the current ordering convention.
 %% Starred form uses the alternate label location.
@@ -275,6 +367,25 @@
 	}%
 }%
 
+%% \dynkinEdgeLabel{<n1>}{<n2>}{<s>}
+%% Prints <s> between root <n1> and <n2> on the current Dynkin diagram in the current root ordering.
+\NewDocumentCommand\dynkinEdgeLabel{mmm}%
+{%
+		\convertRootPair{#1}{#2}%
+		\node[inner sep=\dynkin at root@radius,%
+			label={%
+				[/Dynkin diagram/text style,/Dynkin diagram/edge label]%
+				above:
+				\(\pgfkeys{/Dynkin diagram/label macro*=#3}\)%
+				}%
+			]
+			at ($.5*(\dynkin at root@name \the\@fromRoot)+.5*(\dynkin at root@name \the\@toRoot)$) 
+			{};
+}%
+
+
+
+
 %% \dynkinCrossRootMark{<n>}
 %% Prints a cross at root <n> on the current Dynkin diagram.
 %% The starred form accepts <n> in the Bourbaki ordering.
@@ -1685,43 +1796,19 @@
 \pgfkeys{
  /Dynkin diagram/.is family,
  /Dynkin diagram,
-	name/.estore in = \dynkin at diagram@name,
-	name = anonymous,
-	mark/.estore in = \dynkin at root@mark,
-	mark = *,
 	affine mark/.estore in = \dynkin at affine@root at mark,
 	affine-mark/.forward to = /Dynkin diagram/affine mark,
 	affine-mark = o,
-	edge length/.estore in = \dynkin at edge@length,
-	edge-length/.forward to=/Dynkin diagram/edge length,
-	edge length = .35cm,
-	edge/.style={solid,draw=black,fill=white,thin},
-	make indefinite edge/.code={\dynkin at set@edge at indefinite@pair{#1}},
-    make-indefinite-edge/.forward to=/Dynkin diagram/make indefinite edge,
-	indefinite edge ratio/.estore in = \dynkin at indefinite@edge at ratio,
-	indefinite-edge-ratio/.forward to = /Dynkin diagram/indefinite edge ratio,
-	indefinite edge ratio = 1.6,
-	indefinite edge/.style={solid,draw=black,fill=white,thin,densely dotted},
-	indefinite-edge/.forward to=/Dynkin diagram/indefinite edge/.style,
+	arrow color/.estore in = \dynkin at arrow@color,
+	arrow-color/.forward to=/Dynkin diagram/arrow color,
+	arrows/.is if = dynkin at arrows,
+	arrows = true,
+	at/.estore in = \dynkin at current@location,
 	backwards/.is if = dynkin at is@backwards,
 	backwards = false,
-	upside down/.is if = dynkin at is@upsidedown,
-	upside down = false,
-    upside-down/.forward to = /Dynkin diagram/upside down,
-	arrows/.is if = dynkin at arrows,
-	arrows = true,
-	reverse arrows/.is if = dynkin at reverse@arrows,
-	reverse arrows = false,
-	reverse-arrows/.forward to = /Dynkin diagram/reverse arrows,
-	fold style/.style = {solid,draw=black!40,fill=none,line width=\dynkin at root@radius,{Triangle Cap[]}-{Triangle Cap[]}},
-	fold-style/.forward to=/Dynkin diagram/fold style/.style,
-	fold left style/.style = {},
-	fold-left-style/.forward to=/Dynkin diagram/fold left style/.style,
-	fold right style/.style = {},
-	fold-right-style/.forward to=/Dynkin diagram/fold right style/.style,
-	arrow color/.estore in = \dynkin at arrow@color,
-	arrow color = black,
-	arrow-color/.forward to=/Dynkin diagram/arrow color,
+	Coxeter/.is if = dynkin at Coxeter,
+	Coxeter=false,
+	edge label/.style={text height=0,text depth=0,label distance=-4pt},
 	double edges/.style = {
 	 	fold style/.style = {
 	 		draw=black,
@@ -1730,7 +1817,7 @@
 	 		double distance=\dynkin at root@radius,
 	 		line width=\defaultpgflinewidth}
 	},
-    double-edges/.forward to=/Dynkin diagram/double edges/.style,
+	double-edges/.forward to=/Dynkin diagram/double edges/.style,
 	double fold/.style = {
 	 	fold style/.style = {
 	 		draw=black,
@@ -1739,7 +1826,7 @@
 	 		double distance=\dynkin at root@radius,
 	 		line width=\defaultpgflinewidth}
 	},
-    double-fold/.forward to=/Dynkin diagram/double fold/.style,
+	double-fold/.forward to=/Dynkin diagram/double fold/.style,
 	double left/.style = {
 	 	fold left style/.style = {
 	 		draw=black,
@@ -1748,7 +1835,7 @@
 	 		double distance=\dynkin at root@radius,
 	 		line width=\defaultpgflinewidth}
 	 	},
-    double-left/.forward to=/Dynkin diagram/double left/.style,
+	double-left/.forward to=/Dynkin diagram/double left/.style,
 	double fold left/.style = {
 	 	fold left style/.style = {
 	 		draw=black,
@@ -1757,7 +1844,7 @@
 	 		double distance=\dynkin at root@radius,
 	 		line width=\defaultpgflinewidth}
 	 	},
-    double-fold/.forward to=/Dynkin diagram/double fold/.style,
+	double-fold/.forward to=/Dynkin diagram/double fold/.style,
 	double right/.style = {
 	 	fold right style/.style = {
 	 		draw=black,
@@ -1766,7 +1853,7 @@
 	 		double distance=\dynkin at root@radius,
 	 		line width=\defaultpgflinewidth}
 	 	},
-    double-right/.forward to=/Dynkin diagram/double right/.style,
+	double-right/.forward to=/Dynkin diagram/double right/.style,
 	double fold right/.style = {
 	 	fold right style/.style = {
 	 		draw=black,
@@ -1775,13 +1862,93 @@
 	 		double distance=\dynkin at root@radius,
 	 		line width=\defaultpgflinewidth}
 	 	},
-    double-fold-right/.forward to=/Dynkin diagram/double fold right/.style,
+	double-fold-right/.forward to=/Dynkin diagram/double fold right/.style,
+	edge length/.estore in = \dynkin at edge@length,
+	edge-length/.forward to=/Dynkin diagram/edge length,
+	edge length = .35cm,
+	edge/.style={solid,draw=black,fill=white,thin},
+	extended/.is if = dynkin at is@extended,
+	extended = false,
+	fold left/.is if = dynkin at left@fold,
+	ply/.estore in = \dynkin at ply@value,
+	ply/.default = 1,
+	fold/.style={/Dynkin diagram/ply=2,fold style},
+	fold style/.style = {/Dynkin diagram/ply=2,solid,draw=black!40,fill=none,line width=\dynkin at root@radius,{Triangle Cap[]}-{Triangle Cap[]}},
+	fold-style/.forward to=/Dynkin diagram/fold style/.style,
+	fold left style/.style = {},
+	fold-left-style/.forward to=/Dynkin diagram/fold left style/.style,
+	fold radius/.estore in = \dynkin at fold@radius,
+	fold-radius/.forward to=/Dynkin diagram/fold radius,
+	fold radius=.3cm,
+	fold right/.is if = dynkin at right@fold,
+	fold right style/.style = {},
+	fold-right-style/.forward to=/Dynkin diagram/fold right style/.style,
+	gonality/.estore in = \dynkin at gonality,
+	indefinite edge ratio/.estore in = \dynkin at indefinite@edge at ratio,
+	indefinite-edge-ratio/.forward to = /Dynkin diagram/indefinite edge ratio,
+	indefinite edge ratio = 1.6,
+	indefinite edge/.style={solid,draw=black,fill=white,thin,densely dotted},
+	indefinite-edge/.forward to=/Dynkin diagram/indefinite edge/.style,
+	Kac arrows/.is if = dynkin at Kac@arrows,
+	Kac-arrows/.forward to = /Dynkin diagram/Kac arrows,
+	Kac arrows=false,
+	Kac/.style={
+		Kac arrows=true,
+		ordering=Kac,
+		root radius=.05cm,
+		edge length=.66cm,
+		indefinite edge ratio = 3,
+		edge/.style={solid,draw=black,fill=white,thin,shorten <=1mm,shorten >=1mm},
+		fold style/.style = {solid,draw=black!40,fill=none,line width=\dynkin at root@radius,shorten <=1mm,shorten >=1mm},
+		mark=o,
+		indefinite edge/.style={solid,draw=black,fill=none,thin,loosely dotted},
+	},
+	label/.is if = dynkin at label@the at roots,
+	label = false,
+	label depth/.style={/tikz/every label/.append style={text depth={depth("#1"}}},
+	label depth/.default=g,
+	label depth,
+	label-depth/.forward to = /Dynkin diagram/label depth,
+	label height/.style={/tikz/every label/.append style={text height={height("#1"}}},
+	label height/.default=b,
+	label height,
+	label-height/.forward to = /Dynkin diagram/label height,
+	labels/.default = {},
+	labels*/.default = {},
+	label macro/.code = {\regurgitate{#1}},
+	label-macro/.forward to=/Dynkin diagram/label macro,
+	label macro*/.code = {\regurgitate{#1}},
+	label-macro*/.forward to=/Dynkin diagram/label macro*,
+ 	labels/.store in = \dynkin at label@list,
+ 	labels*/.store in = \dynkin at label@list at star,
+	make indefinite edge/.code={\dynkin at set@edge at indefinite@pair{#1}},
+	make-indefinite-edge/.forward to=/Dynkin diagram/make indefinite edge,
+	mark/.estore in = \dynkin at root@mark,
+	mark = *,
+	name/.estore in = \dynkin at diagram@name,
+	name = anonymous,
+	odd/.is if = dynkin at odd,
+	odd=false,
+	ordering/.store in = \dynkin at ordering,
+	ordering = Bourbaki,
+	parabolic/.estore in = \dynkin at parabolic,
+	reverse arrows/.is if = dynkin at reverse@arrows,
+	reverse arrows = false,
+	reverse-arrows/.forward to = /Dynkin diagram/reverse arrows,
+	upside down/.is if = dynkin at is@upsidedown,
+	upside down = false,
+	upside-down/.forward to = /Dynkin diagram/upside down,
 	root radius/.estore in = \dynkin at root@radius,
-    root-radius/.forward to=/Dynkin diagram/root radius,
+	root-radius/.forward to=/Dynkin diagram/root radius,
 	root radius=.05cm,
-	fold radius/.estore in = \dynkin at fold@radius,
-    fold-radius/.forward to=/Dynkin diagram/fold radius,
-	fold radius=.3cm,
+	text style/.style={#1},
+	text style/.default={scale=.7},
+	text-style/.forward to=/Dynkin diagram/text style/.style,
+	twisted/.is if = dynkin at is@twisted,
+	twisted/.default = false,
+	twisted series/.estore in = \dynkin at twisted@series,
+	twisted-series/.forward to = /Dynkin diagram/twisted series,
+	twisted series/.default = 0,
 	*/.style = {
 		solid,
 		draw=black,
@@ -1814,33 +1981,6 @@
 		draw=black,
 		line cap=round		
 	},
-	Coxeter/.is if = dynkin at Coxeter,
-	Coxeter=false,
-	ordering/.store in = \dynkin at ordering,
-	ordering = Bourbaki,
-    text-style/.forward to=/Dynkin diagram/text style/.style,
-	label macro/.code = {\regurgitate{#1}},
-    label-macro/.forward to=/Dynkin diagram/label macro,
-	label macro*/.code = {\regurgitate{#1}},
-    label-macro*/.forward to=/Dynkin diagram/label macro*,
- 	labels/.store in = \dynkin at label@list,
- 	labels*/.store in = \dynkin at label@list at star,
-	odd/.is if = dynkin at odd,
-	odd=false,
-	Kac arrows/.is if = dynkin at Kac@arrows,
-	Kac-arrows/.forward to = /Dynkin diagram/Kac arrows,
-	Kac arrows=false,
-	Kac/.style={
-		Kac arrows=true,
-		ordering=Kac,
-		root radius=.05cm,
-		edge length=.66cm,
-		indefinite edge ratio = 3,
-		edge/.style={solid,draw=black,fill=white,thin,shorten <=1mm,shorten >=1mm},
-		fold style/.style = {solid,draw=black!40,fill=none,line width=\dynkin at root@radius,shorten <=1mm,shorten >=1mm},
-		mark=o,
-		indefinite edge/.style={solid,draw=black,fill=none,thin,loosely dotted},
-	},
 	ceref/.style={
 		edge length=.48cm,	
 		indefinite edge/.style={
@@ -1857,7 +1997,7 @@
 			draw=black,
 			fill=white,
 			thin,
-			double copy shadow={draw=black!90,fill=white,thin,shadow xshift=.1pt, shadow yshift=-.15pt},
+			double copy shadow={draw=black!90,fill=none,thin,shadow xshift=.1pt, shadow yshift=-.15pt},
 		},
 		*/.style={
 			yscale=1.2,
@@ -1887,44 +2027,13 @@
 			fill=white,
 		},
 	},
-	label height/.style={/tikz/every label/.append style={text height={height("#1"}}},
-	label depth/.style={/tikz/every label/.append style={text depth={depth("#1"}}},
-	text style/.style={/tikz/every label/.append style={#1}},
-	default/.style = {
-		text style={scale=.7},
- 		label/.is if = dynkin at label@the at roots,
-		label = false,
-		label height/.default=b,
-		label depth/.default=g,
-		label height,
-		label depth,
-		label-height/.forward to = /Dynkin diagram/label height,
-		label-depth/.forward to = /Dynkin diagram/label depth,
-		labels = {},
-		labels* = {},
-		at/.estore in = \dynkin at current@location,
-		at = {(0,0)},
-		parabolic/.estore in = \dynkin at parabolic,
-		parabolic = 0,
-		gonality/.estore in = \dynkin at gonality,
-		gonality = 0,
-		extended/.is if = dynkin at is@extended,
-		extended = false,
-		twisted/.is if = dynkin at is@twisted,
-		twisted = false,
-		twisted series/.estore in = \dynkin at twisted@series,
-		twisted-series/.forward to = /Dynkin diagram/twisted series,
-		twisted series = 0,
-		ply/.estore in = \dynkin at ply@value,
-		ply = 1,
-		fold/.style = {ply=2},
-		fold left/.is if = dynkin at left@fold,
-		fold-left/.forward to = /Dynkin diagram/fold left,
-		fold left = false,
-		fold right/.is if = dynkin at right@fold,
-		fold-right/.forward to = /Dynkin diagram/fold right,
-		fold right = false,
- 	},
+	at/.default = {(0,0)},
+	parabolic/.default = 0,
+	gonality/.default = 0,
+	fold-left/.forward to = /Dynkin diagram/fold left,
+	fold left/.default = false,
+	fold-right/.forward to = /Dynkin diagram/fold right,
+	fold right/.default = false,
 	.search also={/tikz},
 }
 
@@ -2198,7 +2307,7 @@
 	\global\defaultpgflinewidth=\defaultpgflinewidth\relax%
 	\dynkin at clear@indefinite at edge@list%
 	\xdef\dynkin at parabolic{0}%
-	\pgfkeys{/Dynkin diagram, default, #1}%
+	\pgfkeys{/Dynkin diagram, #1}%
 	\ifdynkin at is@backwards%
 	  \tikzset{xscale=-1}%
 	\fi%
@@ -3220,6 +3329,7 @@
 	\fi%
 }%
 
+
 %% \Bdynkin 
 %% Draw a B series Dynkin diagram.
 \NewDocumentCommand\Bdynkin{}%
@@ -3232,16 +3342,7 @@
 		\advance\drmo by -1
 		\ifdynkin at Coxeter
 			\Adynkin
-			\convertRootPair{\the\drmo}{\the\dynkin at rank}
-		\node[inner sep=\dynkin at root@radius,%
-			label={%
-				[/Dynkin diagram/text style]%
-				above:
-				\(\pgfkeys{/Dynkin diagram/label macro*=4}\)%
-				}%
-			] 
-			at ($.5*(\dynkin at root@name \the\@fromRoot)+.5*(\dynkin at root@name \the\@toRoot)$) 
-			{};
+			\dynkinEdgeLabel{\the\drmo}{\the\dynkin at rank}{4}%
 		\else
 			% Create the roots.
 			\ifnum\dynkin at ply>1%
@@ -3714,16 +3815,17 @@
 		\dynkinEdge*{SingleEdge}{1}{2}
 		\dynkinEdge*{SingleEdge}{2}{3}
 		\dynkinEdge*{SingleEdge}{3}{4}
-		\convertRootPair{2}{3}	
-		\node[inner sep=\dynkin at root@radius,%
-			label={%
-				[/Dynkin diagram/text style]%
-				above:
-				\(\pgfkeys{/Dynkin diagram/label macro*=4}\)%
-				}%
-			] 
-			at ($.5*(\dynkin at root@name \the\@fromRoot)+.5*(\dynkin at root@name \the\@toRoot)$) 
-			{};
+		\dynkinEdgeLabel{2}{3}{4}%
+%		\convertRootPair{2}{3}	
+%		\node[inner sep=\dynkin at root@radius,%
+%			label={%
+%				[/Dynkin diagram/text style,/Dynkin diagram/edge label]%
+%				above:
+%				\(\pgfkeys{/Dynkin diagram/label macro*=4}\)%
+%				}%
+%			] 
+%			at ($.5*(\dynkin at root@name \the\@fromRoot)+.5*(\dynkin at root@name \the\@toRoot)$) 
+%			{};
 	\else
 		\dynkinEdge*{SingleEdge}{1}{2}
 		\dynkinEdge*{SingleEdge}{3}{4}
@@ -3759,16 +3861,17 @@
 \newcommand*{\Hdynkin}%
 {%
 	\Adynkin%
-	\convertRootPair{1}{2}%
-	\node[inner sep=\dynkin at root@radius,%
-		label={%
-			[/Dynkin diagram/text style]%
-			above:
-			\(\pgfkeys{/Dynkin diagram/label macro*=5}\)%
-			}%
-		] 
-		at ($.5*(\dynkin at root@name \the\@fromRoot)+.5*(\dynkin at root@name \the\@toRoot)$) 
-		{};
+	\dynkinEdgeLabel{1}{2}{5}%
+%	\convertRootPair{1}{2}%
+%	\node[inner sep=\dynkin at root@radius,%
+%		label={%
+%			[/Dynkin diagram/text style,/Dynkin diagram/edge label]%
+%			above:
+%			\(\pgfkeys{/Dynkin diagram/label macro*=5}\)%
+%			}%
+%		] 
+%		at ($.5*(\dynkin at root@name \the\@fromRoot)+.5*(\dynkin at root@name \the\@toRoot)$) 
+%		{};
 }%
 
 %% \Idynkin 
@@ -3779,16 +3882,17 @@
 	\In=\dynkin at rank%
 	\dynkin at rank=2%
 	\Adynkin%
-	\convertRootPair{1}{2}%
-		\node[inner sep=\dynkin at root@radius,%
-			label={%
-				[/Dynkin diagram/text style]%
-				above:
-				\(\pgfkeys{/Dynkin diagram/label macro*=\dynkin at gonality}\)%
-				}%
-			] 
-			at ($.5*(\dynkin at root@name \the\@fromRoot)+.5*(\dynkin at root@name \the\@toRoot)$) 
-			{};
+	\dynkinEdgeLabel{1}{2}{\dynkin at gonality}%
+%	\convertRootPair{1}{2}%
+%		\node[inner sep=\dynkin at root@radius,%
+%			label={%
+%				[/Dynkin diagram/text style,/Dynkin diagram/edge label]%
+%				above:
+%				\(\pgfkeys{/Dynkin diagram/label macro*=\dynkin at gonality}\)%
+%				}%
+%			] 
+%			at ($.5*(\dynkin at root@name \the\@fromRoot)+.5*(\dynkin at root@name \the\@toRoot)$) 
+%			{};
 }%
 
 %% \extendedAdynkin
@@ -3910,16 +4014,17 @@
 				\fi%
 				\ifdynkin at Coxeter%
 					\dynkinEdge*{SingleEdge}{\the\drmo}{\the\dynkin at rank}%
-					\convertRootPair{\the\drmo}{\the\dynkin at rank}
-					\node[inner sep=\dynkin at root@radius,%
-						label={%
-							[/Dynkin diagram/text style]%
-							above:
-							\(\pgfkeys{/Dynkin diagram/label macro*=4}\)%
-							}%
-						] 
-						at ($.5*(\dynkin at root@name \the\@fromRoot)+.5*(\dynkin at root@name \the\@toRoot)$) 
-						{};
+					\dynkinEdgeLabel{\the\drmo}{\the\dynkin at rank}{4}%
+%					\convertRootPair{\the\drmo}{\the\dynkin at rank}
+%					\node[inner sep=\dynkin at root@radius,%
+%						label={%
+%							[/Dynkin diagram/text style,/Dynkin diagram/edge label]%
+%							above:
+%							\(\pgfkeys{/Dynkin diagram/label macro*=4}\)%
+%							}%
+%						] 
+%						at ($.5*(\dynkin at root@name \the\@fromRoot)+.5*(\dynkin at root@name \the\@toRoot)$) 
+%						{};
 				\else%
 					\ifnum\dynkin at ply<3%
 						\dynkinEdge*{DoubleEdge}{\the\drmo}{\the\dynkin at rank}%
@@ -3941,16 +4046,17 @@
 	\Cdynkin{}%
 	\ifdynkin at Coxeter%
 		\dynkinEdge*{SingleEdge}{0}{1}%
-		\convertRootPair{0}{1}
-		\node[inner sep=\dynkin at root@radius,%
-			label={%
-				[/Dynkin diagram/text style]%
-				above:
-				\(\pgfkeys{/Dynkin diagram/label macro*=4}\)%
-				}%
-			] 
-			at ($.5*(\dynkin at root@name \the\@fromRoot)+.5*(\dynkin at root@name \the\@toRoot)$) 
-			{};
+		\dynkinEdgeLabel{0}{1}{4}%
+%		\convertRootPair{0}{1}
+%		\node[inner sep=\dynkin at root@radius,%
+%			label={%
+%				[/Dynkin diagram/text style,/Dynkin diagram/edge label]%
+%				above:
+%				\(\pgfkeys{/Dynkin diagram/label macro*=4}\)%
+%				}%
+%			] 
+%			at ($.5*(\dynkin at root@name \the\@fromRoot)+.5*(\dynkin at root@name \the\@toRoot)$) 
+%			{};
 	\else%
 		\dynkinEdge*{DoubleEdge}{0}{1}%
 	\fi%	
@@ -4151,11 +4257,12 @@
 	\dynkin at rank=1%
 	\Adynkin%
 	\dynkinEdge*{SingleEdge}{0}{1}%
-	\convertRootPair{0}{1}%
-	\node[/Dynkin diagram/text style,above] 
-		at 
-		($.5*(\dynkin at root@name \the\@fromRoot)+.5*(\dynkin at root@name \the\@toRoot)$) 
-		{\(\infty\)};%
+	\dynkinEdgeLabel{0}{1}{\infty}%
+%	\convertRootPair{0}{1}%
+%	\node[/Dynkin diagram/text style,/Dynkin diagram/edge label,above] 
+%		at 
+%		($.5*(\dynkin at root@name \the\@fromRoot)+.5*(\dynkin at root@name \the\@toRoot)$) 
+%		{\(\infty\)};%
 }
 
 



More information about the tex-live-commits mailing list