summaryrefslogtreecommitdiff
path: root/graphics/pmdraw/pmdraw.sty
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/pmdraw/pmdraw.sty')
-rw-r--r--graphics/pmdraw/pmdraw.sty531
1 files changed, 265 insertions, 266 deletions
diff --git a/graphics/pmdraw/pmdraw.sty b/graphics/pmdraw/pmdraw.sty
index fb2c77e70c..20d8bad74b 100644
--- a/graphics/pmdraw/pmdraw.sty
+++ b/graphics/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