diff options
author | Karl Berry <karl@freefriends.org> | 2023-05-18 20:06:11 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-05-18 20:06:11 +0000 |
commit | e7a5ee225d97d72d870c82dee2944e8e96a35966 (patch) | |
tree | a3ab2508b336f3a9013d14d83e2ef55e059b554c /Master/texmf-dist/tex/latex | |
parent | 31d1704511cf500f7d821eb1ad7e60c22ac54e03 (diff) |
dynkin-diagrams (18may23)
git-svn-id: svn://tug.org/texlive/trunk@67146 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r-- | Master/texmf-dist/tex/latex/dynkin-diagrams/dynkin-diagrams.sty | 120 |
1 files changed, 102 insertions, 18 deletions
diff --git a/Master/texmf-dist/tex/latex/dynkin-diagrams/dynkin-diagrams.sty b/Master/texmf-dist/tex/latex/dynkin-diagrams/dynkin-diagrams.sty index baebba3f354..6173132ee69 100644 --- a/Master/texmf-dist/tex/latex/dynkin-diagrams/dynkin-diagrams.sty +++ b/Master/texmf-dist/tex/latex/dynkin-diagrams/dynkin-diagrams.sty @@ -1,6 +1,6 @@ % The Dynkin Diagrams package. % -% Version 3.141 592 653 589 793 2 +% Version 3.141 592 653 589 793 23 % % This package draws Dynkin diagrams in LaTeX % documents, using the TikZ package. @@ -13,7 +13,7 @@ % 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{dynkin-diagrams}[2021/04/04 Dynkin diagrams] +\ProvidesPackage{dynkin-diagrams}[2023/05/18 Dynkin diagrams] \RequirePackage{tikz} \RequirePackage{xstring} \RequirePackage{xparse} @@ -535,18 +535,30 @@ %% \dynkinEdgeLabel{<n1>}{<n2>}{<s>} %% Prints <s> between root <n1> and <n2> on the current Dynkin diagram in the current root ordering. -\NewDocumentCommand\dynkinEdgeLabel{mmm}% +\NewDocumentCommand\dynkinEdgeLabel{smmm}% {% - \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\@dynkin@from@root)+.5*(\dynkin@root@name \the\@dynkin@to@root)$) - {}; + \convertRootPair{#2}{#3}% + \IfBooleanTF{#1}% + {% + \draw[draw=none] + (\dynkin@root@name \the\@dynkin@from@root) to + node[auto,% + swap,% + inner sep=\dynkin@root@radius,% + /Dynkin diagram/text style,% + /Dynkin diagram/edge label] + {\(\pgfkeys{/Dynkin diagram/label macro*=#4}\)}% + (\dynkin@root@name \the\@dynkin@to@root);% + }% + {% + \draw[draw=none] (\dynkin@root@name \the\@dynkin@from@root) to + node[auto,% + inner sep=\dynkin@root@radius,% + /Dynkin diagram/text style,% + /Dynkin diagram/edge label] + {\(\pgfkeys{/Dynkin diagram/label macro*=#4}\)}% + (\dynkin@root@name \the\@dynkin@to@root);% + }% }% @@ -2141,7 +2153,11 @@ }, double-fold-right/.forward to=/Dynkin diagram/double fold right/.style, doublefoldright/.forward to=/Dynkin diagram/double fold right/.style, - edge label/.style={text height=0,text depth=0,label distance=-4pt}, + edge label/.style={ + text height=1.5ex, + text depth=.25ex, + label distance=4pt + }, edgelabel/.forward to=/Dynkin diagram/edge label/.style, edge length/.estore in = \dynkin@edge@length, edge-length/.forward to=/Dynkin diagram/edge length, @@ -2291,6 +2307,10 @@ root-radius/.forward to=/Dynkin diagram/root radius, rootradius/.forward to=/Dynkin diagram/root radius, root radius=.05cm, + separator length/.estore in = \dynkin@separator@length, + separator-length/.forward to=/Dynkin diagram/separator length, + separatorlength/.forward to=/Dynkin diagram/separator length, + separator length = .35cm, text style/.style={#1}, text style/.default={black,scale=.7}, text-style/.forward to=text style/.style, @@ -2647,8 +2667,9 @@ \newif\ifdynkin@is@indefinite@edge% \NewDocumentCommand\dynkin@typeout@indefinite@edge@list{}% {% - \renewcommand*{\do}[1]{\typeout{##1}}% - \typeout{Indefinite edges: [}\dolistloop{\dynkin@indefinite@edge@list}\typeout{]}% +\providecommand\do{}% +\renewcommand*{\do}[1]{\typeout{##1}}% +\typeout{Indefinite edges: [}\dolistloop{\dynkin@indefinite@edge@list}\typeout{]}% }% @@ -2673,8 +2694,9 @@ \global\dynkin@second@root@no=\@dynkin@from@root\relax% \fi% \global\dynkin@is@indefinite@edgefalse\relax% - \renewcommand*{\do}[1]{% - \IfStrEq{##1}{\the\dynkin@first@root@no,\the\dynkin@second@root@no}% +\providecommand\do{}% +\renewcommand*{\do}[1]{% +\IfStrEq{##1}{\the\dynkin@first@root@no,\the\dynkin@second@root@no}% {\global\dynkin@is@indefinite@edgetrue\listbreak}% {}}% \dolistloop{\dynkin@indefinite@edge@list}% @@ -4258,6 +4280,12 @@ \fi \dynkin@pipe{\the\dynkin@afterfold}% {#2}{west}{below}{above right} + \ifodd\dynkin@nrts% + \dynkinMoveToRoot{\the\dynkin@hpo}% + \else% + \dynkinMoveToRoot{\the\dynkin@h}% + \dynkinSouthEastFold{}% + \fi% \ifdynkin@arrows% \dynkin@countdown=#2\relax% \foreach \dynkin@b in {#1,...,\the\dynkin@h}% @@ -4703,6 +4731,11 @@ \Ddynkin@roots% \Ddynkin@edges% \fi% + \dynkinMoveToRoot{\the\dynkin@rank@minus@two}% + \ifnum\dynkin@ply>1\relax% + \dynkinMoveToRoot{\the\dynkin@rank@minus@two}% + \dynkinEast% + \fi% \else% \gdef\dynkin@series{A}% \Adynkin% @@ -4781,6 +4814,7 @@ \fi% \fi% \fi% + \dynkinMoveToRoot{\the\dynkin@rank}% }% %% \Edynkin@unfolded %% Draws an E series Dynkin diagram not folded. @@ -5032,6 +5066,7 @@ \dynkinRootMark*{}{0}% \fi% \fi% + \dynkinMoveToRoot{\the\dynkin@rank}% }% \NewDocumentCommand\extendedBthreePly{}% @@ -5633,4 +5668,53 @@ drawing code = { defaults = { length = 1.25*\dynkin@root@radius } } + +%% Here are the changes I made in May 2023 to accommodate Dynkin diagrams of products of Lie algebras: + +\newcommand{\dynkinSkip} +{ +\node (current) at ($(Dynkin current)+(\dynkin@separator@length,0)$) {}; +} +\NewDocumentCommand\next@dynkin{O{}mO{0}m}% +{% +\dynkinSkip +\dynkin[at=(current),#1]{#2}[#3]{#4} +}% +\newcount\dynkin@diagram@list@item@number +\providecommand\do@dynkin@diagram@list@item{} +\renewcommand*{\do@dynkin@diagram@list@item}[1]{ + \ifnum\dynkin@diagram@list@item@number<2\relax% + {\dynkin #1}% + \else% + {\next@dynkin #1}% + \fi% + \advance\dynkin@diagram@list@item@number by 1\relax% +} +\DeclareListParser*{\for@dynkin@diagram@list}{|}% +\NewDocumentCommand\dynkin@diagram@reducible{m}% +{% +\dynkin@diagram@list@item@number1\relax% +\for@dynkin@diagram@list{\do@dynkin@diagram@list@item}{#1}% +}% +\NewDocumentEnvironment{DynkinDiagrams}{m}% +{% +\dynkin@save{}% +\begin{tikzpicture} +\dynkin@diagram@reducible{#1}% +}% +{% +\end{tikzpicture}% +\dynkin@restore{}% +}% +\NewDocumentCommand\dynkins{m}% +{% +%\dynkin@save{}% +\ifdefined\filldraw\relax% +\dynkin@diagram@reducible{#1}% +\else% +\tikz[anchor=base]{\dynkin@diagram@reducible{#1}}% +\fi% +%\dynkin@restore{}% +}% + \endinput |