summaryrefslogtreecommitdiff
path: root/graphics/pgf/contrib/dynkin-diagrams
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-12-05 03:00:50 +0000
committerNorbert Preining <norbert@preining.info>2019-12-05 03:00:50 +0000
commit2905ee4c8de47cfdeea4787e465eb827f9b99e8b (patch)
tree802c26d7002fd7e2188412b5bd1f86cd9ee2c4d6 /graphics/pgf/contrib/dynkin-diagrams
parent05ad7831f64aa0e2fc9eac63816eeafcb0b09708 (diff)
CTAN sync 201912050300
Diffstat (limited to 'graphics/pgf/contrib/dynkin-diagrams')
-rw-r--r--graphics/pgf/contrib/dynkin-diagrams/README6
-rw-r--r--graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.pdfbin735799 -> 751053 bytes
-rw-r--r--graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.sty475
-rw-r--r--graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.tex108
4 files changed, 346 insertions, 243 deletions
diff --git a/graphics/pgf/contrib/dynkin-diagrams/README b/graphics/pgf/contrib/dynkin-diagrams/README
index d5d25bbb48..63b623b955 100644
--- a/graphics/pgf/contrib/dynkin-diagrams/README
+++ b/graphics/pgf/contrib/dynkin-diagrams/README
@@ -2,9 +2,9 @@ ___________________________________
Dynkin diagrams
- v3.14159265
+ v3.141592653
- 26 November 2019
+ 4 December 2019
___________________________________
Authors : Ben McKay
@@ -16,7 +16,7 @@ Licence : Released under the LaTeX Project Public License v1.3c or
----------------------------------------------------------------------
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.
diff --git a/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.pdf b/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.pdf
index f329e22aa5..29f6f28c86 100644
--- a/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.pdf
+++ b/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.sty b/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.sty
index 805b825760..e7c4af6022 100644
--- a/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.sty
+++ b/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.sty
@@ -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@dynkin@is@backwards
+\newif\ifold@dynkin@is@upsidedown
+\newif\ifold@dynkin@is@extended
+\newif\ifold@dynkin@label@the@roots
+
+\NewDocumentCommand\dynkin@save{}%
{%
- \ifdefined\filldraw%
- \@dynkin[#1]{#2}[#3]{#4}%
- \else%
- \tikz[baseline=(origin.base)]{\@dynkin[#1]{#2}[#3]{#4}}%
- \fi%
+\xdef\dynkin@ply@value{1}%
+\ifdynkin@is@backwards\global\old@dynkin@is@backwardstrue\else\global\old@dynkin@is@backwardsfalse\fi%
+\ifdynkin@is@upsidedown\global\old@dynkin@is@upsidedowntrue\else\global\old@dynkin@is@upsidedownfalse\fi%
+\ifdynkin@is@extended\global\old@dynkin@is@extendedtrue\else\global\old@dynkin@is@extendedfalse\fi%
+{\global\dynkin@is@twistedfalse}%
+\ifdynkin@label@the@roots\global\old@dynkin@label@the@rootstrue\else\global\old@dynkin@label@the@rootsfalse\fi%
+}%
+
+\NewDocumentCommand\dynkin@restore{}%
+{%
+\ifold@dynkin@is@backwards\global\dynkin@is@backwardstrue\else\global\dynkin@is@backwardsfalse\fi%
+\ifold@dynkin@is@upsidedown\global\dynkin@is@upsidedowntrue\else\global\dynkin@is@upsidedownfalse\fi%
+\ifold@dynkin@is@extended\global\dynkin@is@extendedtrue\else\global\dynkin@is@extendedfalse\fi%
+\ifold@dynkin@label@the@roots\global\dynkin@label@the@rootstrue\else\global\dynkin@label@the@rootsfalse\fi%
}%
\NewDocumentEnvironment{dynkinDiagram}{O{}mO{0}m}%
{%
-\begin{tikzpicture}[baseline=(origin.base)]%
-\dynkin[#1]{#2}[#3]{#4}%
+\dynkin@save{}%
+\begin{tikzpicture}%
+\@dynkin[#1]{#2}[#3]{#4}%
}%
{%
\end{tikzpicture}%
+\dynkin@restore{}%
+}%
+
+\NewDocumentCommand\dynkin{O{}mO{0}m}%
+{%
+\dynkin@save{}%
+\ifdefined\filldraw%
+\@dynkin[#1]{#2}[#3]{#4}%
+\else%
+\tikz[baseline=(origin.base)]{\@dynkin[#1]{#2}[#3]{#4}}%
+\fi%
+\dynkin@restore{}%
+}%
+
+
+%% Names for Dynkin diagrams.
+\xdef\dynkin@indefinite@number@symbol{n}
+\NewDocumentCommand\dynkinIndefiniteSymbol{m}%
+{%
+\xdef\dynkin@indefinite@number@symbol{#1}%
+}%
+\NewDocumentCommand\dynkinName{O{}mO{0}m}%
+{%
+\dynkin@save{}%
+\xdef\dynkin@ply@value{1}%
+\xdef\dynkin@label@directions{}%
+\xdef\dynkin@label@directions@star{}%
+ \setcounter{dynkinRootNo}{0}%
+ \dynkin@clear@indefinite@edge@list%
+ \xdef\dynkin@parabolic{0}%
+ \pgfkeys{/Dynkin diagram, #1}%
+ \xdef\dynkin@user@series{#2}%
+ \xdef\dynkin@twisted@series{#3}%
+ \xdef\dynkin@user@string{#4}%
+ \xdef\dynkin@series{#2}%
+ \dynkin@grok@series%
+ \IfSubStr{ABCDEFGHI}{\dynkin@series}{}{\dynkin@error@series}%
+ \ensuremath{%
+ \dynkin@series^{%
+ \ifdynkin@is@extended{1}%
+ \else{%
+ \IfStrEq{\dynkin@twisted@series}{0}%
+ {}%
+ {\dynkin@twisted@series}%
+ }%
+ \fi%
+ }%
+ _%
+ {%
+ \IfStrEq{\dynkin@user@string}{}%
+ {\dynkin@indefinite@number@symbol}%
+ {\dynkin@user@string}%
+ \IfStrEq{\dynkin@parabolic}{0}%
+ {}%
+ {,\dynkin@parabolic}
+ }%
+ }%
+\dynkin@restore{}%
}%
+
\NewDocumentCommand\dynkinRefreshRoots{}%
{%
\ifdefined\filldraw\else\dynkin@error@not@in@tikz\fi%
@@ -116,6 +190,24 @@
\newcount\rpo%
+\NewDocumentCommand\drlap{m}%
+{%
+\IfStrEq{\dynkin@label@direction}{left}%
+{%
+ #1%
+}%
+{%
+ \IfStrEq{\dynkin@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 @@ decoration=
}%
}%
+%% \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@root@radius,%
+ label={%
+ [/Dynkin diagram/text style,/Dynkin diagram/edge label]%
+ above:
+ \(\pgfkeys{/Dynkin diagram/label macro*=#3}\)%
+ }%
+ ]
+ at ($.5*(\dynkin@root@name \the\@fromRoot)+.5*(\dynkin@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 @@ decoration=
\pgfkeys{
/Dynkin diagram/.is family,
/Dynkin diagram,
- name/.estore in = \dynkin@diagram@name,
- name = anonymous,
- mark/.estore in = \dynkin@root@mark,
- mark = *,
affine mark/.estore in = \dynkin@affine@root@mark,
affine-mark/.forward to = /Dynkin diagram/affine mark,
affine-mark = o,
- edge length/.estore in = \dynkin@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@set@edge@indefinite@pair{#1}},
- make-indefinite-edge/.forward to=/Dynkin diagram/make indefinite edge,
- indefinite edge ratio/.estore in = \dynkin@indefinite@edge@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,
- backwards/.is if = dynkin@is@backwards,
- backwards = false,
- upside down/.is if = dynkin@is@upsidedown,
- upside down = false,
- upside-down/.forward to = /Dynkin diagram/upside down,
- arrows/.is if = dynkin@arrows,
- arrows = true,
- reverse arrows/.is if = dynkin@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@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@arrow@color,
- arrow color = black,
arrow-color/.forward to=/Dynkin diagram/arrow color,
+ arrows/.is if = dynkin@arrows,
+ arrows = true,
+ at/.estore in = \dynkin@current@location,
+ backwards/.is if = dynkin@is@backwards,
+ backwards = false,
+ Coxeter/.is if = dynkin@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 @@ decoration=
double distance=\dynkin@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 @@ decoration=
double distance=\dynkin@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 @@ decoration=
double distance=\dynkin@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 @@ decoration=
double distance=\dynkin@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 @@ decoration=
double distance=\dynkin@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 @@ decoration=
double distance=\dynkin@root@radius,
line width=\defaultpgflinewidth}
},
- double-fold-right/.forward to=/Dynkin diagram/double fold right/.style,
- root radius/.estore in = \dynkin@root@radius,
- root-radius/.forward to=/Dynkin diagram/root radius,
- root radius=.05cm,
+ double-fold-right/.forward to=/Dynkin diagram/double fold right/.style,
+ edge length/.estore in = \dynkin@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@is@extended,
+ extended = false,
+ fold left/.is if = dynkin@left@fold,
+ ply/.estore in = \dynkin@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@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@fold@radius,
- fold-radius/.forward to=/Dynkin diagram/fold radius,
+ fold-radius/.forward to=/Dynkin diagram/fold radius,
fold radius=.3cm,
+ fold right/.is if = dynkin@right@fold,
+ fold right style/.style = {},
+ fold-right-style/.forward to=/Dynkin diagram/fold right style/.style,
+ gonality/.estore in = \dynkin@gonality,
+ indefinite edge ratio/.estore in = \dynkin@indefinite@edge@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@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@root@radius,shorten <=1mm,shorten >=1mm},
+ mark=o,
+ indefinite edge/.style={solid,draw=black,fill=none,thin,loosely dotted},
+ },
+ label/.is if = dynkin@label@the@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@label@list,
+ labels*/.store in = \dynkin@label@list@star,
+ make indefinite edge/.code={\dynkin@set@edge@indefinite@pair{#1}},
+ make-indefinite-edge/.forward to=/Dynkin diagram/make indefinite edge,
+ mark/.estore in = \dynkin@root@mark,
+ mark = *,
+ name/.estore in = \dynkin@diagram@name,
+ name = anonymous,
+ odd/.is if = dynkin@odd,
+ odd=false,
+ ordering/.store in = \dynkin@ordering,
+ ordering = Bourbaki,
+ parabolic/.estore in = \dynkin@parabolic,
+ reverse arrows/.is if = dynkin@reverse@arrows,
+ reverse arrows = false,
+ reverse-arrows/.forward to = /Dynkin diagram/reverse arrows,
+ upside down/.is if = dynkin@is@upsidedown,
+ upside down = false,
+ upside-down/.forward to = /Dynkin diagram/upside down,
+ root radius/.estore in = \dynkin@root@radius,
+ root-radius/.forward to=/Dynkin diagram/root radius,
+ root radius=.05cm,
+ text style/.style={#1},
+ text style/.default={scale=.7},
+ text-style/.forward to=/Dynkin diagram/text style/.style,
+ twisted/.is if = dynkin@is@twisted,
+ twisted/.default = false,
+ twisted series/.estore in = \dynkin@twisted@series,
+ twisted-series/.forward to = /Dynkin diagram/twisted series,
+ twisted series/.default = 0,
*/.style = {
solid,
draw=black,
@@ -1814,33 +1981,6 @@ decoration=
draw=black,
line cap=round
},
- Coxeter/.is if = dynkin@Coxeter,
- Coxeter=false,
- ordering/.store in = \dynkin@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@label@list,
- labels*/.store in = \dynkin@label@list@star,
- odd/.is if = dynkin@odd,
- odd=false,
- Kac arrows/.is if = dynkin@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@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 @@ decoration=
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 @@ decoration=
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@label@the@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@current@location,
- at = {(0,0)},
- parabolic/.estore in = \dynkin@parabolic,
- parabolic = 0,
- gonality/.estore in = \dynkin@gonality,
- gonality = 0,
- extended/.is if = dynkin@is@extended,
- extended = false,
- twisted/.is if = dynkin@is@twisted,
- twisted = false,
- twisted series/.estore in = \dynkin@twisted@series,
- twisted-series/.forward to = /Dynkin diagram/twisted series,
- twisted series = 0,
- ply/.estore in = \dynkin@ply@value,
- ply = 1,
- fold/.style = {ply=2},
- fold left/.is if = dynkin@left@fold,
- fold-left/.forward to = /Dynkin diagram/fold left,
- fold left = false,
- fold right/.is if = dynkin@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 @@ decoration=
\global\defaultpgflinewidth=\defaultpgflinewidth\relax%
\dynkin@clear@indefinite@edge@list%
\xdef\dynkin@parabolic{0}%
- \pgfkeys{/Dynkin diagram, default, #1}%
+ \pgfkeys{/Dynkin diagram, #1}%
\ifdynkin@is@backwards%
\tikzset{xscale=-1}%
\fi%
@@ -3220,6 +3329,7 @@ decoration=
\fi%
}%
+
%% \Bdynkin
%% Draw a B series Dynkin diagram.
\NewDocumentCommand\Bdynkin{}%
@@ -3232,16 +3342,7 @@ decoration=
\advance\drmo by -1
\ifdynkin@Coxeter
\Adynkin
- \convertRootPair{\the\drmo}{\the\dynkin@rank}
- \node[inner sep=\dynkin@root@radius,%
- label={%
- [/Dynkin diagram/text style]%
- above:
- \(\pgfkeys{/Dynkin diagram/label macro*=4}\)%
- }%
- ]
- at ($.5*(\dynkin@root@name \the\@fromRoot)+.5*(\dynkin@root@name \the\@toRoot)$)
- {};
+ \dynkinEdgeLabel{\the\drmo}{\the\dynkin@rank}{4}%
\else
% Create the roots.
\ifnum\dynkin@ply>1%
@@ -3714,16 +3815,17 @@ decoration=
\dynkinEdge*{SingleEdge}{1}{2}
\dynkinEdge*{SingleEdge}{2}{3}
\dynkinEdge*{SingleEdge}{3}{4}
- \convertRootPair{2}{3}
- \node[inner sep=\dynkin@root@radius,%
- label={%
- [/Dynkin diagram/text style]%
- above:
- \(\pgfkeys{/Dynkin diagram/label macro*=4}\)%
- }%
- ]
- at ($.5*(\dynkin@root@name \the\@fromRoot)+.5*(\dynkin@root@name \the\@toRoot)$)
- {};
+ \dynkinEdgeLabel{2}{3}{4}%
+% \convertRootPair{2}{3}
+% \node[inner sep=\dynkin@root@radius,%
+% label={%
+% [/Dynkin diagram/text style,/Dynkin diagram/edge label]%
+% above:
+% \(\pgfkeys{/Dynkin diagram/label macro*=4}\)%
+% }%
+% ]
+% at ($.5*(\dynkin@root@name \the\@fromRoot)+.5*(\dynkin@root@name \the\@toRoot)$)
+% {};
\else
\dynkinEdge*{SingleEdge}{1}{2}
\dynkinEdge*{SingleEdge}{3}{4}
@@ -3759,16 +3861,17 @@ decoration=
\newcommand*{\Hdynkin}%
{%
\Adynkin%
- \convertRootPair{1}{2}%
- \node[inner sep=\dynkin@root@radius,%
- label={%
- [/Dynkin diagram/text style]%
- above:
- \(\pgfkeys{/Dynkin diagram/label macro*=5}\)%
- }%
- ]
- at ($.5*(\dynkin@root@name \the\@fromRoot)+.5*(\dynkin@root@name \the\@toRoot)$)
- {};
+ \dynkinEdgeLabel{1}{2}{5}%
+% \convertRootPair{1}{2}%
+% \node[inner sep=\dynkin@root@radius,%
+% label={%
+% [/Dynkin diagram/text style,/Dynkin diagram/edge label]%
+% above:
+% \(\pgfkeys{/Dynkin diagram/label macro*=5}\)%
+% }%
+% ]
+% at ($.5*(\dynkin@root@name \the\@fromRoot)+.5*(\dynkin@root@name \the\@toRoot)$)
+% {};
}%
%% \Idynkin
@@ -3779,16 +3882,17 @@ decoration=
\In=\dynkin@rank%
\dynkin@rank=2%
\Adynkin%
- \convertRootPair{1}{2}%
- \node[inner sep=\dynkin@root@radius,%
- label={%
- [/Dynkin diagram/text style]%
- above:
- \(\pgfkeys{/Dynkin diagram/label macro*=\dynkin@gonality}\)%
- }%
- ]
- at ($.5*(\dynkin@root@name \the\@fromRoot)+.5*(\dynkin@root@name \the\@toRoot)$)
- {};
+ \dynkinEdgeLabel{1}{2}{\dynkin@gonality}%
+% \convertRootPair{1}{2}%
+% \node[inner sep=\dynkin@root@radius,%
+% label={%
+% [/Dynkin diagram/text style,/Dynkin diagram/edge label]%
+% above:
+% \(\pgfkeys{/Dynkin diagram/label macro*=\dynkin@gonality}\)%
+% }%
+% ]
+% at ($.5*(\dynkin@root@name \the\@fromRoot)+.5*(\dynkin@root@name \the\@toRoot)$)
+% {};
}%
%% \extendedAdynkin
@@ -3910,16 +4014,17 @@ decoration=
\fi%
\ifdynkin@Coxeter%
\dynkinEdge*{SingleEdge}{\the\drmo}{\the\dynkin@rank}%
- \convertRootPair{\the\drmo}{\the\dynkin@rank}
- \node[inner sep=\dynkin@root@radius,%
- label={%
- [/Dynkin diagram/text style]%
- above:
- \(\pgfkeys{/Dynkin diagram/label macro*=4}\)%
- }%
- ]
- at ($.5*(\dynkin@root@name \the\@fromRoot)+.5*(\dynkin@root@name \the\@toRoot)$)
- {};
+ \dynkinEdgeLabel{\the\drmo}{\the\dynkin@rank}{4}%
+% \convertRootPair{\the\drmo}{\the\dynkin@rank}
+% \node[inner sep=\dynkin@root@radius,%
+% label={%
+% [/Dynkin diagram/text style,/Dynkin diagram/edge label]%
+% above:
+% \(\pgfkeys{/Dynkin diagram/label macro*=4}\)%
+% }%
+% ]
+% at ($.5*(\dynkin@root@name \the\@fromRoot)+.5*(\dynkin@root@name \the\@toRoot)$)
+% {};
\else%
\ifnum\dynkin@ply<3%
\dynkinEdge*{DoubleEdge}{\the\drmo}{\the\dynkin@rank}%
@@ -3941,16 +4046,17 @@ decoration=
\Cdynkin{}%
\ifdynkin@Coxeter%
\dynkinEdge*{SingleEdge}{0}{1}%
- \convertRootPair{0}{1}
- \node[inner sep=\dynkin@root@radius,%
- label={%
- [/Dynkin diagram/text style]%
- above:
- \(\pgfkeys{/Dynkin diagram/label macro*=4}\)%
- }%
- ]
- at ($.5*(\dynkin@root@name \the\@fromRoot)+.5*(\dynkin@root@name \the\@toRoot)$)
- {};
+ \dynkinEdgeLabel{0}{1}{4}%
+% \convertRootPair{0}{1}
+% \node[inner sep=\dynkin@root@radius,%
+% label={%
+% [/Dynkin diagram/text style,/Dynkin diagram/edge label]%
+% above:
+% \(\pgfkeys{/Dynkin diagram/label macro*=4}\)%
+% }%
+% ]
+% at ($.5*(\dynkin@root@name \the\@fromRoot)+.5*(\dynkin@root@name \the\@toRoot)$)
+% {};
\else%
\dynkinEdge*{DoubleEdge}{0}{1}%
\fi%
@@ -4151,11 +4257,12 @@ decoration=
\dynkin@rank=1%
\Adynkin%
\dynkinEdge*{SingleEdge}{0}{1}%
- \convertRootPair{0}{1}%
- \node[/Dynkin diagram/text style,above]
- at
- ($.5*(\dynkin@root@name \the\@fromRoot)+.5*(\dynkin@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@root@name \the\@fromRoot)+.5*(\dynkin@root@name \the\@toRoot)$)
+% {\(\infty\)};%
}
diff --git a/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.tex b/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.tex
index 5685bbe4a5..4969361082 100644
--- a/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.tex
+++ b/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.tex
@@ -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@ucc.ie}
-\date{26 November 2019}
+\date{4 December 2019}
\usepackage{etex}
\usepackage[T1]{fontenc}
@@ -261,8 +261,6 @@ You can also pass options to the package in \verb!\usepackage!.
\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 @@ We use a solid gray bar to denote the folding of a Dynkin diagram, rather than t
\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 @@ shorten <=1mm,shorten >=1mm,}}
\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 @@ segment length=1mm,amplitude=.6mm}}}
\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,22 +355,21 @@ segment length=1mm,amplitude=.6mm}}}
\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}
\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 @@ segment length=1mm,amplitude=.6mm}}}
\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,11 +396,29 @@ labels*={1,3,4,5,6}]{A}{7}
\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_{\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]{D}{15}
+\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
@@ -420,8 +429,8 @@ To change these, set \verb!label height! and \verb!label depth!:
\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 @@ labels*={1,3,4,5,6}]{A}{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 @@ label macro/.code={\alpha_{\mathrlap{#1}}}
\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 @@ label macro/.code={\mathbb{A}_{\mathrlap{#1}}}]{A}{}
\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 @@ D_4 &
\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 @@ the Dynkin diagram \dynkin[parabolic=3]{A}{3}.
\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,21 +886,15 @@ The extended Dynkin diagrams are also described in the notation of Kac \cite{Kac
\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}, \
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 @@ We include a style called \verb!Kac! which tries to imitate the style of \cite{K
\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 @@ We include a style called \verb!Kac! which tries to imitate the style of \cite{K
\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 @@ We include a style called \verb!Kac! which tries to imitate the style of \cite{K
\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 @@ The marks are set down in order according to the current root ordering:
\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,8 +1665,6 @@ labels*={0,1,2,3,\ell-3,\ell-2,\ell-1,\ell}]{D}[1]{}
\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 @@ The environment syntax is \verb!\begin{dynkinDiagram}! followed by the same para
& 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}