summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2024-01-10 20:43:13 +0000
committerKarl Berry <karl@freefriends.org>2024-01-10 20:43:13 +0000
commit76fd6981e82e10dc9f30087b7832e01b70e95631 (patch)
tree3775d4cd3a22f3fad70f7dfd7db9282587f43371
parent92c8dd90e39003c0cdbdd294ecbcb044cdf5efdb (diff)
pmdraw (10jan24)
git-svn-id: svn://tug.org/texlive/trunk@69366 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/pmdraw/README.md13
-rw-r--r--Master/texmf-dist/doc/latex/pmdraw/pmdraw.pdfbin377485 -> 377618 bytes
-rw-r--r--Master/texmf-dist/doc/latex/pmdraw/pmdraw.tex19
-rw-r--r--Master/texmf-dist/tex/latex/pmdraw/pmdraw.sty531
4 files changed, 281 insertions, 282 deletions
diff --git a/Master/texmf-dist/doc/latex/pmdraw/README.md b/Master/texmf-dist/doc/latex/pmdraw/README.md
index f23321eb2ad..bf3990436a4 100644
--- a/Master/texmf-dist/doc/latex/pmdraw/README.md
+++ b/Master/texmf-dist/doc/latex/pmdraw/README.md
@@ -3,10 +3,10 @@ pmdraw
<!--
-README V1.1 2023-11-14
+README V1.2 2024-01-10
*------------------------------*
-|3````````````````````````````7|
+|3```````````````````````````2|
|`````____````____`````````````|
|````|MFMF\ /MFMF|````````````|
|````|MF|MF\/MF|MF|````````````|
@@ -18,12 +18,11 @@ README V1.1 2023-11-14
|``````````````|MF|````````````|
|``````````````|MF|````````````|
|``````````````|MF|````````````|
-|8````````````````````````````7|
+|3````````````````````````````4|
*------------------------------*
-->
-The `pmdraw` package allows you to draw elements of the Partition
-Monoids, commonly referred to as diagrams. The package provides a lot of
+The `pmdraw` package allows you to draw elements of the diagram monoids, commonly referred to as diagrams. The package provides a lot of
flexibility to draw most diagrams and can be customised as needed.
The package makes use of the `tikz` and `keyval` packages.
@@ -54,7 +53,7 @@ Author
License
-------
-Copyright 2023-10-16 Matthias Fresacher
+Copyright 2023-10-16 (original release) & 2024, Matthias Fresacher
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
@@ -72,4 +71,4 @@ Contents
This work consists of the files `pmdraw.sty`, `pmdraw.tex` and the
examples in the folder `examples`, in addition to the derived file
-`pmdraw.pdf`.
+`pmdraw.pdf`. \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/pmdraw/pmdraw.pdf b/Master/texmf-dist/doc/latex/pmdraw/pmdraw.pdf
index 6335dcefb53..de0d091292d 100644
--- a/Master/texmf-dist/doc/latex/pmdraw/pmdraw.pdf
+++ b/Master/texmf-dist/doc/latex/pmdraw/pmdraw.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/pmdraw/pmdraw.tex b/Master/texmf-dist/doc/latex/pmdraw/pmdraw.tex
index 48518dba791..d5ce4ee4eac 100644
--- a/Master/texmf-dist/doc/latex/pmdraw/pmdraw.tex
+++ b/Master/texmf-dist/doc/latex/pmdraw/pmdraw.tex
@@ -1,7 +1,7 @@
\documentclass{ltxdoc}
% *------------------------------*
-% |2````````````````````````````4|
+% |3````````````````````````````7|
% |`````____````____`````````````|
% |````|MFMF\ /MFMF|````````````|
% |````|MF|MF\/MF|MF|````````````|
@@ -13,7 +13,7 @@
% |``````````````|MF|````````````|
% |``````````````|MF|````````````|
% |``````````````|MF|````````````|
-% |2````````````````````````````2|
+% |2````````````````````````````6|
% *------------------------------*
\usepackage{pmdraw}
@@ -26,13 +26,13 @@
\hypersetup{colorlinks, linkcolor=blue, urlcolor=blue}
\title{The \textsf{pmdraw} package\thanks{This document
- corresponds to \textsf{pmdraw}~v1.1, 2023-11-14.}}
+ corresponds to \textsf{pmdraw}~v1.2, 2024-01-10.}}
\author{Matthias Fresacher \\ \texttt{matthias.ypg37@slmail.me}}
\maketitle
\begin{abstract}
-The \texttt{pmdraw} package allows you to draw elements of the Partition Monoids, commonly referred to as diagrams. The package provides a lot of flexibility to draw most diagrams and can be customised as needed.
+The \texttt{pmdraw} package allows you to draw elements of the diagram monoids, commonly referred to as diagrams. The package provides a lot of flexibility to draw most diagrams and can be customised as needed.
\end{abstract}
\tableofcontents
@@ -42,9 +42,9 @@ The \texttt{pmdraw} package allows you to draw elements of the Partition Monoids
\subsection{Motivation}
-Partition monoids and their closely related algebras are well studied objects with applications in theoretical physics and representation theory in mathematics. The elements of these monoids are called diagrams because they can be drawn graphically as a graph following certain conventions.
+Diagram monoids and their closely related algebras are well studied objects with applications in theoretical physics and representation theory in mathematics. The elements of these monoids are called diagrams because they can be drawn graphically as a graph following certain conventions.
-My PhD thesis examines properties of these partition monoids and hence I needed to draw a large number of diagrams in a neat and consistent way. This thesis work formed the basis of this package with only customisability and the manual needed to be added to complete this package.
+My PhD thesis examines properties of these diagram monoids and hence I needed to draw a large number of diagrams in a neat and consistent way. This thesis work formed the basis of this package with only customisability and the manual needed to be added to complete this package.
\subsection{Acknowledgments}
@@ -77,7 +77,8 @@ I would like this package to be as perfect as it can be but I will need your hel
The following are a list of currently known bugs that will be addressed:
\begin{enumerate}
- \item None at the moment
+ \item When the radius of the arc for non-transversal edges is too large compared to the distance between the two nodes, the arcs overlap. The current solution is to manually specify a \texttt{level} or \texttt{height} that makes the arcs smaller.
+ \item Baseline adjustments are hard coded so when changing \texttt{scale} or text size, for example, the vertical position of diagrams is likely to be incorrect. The current solution is to manually adjust the \texttt{baseline} within the \texttt{tikz} key.
\end{enumerate}
\subsection{Incompatibilities}
@@ -1770,7 +1771,7 @@ For the drawing order of a diagram and product diagram, see the \texttt{decorate
\subsection{Edge options} \label{sec: edge/options}
-\subsubsection{non-transversal edge options} \label{sec: NT edge/options}
+\subsubsection{Non-transversal edge options} \label{sec: NT edge/options}
\DescribeMacro{level}
specifies the horizontal level of a non-transversal edges. Default is one.
@@ -2393,7 +2394,7 @@ The following options can be used for both diagrams (\verb`\pmdDiagram`) and pro
same as \texttt{row sep} option in bricks but applied to all bricks within (product) diagram.
\DescribeMacro{tikz}
-passes through options to \texttt{tikz} environment. Specifically, the options in \verb`\begin{tikzpicture}[<options>]`. The default is no argument. However there are some default options passed to \texttt{tikz} automatically. This are \texttt{scale=.5}, and an adjustment to the \texttt{baseline} depending on the current typesetting mode and a \texttt{grid} key if the grid is activated.
+passes through options to \texttt{tikz} environment. Specifically, the options in \verb`\begin{tikzpicture}[<options>]`. The default is no argument. However there are some default options passed to \texttt{tikz} automatically. These are an adjustment to the \texttt{baseline} depending on the current typesetting mode and a \texttt{grid} key if the grid is activated.
\begin{center}
\begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
\begin{minipage}[c]{0.4\linewidth}
diff --git a/Master/texmf-dist/tex/latex/pmdraw/pmdraw.sty b/Master/texmf-dist/tex/latex/pmdraw/pmdraw.sty
index fb2c77e70c7..20d8bad74b9 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}[2023-11-14 v1.1 pmdraw]
+\ProvidesPackage{pmdraw}[2024-01-10 v1.2 pmdraw]
% *------------------------------*
-% |0````````````````````````````4|
+% |4````````````````````````````7|
% |`````____````____`````````````|
% |````|MFMF\ /MFMF|````````````|
% |````|MF|MF\/MF|MF|````````````|
@@ -14,7 +14,7 @@
% |``````````````|MF|````````````|
% |``````````````|MF|````````````|
% |``````````````|MF|````````````|
-% |9````````````````````````````0|
+% |8````````````````````````````4|
% *------------------------------*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -36,125 +36,125 @@
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newcommand{\pmdraw@braceLabel}{} % Label of brace
+\newcommand{\pmdraw@braceLabel}{}% Label of brace
-\newcommand{\pmdraw@diagSep}{1} % Vertical separation between bottom row of top diagram and top row of bottom diagram in product diagram
+\newcommand{\pmdraw@diagSep}{1}% Vertical separation between bottom row of top diagram and top row of bottom diagram in product diagram
-\newcommand{\pmdraw@drawAedgesOptions}{} % Draw options for added edges in product diagram
-\newcommand{\pmdraw@drawAedges}[2]{ % Draws added edges in product diagram from #1 vertex to #2 vertex, assumes #1<#2
- \foreach \x in {#1,...,#2} { % For each vertex in range
- \draw[dotted,thick,apply style/.expand once=\pmdraw@drawAedgesOptions] (\x,0) -- (\x,-\pmdraw@diagSep); % Draw concatenation edge
- }
- \pmdraw@AedgesLoop % Restart for loop
+\newcommand{\pmdraw@drawAedgesOptions}{}% Draw options for added edges in product diagram
+\newcommand{\pmdraw@drawAedges}[2]{% Draws added edges in product diagram from #1 vertex to #2 vertex, assumes #1<#2
+ \foreach \x in {#1,...,#2} {% For each vertex in range
+ \draw[dotted,thick,apply style/.expand once=\pmdraw@drawAedgesOptions] (\x,0) -- (\x,-\pmdraw@diagSep);% Draw concatenation edge
+ }%
+ \pmdraw@AedgesLoop% Restart for loop
}
-\newcommand{\pmdraw@drawBraceDrawOptions}{} % Draw options for brace
-\newcommand{\pmdraw@drawBraceNodeOptions}{} % Node options for brace
-\newcommand{\pmdraw@drawBraceDefault}[3]{ % Draws brace a brace starting from #1 vertex to #2 vertex with label #3, assumes #1<#2 - DEFAULT
- \ifnum\pmdraw@ifProdDiag=1 % If drawing a product diagram or if placing brace above diagram
+\newcommand{\pmdraw@drawBraceDrawOptions}{}% Draw options for brace
+\newcommand{\pmdraw@drawBraceNodeOptions}{}% Node options for brace
+\newcommand{\pmdraw@drawBraceDefault}[3]{% Draws brace a brace starting from #1 vertex to #2 vertex with label #3, assumes #1<#2 - DEFAULT
+ \ifnum\pmdraw@ifProdDiag=1% If drawing a product diagram or if placing brace above diagram
\draw[
very thick,
decorate,
decoration={calligraphic brace,amplitude=6pt},
apply style/.expand once=\pmdraw@drawBraceDrawOptions
- ] (#1-0.17,\pmdraw@rowSep+0.5) -- (#2+0.17,\pmdraw@rowSep+0.5)
+ ] (#1-0.17,\pmdraw@rowSep+0.5) -- (#2+0.17,\pmdraw@rowSep+0.5)
node[
pos=0.5,
above=6pt,
apply style/.expand once=\pmdraw@drawBraceNodeOptions
- ] {\(#3\)}; % Draw brace on top of diagram
- \else % If not drawing a product diagram or if placing brace below diagram
+ ] {\(#3\)};% Draw brace on top of diagram
+ \else% If not drawing a product diagram or if placing brace below diagram
\draw[
very thick,
decorate,
decoration={calligraphic brace,mirror,amplitude=6pt},
apply style/.expand once=\pmdraw@drawBraceDrawOptions
- ] (#1-0.17,-0.5) -- (#2+0.17,-0.5)
+ ] (#1-0.17,-0.5) -- (#2+0.17,-0.5)
node[
pos=0.5,
below=6pt,
apply style/.expand once=\pmdraw@drawBraceNodeOptions
- ] {\(#3\)}; % Draw brace on bottom of diagram
+ ] {\(#3\)};% Draw brace on bottom of diagram
\fi%
}
-\let\pmdraw@drawBrace\pmdraw@drawBraceDefault % Draws brace a brace starting from #1 vertex to #2 vertex with label #3, assumes #1<#2
-
-\newcommand{\pmdraw@drawDotsDrawOptions}{} % Draw options for dots between bricks
-\newcommand{\pmdraw@drawDotsNodeOptions}{} % Node options for dots between bricks
-\newcommand{\pmdraw@drawDotsDefault}[2]{ % Draws dots between bricks at (#1,#2) - DEFAULT
- \draw[apply style/.expand once=\pmdraw@drawDotsDrawOptions] (#1,#2) node[apply style/.expand once=\pmdraw@drawDotsNodeOptions] {\(\dots\)};
-}
-\let\pmdraw@drawDots\pmdraw@drawDotsDefault % Draws dots between bricks at (#1,#2)
-
-\newcommand{\pmdraw@drawLabelBDrawOptions}{} % Draw options for label of a vertex in bottom row
-\newcommand{\pmdraw@drawLabelBNodeOptions}{} % Node options for label of a vertex in bottom row
-\newcommand{\pmdraw@drawLabelBottomDefault}[3]{ % For bottom row, draws the label #3 for a vertex at (#1,#2) - DEFAULT
- \draw[apply style/.expand once=\pmdraw@drawLabelBDrawOptions] (#1,#2) node[below=6pt,apply style/.expand once=\pmdraw@drawLabelBNodeOptions] {\(#3'\)};
-}
-\let\pmdraw@drawLabelBottom\pmdraw@drawLabelBottomDefault % For bottom row, draws the label #3 for a vertex at (#1,#2)
-
-\newcommand{\pmdraw@drawLabelTDrawOptions}{} % Draw options for label of a vertex in top row
-\newcommand{\pmdraw@drawLabelTNodeOptions}{} % Node options for label of a vertex in top row
-\newcommand{\pmdraw@drawLabelTopDefault}[3]{ % For top row, draws the label #3 for a vertex at (#1,#2) - DEFAULT
- \draw[apply style/.expand once=\pmdraw@drawLabelTDrawOptions] (#1,#2) node[above=6pt,apply style/.expand once=\pmdraw@drawLabelTNodeOptions] {\(#3\)};
-}
-\let\pmdraw@drawLabelTop\pmdraw@drawLabelTopDefault % For top row, draws the label #3 for a vertex at (#1,#2)
-
-\newcommand{\pmdraw@drawLedgesDrawOptions}{} % Draw options for lower non-transversal edges
-\newcommand{\pmdraw@drawLedgesDrawDefault}[2]{ % Draws lower non-transversal edge from #1 vertex to #2 vertex, assumes #1<#2 - DEFAULT
- \draw[apply style/.expand once=\pmdraw@drawLedgesDrawOptions] (#1,0) arc (180:90:\pmdraw{edgeHeight}); % Draw left arch
- \draw[apply style/.expand once=\pmdraw@drawLedgesDrawOptions] (#1+\pmdraw{edgeHeight},\pmdraw{edgeHeight}) -- (#2-\pmdraw{edgeHeight},\pmdraw{edgeHeight}); % Draw straight line
- \draw[apply style/.expand once=\pmdraw@drawLedgesDrawOptions] (#2-\pmdraw{edgeHeight},\pmdraw{edgeHeight}) arc (90:0:\pmdraw{edgeHeight}); % Draw right arc
-}
-\let\pmdraw@drawLedgesDraw\pmdraw@drawLedgesDrawDefault % Draws lower non-transversal edge from #1 vertex to #2 vertex, assumes #1<#2
-
-\newcommand{\pmdraw@drawTedgesDrawOptions}{} % Draw options for transversal edges
-\newcommand{\pmdraw@drawTedgesDrawDefault}[2]{ % Draws transversal edge from #1 vertex in top row to #2 vertex in bottom row - DEFAULT
- \ifnum\pmdraw@ifTedgeHorizontal=0 % If drawing a straight line edge
- \draw[apply style/.expand once=\pmdraw@drawTedgesDrawOptions] (#1,\pmdraw@rowSep) -- (#2,0); % Draw straight line
- \else % If transversal edge is drawn horizontally
- \ifnum#1>#2 % If edge goes from top right to bottom left
- \draw[apply style/.expand once=\pmdraw@drawTedgesDrawOptions] (#2,0) arc (180:90:\pmdraw{Tlevel}); % Draw bottom arch
- \draw[apply style/.expand once=\pmdraw@drawTedgesDrawOptions] (#2+\pmdraw{Tlevel},\pmdraw{Tlevel}) -- (#1-\pmdraw@rowSep+\pmdraw{Tlevel}, \pmdraw{Tlevel}); % Draw straight line
- \draw[apply style/.expand once=\pmdraw@drawTedgesDrawOptions] (#1-\pmdraw@rowSep+\pmdraw{Tlevel},\pmdraw{Tlevel}) arc (270:360:{\pmdraw@rowSep-\pmdraw{Tlevel}}); % Draw top arc
- \else % If edge goes from top left to bottom right
- \draw[apply style/.expand once=\pmdraw@drawTedgesDrawOptions] (#2,0) arc (0:90:\pmdraw{Tlevel}); % Draw bottom arch
- \draw[apply style/.expand once=\pmdraw@drawTedgesDrawOptions] (#2-\pmdraw{Tlevel},\pmdraw{Tlevel}) -- (#1+\pmdraw@rowSep-\pmdraw{Tlevel}, \pmdraw{Tlevel}); % Draw straight line
- \draw[apply style/.expand once=\pmdraw@drawTedgesDrawOptions] (#1+\pmdraw@rowSep-\pmdraw{Tlevel},\pmdraw{Tlevel}) arc (270:180:{\pmdraw@rowSep-\pmdraw{Tlevel}}); % Draw top arc
+\let\pmdraw@drawBrace\pmdraw@drawBraceDefault% Draws brace a brace starting from #1 vertex to #2 vertex with label #3, assumes #1<#2
+
+\newcommand{\pmdraw@drawDotsDrawOptions}{}% Draw options for dots between bricks
+\newcommand{\pmdraw@drawDotsNodeOptions}{}% Node options for dots between bricks
+\newcommand{\pmdraw@drawDotsDefault}[2]{% Draws dots between bricks at (#1,#2) - DEFAULT
+ \draw[apply style/.expand once=\pmdraw@drawDotsDrawOptions] (#1,#2) node[apply style/.expand once=\pmdraw@drawDotsNodeOptions] {\(\dots\)};%
+}
+\let\pmdraw@drawDots\pmdraw@drawDotsDefault% Draws dots between bricks at (#1,#2)
+
+\newcommand{\pmdraw@drawLabelBDrawOptions}{}% Draw options for label of a vertex in bottom row
+\newcommand{\pmdraw@drawLabelBNodeOptions}{}% Node options for label of a vertex in bottom row
+\newcommand{\pmdraw@drawLabelBottomDefault}[3]{% For bottom row, draws the label #3 for a vertex at (#1,#2) - DEFAULT
+ \draw[apply style/.expand once=\pmdraw@drawLabelBDrawOptions] (#1,#2) node[below=6pt,apply style/.expand once=\pmdraw@drawLabelBNodeOptions] {\(#3'\)};%
+}
+\let\pmdraw@drawLabelBottom\pmdraw@drawLabelBottomDefault% For bottom row, draws the label #3 for a vertex at (#1,#2)
+
+\newcommand{\pmdraw@drawLabelTDrawOptions}{}% Draw options for label of a vertex in top row
+\newcommand{\pmdraw@drawLabelTNodeOptions}{}% Node options for label of a vertex in top row
+\newcommand{\pmdraw@drawLabelTopDefault}[3]{% For top row, draws the label #3 for a vertex at (#1,#2) - DEFAULT
+ \draw[apply style/.expand once=\pmdraw@drawLabelTDrawOptions] (#1,#2) node[above=6pt,apply style/.expand once=\pmdraw@drawLabelTNodeOptions] {\(#3\)};%
+}
+\let\pmdraw@drawLabelTop\pmdraw@drawLabelTopDefault% For top row, draws the label #3 for a vertex at (#1,#2)
+
+\newcommand{\pmdraw@drawLedgesDrawOptions}{}% Draw options for lower non-transversal edges
+\newcommand{\pmdraw@drawLedgesDrawDefault}[2]{% Draws lower non-transversal edge from #1 vertex to #2 vertex, assumes #1<#2 - DEFAULT
+ \draw[apply style/.expand once=\pmdraw@drawLedgesDrawOptions] (#1,0) arc (180:90:\pmdraw{edgeHeight});% Draw left arch
+ \draw[apply style/.expand once=\pmdraw@drawLedgesDrawOptions] (#1+\pmdraw{edgeHeight},\pmdraw{edgeHeight}) -- (#2-\pmdraw{edgeHeight},\pmdraw{edgeHeight});% Draw straight line
+ \draw[apply style/.expand once=\pmdraw@drawLedgesDrawOptions] (#2-\pmdraw{edgeHeight},\pmdraw{edgeHeight}) arc (90:0:\pmdraw{edgeHeight});% Draw right arc
+}
+\let\pmdraw@drawLedgesDraw\pmdraw@drawLedgesDrawDefault% Draws lower non-transversal edge from #1 vertex to #2 vertex, assumes #1<#2
+
+\newcommand{\pmdraw@drawTedgesDrawOptions}{}% Draw options for transversal edges
+\newcommand{\pmdraw@drawTedgesDrawDefault}[2]{% Draws transversal edge from #1 vertex in top row to #2 vertex in bottom row - DEFAULT
+ \ifnum\pmdraw@ifTedgeHorizontal=0% If drawing a straight line edge
+ \draw[apply style/.expand once=\pmdraw@drawTedgesDrawOptions] (#1,\pmdraw@rowSep) -- (#2,0);% Draw straight line
+ \else% If transversal edge is drawn horizontally
+ \ifnum#1>#2% If edge goes from top right to bottom left
+ \draw[apply style/.expand once=\pmdraw@drawTedgesDrawOptions] (#2,0) arc (180:90:\pmdraw{Tlevel});% Draw bottom arch
+ \draw[apply style/.expand once=\pmdraw@drawTedgesDrawOptions] (#2+\pmdraw{Tlevel},\pmdraw{Tlevel}) -- (#1-\pmdraw@rowSep+\pmdraw{Tlevel}, \pmdraw{Tlevel});% Draw straight line
+ \draw[apply style/.expand once=\pmdraw@drawTedgesDrawOptions] (#1-\pmdraw@rowSep+\pmdraw{Tlevel},\pmdraw{Tlevel}) arc (270:360:{\pmdraw@rowSep-\pmdraw{Tlevel}});% Draw top arc
+ \else% If edge goes from top left to bottom right
+ \draw[apply style/.expand once=\pmdraw@drawTedgesDrawOptions] (#2,0) arc (0:90:\pmdraw{Tlevel});% Draw bottom arch
+ \draw[apply style/.expand once=\pmdraw@drawTedgesDrawOptions] (#2-\pmdraw{Tlevel},\pmdraw{Tlevel}) -- (#1+\pmdraw@rowSep-\pmdraw{Tlevel}, \pmdraw{Tlevel});% Draw straight line
+ \draw[apply style/.expand once=\pmdraw@drawTedgesDrawOptions] (#1+\pmdraw@rowSep-\pmdraw{Tlevel},\pmdraw{Tlevel}) arc (270:180:{\pmdraw@rowSep-\pmdraw{Tlevel}});% Draw top arc
\fi%
- \renewcommand{\pmdraw@ifTedgeHorizontal}{0} % Reset flag to default
+ \renewcommand{\pmdraw@ifTedgeHorizontal}{0}% Reset flag to default
\fi%
}
-\let\pmdraw@drawTedgesDraw\pmdraw@drawTedgesDrawDefault % Draws transversal edge from #1 vertex in top row to #2 vertex in bottom row
+\let\pmdraw@drawTedgesDraw\pmdraw@drawTedgesDrawDefault% Draws transversal edge from #1 vertex in top row to #2 vertex in bottom row
-\newcommand{\pmdraw@drawUedgesDrawOptions}{} % Draw options for upper non-transversal edges
-\newcommand{\pmdraw@drawUedgesDrawDefault}[2]{ % Draws upper non-transversal edge from #1 vertex to #2 vertex, assumes #1<#2 - DEFAULT
- \draw[apply style/.expand once=\pmdraw@drawUedgesDrawOptions] (#1,\pmdraw@rowSep) arc (180:270:\pmdraw{edgeHeight}); % Draw left arch
- \draw[apply style/.expand once=\pmdraw@drawUedgesDrawOptions] (#1+\pmdraw{edgeHeight},\pmdraw@rowSep-\pmdraw{edgeHeight}) -- (#2-\pmdraw{edgeHeight},\pmdraw@rowSep-\pmdraw{edgeHeight}); % Draw straight line
- \draw[apply style/.expand once=\pmdraw@drawUedgesDrawOptions] (#2-\pmdraw{edgeHeight},\pmdraw@rowSep-\pmdraw{edgeHeight}) arc (270:360:\pmdraw{edgeHeight}); % Draw right arc
+\newcommand{\pmdraw@drawUedgesDrawOptions}{}% Draw options for upper non-transversal edges
+\newcommand{\pmdraw@drawUedgesDrawDefault}[2]{% Draws upper non-transversal edge from #1 vertex to #2 vertex, assumes #1<#2 - DEFAULT
+ \draw[apply style/.expand once=\pmdraw@drawUedgesDrawOptions] (#1,\pmdraw@rowSep) arc (180:270:\pmdraw{edgeHeight});% Draw left arch
+ \draw[apply style/.expand once=\pmdraw@drawUedgesDrawOptions] (#1+\pmdraw{edgeHeight},\pmdraw@rowSep-\pmdraw{edgeHeight}) -- (#2-\pmdraw{edgeHeight},\pmdraw@rowSep-\pmdraw{edgeHeight});% Draw straight line
+ \draw[apply style/.expand once=\pmdraw@drawUedgesDrawOptions] (#2-\pmdraw{edgeHeight},\pmdraw@rowSep-\pmdraw{edgeHeight}) arc (270:360:\pmdraw{edgeHeight});% Draw right arc
}
-\let\pmdraw@drawUedgesDraw\pmdraw@drawUedgesDrawDefault % Draws upper non-transversal edge from #1 vertex to #2 vertex, assumes #1<#2
+\let\pmdraw@drawUedgesDraw\pmdraw@drawUedgesDrawDefault% Draws upper non-transversal edge from #1 vertex to #2 vertex, assumes #1<#2
-\newcommand{\pmdraw@drawVertexOptions}{} % Draw options for vertices
-\newcommand{\pmdraw@drawVertex}[2]{ % Draws a vertex at (#1,#2)
- \fill[apply style/.expand once=\pmdraw@drawVertexOptions] (#1,#2) circle (.17);
+\newcommand{\pmdraw@drawVertexOptions}{}% Draw options for vertices
+\newcommand{\pmdraw@drawVertex}[2]{% Draws a vertex at (#1,#2)
+ \fill[apply style/.expand once=\pmdraw@drawVertexOptions] (#1,#2) circle (.17);%
}
-\newcommand{\pmdraw@hookAfterBrick}{} % Hook after drawing a brick
-\newcommand{\pmdraw@hookAfterDiagram}{} % Hook after drawing a diagram
-\newcommand{\pmdraw@hookBeforeBrick}{} % Hook before drawing a brick
-\newcommand{\pmdraw@hookBeforeDiagram}{} % Hook before drawing a diagram
+\newcommand{\pmdraw@hookAfterBrick}{}% Hook after drawing a brick
+\newcommand{\pmdraw@hookAfterDiagram}{}% Hook after drawing a diagram
+\newcommand{\pmdraw@hookBeforeBrick}{}% Hook before drawing a brick
+\newcommand{\pmdraw@hookBeforeDiagram}{}% Hook before drawing a diagram
-\newcommand{\pmdraw@ifDiagWDots}{0} % Boolean if drawing a diagram with dots
-\newcommand{\pmdraw@ifEdgesFirst}{0} % Boolean if drawing edges before vertices
-\newcommand{\pmdraw@ifGrid}{0} % Boolean if displaying helper grid
-\newcommand{\pmdraw@ifLabelsB}{0} % Boolean if displaying labels for vertices in bottom row
-\newcommand{\pmdraw@ifLabelsT}{0} % Boolean if displaying labels for vertices in top row
-\newcommand{\pmdraw@ifProdDiag}{0} % Boolean if drawing a product diagram
-\newcommand{\pmdraw@ifTedgesFirst}{0} % Boolean if drawing transversal edges before non-transversal edges
-\newcommand{\pmdraw@ifTedgeHorizontal}{0} % Boolean if transversal edge is drawn horizontally
+\newcommand{\pmdraw@ifDiagWDots}{0}% Boolean if drawing a diagram with dots
+\newcommand{\pmdraw@ifEdgesFirst}{0}% Boolean if drawing edges before vertices
+\newcommand{\pmdraw@ifGrid}{0}% Boolean if displaying helper grid
+\newcommand{\pmdraw@ifLabelsB}{0}% Boolean if displaying labels for vertices in bottom row
+\newcommand{\pmdraw@ifLabelsT}{0}% Boolean if displaying labels for vertices in top row
+\newcommand{\pmdraw@ifProdDiag}{0}% Boolean if drawing a product diagram
+\newcommand{\pmdraw@ifTedgesFirst}{0}% Boolean if drawing transversal edges before non-transversal edges
+\newcommand{\pmdraw@ifTedgeHorizontal}{0}% Boolean if transversal edge is drawn horizontally
-\newcommand{\pmdraw@NTedgesHeight}{-1000} % Height of non-transversal edges if manually set, a value of -1000 sets height automatically
+\newcommand{\pmdraw@NTedgesHeight}{-1000}% Height of non-transversal edges if manually set, a value of -1000 sets height automatically
\newcommand{\pmdraw@reset}{% Resets user keys and other flags to default values after drawing diagram
\renewcommand{\pmdraw@diagSep}{1}% Resets vertical space between product diagrams
@@ -165,7 +165,7 @@
\renewcommand{\pmdraw@ifGrid}{0}% Hides grid
\renewcommand{\pmdraw@ifDiagWDots}{0}% Reset if drawing a diagram with dots
\renewcommand{\pmdraw@rowSep}{2}% Resets vertical separation between rows of vertices in brick
- \renewcommand{\pmdraw@tikz}{} % Resets tikz options
+ \renewcommand{\pmdraw@tikz}{}% Resets tikz options
\setcounter{pmdraw@blankB}{0}% Resets number of blank vertices in bottom row to the left of brick
\setcounter{pmdraw@blankT}{0}% Resets number of blank vertices in top row to the left of brick
\setcounter{pmdraw@bottomShift}{0}% Resets shift on right end of bottom row of brick
@@ -173,9 +173,9 @@
\setcounter{pmdraw@ifDiagWDotsFirst}{1}% Reset if drawing first brick of diagram
}
-\newcommand{\pmdraw@rowSep}{2} % Vertical separation between rows of vertices in brick
+\newcommand{\pmdraw@rowSep}{2}% Vertical separation between rows of vertices in brick
-\newcommand{\pmdraw@tikz}{} % Tikz options
+\newcommand{\pmdraw@tikz}{}% Tikz options
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
@@ -185,32 +185,32 @@
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newcounter{pmdraw@blankB} % Number of blank vertices in bottom row to the left of brick
-\newcounter{pmdraw@blankT} % Number of blank vertices in top row to the left of brick
+\newcounter{pmdraw@blankB}% Number of blank vertices in bottom row to the left of brick
+\newcounter{pmdraw@blankT}% Number of blank vertices in top row to the left of brick
-\newcounter{pmdraw@bottomTotal} % Size of bottom row of brick
-\newcounter{pmdraw@bottomShift} % Shift on right end of bottom row of brick
+\newcounter{pmdraw@bottomTotal}% Size of bottom row of brick
+\newcounter{pmdraw@bottomShift}% Shift on right end of bottom row of brick
-\newcounter{pmdraw@braceL} % Left starting vertex of brace
-\newcounter{pmdraw@braceR} % Right terminating vertex of brace
+\newcounter{pmdraw@braceL}% Left starting vertex of brace
+\newcounter{pmdraw@braceR}% Right terminating vertex of brace
-\newcounter{pmdraw@brickShift} % Shift required for bricks after dots in diagram with dots
+\newcounter{pmdraw@brickShift}% Shift required for bricks after dots in diagram with dots
-\newcounter{pmdraw@degreeB} % Degree (number of vertices) of bottom row of brick
-\newcounter{pmdraw@degreeT} % Degree (number of vertices) of top row of brick
+\newcounter{pmdraw@degreeB}% Degree (number of vertices) of bottom row of brick
+\newcounter{pmdraw@degreeT}% Degree (number of vertices) of top row of brick
-\newcounter{pmdraw@ifDiagWDotsFirst} % In drawing with dots, boolean if drawing first brick of diagram
+\newcounter{pmdraw@ifDiagWDotsFirst}% In drawing with dots, boolean if drawing first brick of diagram
\setcounter{pmdraw@ifDiagWDotsFirst}{1}
-\newcounter{pmdraw@labelStartB} % Starting value of labels of vertices in bottom row
+\newcounter{pmdraw@labelStartB}% Starting value of labels of vertices in bottom row
\setcounter{pmdraw@labelStartB}{1}
-\newcounter{pmdraw@labelStartT} % Starting value of labels of vertices in top row
+\newcounter{pmdraw@labelStartT}% Starting value of labels of vertices in top row
\setcounter{pmdraw@labelStartT}{1}
-\newcounter{pmdraw@NTlevel} % Level corresponding to a height for a non-transversal edge
+\newcounter{pmdraw@NTlevel}% Level corresponding to a height for a non-transversal edge
-\newcounter{pmdraw@topTotal} % Size of top row of brick
-\newcounter{pmdraw@topShift} % Shift on right end of top row of brick
+\newcounter{pmdraw@topTotal}% Size of top row of brick
+\newcounter{pmdraw@topShift}% Shift on right end of top row of brick
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
@@ -224,167 +224,166 @@
% https://tex.stackexchange.com/a/64237
\tikzset{apply style/.code={\tikzset{#1}}}
-\define@key{pmdraw@brick}{degree}{ % Sets degree (number of vertices per row) of diagram
- \setcounter{pmdraw@degreeB}{#1} % Sets degree (number of vertices per row) for bottom row
- \setcounter{pmdraw@degreeT}{#1} % Sets degree (number of vertices per row) for top row
+\define@key{pmdraw@brick}{degree}{% Sets degree (number of vertices per row) of diagram
+ \setcounter{pmdraw@degreeB}{#1}% Sets degree (number of vertices per row) for bottom row
+ \setcounter{pmdraw@degreeT}{#1}% Sets degree (number of vertices per row) for top row
}
-\define@key{pmdraw@brick}{degree bottom}{ % Sets degree (number of vertices per row) for bottom row
- \setcounter{pmdraw@degreeB}{#1}
+\define@key{pmdraw@brick}{degree bottom}{% Sets degree (number of vertices per row) for bottom row
+ \setcounter{pmdraw@degreeB}{#1}%
}
-\define@key{pmdraw@brick}{degree top}{ % Sets degree (number of vertices per row) for top row
- \setcounter{pmdraw@degreeT}{#1}
+\define@key{pmdraw@brick}{degree top}{% Sets degree (number of vertices per row) for top row
+ \setcounter{pmdraw@degreeT}{#1}%
}
-\define@key{pmdraw@brick}{blank bottom}{ % Sets the number of blank vertices on left of bottom row
- \setcounter{pmdraw@blankB}{#1}
+\define@key{pmdraw@brick}{blank bottom}{% Sets the number of blank vertices on left of bottom row
+ \setcounter{pmdraw@blankB}{#1}%
}
-\define@key{pmdraw@brick}{blank top}{ % Sets the number of blank vertices on left of top row
- \setcounter{pmdraw@blankT}{#1}
+\define@key{pmdraw@brick}{blank top}{% Sets the number of blank vertices on left of top row
+ \setcounter{pmdraw@blankT}{#1}%
}
-\define@key{pmdraw@brick}{row sep}{ % Sets vertical separation between rows of vertices in brick
- \renewcommand{\pmdraw@rowSep}{#1}
+\define@key{pmdraw@brick}{row sep}{% Sets vertical separation between rows of vertices in brick
+ \renewcommand{\pmdraw@rowSep}{#1}%
}
-\define@key{pmdraw@brick}{vertices}{ % Sets the draw options of vertices
- \renewcommand{\pmdraw@drawVertexOptions}{#1}
+\define@key{pmdraw@brick}{vertices}{% Sets the draw options of vertices
+ \renewcommand{\pmdraw@drawVertexOptions}{#1}%
}
-\define@key{pmdraw@brick}{vertices options}{ % Sets the draw command of vertices
- \renewcommand{\pmdraw@drawVertex}[2]{#1}
+\define@key{pmdraw@brick}{vertices options}{% Sets the draw command of vertices
+ \renewcommand{\pmdraw@drawVertex}[2]{#1}%
}
-\define@key{pmdraw@brick}{labels}[]{ % Draws labels for vertices
- \renewcommand{\pmdraw@ifLabelsB}{1}
- \renewcommand{\pmdraw@ifLabelsT}{1}
+\define@key{pmdraw@brick}{labels}[]{% Draws labels for vertices
+ \renewcommand{\pmdraw@ifLabelsB}{1}%
+ \renewcommand{\pmdraw@ifLabelsT}{1}%
}
-\define@key{pmdraw@brick}{labels bottom}[]{ % Draws labels for bottom vertices
- \renewcommand{\pmdraw@ifLabelsB}{1}
+\define@key{pmdraw@brick}{labels bottom}[]{% Draws labels for bottom vertices
+ \renewcommand{\pmdraw@ifLabelsB}{1}%
}
-\define@key{pmdraw@brick}{labels top}[]{ % Draws labels for top vertices
- \renewcommand{\pmdraw@ifLabelsT}{1}
+\define@key{pmdraw@brick}{labels top}[]{% Draws labels for top vertices
+ \renewcommand{\pmdraw@ifLabelsT}{1}%
}
-\define@key{pmdraw@brick}{labels start}{ % Sets starting number for vertex labels
- \setcounter{pmdraw@labelStartT}{#1}
- \setcounter{pmdraw@labelStartB}{#1}
+\define@key{pmdraw@brick}{labels start}{% Sets starting number for vertex labels
+ \setcounter{pmdraw@labelStartT}{#1}%
+ \setcounter{pmdraw@labelStartB}{#1}%
}
-\define@key{pmdraw@brick}{labels bottom start}{ % Sets starting number for bottom vertex labels
- \setcounter{pmdraw@labelStartB}{#1}
+\define@key{pmdraw@brick}{labels bottom start}{% Sets starting number for bottom vertex labels
+ \setcounter{pmdraw@labelStartB}{#1}%
}
-\define@key{pmdraw@brick}{labels top start}{ % Sets starting number for top vertex labels
- \setcounter{pmdraw@labelStartT}{#1}
+\define@key{pmdraw@brick}{labels top start}{% Sets starting number for top vertex labels
+ \setcounter{pmdraw@labelStartT}{#1}%
}
-\define@key{pmdraw@brick}{labels bottom draw}{ % Sets the draw options for labels of bottom vertices
- \renewcommand{\pmdraw@drawLabelBDrawOptions}{#1}
+\define@key{pmdraw@brick}{labels bottom draw}{% Sets the draw options for labels of bottom vertices
+ \renewcommand{\pmdraw@drawLabelBDrawOptions}{#1}%
}
-\define@key{pmdraw@brick}{labels bottom node}{ % Sets the node options for labels of bottom vertices
- \renewcommand{\pmdraw@drawLabelBNodeOptions}{#1}
+\define@key{pmdraw@brick}{labels bottom node}{% Sets the node options for labels of bottom vertices
+ \renewcommand{\pmdraw@drawLabelBNodeOptions}{#1}%
}
-\define@key{pmdraw@brick}{labels top draw}{ % Sets the draw options for labels of top vertices
- \renewcommand{\pmdraw@drawLabelTDrawOptions}{#1}
+\define@key{pmdraw@brick}{labels top draw}{% Sets the draw options for labels of top vertices
+ \renewcommand{\pmdraw@drawLabelTDrawOptions}{#1}%
}
-\define@key{pmdraw@brick}{labels top node}{ % Sets the node options for labels of top vertices
- \renewcommand{\pmdraw@drawLabelTNodeOptions}{#1}
+\define@key{pmdraw@brick}{labels top node}{% Sets the node options for labels of top vertices
+ \renewcommand{\pmdraw@drawLabelTNodeOptions}{#1}%
}
-\define@key{pmdraw@brick}{labels bottom options}{ % Sets the draw command of labels of bottom vertices
- \renewcommand{\pmdraw@drawLabelBottom}[3]{#1}
+\define@key{pmdraw@brick}{labels bottom options}{% Sets the draw command of labels of bottom vertices
+ \renewcommand{\pmdraw@drawLabelBottom}[3]{#1}%
}
-\define@key{pmdraw@brick}{labels top options}{ % Sets the draw command of labels of bottom vertices
- \renewcommand{\pmdraw@drawLabelTop}[3]{#1}
+\define@key{pmdraw@brick}{labels top options}{% Sets the draw command of labels of bottom vertices
+ \renewcommand{\pmdraw@drawLabelTop}[3]{#1}%
}
-\define@key{pmdraw@brick}{no dots}[]{ % Does not draw dots in bricks
- \setcounter{pmdraw@ifDiagWDotsFirst}{1}
+\define@key{pmdraw@brick}{no dots}[]{% Does not draw dots in bricks
+ \setcounter{pmdraw@ifDiagWDotsFirst}{1}%
}
-\define@key{pmdraw@brick}{dots draw}{ % Sets the draw options for drawing of dots
- \renewcommand{\pmdraw@drawDotsDrawOptions}{#1}
+\define@key{pmdraw@brick}{dots draw}{% Sets the draw options for drawing of dots
+ \renewcommand{\pmdraw@drawDotsDrawOptions}{#1}%
}
-\define@key{pmdraw@brick}{dots node}{ % Sets the node options for drawing of dots
- \renewcommand{\pmdraw@drawDotsNodeOptions}{#1}
+\define@key{pmdraw@brick}{dots node}{% Sets the node options for drawing of dots
+ \renewcommand{\pmdraw@drawDotsNodeOptions}{#1}%
}
-
-\define@key{pmdraw@brick}{levels}[1]{ % Sets number of horizontal levels for non-transversal edges and evenly spaces them
- \tikzmath{
- \pmdraw{edgeSepU} = (0.5*\pmdraw@rowSep)/(#1 + 1); % Calculates vertical separation between each edge
- \pmdraw{edgeSepL} = \pmdraw{edgeSepU}; % Calculates vertical separation between each edge
- }
+\define@key{pmdraw@brick}{levels}[1]{% Sets number of horizontal levels for non-transversal edges and evenly spaces them
+ \tikzmath{%
+ \pmdraw{edgeSepU} = (0.5*\pmdraw@rowSep)/(#1 + 1);% Calculates vertical separation between each edge
+ \pmdraw{edgeSepL} = \pmdraw{edgeSepU};% Calculates vertical separation between each edge
+ }%
}
-\define@key{pmdraw@brick}{levels bottom}{ % Sets number of horizontal levels for lower non-transversal edges and evenly spaces them
- \tikzmath{
- \pmdraw{edgeSepL} = (0.5*\pmdraw@rowSep)/(#1 + 1); % Calculates vertical separation between each edge
- }
+\define@key{pmdraw@brick}{levels bottom}{% Sets number of horizontal levels for lower non-transversal edges and evenly spaces them
+ \tikzmath{%
+ \pmdraw{edgeSepL} = (0.5*\pmdraw@rowSep)/(#1 + 1);% Calculates vertical separation between each edge
+ }%
}
-\define@key{pmdraw@brick}{levels top}{ % Sets number of horizontal levels for upper non-transversal edges and evenly spaces them
- \tikzmath{
- \pmdraw{edgeSepU} = (0.5*\pmdraw@rowSep)/(#1 + 1); % Calculates vertical separation between each edge
- }
+\define@key{pmdraw@brick}{levels top}{% Sets number of horizontal levels for upper non-transversal edges and evenly spaces them
+ \tikzmath{%
+ \pmdraw{edgeSepU} = (0.5*\pmdraw@rowSep)/(#1 + 1);% Calculates vertical separation between each edge
+ }%
}
-\define@key{pmdraw@brick}{levels sep}{ % Sets vertical separation of horizontal levels for non-transversal edges
- \tikzmath{
- \pmdraw{edgeSepU} = #1;
- \pmdraw{edgeSepL} = \pmdraw{edgeSepU};
- }
+\define@key{pmdraw@brick}{levels sep}{% Sets vertical separation of horizontal levels for non-transversal edges
+ \tikzmath{%
+ \pmdraw{edgeSepU} = #1;%
+ \pmdraw{edgeSepL} = \pmdraw{edgeSepU};%
+ }%
}
-\define@key{pmdraw@brick}{levels sep bottom}{ % Sets vertical separation of lower horizontal levels for non-transversal edges
- \tikzmath{
- \pmdraw{edgeSepL} = #1;
- }
+\define@key{pmdraw@brick}{levels sep bottom}{% Sets vertical separation of lower horizontal levels for non-transversal edges
+ \tikzmath{%
+ \pmdraw{edgeSepL} = #1;%
+ }%
}
-\define@key{pmdraw@brick}{levels sep top}{ % Sets vertical separation of upper horizontal levels for non-transversal edges
- \tikzmath{
- \pmdraw{edgeSepU} = #1;
- }
+\define@key{pmdraw@brick}{levels sep top}{% Sets vertical separation of upper horizontal levels for non-transversal edges
+ \tikzmath{%
+ \pmdraw{edgeSepU} = #1;%
+ }%
}
-\define@key{pmdraw@brick}{edges}{ % Sets the draw options of all edges
- \renewcommand{\pmdraw@drawUedgesDrawOptions}{#1}
- \renewcommand{\pmdraw@drawLedgesDrawOptions}{#1}
- \renewcommand{\pmdraw@drawTedgesDrawOptions}{#1}
+\define@key{pmdraw@brick}{edges}{% Sets the draw options of all edges
+ \renewcommand{\pmdraw@drawUedgesDrawOptions}{#1}%
+ \renewcommand{\pmdraw@drawLedgesDrawOptions}{#1}%
+ \renewcommand{\pmdraw@drawTedgesDrawOptions}{#1}%
}
-\define@key{pmdraw@brick}{edges non-transversal}{ % Sets the draw options of non-transversal edges
- \renewcommand{\pmdraw@drawUedgesDrawOptions}{#1}
- \renewcommand{\pmdraw@drawLedgesDrawOptions}{#1}
+\define@key{pmdraw@brick}{edges non-transversal}{% Sets the draw options of non-transversal edges
+ \renewcommand{\pmdraw@drawUedgesDrawOptions}{#1}%
+ \renewcommand{\pmdraw@drawLedgesDrawOptions}{#1}%
}
-\define@key{pmdraw@brick}{edges upper}{ % Sets the draw options of upper non-transversal edges
- \renewcommand{\pmdraw@drawUedgesDrawOptions}{#1}
+\define@key{pmdraw@brick}{edges upper}{% Sets the draw options of upper non-transversal edges
+ \renewcommand{\pmdraw@drawUedgesDrawOptions}{#1}%
}
-\define@key{pmdraw@brick}{edges lower}{ % Sets the draw options of lower non-transversal edges
- \renewcommand{\pmdraw@drawLedgesDrawOptions}{#1}
+\define@key{pmdraw@brick}{edges lower}{% Sets the draw options of lower non-transversal edges
+ \renewcommand{\pmdraw@drawLedgesDrawOptions}{#1}%
}
-\define@key{pmdraw@brick}{edges transversal}{ % Sets the draw options of transversal edges
- \renewcommand{\pmdraw@drawTedgesDrawOptions}{#1}
+\define@key{pmdraw@brick}{edges transversal}{% Sets the draw options of transversal edges
+ \renewcommand{\pmdraw@drawTedgesDrawOptions}{#1}%
}
-\define@key{pmdraw@brick}{edges first}[]{ % Draws edges before vertices
- \renewcommand{\pmdraw@ifEdgesFirst}{1}
+\define@key{pmdraw@brick}{edges first}[]{% Draws edges before vertices
+ \renewcommand{\pmdraw@ifEdgesFirst}{1}%
}
-\define@key{pmdraw@brick}{transversals first}[]{ % Draws transversal edges before non-transversal edges
- \renewcommand{\pmdraw@ifTedgesFirst}{1}
+\define@key{pmdraw@brick}{transversals first}[]{% Draws transversal edges before non-transversal edges
+ \renewcommand{\pmdraw@ifTedgesFirst}{1}%
}
-\define@key{pmdraw@brick}{brace}{ % Draws a brace
- \setkeys{pmdraw@brace}{#1} % Processes details of brace
- \pmdraw@drawBrace{\value{pmdraw@braceL}}{\value{pmdraw@braceR}}{\pmdraw@braceLabel} % Draws brace
- \let\pmdraw@drawBrace\pmdraw@drawBraceDefault % Resets brace options if changed
+\define@key{pmdraw@brick}{brace}{% Draws a brace
+ \setkeys{pmdraw@brace}{#1}% Processes details of brace
+ \pmdraw@drawBrace{\value{pmdraw@braceL}}{\value{pmdraw@braceR}}{\pmdraw@braceLabel}% Draws brace
+ \let\pmdraw@drawBrace\pmdraw@drawBraceDefault% Resets brace options if changed
}
-\define@key{pmdraw@brick}{brace draw}{ % Sets the draw options for drawing of brace
- \renewcommand{\pmdraw@drawBraceDrawOptions}{#1}
+\define@key{pmdraw@brick}{brace draw}{% Sets the draw options for drawing of brace
+ \renewcommand{\pmdraw@drawBraceDrawOptions}{#1}%
}
-\define@key{pmdraw@brick}{brace node}{ % Sets the node options for drawing of brace
- \renewcommand{\pmdraw@drawBraceNodeOptions}{#1}
+\define@key{pmdraw@brick}{brace node}{% Sets the node options for drawing of brace
+ \renewcommand{\pmdraw@drawBraceNodeOptions}{#1}%
}
-\define@key{pmdraw@brick}{decorate before}{ % Hook for decorations before brick is drawn
- \renewcommand{\pmdraw@hookBeforeBrick}{#1}
+\define@key{pmdraw@brick}{decorate before}{% Hook for decorations before brick is drawn
+ \renewcommand{\pmdraw@hookBeforeBrick}{#1}%
}
-\define@key{pmdraw@brick}{decorate after}{ % Hook for decorations after brick is drawn
- \renewcommand{\pmdraw@hookAfterBrick}{#1}
+\define@key{pmdraw@brick}{decorate after}{% Hook for decorations after brick is drawn
+ \renewcommand{\pmdraw@hookAfterBrick}{#1}%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -394,25 +393,25 @@
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\define@key{pmdraw@NTedges}{level}{ % Sets level of non-transversal edge
- \setcounter{pmdraw@NTlevel}{#1}
+\define@key{pmdraw@NTedges}{level}{% Sets level of non-transversal edge
+ \setcounter{pmdraw@NTlevel}{#1}%
}
-\define@key{pmdraw@NTedges}{height}{ % Sets manual height of non-transversal edge
- \renewcommand{\pmdraw@NTedgesHeight}{#1}
+\define@key{pmdraw@NTedges}{height}{% Sets manual height of non-transversal edge
+ \renewcommand{\pmdraw@NTedgesHeight}{#1}%
}
-\define@key{pmdraw@NTedges}{options}{ % Sets the draw command of non-transversal edge
- \renewcommand{\pmdraw@drawUedgesDraw}[2]{#1}
- \renewcommand{\pmdraw@drawLedgesDraw}[2]{#1}
+\define@key{pmdraw@NTedges}{options}{% Sets the draw command of non-transversal edge
+ \renewcommand{\pmdraw@drawUedgesDraw}[2]{#1}%
+ \renewcommand{\pmdraw@drawLedgesDraw}[2]{#1}%
}
-\define@key{pmdraw@Tedges}{height}{ % Sets manual height of transversal edge
- \tikzmath{
- \pmdraw{Tlevel} = #1;
- }
- \renewcommand{\pmdraw@ifTedgeHorizontal}{1} % Flags manual height
+\define@key{pmdraw@Tedges}{height}{% Sets manual height of transversal edge
+ \tikzmath{%
+ \pmdraw{Tlevel} = #1;%
+ }%
+ \renewcommand{\pmdraw@ifTedgeHorizontal}{1}% Flags manual height
}
-\define@key{pmdraw@Tedges}{options}{ % Sets the draw command of transversal edge
- \renewcommand{\pmdraw@drawTedgesDraw}[2]{#1}
+\define@key{pmdraw@Tedges}{options}{% Sets the draw command of transversal edge
+ \renewcommand{\pmdraw@drawTedgesDraw}[2]{#1}%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -422,20 +421,20 @@
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\define@key{pmdraw@brace}{left}{ % Sets starting position of brace
- \setcounter{pmdraw@braceL}{#1}
+\define@key{pmdraw@brace}{left}{% Sets starting position of brace
+ \setcounter{pmdraw@braceL}{#1}%
}
-\define@key{pmdraw@brace}{right}{ % Sets terminating position of brace
- \setcounter{pmdraw@braceR}{#1}
+\define@key{pmdraw@brace}{right}{% Sets terminating position of brace
+ \setcounter{pmdraw@braceR}{#1}%
}
-\define@key{pmdraw@brace}{label}{ % Sets label of brace
- \renewcommand{\pmdraw@braceLabel}{#1}
+\define@key{pmdraw@brace}{label}{% Sets label of brace
+ \renewcommand{\pmdraw@braceLabel}{#1}%
}
-\define@key{pmdraw@brace}{above}[]{ % Set flag to draw brace above diagram
- \renewcommand{\pmdraw@ifProdDiag}{1}
+\define@key{pmdraw@brace}{above}[]{% Set flag to draw brace above diagram
+ \renewcommand{\pmdraw@ifProdDiag}{1}%
}
-\define@key{pmdraw@brace}{options}{ % Sets the draw command of brace
- \renewcommand{\pmdraw@drawBrace}[3]{#1}
+\define@key{pmdraw@brace}{options}{% Sets the draw command of brace
+ \renewcommand{\pmdraw@drawBrace}[3]{#1}%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -445,30 +444,30 @@
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\define@key{pmdraw@diagram}{row sep}{ % Sets vertical separation between rows of vertices in diagram
- \renewcommand{\pmdraw@rowSep}{#1}
+\define@key{pmdraw@diagram}{row sep}{% Sets vertical separation between rows of vertices in diagram
+ \renewcommand{\pmdraw@rowSep}{#1}%
}
-\define@key{pmdraw@diagram}{tikz}{ % Sets the tikz options
- \renewcommand{\pmdraw@tikz}{#1}
+\define@key{pmdraw@diagram}{tikz}{% Sets the tikz options
+ \renewcommand{\pmdraw@tikz}{#1}%
}
-\define@key{pmdraw@diagram}{dots options}{ % Sets the draw command of dots between bricks
- \renewcommand{\pmdraw@drawDots}[2]{#1}
+\define@key{pmdraw@diagram}{dots options}{% Sets the draw command of dots between bricks
+ \renewcommand{\pmdraw@drawDots}[2]{#1}%
}
-\define@key{pmdraw@diagram}{grid}[]{ % Flag for drawing coordinate grid
- \renewcommand{\pmdraw@ifGrid}{1}
+\define@key{pmdraw@diagram}{grid}[]{% Flag for drawing coordinate grid
+ \renewcommand{\pmdraw@ifGrid}{1}%
}
-\define@key{pmdraw@diagram}{decorate before}{ % Hook before drawing diagrams
- \renewcommand{\pmdraw@hookBeforeDiagram}{#1}
+\define@key{pmdraw@diagram}{decorate before}{% Hook before drawing diagrams
+ \renewcommand{\pmdraw@hookBeforeDiagram}{#1}%
}
-\define@key{pmdraw@diagram}{decorate after}{ % Hook after drawing diagrams
- \renewcommand{\pmdraw@hookAfterDiagram}{#1}
+\define@key{pmdraw@diagram}{decorate after}{% Hook after drawing diagrams
+ \renewcommand{\pmdraw@hookAfterDiagram}{#1}%
}
-\define@key{pmdraw@diagram}{diagram sep}{ % Sets vertical separation between bottom row of top diagram and top row of bottom diagram in product diagram
- \renewcommand{\pmdraw@diagSep}{#1}
+\define@key{pmdraw@diagram}{diagram sep}{% Sets vertical separation between bottom row of top diagram and top row of bottom diagram in product diagram
+ \renewcommand{\pmdraw@diagSep}{#1}%
}
-\define@key{pmdraw@diagram}{edges added}{ % Sets the draw options for drawing of added edges in product diagram
- \renewcommand{\pmdraw@drawAedgesOptions}{#1}
+\define@key{pmdraw@diagram}{edges added}{% Sets the draw options for drawing of added edges in product diagram
+ \renewcommand{\pmdraw@drawAedgesOptions}{#1}%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -478,12 +477,12 @@
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newcommand{\pmdBrick}[4][]{ % Draws brick
+\newcommand{\pmdBrick}[4][]{% Draws brick
% #1 Options
% #2 Upper non-transversal edges, as list [<options>]{<left vertex>}{<right vertex>}, eg [level=1]{2}{3}
% #3 Lower non-transversal edges, as list [<options>]{<left vertex>}{<right vertex>}, eg [level=1]{2}{3}
% #4 Transversals, as list [<options>]{<upper vertex>}{<lower vertex>}, eg [level=1]{2}{3}
- \pmdDiagram{{[#1]{#2}{#3}{#4}}} % Uses complete diagram method to draw brick
+ \pmdDiagram{{[#1]{#2}{#3}{#4}}}% Uses complete diagram method to draw brick
}
\newcommand{\pmdDiagram}[2][]{% Draws diagram
@@ -524,7 +523,7 @@
\pmdraw@reset% Resets user keys and other flags to default values
}
-\newcommand{\pmdEmpty}{} % Indicates no edges, internally halts input loops, always is = {}
+\newcommand{\pmdEmpty}{}% Indicates no edges, internally halts input loops, always is = {}
\newcommand{\pmdProduct}[4][]{% Draws product diagram
% #1 Options
@@ -606,27 +605,27 @@
\newcommand{\pmdraw@AedgesLoop}{% Starts loop for added edges in product diagram
\@ifnextchar\pmdEmpty{}{% If not at end of list
\pmdraw@drawAedges% Draw each edge
- }
+ }%
}
\newcommand{\pmdraw@bricksLoop}{% Starts loop to iterate over each brick in diagram
\@ifnextchar\pmdEmpty{}{% If not at end of list
\pmdraw@drawBrickInit% Draw each brick
- }
+ }%
}
\newcommand{\pmdraw@LedgesLoop}{% Starts loop for lower non-transversal edges
\@ifnextchar\pmdEmpty{}{% If not at end of list
\pmdraw@drawLedges% Draw each edge
- }
+ }%
}
\newcommand{\pmdraw@TedgesLoop}{% Starts loop for transversal edges
\@ifnextchar\pmdEmpty{}{% If not at end of list
\pmdraw@drawTedges% Draw each edge
- }
+ }%
}
\newcommand{\pmdraw@UedgesLoop}{% Starts loop for upper non-transversal edges
\@ifnextchar\pmdEmpty{}{% If not at end of list
\pmdraw@drawUedges% Draw each edge
- }
+ }%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -673,7 +672,7 @@
\ifnum\pmdraw@ifLabelsB=1% If drawing labels
\pmdraw@drawLabelBottom{\x + \value{pmdraw@blankT}}{0}{\thepmdraw@labelStartB}% Draw label
\stepcounter{pmdraw@labelStartB}% Update label counter
- \fi
+ \fi%
}%
}
\newcommand{\pmdraw@drawBrickInit}[1]{% Initialises the drawing of a brick
@@ -716,7 +715,7 @@
#3%
\pmdEmpty%
\fi%
- \else % If drawing edges first
+ \else% If drawing edges first
\ifnum\pmdraw@ifTedgesFirst=0% If drawing non-transversals first
\pmdraw@UedgesLoop% Draws upper edges
#2%
@@ -801,20 +800,20 @@
\ifnum\pmdraw@ifLabelsT=1% If drawing labels
\pmdraw@drawLabelTop{\x + \value{pmdraw@blankT}}{\pmdraw@rowSep}{\thepmdraw@labelStartT}% Draw label
\stepcounter{pmdraw@labelStartT}% Update label counter
- \fi
+ \fi%
}%
}
\newcommand{\pmdraw@drawUedges}[3][]{% Draws upper non-transversal edge, #1 options, #2 L vertex, #3 R vertex
\setcounter{pmdraw@NTlevel}{1}% Store default level of edge
\setkeys{pmdraw@NTedges}{#1}% Processes options
\ifdim\pmdraw@NTedgesHeight pt=-1000pt% If using default heights
- \tikzmath{
+ \tikzmath{%
\pmdraw{edgeHeight}=\value{pmdraw@NTlevel}*\pmdraw{edgeSepU};% Calculates height based on level of edge
- }
+ }%
\else% If using manual heights
- \tikzmath{
+ \tikzmath{%
\pmdraw{edgeHeight}=\pmdraw@rowSep-\pmdraw@NTedgesHeight;% Set manual height
- }
+ }%
\fi%
\pmdraw@drawUedgesDraw{#2}{#3}% Draw edge
% Resets user keys and other flags to default values