diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/pmdraw/pmdraw.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/pmdraw/pmdraw.sty | 98 |
1 files changed, 95 insertions, 3 deletions
diff --git a/Master/texmf-dist/tex/latex/pmdraw/pmdraw.sty b/Master/texmf-dist/tex/latex/pmdraw/pmdraw.sty index 36f506b51fa..9819f848938 100644 --- a/Master/texmf-dist/tex/latex/pmdraw/pmdraw.sty +++ b/Master/texmf-dist/tex/latex/pmdraw/pmdraw.sty @@ -1,8 +1,8 @@ \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{pmdraw}[2024-06-02 v1.4 pmdraw] +\ProvidesPackage{pmdraw}[2024-10-07 v1.5 pmdraw] % *------------------------------* -% |7````````````````````````````4| +% |9````````````````````````````5| % |`````____````____`````````````| % |````|MFMF\ /MFMF|````````````| % |````|MF|MF\/MF|MF|````````````| @@ -14,7 +14,7 @@ % |``````````````|MF|````````````| % |``````````````|MF|````````````| % |``````````````|MF|````````````| -% |3````````````````````````````4| +% |3````````````````````````````1| % *------------------------------* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -840,6 +840,98 @@ \pmdraw@reset% Resets user keys and other flags to default values } +\newcommand{\pmdProductTriple}[6][]{% Draws triple product diagram + % #1 Options + % #2 List of top added edges + % #3 List of bottom added edges + % #4 Top diagram as list of bricks + % #5 Middle diagram as list of bricks + % #6 Bottom diagram as list of bricks + \setkeys{pmdraw@diagram}{#1}% Processes options + \ifmmode% If drawing diagram in a maths equation + \,% Add space + \ifnum\pmdraw@ifGrid=1% If displaying helper grid + \begin{tikzpicture}[scale=.5,baseline=-1.0975cm,show grid=true,apply style/.expand once=\pmdraw@tikz]% + \else% If not displaying helper grid + \begin{tikzpicture}[scale=.5,baseline=-1.0975cm,apply style/.expand once=\pmdraw@tikz]% + \fi% + \pmdraw@hookBeforeDiagram% Hook before drawing diagrams + \pmdraw@AedgesLoop% Commences loop for top added edges to be drawn + #2% + \pmdEmpty% Terminates loop + \renewcommand{\pmdraw@ifDiagWDots}{1}% Flags that diagram has dot + \renewcommand{\pmdraw@ifProdDiag}{1}% Flags that diagram is product + \setcounter{pmdraw@brickShift}{0}% Reset shifting of individual bricks + \pmdraw@bricksLoop% Commences loop for each top brick to be drawn + #4% + \pmdEmpty% Terminates loop + \renewcommand{\pmdraw@ifProdDiag}{0}% Resets flag that diagram is product + \setcounter{pmdraw@ifDiagWDotsFirst}{1}% Reset if drawing first brick of diagram + \setcounter{pmdraw@brickShift}{0}% Reset shifting of individual bricks + \begin{scope}[shift={(0,-\pmdraw@diagSep-\pmdraw@rowSep-\pmdraw@vertexSep)}]% Shift coordinates to be underneath top diagram + \pmdraw@AedgesLoop% Commences loop for bottom added edges to be drawn + #3% + \pmdEmpty% Terminates loop + \pmdraw@bricksLoop% Commences loop for each middle brick to be drawn + #5% + \pmdEmpty% Terminates loop + \setcounter{pmdraw@ifDiagWDotsFirst}{1}% Reset if drawing first brick of diagram + \setcounter{pmdraw@brickShift}{0}% Reset shifting of individual bricks + \begin{scope}[shift={(0,-\pmdraw@diagSep-\pmdraw@rowSep-\pmdraw@vertexSep)}]% Shift coordinates to be underneath middle diagram + \pmdraw@bricksLoop% Commences loop for each bottom brick to be drawn + #6% + \pmdEmpty% Terminates loop + \setcounter{pmdraw@brickShift}{0}% Reset shifting of individual bricks + \end{scope}% + \end{scope}% + \renewcommand{\pmdraw@ifDiagWDots}{0}% Reset if drawing a diagram with dots + \pmdraw@hookAfterDiagram% Hook after drawing diagrams + \end{tikzpicture}% + \,% Add space + \else% If drawing diagram in normal text + \raisebox{2cm}{% Raise diagram so bottom row is on text baseline + \ifnum\pmdraw@ifGrid=1% If displaying helper grid + \begin{tikzpicture}[scale=.5,baseline=-1.095cm,show grid=true,apply style/.expand once=\pmdraw@tikz]% + \else% If not displaying helper grid + \begin{tikzpicture}[scale=.5,baseline=-1.095cm,apply style/.expand once=\pmdraw@tikz]% + \fi% + \pmdraw@hookBeforeDiagram% Hook before drawing diagrams + \pmdraw@AedgesLoop% Commences loop for added edges to be drawn + #2% + \pmdEmpty% Terminates loop + \renewcommand{\pmdraw@ifDiagWDots}{1}% Flags that diagram has dot + \renewcommand{\pmdraw@ifProdDiag}{1}% Flags that diagram is product + \setcounter{pmdraw@brickShift}{0}% Reset shifting of individual bricks + \pmdraw@bricksLoop% Commences loop for each brick to be drawn + #4% + \pmdEmpty% Terminates loop + \renewcommand{\pmdraw@ifProdDiag}{0}% Resets flag that diagram is product + \setcounter{pmdraw@ifDiagWDotsFirst}{1}% Reset if drawing first brick of diagram + \setcounter{pmdraw@brickShift}{0}% Reset shifting of individual bricks + \begin{scope}[shift={(0,-\pmdraw@diagSep-\pmdraw@rowSep-\pmdraw@vertexSep)}]% Shift coordinates to be underneath top diagram + \pmdraw@AedgesLoop% Commences loop for bottom added edges to be drawn + #3% + \pmdEmpty% Terminates loop + \pmdraw@bricksLoop% Commences loop for each middle brick to be drawn + #5% + \pmdEmpty% Terminates loop + \setcounter{pmdraw@ifDiagWDotsFirst}{1}% Reset if drawing first brick of diagram + \setcounter{pmdraw@brickShift}{0}% Reset shifting of individual bricks + \begin{scope}[shift={(0,-\pmdraw@diagSep-\pmdraw@rowSep-\pmdraw@vertexSep)}]% Shift coordinates to be underneath middle diagram + \pmdraw@bricksLoop% Commences loop for each bottom brick to be drawn + #6% + \pmdEmpty% Terminates loop + \setcounter{pmdraw@brickShift}{0}% Reset shifting of individual bricks + \end{scope}% + \end{scope}% + \renewcommand{\pmdraw@ifDiagWDots}{0}% Reset if drawing a diagram with dots + \pmdraw@hookAfterDiagram% Hook after drawing diagrams + \end{tikzpicture}% + }% + \fi% + \pmdraw@reset% Resets user keys and other flags to default values +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % For loop commands % |