texlive[69366] Master/texmf-dist: pmdraw (10jan24)
commits+karl at tug.org
commits+karl at tug.org
Wed Jan 10 21:43:13 CET 2024
Revision: 69366
https://tug.org/svn/texlive?view=revision&revision=69366
Author: karl
Date: 2024-01-10 21:43:13 +0100 (Wed, 10 Jan 2024)
Log Message:
-----------
pmdraw (10jan24)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/pmdraw/README.md
trunk/Master/texmf-dist/doc/latex/pmdraw/pmdraw.pdf
trunk/Master/texmf-dist/doc/latex/pmdraw/pmdraw.tex
trunk/Master/texmf-dist/tex/latex/pmdraw/pmdraw.sty
Modified: trunk/Master/texmf-dist/doc/latex/pmdraw/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pmdraw/README.md 2024-01-10 00:43:34 UTC (rev 69365)
+++ trunk/Master/texmf-dist/doc/latex/pmdraw/README.md 2024-01-10 20:43:13 UTC (rev 69366)
@@ -3,10 +3,10 @@
<!--
-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 @@
|``````````````|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 @@
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 @@
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
Modified: trunk/Master/texmf-dist/doc/latex/pmdraw/pmdraw.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/pmdraw/pmdraw.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pmdraw/pmdraw.tex 2024-01-10 00:43:34 UTC (rev 69365)
+++ trunk/Master/texmf-dist/doc/latex/pmdraw/pmdraw.tex 2024-01-10 20:43:13 UTC (rev 69366)
@@ -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 at 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 @@
\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 @@
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 @@
\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 @@
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}
Modified: trunk/Master/texmf-dist/tex/latex/pmdraw/pmdraw.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/pmdraw/pmdraw.sty 2024-01-10 00:43:34 UTC (rev 69365)
+++ trunk/Master/texmf-dist/tex/latex/pmdraw/pmdraw.sty 2024-01-10 20:43:13 UTC (rev 69366)
@@ -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 at braceLabel}{} % Label of brace
+\newcommand{\pmdraw at braceLabel}{}% Label of brace
-\newcommand{\pmdraw at diagSep}{1} % Vertical separation between bottom row of top diagram and top row of bottom diagram in product diagram
+\newcommand{\pmdraw at diagSep}{1}% Vertical separation between bottom row of top diagram and top row of bottom diagram in product diagram
-\newcommand{\pmdraw at drawAedgesOptions}{} % Draw options for added edges in product diagram
-\newcommand{\pmdraw at 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 at drawAedgesOptions] (\x,0) -- (\x,-\pmdraw at diagSep); % Draw concatenation edge
- }
- \pmdraw at AedgesLoop % Restart for loop
+\newcommand{\pmdraw at drawAedgesOptions}{}% Draw options for added edges in product diagram
+\newcommand{\pmdraw at 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 at drawAedgesOptions] (\x,0) -- (\x,-\pmdraw at diagSep);% Draw concatenation edge
+ }%
+ \pmdraw at AedgesLoop% Restart for loop
}
-\newcommand{\pmdraw at drawBraceDrawOptions}{} % Draw options for brace
-\newcommand{\pmdraw at drawBraceNodeOptions}{} % Node options for brace
-\newcommand{\pmdraw at drawBraceDefault}[3]{ % Draws brace a brace starting from #1 vertex to #2 vertex with label #3, assumes #1<#2 - DEFAULT
- \ifnum\pmdraw at ifProdDiag=1 % If drawing a product diagram or if placing brace above diagram
+\newcommand{\pmdraw at drawBraceDrawOptions}{}% Draw options for brace
+\newcommand{\pmdraw at drawBraceNodeOptions}{}% Node options for brace
+\newcommand{\pmdraw at drawBraceDefault}[3]{% Draws brace a brace starting from #1 vertex to #2 vertex with label #3, assumes #1<#2 - DEFAULT
+ \ifnum\pmdraw at 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 at drawBraceDrawOptions
- ] (#1-0.17,\pmdraw at rowSep+0.5) -- (#2+0.17,\pmdraw at rowSep+0.5)
+ ] (#1-0.17,\pmdraw at rowSep+0.5) -- (#2+0.17,\pmdraw at rowSep+0.5)
node[
pos=0.5,
above=6pt,
apply style/.expand once=\pmdraw at 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 at 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 at drawBraceNodeOptions
- ] {\(#3\)}; % Draw brace on bottom of diagram
+ ] {\(#3\)};% Draw brace on bottom of diagram
\fi%
}
-\let\pmdraw at drawBrace\pmdraw at drawBraceDefault % Draws brace a brace starting from #1 vertex to #2 vertex with label #3, assumes #1<#2
+\let\pmdraw at drawBrace\pmdraw at drawBraceDefault% Draws brace a brace starting from #1 vertex to #2 vertex with label #3, assumes #1<#2
-\newcommand{\pmdraw at drawDotsDrawOptions}{} % Draw options for dots between bricks
-\newcommand{\pmdraw at drawDotsNodeOptions}{} % Node options for dots between bricks
-\newcommand{\pmdraw at drawDotsDefault}[2]{ % Draws dots between bricks at (#1,#2) - DEFAULT
- \draw[apply style/.expand once=\pmdraw at drawDotsDrawOptions] (#1,#2) node[apply style/.expand once=\pmdraw at drawDotsNodeOptions] {\(\dots\)};
+\newcommand{\pmdraw at drawDotsDrawOptions}{}% Draw options for dots between bricks
+\newcommand{\pmdraw at drawDotsNodeOptions}{}% Node options for dots between bricks
+\newcommand{\pmdraw at drawDotsDefault}[2]{% Draws dots between bricks at (#1,#2) - DEFAULT
+ \draw[apply style/.expand once=\pmdraw at drawDotsDrawOptions] (#1,#2) node[apply style/.expand once=\pmdraw at drawDotsNodeOptions] {\(\dots\)};%
}
-\let\pmdraw at drawDots\pmdraw at drawDotsDefault % Draws dots between bricks at (#1,#2)
+\let\pmdraw at drawDots\pmdraw at drawDotsDefault% Draws dots between bricks at (#1,#2)
-\newcommand{\pmdraw at drawLabelBDrawOptions}{} % Draw options for label of a vertex in bottom row
-\newcommand{\pmdraw at drawLabelBNodeOptions}{} % Node options for label of a vertex in bottom row
-\newcommand{\pmdraw at drawLabelBottomDefault}[3]{ % For bottom row, draws the label #3 for a vertex at (#1,#2) - DEFAULT
- \draw[apply style/.expand once=\pmdraw at drawLabelBDrawOptions] (#1,#2) node[below=6pt,apply style/.expand once=\pmdraw at drawLabelBNodeOptions] {\(#3'\)};
+\newcommand{\pmdraw at drawLabelBDrawOptions}{}% Draw options for label of a vertex in bottom row
+\newcommand{\pmdraw at drawLabelBNodeOptions}{}% Node options for label of a vertex in bottom row
+\newcommand{\pmdraw at drawLabelBottomDefault}[3]{% For bottom row, draws the label #3 for a vertex at (#1,#2) - DEFAULT
+ \draw[apply style/.expand once=\pmdraw at drawLabelBDrawOptions] (#1,#2) node[below=6pt,apply style/.expand once=\pmdraw at drawLabelBNodeOptions] {\(#3'\)};%
}
-\let\pmdraw at drawLabelBottom\pmdraw at drawLabelBottomDefault % For bottom row, draws the label #3 for a vertex at (#1,#2)
+\let\pmdraw at drawLabelBottom\pmdraw at drawLabelBottomDefault% For bottom row, draws the label #3 for a vertex at (#1,#2)
-\newcommand{\pmdraw at drawLabelTDrawOptions}{} % Draw options for label of a vertex in top row
-\newcommand{\pmdraw at drawLabelTNodeOptions}{} % Node options for label of a vertex in top row
-\newcommand{\pmdraw at drawLabelTopDefault}[3]{ % For top row, draws the label #3 for a vertex at (#1,#2) - DEFAULT
- \draw[apply style/.expand once=\pmdraw at drawLabelTDrawOptions] (#1,#2) node[above=6pt,apply style/.expand once=\pmdraw at drawLabelTNodeOptions] {\(#3\)};
+\newcommand{\pmdraw at drawLabelTDrawOptions}{}% Draw options for label of a vertex in top row
+\newcommand{\pmdraw at drawLabelTNodeOptions}{}% Node options for label of a vertex in top row
+\newcommand{\pmdraw at drawLabelTopDefault}[3]{% For top row, draws the label #3 for a vertex at (#1,#2) - DEFAULT
+ \draw[apply style/.expand once=\pmdraw at drawLabelTDrawOptions] (#1,#2) node[above=6pt,apply style/.expand once=\pmdraw at drawLabelTNodeOptions] {\(#3\)};%
}
-\let\pmdraw at drawLabelTop\pmdraw at drawLabelTopDefault % For top row, draws the label #3 for a vertex at (#1,#2)
+\let\pmdraw at drawLabelTop\pmdraw at drawLabelTopDefault% For top row, draws the label #3 for a vertex at (#1,#2)
-\newcommand{\pmdraw at drawLedgesDrawOptions}{} % Draw options for lower non-transversal edges
-\newcommand{\pmdraw at drawLedgesDrawDefault}[2]{ % Draws lower non-transversal edge from #1 vertex to #2 vertex, assumes #1<#2 - DEFAULT
- \draw[apply style/.expand once=\pmdraw at drawLedgesDrawOptions] (#1,0) arc (180:90:\pmdraw{edgeHeight}); % Draw left arch
- \draw[apply style/.expand once=\pmdraw at drawLedgesDrawOptions] (#1+\pmdraw{edgeHeight},\pmdraw{edgeHeight}) -- (#2-\pmdraw{edgeHeight},\pmdraw{edgeHeight}); % Draw straight line
- \draw[apply style/.expand once=\pmdraw at drawLedgesDrawOptions] (#2-\pmdraw{edgeHeight},\pmdraw{edgeHeight}) arc (90:0:\pmdraw{edgeHeight}); % Draw right arc
+\newcommand{\pmdraw at drawLedgesDrawOptions}{}% Draw options for lower non-transversal edges
+\newcommand{\pmdraw at drawLedgesDrawDefault}[2]{% Draws lower non-transversal edge from #1 vertex to #2 vertex, assumes #1<#2 - DEFAULT
+ \draw[apply style/.expand once=\pmdraw at drawLedgesDrawOptions] (#1,0) arc (180:90:\pmdraw{edgeHeight});% Draw left arch
+ \draw[apply style/.expand once=\pmdraw at drawLedgesDrawOptions] (#1+\pmdraw{edgeHeight},\pmdraw{edgeHeight}) -- (#2-\pmdraw{edgeHeight},\pmdraw{edgeHeight});% Draw straight line
+ \draw[apply style/.expand once=\pmdraw at drawLedgesDrawOptions] (#2-\pmdraw{edgeHeight},\pmdraw{edgeHeight}) arc (90:0:\pmdraw{edgeHeight});% Draw right arc
}
-\let\pmdraw at drawLedgesDraw\pmdraw at drawLedgesDrawDefault % Draws lower non-transversal edge from #1 vertex to #2 vertex, assumes #1<#2
+\let\pmdraw at drawLedgesDraw\pmdraw at drawLedgesDrawDefault% Draws lower non-transversal edge from #1 vertex to #2 vertex, assumes #1<#2
-\newcommand{\pmdraw at drawTedgesDrawOptions}{} % Draw options for transversal edges
-\newcommand{\pmdraw at drawTedgesDrawDefault}[2]{ % Draws transversal edge from #1 vertex in top row to #2 vertex in bottom row - DEFAULT
- \ifnum\pmdraw at ifTedgeHorizontal=0 % If drawing a straight line edge
- \draw[apply style/.expand once=\pmdraw at drawTedgesDrawOptions] (#1,\pmdraw at 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 at drawTedgesDrawOptions] (#2,0) arc (180:90:\pmdraw{Tlevel}); % Draw bottom arch
- \draw[apply style/.expand once=\pmdraw at drawTedgesDrawOptions] (#2+\pmdraw{Tlevel},\pmdraw{Tlevel}) -- (#1-\pmdraw at rowSep+\pmdraw{Tlevel}, \pmdraw{Tlevel}); % Draw straight line
- \draw[apply style/.expand once=\pmdraw at drawTedgesDrawOptions] (#1-\pmdraw at rowSep+\pmdraw{Tlevel},\pmdraw{Tlevel}) arc (270:360:{\pmdraw at rowSep-\pmdraw{Tlevel}}); % Draw top arc
- \else % If edge goes from top left to bottom right
- \draw[apply style/.expand once=\pmdraw at drawTedgesDrawOptions] (#2,0) arc (0:90:\pmdraw{Tlevel}); % Draw bottom arch
- \draw[apply style/.expand once=\pmdraw at drawTedgesDrawOptions] (#2-\pmdraw{Tlevel},\pmdraw{Tlevel}) -- (#1+\pmdraw at rowSep-\pmdraw{Tlevel}, \pmdraw{Tlevel}); % Draw straight line
- \draw[apply style/.expand once=\pmdraw at drawTedgesDrawOptions] (#1+\pmdraw at rowSep-\pmdraw{Tlevel},\pmdraw{Tlevel}) arc (270:180:{\pmdraw at rowSep-\pmdraw{Tlevel}}); % Draw top arc
+\newcommand{\pmdraw at drawTedgesDrawOptions}{}% Draw options for transversal edges
+\newcommand{\pmdraw at drawTedgesDrawDefault}[2]{% Draws transversal edge from #1 vertex in top row to #2 vertex in bottom row - DEFAULT
+ \ifnum\pmdraw at ifTedgeHorizontal=0% If drawing a straight line edge
+ \draw[apply style/.expand once=\pmdraw at drawTedgesDrawOptions] (#1,\pmdraw at 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 at drawTedgesDrawOptions] (#2,0) arc (180:90:\pmdraw{Tlevel});% Draw bottom arch
+ \draw[apply style/.expand once=\pmdraw at drawTedgesDrawOptions] (#2+\pmdraw{Tlevel},\pmdraw{Tlevel}) -- (#1-\pmdraw at rowSep+\pmdraw{Tlevel}, \pmdraw{Tlevel});% Draw straight line
+ \draw[apply style/.expand once=\pmdraw at drawTedgesDrawOptions] (#1-\pmdraw at rowSep+\pmdraw{Tlevel},\pmdraw{Tlevel}) arc (270:360:{\pmdraw at rowSep-\pmdraw{Tlevel}});% Draw top arc
+ \else% If edge goes from top left to bottom right
+ \draw[apply style/.expand once=\pmdraw at drawTedgesDrawOptions] (#2,0) arc (0:90:\pmdraw{Tlevel});% Draw bottom arch
+ \draw[apply style/.expand once=\pmdraw at drawTedgesDrawOptions] (#2-\pmdraw{Tlevel},\pmdraw{Tlevel}) -- (#1+\pmdraw at rowSep-\pmdraw{Tlevel}, \pmdraw{Tlevel});% Draw straight line
+ \draw[apply style/.expand once=\pmdraw at drawTedgesDrawOptions] (#1+\pmdraw at rowSep-\pmdraw{Tlevel},\pmdraw{Tlevel}) arc (270:180:{\pmdraw at rowSep-\pmdraw{Tlevel}});% Draw top arc
\fi%
- \renewcommand{\pmdraw at ifTedgeHorizontal}{0} % Reset flag to default
+ \renewcommand{\pmdraw at ifTedgeHorizontal}{0}% Reset flag to default
\fi%
}
-\let\pmdraw at drawTedgesDraw\pmdraw at drawTedgesDrawDefault % Draws transversal edge from #1 vertex in top row to #2 vertex in bottom row
+\let\pmdraw at drawTedgesDraw\pmdraw at drawTedgesDrawDefault% Draws transversal edge from #1 vertex in top row to #2 vertex in bottom row
-\newcommand{\pmdraw at drawUedgesDrawOptions}{} % Draw options for upper non-transversal edges
-\newcommand{\pmdraw at drawUedgesDrawDefault}[2]{ % Draws upper non-transversal edge from #1 vertex to #2 vertex, assumes #1<#2 - DEFAULT
- \draw[apply style/.expand once=\pmdraw at drawUedgesDrawOptions] (#1,\pmdraw at rowSep) arc (180:270:\pmdraw{edgeHeight}); % Draw left arch
- \draw[apply style/.expand once=\pmdraw at drawUedgesDrawOptions] (#1+\pmdraw{edgeHeight},\pmdraw at rowSep-\pmdraw{edgeHeight}) -- (#2-\pmdraw{edgeHeight},\pmdraw at rowSep-\pmdraw{edgeHeight}); % Draw straight line
- \draw[apply style/.expand once=\pmdraw at drawUedgesDrawOptions] (#2-\pmdraw{edgeHeight},\pmdraw at rowSep-\pmdraw{edgeHeight}) arc (270:360:\pmdraw{edgeHeight}); % Draw right arc
+\newcommand{\pmdraw at drawUedgesDrawOptions}{}% Draw options for upper non-transversal edges
+\newcommand{\pmdraw at drawUedgesDrawDefault}[2]{% Draws upper non-transversal edge from #1 vertex to #2 vertex, assumes #1<#2 - DEFAULT
+ \draw[apply style/.expand once=\pmdraw at drawUedgesDrawOptions] (#1,\pmdraw at rowSep) arc (180:270:\pmdraw{edgeHeight});% Draw left arch
+ \draw[apply style/.expand once=\pmdraw at drawUedgesDrawOptions] (#1+\pmdraw{edgeHeight},\pmdraw at rowSep-\pmdraw{edgeHeight}) -- (#2-\pmdraw{edgeHeight},\pmdraw at rowSep-\pmdraw{edgeHeight});% Draw straight line
+ \draw[apply style/.expand once=\pmdraw at drawUedgesDrawOptions] (#2-\pmdraw{edgeHeight},\pmdraw at rowSep-\pmdraw{edgeHeight}) arc (270:360:\pmdraw{edgeHeight});% Draw right arc
}
-\let\pmdraw at drawUedgesDraw\pmdraw at drawUedgesDrawDefault % Draws upper non-transversal edge from #1 vertex to #2 vertex, assumes #1<#2
+\let\pmdraw at drawUedgesDraw\pmdraw at drawUedgesDrawDefault% Draws upper non-transversal edge from #1 vertex to #2 vertex, assumes #1<#2
-\newcommand{\pmdraw at drawVertexOptions}{} % Draw options for vertices
-\newcommand{\pmdraw at drawVertex}[2]{ % Draws a vertex at (#1,#2)
- \fill[apply style/.expand once=\pmdraw at drawVertexOptions] (#1,#2) circle (.17);
+\newcommand{\pmdraw at drawVertexOptions}{}% Draw options for vertices
+\newcommand{\pmdraw at drawVertex}[2]{% Draws a vertex at (#1,#2)
+ \fill[apply style/.expand once=\pmdraw at drawVertexOptions] (#1,#2) circle (.17);%
}
-\newcommand{\pmdraw at hookAfterBrick}{} % Hook after drawing a brick
-\newcommand{\pmdraw at hookAfterDiagram}{} % Hook after drawing a diagram
-\newcommand{\pmdraw at hookBeforeBrick}{} % Hook before drawing a brick
-\newcommand{\pmdraw at hookBeforeDiagram}{} % Hook before drawing a diagram
+\newcommand{\pmdraw at hookAfterBrick}{}% Hook after drawing a brick
+\newcommand{\pmdraw at hookAfterDiagram}{}% Hook after drawing a diagram
+\newcommand{\pmdraw at hookBeforeBrick}{}% Hook before drawing a brick
+\newcommand{\pmdraw at hookBeforeDiagram}{}% Hook before drawing a diagram
-\newcommand{\pmdraw at ifDiagWDots}{0} % Boolean if drawing a diagram with dots
-\newcommand{\pmdraw at ifEdgesFirst}{0} % Boolean if drawing edges before vertices
-\newcommand{\pmdraw at ifGrid}{0} % Boolean if displaying helper grid
-\newcommand{\pmdraw at ifLabelsB}{0} % Boolean if displaying labels for vertices in bottom row
-\newcommand{\pmdraw at ifLabelsT}{0} % Boolean if displaying labels for vertices in top row
-\newcommand{\pmdraw at ifProdDiag}{0} % Boolean if drawing a product diagram
-\newcommand{\pmdraw at ifTedgesFirst}{0} % Boolean if drawing transversal edges before non-transversal edges
-\newcommand{\pmdraw at ifTedgeHorizontal}{0} % Boolean if transversal edge is drawn horizontally
+\newcommand{\pmdraw at ifDiagWDots}{0}% Boolean if drawing a diagram with dots
+\newcommand{\pmdraw at ifEdgesFirst}{0}% Boolean if drawing edges before vertices
+\newcommand{\pmdraw at ifGrid}{0}% Boolean if displaying helper grid
+\newcommand{\pmdraw at ifLabelsB}{0}% Boolean if displaying labels for vertices in bottom row
+\newcommand{\pmdraw at ifLabelsT}{0}% Boolean if displaying labels for vertices in top row
+\newcommand{\pmdraw at ifProdDiag}{0}% Boolean if drawing a product diagram
+\newcommand{\pmdraw at ifTedgesFirst}{0}% Boolean if drawing transversal edges before non-transversal edges
+\newcommand{\pmdraw at ifTedgeHorizontal}{0}% Boolean if transversal edge is drawn horizontally
-\newcommand{\pmdraw at NTedgesHeight}{-1000} % Height of non-transversal edges if manually set, a value of -1000 sets height automatically
+\newcommand{\pmdraw at NTedgesHeight}{-1000}% Height of non-transversal edges if manually set, a value of -1000 sets height automatically
\newcommand{\pmdraw at reset}{% Resets user keys and other flags to default values after drawing diagram
\renewcommand{\pmdraw at diagSep}{1}% Resets vertical space between product diagrams
@@ -165,7 +165,7 @@
\renewcommand{\pmdraw at ifGrid}{0}% Hides grid
\renewcommand{\pmdraw at ifDiagWDots}{0}% Reset if drawing a diagram with dots
\renewcommand{\pmdraw at rowSep}{2}% Resets vertical separation between rows of vertices in brick
- \renewcommand{\pmdraw at tikz}{} % Resets tikz options
+ \renewcommand{\pmdraw at tikz}{}% Resets tikz options
\setcounter{pmdraw at blankB}{0}% Resets number of blank vertices in bottom row to the left of brick
\setcounter{pmdraw at blankT}{0}% Resets number of blank vertices in top row to the left of brick
\setcounter{pmdraw at bottomShift}{0}% Resets shift on right end of bottom row of brick
@@ -173,9 +173,9 @@
\setcounter{pmdraw at ifDiagWDotsFirst}{1}% Reset if drawing first brick of diagram
}
-\newcommand{\pmdraw at rowSep}{2} % Vertical separation between rows of vertices in brick
+\newcommand{\pmdraw at rowSep}{2}% Vertical separation between rows of vertices in brick
-\newcommand{\pmdraw at tikz}{} % Tikz options
+\newcommand{\pmdraw at tikz}{}% Tikz options
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
@@ -185,32 +185,32 @@
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newcounter{pmdraw at blankB} % Number of blank vertices in bottom row to the left of brick
-\newcounter{pmdraw at blankT} % Number of blank vertices in top row to the left of brick
+\newcounter{pmdraw at blankB}% Number of blank vertices in bottom row to the left of brick
+\newcounter{pmdraw at blankT}% Number of blank vertices in top row to the left of brick
-\newcounter{pmdraw at bottomTotal} % Size of bottom row of brick
-\newcounter{pmdraw at bottomShift} % Shift on right end of bottom row of brick
+\newcounter{pmdraw at bottomTotal}% Size of bottom row of brick
+\newcounter{pmdraw at bottomShift}% Shift on right end of bottom row of brick
-\newcounter{pmdraw at braceL} % Left starting vertex of brace
-\newcounter{pmdraw at braceR} % Right terminating vertex of brace
+\newcounter{pmdraw at braceL}% Left starting vertex of brace
+\newcounter{pmdraw at braceR}% Right terminating vertex of brace
-\newcounter{pmdraw at brickShift} % Shift required for bricks after dots in diagram with dots
+\newcounter{pmdraw at brickShift}% Shift required for bricks after dots in diagram with dots
-\newcounter{pmdraw at degreeB} % Degree (number of vertices) of bottom row of brick
-\newcounter{pmdraw at degreeT} % Degree (number of vertices) of top row of brick
+\newcounter{pmdraw at degreeB}% Degree (number of vertices) of bottom row of brick
+\newcounter{pmdraw at degreeT}% Degree (number of vertices) of top row of brick
-\newcounter{pmdraw at ifDiagWDotsFirst} % In drawing with dots, boolean if drawing first brick of diagram
+\newcounter{pmdraw at ifDiagWDotsFirst}% In drawing with dots, boolean if drawing first brick of diagram
\setcounter{pmdraw at ifDiagWDotsFirst}{1}
-\newcounter{pmdraw at labelStartB} % Starting value of labels of vertices in bottom row
+\newcounter{pmdraw at labelStartB}% Starting value of labels of vertices in bottom row
\setcounter{pmdraw at labelStartB}{1}
-\newcounter{pmdraw at labelStartT} % Starting value of labels of vertices in top row
+\newcounter{pmdraw at labelStartT}% Starting value of labels of vertices in top row
\setcounter{pmdraw at labelStartT}{1}
-\newcounter{pmdraw at NTlevel} % Level corresponding to a height for a non-transversal edge
+\newcounter{pmdraw at NTlevel}% Level corresponding to a height for a non-transversal edge
-\newcounter{pmdraw at topTotal} % Size of top row of brick
-\newcounter{pmdraw at topShift} % Shift on right end of top row of brick
+\newcounter{pmdraw at topTotal}% Size of top row of brick
+\newcounter{pmdraw at 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 at key{pmdraw at brick}{degree}{ % Sets degree (number of vertices per row) of diagram
- \setcounter{pmdraw at degreeB}{#1} % Sets degree (number of vertices per row) for bottom row
- \setcounter{pmdraw at degreeT}{#1} % Sets degree (number of vertices per row) for top row
+\define at key{pmdraw at brick}{degree}{% Sets degree (number of vertices per row) of diagram
+ \setcounter{pmdraw at degreeB}{#1}% Sets degree (number of vertices per row) for bottom row
+ \setcounter{pmdraw at degreeT}{#1}% Sets degree (number of vertices per row) for top row
}
-\define at key{pmdraw at brick}{degree bottom}{ % Sets degree (number of vertices per row) for bottom row
- \setcounter{pmdraw at degreeB}{#1}
+\define at key{pmdraw at brick}{degree bottom}{% Sets degree (number of vertices per row) for bottom row
+ \setcounter{pmdraw at degreeB}{#1}%
}
-\define at key{pmdraw at brick}{degree top}{ % Sets degree (number of vertices per row) for top row
- \setcounter{pmdraw at degreeT}{#1}
+\define at key{pmdraw at brick}{degree top}{% Sets degree (number of vertices per row) for top row
+ \setcounter{pmdraw at degreeT}{#1}%
}
-\define at key{pmdraw at brick}{blank bottom}{ % Sets the number of blank vertices on left of bottom row
- \setcounter{pmdraw at blankB}{#1}
+\define at key{pmdraw at brick}{blank bottom}{% Sets the number of blank vertices on left of bottom row
+ \setcounter{pmdraw at blankB}{#1}%
}
-\define at key{pmdraw at brick}{blank top}{ % Sets the number of blank vertices on left of top row
- \setcounter{pmdraw at blankT}{#1}
+\define at key{pmdraw at brick}{blank top}{% Sets the number of blank vertices on left of top row
+ \setcounter{pmdraw at blankT}{#1}%
}
-\define at key{pmdraw at brick}{row sep}{ % Sets vertical separation between rows of vertices in brick
- \renewcommand{\pmdraw at rowSep}{#1}
+\define at key{pmdraw at brick}{row sep}{% Sets vertical separation between rows of vertices in brick
+ \renewcommand{\pmdraw at rowSep}{#1}%
}
-\define at key{pmdraw at brick}{vertices}{ % Sets the draw options of vertices
- \renewcommand{\pmdraw at drawVertexOptions}{#1}
+\define at key{pmdraw at brick}{vertices}{% Sets the draw options of vertices
+ \renewcommand{\pmdraw at drawVertexOptions}{#1}%
}
-\define at key{pmdraw at brick}{vertices options}{ % Sets the draw command of vertices
- \renewcommand{\pmdraw at drawVertex}[2]{#1}
+\define at key{pmdraw at brick}{vertices options}{% Sets the draw command of vertices
+ \renewcommand{\pmdraw at drawVertex}[2]{#1}%
}
-\define at key{pmdraw at brick}{labels}[]{ % Draws labels for vertices
- \renewcommand{\pmdraw at ifLabelsB}{1}
- \renewcommand{\pmdraw at ifLabelsT}{1}
+\define at key{pmdraw at brick}{labels}[]{% Draws labels for vertices
+ \renewcommand{\pmdraw at ifLabelsB}{1}%
+ \renewcommand{\pmdraw at ifLabelsT}{1}%
}
-\define at key{pmdraw at brick}{labels bottom}[]{ % Draws labels for bottom vertices
- \renewcommand{\pmdraw at ifLabelsB}{1}
+\define at key{pmdraw at brick}{labels bottom}[]{% Draws labels for bottom vertices
+ \renewcommand{\pmdraw at ifLabelsB}{1}%
}
-\define at key{pmdraw at brick}{labels top}[]{ % Draws labels for top vertices
- \renewcommand{\pmdraw at ifLabelsT}{1}
+\define at key{pmdraw at brick}{labels top}[]{% Draws labels for top vertices
+ \renewcommand{\pmdraw at ifLabelsT}{1}%
}
-\define at key{pmdraw at brick}{labels start}{ % Sets starting number for vertex labels
- \setcounter{pmdraw at labelStartT}{#1}
- \setcounter{pmdraw at labelStartB}{#1}
+\define at key{pmdraw at brick}{labels start}{% Sets starting number for vertex labels
+ \setcounter{pmdraw at labelStartT}{#1}%
+ \setcounter{pmdraw at labelStartB}{#1}%
}
-\define at key{pmdraw at brick}{labels bottom start}{ % Sets starting number for bottom vertex labels
- \setcounter{pmdraw at labelStartB}{#1}
+\define at key{pmdraw at brick}{labels bottom start}{% Sets starting number for bottom vertex labels
+ \setcounter{pmdraw at labelStartB}{#1}%
}
-\define at key{pmdraw at brick}{labels top start}{ % Sets starting number for top vertex labels
- \setcounter{pmdraw at labelStartT}{#1}
+\define at key{pmdraw at brick}{labels top start}{% Sets starting number for top vertex labels
+ \setcounter{pmdraw at labelStartT}{#1}%
}
-\define at key{pmdraw at brick}{labels bottom draw}{ % Sets the draw options for labels of bottom vertices
- \renewcommand{\pmdraw at drawLabelBDrawOptions}{#1}
+\define at key{pmdraw at brick}{labels bottom draw}{% Sets the draw options for labels of bottom vertices
+ \renewcommand{\pmdraw at drawLabelBDrawOptions}{#1}%
}
-\define at key{pmdraw at brick}{labels bottom node}{ % Sets the node options for labels of bottom vertices
- \renewcommand{\pmdraw at drawLabelBNodeOptions}{#1}
+\define at key{pmdraw at brick}{labels bottom node}{% Sets the node options for labels of bottom vertices
+ \renewcommand{\pmdraw at drawLabelBNodeOptions}{#1}%
}
-\define at key{pmdraw at brick}{labels top draw}{ % Sets the draw options for labels of top vertices
- \renewcommand{\pmdraw at drawLabelTDrawOptions}{#1}
+\define at key{pmdraw at brick}{labels top draw}{% Sets the draw options for labels of top vertices
+ \renewcommand{\pmdraw at drawLabelTDrawOptions}{#1}%
}
-\define at key{pmdraw at brick}{labels top node}{ % Sets the node options for labels of top vertices
- \renewcommand{\pmdraw at drawLabelTNodeOptions}{#1}
+\define at key{pmdraw at brick}{labels top node}{% Sets the node options for labels of top vertices
+ \renewcommand{\pmdraw at drawLabelTNodeOptions}{#1}%
}
-\define at key{pmdraw at brick}{labels bottom options}{ % Sets the draw command of labels of bottom vertices
- \renewcommand{\pmdraw at drawLabelBottom}[3]{#1}
+\define at key{pmdraw at brick}{labels bottom options}{% Sets the draw command of labels of bottom vertices
+ \renewcommand{\pmdraw at drawLabelBottom}[3]{#1}%
}
-\define at key{pmdraw at brick}{labels top options}{ % Sets the draw command of labels of bottom vertices
- \renewcommand{\pmdraw at drawLabelTop}[3]{#1}
+\define at key{pmdraw at brick}{labels top options}{% Sets the draw command of labels of bottom vertices
+ \renewcommand{\pmdraw at drawLabelTop}[3]{#1}%
}
-\define at key{pmdraw at brick}{no dots}[]{ % Does not draw dots in bricks
- \setcounter{pmdraw at ifDiagWDotsFirst}{1}
+\define at key{pmdraw at brick}{no dots}[]{% Does not draw dots in bricks
+ \setcounter{pmdraw at ifDiagWDotsFirst}{1}%
}
-\define at key{pmdraw at brick}{dots draw}{ % Sets the draw options for drawing of dots
- \renewcommand{\pmdraw at drawDotsDrawOptions}{#1}
+\define at key{pmdraw at brick}{dots draw}{% Sets the draw options for drawing of dots
+ \renewcommand{\pmdraw at drawDotsDrawOptions}{#1}%
}
-\define at key{pmdraw at brick}{dots node}{ % Sets the node options for drawing of dots
- \renewcommand{\pmdraw at drawDotsNodeOptions}{#1}
+\define at key{pmdraw at brick}{dots node}{% Sets the node options for drawing of dots
+ \renewcommand{\pmdraw at drawDotsNodeOptions}{#1}%
}
-
-\define at key{pmdraw at brick}{levels}[1]{ % Sets number of horizontal levels for non-transversal edges and evenly spaces them
- \tikzmath{
- \pmdraw{edgeSepU} = (0.5*\pmdraw at rowSep)/(#1 + 1); % Calculates vertical separation between each edge
- \pmdraw{edgeSepL} = \pmdraw{edgeSepU}; % Calculates vertical separation between each edge
- }
+\define at key{pmdraw at brick}{levels}[1]{% Sets number of horizontal levels for non-transversal edges and evenly spaces them
+ \tikzmath{%
+ \pmdraw{edgeSepU} = (0.5*\pmdraw at rowSep)/(#1 + 1);% Calculates vertical separation between each edge
+ \pmdraw{edgeSepL} = \pmdraw{edgeSepU};% Calculates vertical separation between each edge
+ }%
}
-\define at key{pmdraw at brick}{levels bottom}{ % Sets number of horizontal levels for lower non-transversal edges and evenly spaces them
- \tikzmath{
- \pmdraw{edgeSepL} = (0.5*\pmdraw at rowSep)/(#1 + 1); % Calculates vertical separation between each edge
- }
+\define at key{pmdraw at brick}{levels bottom}{% Sets number of horizontal levels for lower non-transversal edges and evenly spaces them
+ \tikzmath{%
+ \pmdraw{edgeSepL} = (0.5*\pmdraw at rowSep)/(#1 + 1);% Calculates vertical separation between each edge
+ }%
}
-\define at key{pmdraw at brick}{levels top}{ % Sets number of horizontal levels for upper non-transversal edges and evenly spaces them
- \tikzmath{
- \pmdraw{edgeSepU} = (0.5*\pmdraw at rowSep)/(#1 + 1); % Calculates vertical separation between each edge
- }
+\define at key{pmdraw at brick}{levels top}{% Sets number of horizontal levels for upper non-transversal edges and evenly spaces them
+ \tikzmath{%
+ \pmdraw{edgeSepU} = (0.5*\pmdraw at rowSep)/(#1 + 1);% Calculates vertical separation between each edge
+ }%
}
-\define at key{pmdraw at brick}{levels sep}{ % Sets vertical separation of horizontal levels for non-transversal edges
- \tikzmath{
- \pmdraw{edgeSepU} = #1;
- \pmdraw{edgeSepL} = \pmdraw{edgeSepU};
- }
+\define at key{pmdraw at brick}{levels sep}{% Sets vertical separation of horizontal levels for non-transversal edges
+ \tikzmath{%
+ \pmdraw{edgeSepU} = #1;%
+ \pmdraw{edgeSepL} = \pmdraw{edgeSepU};%
+ }%
}
-\define at key{pmdraw at brick}{levels sep bottom}{ % Sets vertical separation of lower horizontal levels for non-transversal edges
- \tikzmath{
- \pmdraw{edgeSepL} = #1;
- }
+\define at key{pmdraw at brick}{levels sep bottom}{% Sets vertical separation of lower horizontal levels for non-transversal edges
+ \tikzmath{%
+ \pmdraw{edgeSepL} = #1;%
+ }%
}
-\define at key{pmdraw at brick}{levels sep top}{ % Sets vertical separation of upper horizontal levels for non-transversal edges
- \tikzmath{
- \pmdraw{edgeSepU} = #1;
- }
+\define at key{pmdraw at brick}{levels sep top}{% Sets vertical separation of upper horizontal levels for non-transversal edges
+ \tikzmath{%
+ \pmdraw{edgeSepU} = #1;%
+ }%
}
-\define at key{pmdraw at brick}{edges}{ % Sets the draw options of all edges
- \renewcommand{\pmdraw at drawUedgesDrawOptions}{#1}
- \renewcommand{\pmdraw at drawLedgesDrawOptions}{#1}
- \renewcommand{\pmdraw at drawTedgesDrawOptions}{#1}
+\define at key{pmdraw at brick}{edges}{% Sets the draw options of all edges
+ \renewcommand{\pmdraw at drawUedgesDrawOptions}{#1}%
+ \renewcommand{\pmdraw at drawLedgesDrawOptions}{#1}%
+ \renewcommand{\pmdraw at drawTedgesDrawOptions}{#1}%
}
-\define at key{pmdraw at brick}{edges non-transversal}{ % Sets the draw options of non-transversal edges
- \renewcommand{\pmdraw at drawUedgesDrawOptions}{#1}
- \renewcommand{\pmdraw at drawLedgesDrawOptions}{#1}
+\define at key{pmdraw at brick}{edges non-transversal}{% Sets the draw options of non-transversal edges
+ \renewcommand{\pmdraw at drawUedgesDrawOptions}{#1}%
+ \renewcommand{\pmdraw at drawLedgesDrawOptions}{#1}%
}
-\define at key{pmdraw at brick}{edges upper}{ % Sets the draw options of upper non-transversal edges
- \renewcommand{\pmdraw at drawUedgesDrawOptions}{#1}
+\define at key{pmdraw at brick}{edges upper}{% Sets the draw options of upper non-transversal edges
+ \renewcommand{\pmdraw at drawUedgesDrawOptions}{#1}%
}
-\define at key{pmdraw at brick}{edges lower}{ % Sets the draw options of lower non-transversal edges
- \renewcommand{\pmdraw at drawLedgesDrawOptions}{#1}
+\define at key{pmdraw at brick}{edges lower}{% Sets the draw options of lower non-transversal edges
+ \renewcommand{\pmdraw at drawLedgesDrawOptions}{#1}%
}
-\define at key{pmdraw at brick}{edges transversal}{ % Sets the draw options of transversal edges
- \renewcommand{\pmdraw at drawTedgesDrawOptions}{#1}
+\define at key{pmdraw at brick}{edges transversal}{% Sets the draw options of transversal edges
+ \renewcommand{\pmdraw at drawTedgesDrawOptions}{#1}%
}
-\define at key{pmdraw at brick}{edges first}[]{ % Draws edges before vertices
- \renewcommand{\pmdraw at ifEdgesFirst}{1}
+\define at key{pmdraw at brick}{edges first}[]{% Draws edges before vertices
+ \renewcommand{\pmdraw at ifEdgesFirst}{1}%
}
-\define at key{pmdraw at brick}{transversals first}[]{ % Draws transversal edges before non-transversal edges
- \renewcommand{\pmdraw at ifTedgesFirst}{1}
+\define at key{pmdraw at brick}{transversals first}[]{% Draws transversal edges before non-transversal edges
+ \renewcommand{\pmdraw at ifTedgesFirst}{1}%
}
-\define at key{pmdraw at brick}{brace}{ % Draws a brace
- \setkeys{pmdraw at brace}{#1} % Processes details of brace
- \pmdraw at drawBrace{\value{pmdraw at braceL}}{\value{pmdraw at braceR}}{\pmdraw at braceLabel} % Draws brace
- \let\pmdraw at drawBrace\pmdraw at drawBraceDefault % Resets brace options if changed
+\define at key{pmdraw at brick}{brace}{% Draws a brace
+ \setkeys{pmdraw at brace}{#1}% Processes details of brace
+ \pmdraw at drawBrace{\value{pmdraw at braceL}}{\value{pmdraw at braceR}}{\pmdraw at braceLabel}% Draws brace
+ \let\pmdraw at drawBrace\pmdraw at drawBraceDefault% Resets brace options if changed
}
-\define at key{pmdraw at brick}{brace draw}{ % Sets the draw options for drawing of brace
- \renewcommand{\pmdraw at drawBraceDrawOptions}{#1}
+\define at key{pmdraw at brick}{brace draw}{% Sets the draw options for drawing of brace
+ \renewcommand{\pmdraw at drawBraceDrawOptions}{#1}%
}
-\define at key{pmdraw at brick}{brace node}{ % Sets the node options for drawing of brace
- \renewcommand{\pmdraw at drawBraceNodeOptions}{#1}
+\define at key{pmdraw at brick}{brace node}{% Sets the node options for drawing of brace
+ \renewcommand{\pmdraw at drawBraceNodeOptions}{#1}%
}
-\define at key{pmdraw at brick}{decorate before}{ % Hook for decorations before brick is drawn
- \renewcommand{\pmdraw at hookBeforeBrick}{#1}
+\define at key{pmdraw at brick}{decorate before}{% Hook for decorations before brick is drawn
+ \renewcommand{\pmdraw at hookBeforeBrick}{#1}%
}
-\define at key{pmdraw at brick}{decorate after}{ % Hook for decorations after brick is drawn
- \renewcommand{\pmdraw at hookAfterBrick}{#1}
+\define at key{pmdraw at brick}{decorate after}{% Hook for decorations after brick is drawn
+ \renewcommand{\pmdraw at hookAfterBrick}{#1}%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -394,25 +393,25 @@
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\define at key{pmdraw at NTedges}{level}{ % Sets level of non-transversal edge
- \setcounter{pmdraw at NTlevel}{#1}
+\define at key{pmdraw at NTedges}{level}{% Sets level of non-transversal edge
+ \setcounter{pmdraw at NTlevel}{#1}%
}
-\define at key{pmdraw at NTedges}{height}{ % Sets manual height of non-transversal edge
- \renewcommand{\pmdraw at NTedgesHeight}{#1}
+\define at key{pmdraw at NTedges}{height}{% Sets manual height of non-transversal edge
+ \renewcommand{\pmdraw at NTedgesHeight}{#1}%
}
-\define at key{pmdraw at NTedges}{options}{ % Sets the draw command of non-transversal edge
- \renewcommand{\pmdraw at drawUedgesDraw}[2]{#1}
- \renewcommand{\pmdraw at drawLedgesDraw}[2]{#1}
+\define at key{pmdraw at NTedges}{options}{% Sets the draw command of non-transversal edge
+ \renewcommand{\pmdraw at drawUedgesDraw}[2]{#1}%
+ \renewcommand{\pmdraw at drawLedgesDraw}[2]{#1}%
}
-\define at key{pmdraw at Tedges}{height}{ % Sets manual height of transversal edge
- \tikzmath{
- \pmdraw{Tlevel} = #1;
- }
- \renewcommand{\pmdraw at ifTedgeHorizontal}{1} % Flags manual height
+\define at key{pmdraw at Tedges}{height}{% Sets manual height of transversal edge
+ \tikzmath{%
+ \pmdraw{Tlevel} = #1;%
+ }%
+ \renewcommand{\pmdraw at ifTedgeHorizontal}{1}% Flags manual height
}
-\define at key{pmdraw at Tedges}{options}{ % Sets the draw command of transversal edge
- \renewcommand{\pmdraw at drawTedgesDraw}[2]{#1}
+\define at key{pmdraw at Tedges}{options}{% Sets the draw command of transversal edge
+ \renewcommand{\pmdraw at drawTedgesDraw}[2]{#1}%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -422,20 +421,20 @@
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\define at key{pmdraw at brace}{left}{ % Sets starting position of brace
- \setcounter{pmdraw at braceL}{#1}
+\define at key{pmdraw at brace}{left}{% Sets starting position of brace
+ \setcounter{pmdraw at braceL}{#1}%
}
-\define at key{pmdraw at brace}{right}{ % Sets terminating position of brace
- \setcounter{pmdraw at braceR}{#1}
+\define at key{pmdraw at brace}{right}{% Sets terminating position of brace
+ \setcounter{pmdraw at braceR}{#1}%
}
-\define at key{pmdraw at brace}{label}{ % Sets label of brace
- \renewcommand{\pmdraw at braceLabel}{#1}
+\define at key{pmdraw at brace}{label}{% Sets label of brace
+ \renewcommand{\pmdraw at braceLabel}{#1}%
}
-\define at key{pmdraw at brace}{above}[]{ % Set flag to draw brace above diagram
- \renewcommand{\pmdraw at ifProdDiag}{1}
+\define at key{pmdraw at brace}{above}[]{% Set flag to draw brace above diagram
+ \renewcommand{\pmdraw at ifProdDiag}{1}%
}
-\define at key{pmdraw at brace}{options}{ % Sets the draw command of brace
- \renewcommand{\pmdraw at drawBrace}[3]{#1}
+\define at key{pmdraw at brace}{options}{% Sets the draw command of brace
+ \renewcommand{\pmdraw at drawBrace}[3]{#1}%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -445,30 +444,30 @@
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\define at key{pmdraw at diagram}{row sep}{ % Sets vertical separation between rows of vertices in diagram
- \renewcommand{\pmdraw at rowSep}{#1}
+\define at key{pmdraw at diagram}{row sep}{% Sets vertical separation between rows of vertices in diagram
+ \renewcommand{\pmdraw at rowSep}{#1}%
}
-\define at key{pmdraw at diagram}{tikz}{ % Sets the tikz options
- \renewcommand{\pmdraw at tikz}{#1}
+\define at key{pmdraw at diagram}{tikz}{% Sets the tikz options
+ \renewcommand{\pmdraw at tikz}{#1}%
}
-\define at key{pmdraw at diagram}{dots options}{ % Sets the draw command of dots between bricks
- \renewcommand{\pmdraw at drawDots}[2]{#1}
+\define at key{pmdraw at diagram}{dots options}{% Sets the draw command of dots between bricks
+ \renewcommand{\pmdraw at drawDots}[2]{#1}%
}
-\define at key{pmdraw at diagram}{grid}[]{ % Flag for drawing coordinate grid
- \renewcommand{\pmdraw at ifGrid}{1}
+\define at key{pmdraw at diagram}{grid}[]{% Flag for drawing coordinate grid
+ \renewcommand{\pmdraw at ifGrid}{1}%
}
-\define at key{pmdraw at diagram}{decorate before}{ % Hook before drawing diagrams
- \renewcommand{\pmdraw at hookBeforeDiagram}{#1}
+\define at key{pmdraw at diagram}{decorate before}{% Hook before drawing diagrams
+ \renewcommand{\pmdraw at hookBeforeDiagram}{#1}%
}
-\define at key{pmdraw at diagram}{decorate after}{ % Hook after drawing diagrams
- \renewcommand{\pmdraw at hookAfterDiagram}{#1}
+\define at key{pmdraw at diagram}{decorate after}{% Hook after drawing diagrams
+ \renewcommand{\pmdraw at hookAfterDiagram}{#1}%
}
-\define at key{pmdraw at diagram}{diagram sep}{ % Sets vertical separation between bottom row of top diagram and top row of bottom diagram in product diagram
- \renewcommand{\pmdraw at diagSep}{#1}
+\define at key{pmdraw at diagram}{diagram sep}{% Sets vertical separation between bottom row of top diagram and top row of bottom diagram in product diagram
+ \renewcommand{\pmdraw at diagSep}{#1}%
}
-\define at key{pmdraw at diagram}{edges added}{ % Sets the draw options for drawing of added edges in product diagram
- \renewcommand{\pmdraw at drawAedgesOptions}{#1}
+\define at key{pmdraw at diagram}{edges added}{% Sets the draw options for drawing of added edges in product diagram
+ \renewcommand{\pmdraw at 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 at 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 at AedgesLoop}{% Starts loop for added edges in product diagram
\@ifnextchar\pmdEmpty{}{% If not at end of list
\pmdraw at drawAedges% Draw each edge
- }
+ }%
}
\newcommand{\pmdraw at bricksLoop}{% Starts loop to iterate over each brick in diagram
\@ifnextchar\pmdEmpty{}{% If not at end of list
\pmdraw at drawBrickInit% Draw each brick
- }
+ }%
}
\newcommand{\pmdraw at LedgesLoop}{% Starts loop for lower non-transversal edges
\@ifnextchar\pmdEmpty{}{% If not at end of list
\pmdraw at drawLedges% Draw each edge
- }
+ }%
}
\newcommand{\pmdraw at TedgesLoop}{% Starts loop for transversal edges
\@ifnextchar\pmdEmpty{}{% If not at end of list
\pmdraw at drawTedges% Draw each edge
- }
+ }%
}
\newcommand{\pmdraw at UedgesLoop}{% Starts loop for upper non-transversal edges
\@ifnextchar\pmdEmpty{}{% If not at end of list
\pmdraw at drawUedges% Draw each edge
- }
+ }%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -673,7 +672,7 @@
\ifnum\pmdraw at ifLabelsB=1% If drawing labels
\pmdraw at drawLabelBottom{\x + \value{pmdraw at blankT}}{0}{\thepmdraw at labelStartB}% Draw label
\stepcounter{pmdraw at labelStartB}% Update label counter
- \fi
+ \fi%
}%
}
\newcommand{\pmdraw at 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 at ifTedgesFirst=0% If drawing non-transversals first
\pmdraw at UedgesLoop% Draws upper edges
#2%
@@ -801,7 +800,7 @@
\ifnum\pmdraw at ifLabelsT=1% If drawing labels
\pmdraw at drawLabelTop{\x + \value{pmdraw at blankT}}{\pmdraw at rowSep}{\thepmdraw at labelStartT}% Draw label
\stepcounter{pmdraw at labelStartT}% Update label counter
- \fi
+ \fi%
}%
}
\newcommand{\pmdraw at drawUedges}[3][]{% Draws upper non-transversal edge, #1 options, #2 L vertex, #3 R vertex
@@ -808,13 +807,13 @@
\setcounter{pmdraw at NTlevel}{1}% Store default level of edge
\setkeys{pmdraw at NTedges}{#1}% Processes options
\ifdim\pmdraw at NTedgesHeight pt=-1000pt% If using default heights
- \tikzmath{
+ \tikzmath{%
\pmdraw{edgeHeight}=\value{pmdraw at NTlevel}*\pmdraw{edgeSepU};% Calculates height based on level of edge
- }
+ }%
\else% If using manual heights
- \tikzmath{
+ \tikzmath{%
\pmdraw{edgeHeight}=\pmdraw at rowSep-\pmdraw at NTedgesHeight;% Set manual height
- }
+ }%
\fi%
\pmdraw at drawUedgesDraw{#2}{#3}% Draw edge
% Resets user keys and other flags to default values
More information about the tex-live-commits
mailing list.